2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2000-2001 Qualcomm Incorporated
5 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 2 as
9 published by the Free Software Foundation;
11 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
14 IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
15 CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
16 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
21 COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
22 SOFTWARE IS DISCLAIMED.
25 /* Bluetooth kernel library. */
27 #define pr_fmt(fmt) "Bluetooth: " fmt
29 #include <linux/export.h>
31 #include <net/bluetooth/bluetooth.h>
33 void baswap(bdaddr_t *dst, const bdaddr_t *src)
35 const unsigned char *s = (const unsigned char *)src;
36 unsigned char *d = (unsigned char *)dst;
39 for (i = 0; i < 6; i++)
42 EXPORT_SYMBOL(baswap);
44 /* Bluetooth error codes to Unix errno mapping */
45 int bt_to_errno(__u16 code)
120 return EPROTONOSUPPORT;
136 EXPORT_SYMBOL(bt_to_errno);
138 /* Unix errno to Bluetooth error codes mapping */
139 __u8 bt_status(int err)
141 /* Don't convert if already positive value */
197 case -EPROTONOSUPPORT:
207 EXPORT_SYMBOL(bt_status);
209 void bt_info(const char *format, ...)
211 struct va_format vaf;
214 va_start(args, format);
219 pr_info("%pV", &vaf);
223 EXPORT_SYMBOL(bt_info);
225 void bt_warn(const char *format, ...)
227 struct va_format vaf;
230 va_start(args, format);
235 pr_warn("%pV", &vaf);
239 EXPORT_SYMBOL(bt_warn);
241 void bt_err(const char *format, ...)
243 struct va_format vaf;
246 va_start(args, format);
255 EXPORT_SYMBOL(bt_err);
257 #ifdef CONFIG_BT_FEATURE_DEBUG
258 static bool debug_enable;
260 void bt_dbg_set(bool enable)
262 debug_enable = enable;
265 bool bt_dbg_get(void)
270 void bt_dbg(const char *format, ...)
272 struct va_format vaf;
275 if (likely(!debug_enable))
278 va_start(args, format);
283 printk(KERN_DEBUG pr_fmt("%pV"), &vaf);
287 EXPORT_SYMBOL(bt_dbg);
290 void bt_warn_ratelimited(const char *format, ...)
292 struct va_format vaf;
295 va_start(args, format);
300 pr_warn_ratelimited("%pV", &vaf);
304 EXPORT_SYMBOL(bt_warn_ratelimited);
306 void bt_err_ratelimited(const char *format, ...)
308 struct va_format vaf;
311 va_start(args, format);
316 pr_err_ratelimited("%pV", &vaf);
320 EXPORT_SYMBOL(bt_err_ratelimited);