?? bluetooth.h
字號:
/* * * BlueZ - Bluetooth protocol stack for Linux * * Copyright (C) 2000-2001 Qualcomm Incorporated * Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com> * Copyright (C) 2002-2007 Marcel Holtmann <marcel@holtmann.org> * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */#ifndef __BLUETOOTH_H#define __BLUETOOTH_H#ifdef __cplusplusextern "C" {#endif#include <stdio.h>#include <stdint.h>#include <string.h>#include <endian.h>#include <byteswap.h>#ifndef AF_BLUETOOTH#define AF_BLUETOOTH 31#define PF_BLUETOOTH AF_BLUETOOTH#endif#define BTPROTO_L2CAP 0#define BTPROTO_HCI 1#define BTPROTO_SCO 2#define BTPROTO_RFCOMM 3#define BTPROTO_BNEP 4#define BTPROTO_CMTP 5#define BTPROTO_HIDP 6#define BTPROTO_AVDTP 7#define SOL_HCI 0#define SOL_L2CAP 6#define SOL_SCO 17#define SOL_RFCOMM 18/* Connection and socket states */enum { BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */ BT_OPEN, BT_BOUND, BT_LISTEN, BT_CONNECT, BT_CONNECT2, BT_CONFIG, BT_DISCONN, BT_CLOSED};/* Byte order conversions */#if __BYTE_ORDER == __LITTLE_ENDIAN#define htobs(d) (d)#define htobl(d) (d)#define btohs(d) (d)#define btohl(d) (d)#elif __BYTE_ORDER == __BIG_ENDIAN#define htobs(d) bswap_16(d)#define htobl(d) bswap_32(d)#define btohs(d) bswap_16(d)#define btohl(d) bswap_32(d)#else#error "Unknown byte order"#endif/* Bluetooth unaligned access */#define bt_get_unaligned(ptr) \({ \ struct __attribute__((packed)) { \ typeof(*(ptr)) __v; \ } *__p = (void *) (ptr); \ __p->__v; \})#define bt_put_unaligned(val, ptr) \do { \ struct __attribute__((packed)) { \ typeof(*(ptr)) __v; \ } *__p = (void *) (ptr); \ __p->__v = (val); \} while(0)/* BD Address */typedef struct { uint8_t b[6];} __attribute__((packed)) bdaddr_t;#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})#define BDADDR_ALL (&(bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}})#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}})/* Copy, swap, convert BD Address */static inline int bacmp(const bdaddr_t *ba1, const bdaddr_t *ba2){ return memcmp(ba1, ba2, sizeof(bdaddr_t));}static inline void bacpy(bdaddr_t *dst, const bdaddr_t *src){ memcpy(dst, src, sizeof(bdaddr_t));}void baswap(bdaddr_t *dst, const bdaddr_t *src);bdaddr_t *strtoba(const char *str);char *batostr(const bdaddr_t *ba);int ba2str(const bdaddr_t *ba, char *str);int str2ba(const char *str, bdaddr_t *ba);int ba2oui(const bdaddr_t *ba, char *oui);int bachk(const char *str);int baprintf(const char *format, ...);int bafprintf(FILE *stream, const char *format, ...);int basprintf(char *str, const char *format, ...);int basnprintf(char *str, size_t size, const char *format, ...);void *bt_malloc(size_t size);void bt_free(void *ptr);int bt_error(uint16_t code);char *bt_compidtostr(int id);#ifdef __cplusplus}#endif#endif /* __BLUETOOTH_H */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -