⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hci.h

📁 linux-2.4.29操作系统的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define READ_REMOTE_VERSION_CP_SIZE 2/* Link Policy */#define OGF_LINK_POLICY	 0x02   #define OCF_ROLE_DISCOVERY	0x0009typedef struct {	__u16	handle;} __attribute__ ((packed)) role_discovery_cp;#define ROLE_DISCOVERY_CP_SIZE 2typedef struct {	__u8    status;	__u16	handle;	__u8    role;} __attribute__ ((packed)) role_discovery_rp;#define ROLE_DISCOVERY_RP_SIZE 4#define OCF_READ_LINK_POLICY	0x000Ctypedef struct {	__u16	handle;} __attribute__ ((packed)) read_link_policy_cp;#define READ_LINK_POLICY_CP_SIZE 2typedef struct {	__u8    status;	__u16	handle;	__u16   policy;} __attribute__ ((packed)) read_link_policy_rp;#define READ_LINK_POLICY_RP_SIZE 5#define OCF_SWITCH_ROLE	0x000Btypedef struct {	bdaddr_t bdaddr;	__u8     role;} __attribute__ ((packed)) switch_role_cp;#define SWITCH_ROLE_CP_SIZE 7#define OCF_WRITE_LINK_POLICY	0x000Dtypedef struct {	__u16	handle;	__u16   policy;} __attribute__ ((packed)) write_link_policy_cp;#define WRITE_LINK_POLICY_CP_SIZE 4typedef struct {	__u8    status;	__u16	handle;} __attribute__ ((packed)) write_link_policy_rp;#define WRITE_LINK_POLICY_RP_SIZE 3/* Status params */#define OGF_STATUS_PARAM 	0x05/* Testing commands */#define OGF_TESTING_CMD 	0x3e/* Vendor specific commands */#define OGF_VENDOR_CMD  	0x3f/* ---- HCI Events ---- */#define EVT_INQUIRY_COMPLETE 	0x01#define EVT_INQUIRY_RESULT 	0x02typedef struct {	bdaddr_t	bdaddr;	__u8	pscan_rep_mode;	__u8	pscan_period_mode;	__u8	pscan_mode;	__u8	dev_class[3];	__u16	clock_offset;} __attribute__ ((packed)) inquiry_info;#define INQUIRY_INFO_SIZE 14#define EVT_INQUIRY_RESULT_WITH_RSSI	0x22typedef struct {	bdaddr_t	bdaddr;	__u8	pscan_rep_mode;	__u8	pscan_period_mode;	__u8	dev_class[3];	__u16	clock_offset;	__s8	rssi;} __attribute__ ((packed)) inquiry_info_with_rssi;#define INQUIRY_INFO_WITH_RSSI_SIZE 14#define EVT_CONN_COMPLETE 	0x03typedef struct {	__u8	status;	__u16	handle;	bdaddr_t	bdaddr;	__u8	link_type;	__u8	encr_mode;} __attribute__ ((packed)) evt_conn_complete;#define EVT_CONN_COMPLETE_SIZE 13#define EVT_CONN_REQUEST	0x04typedef struct {	bdaddr_t 	bdaddr;	__u8 		dev_class[3];	__u8		link_type;} __attribute__ ((packed)) evt_conn_request;#define EVT_CONN_REQUEST_SIZE 10#define EVT_DISCONN_COMPLETE	0x05typedef struct {	__u8 	status;	__u16 	handle;	__u8 	reason;} __attribute__ ((packed)) evt_disconn_complete;#define EVT_DISCONN_COMPLETE_SIZE 4#define EVT_AUTH_COMPLETE	0x06typedef struct {	__u8 	status;	__u16 	handle;} __attribute__ ((packed)) evt_auth_complete;#define EVT_AUTH_COMPLETE_SIZE 3#define EVT_REMOTE_NAME_REQ_COMPLETE	0x07typedef struct {	__u8 	 status;	bdaddr_t bdaddr;	__u8 	 name[248];} __attribute__ ((packed)) evt_remote_name_req_complete;#define EVT_REMOTE_NAME_REQ_COMPLETE_SIZE 255#define EVT_ENCRYPT_CHANGE	0x08typedef struct {	__u8 	status;	__u16 	handle;	__u8	encrypt;} __attribute__ ((packed)) evt_encrypt_change;#define EVT_ENCRYPT_CHANGE_SIZE 5#define EVT_QOS_SETUP_COMPLETE 0x0Dtypedef struct {	__u8	service_type;	__u32	token_rate;	__u32	peak_bandwidth;	__u32	latency;	__u32	delay_variation;} __attribute__ ((packed)) hci_qos;typedef struct {	__u8	status;	__u16	handle;	hci_qos qos;} __attribute__ ((packed)) evt_qos_setup_complete;#define EVT_QOS_SETUP_COMPLETE_SIZE 20#define EVT_CMD_COMPLETE 	0x0etypedef struct {	__u8 	ncmd;	__u16 	opcode;} __attribute__ ((packed)) evt_cmd_complete;#define EVT_CMD_COMPLETE_SIZE 3#define EVT_CMD_STATUS 		0x0ftypedef struct {	__u8 	status;	__u8 	ncmd;	__u16 	opcode;} __attribute__ ((packed)) evt_cmd_status;#define EVT_CMD_STATUS_SIZE 4#define EVT_NUM_COMP_PKTS	0x13typedef struct {	__u8 	num_hndl;	/* variable length part */} __attribute__ ((packed)) evt_num_comp_pkts;#define EVT_NUM_COMP_PKTS_SIZE 1#define EVT_ROLE_CHANGE		0x12typedef struct {	__u8 	 status;	bdaddr_t bdaddr;	__u8     role;} __attribute__ ((packed)) evt_role_change;#define EVT_ROLE_CHANGE_SIZE 8#define EVT_PIN_CODE_REQ        0x16typedef struct {	bdaddr_t bdaddr;} __attribute__ ((packed)) evt_pin_code_req;#define EVT_PIN_CODE_REQ_SIZE 6#define EVT_LINK_KEY_REQ        0x17typedef struct {	bdaddr_t bdaddr;} __attribute__ ((packed)) evt_link_key_req;#define EVT_LINK_KEY_REQ_SIZE 6#define EVT_LINK_KEY_NOTIFY	0x18typedef struct {	bdaddr_t bdaddr;	__u8	 link_key[16];	__u8	 key_type;} __attribute__ ((packed)) evt_link_key_notify;#define EVT_LINK_KEY_NOTIFY_SIZE 23#define EVT_READ_REMOTE_FEATURES_COMPLETE 0x0Btypedef struct {	__u8    status;	__u16   handle;	__u8    features[8];} __attribute__ ((packed)) evt_read_remote_features_complete;#define EVT_READ_REMOTE_FEATURES_COMPLETE_SIZE 11#define EVT_READ_REMOTE_VERSION_COMPLETE 0x0Ctypedef struct {	__u8    status;	__u16   handle;	__u8    lmp_ver;	__u16   manufacturer;	__u16   lmp_subver;} __attribute__ ((packed)) evt_read_remote_version_complete;#define EVT_READ_REMOTE_VERSION_COMPLETE_SIZE 8/* Internal events generated by BlueZ stack */#define EVT_STACK_INTERNAL	0xfdtypedef struct {	__u16   type;	__u8 	data[0];} __attribute__ ((packed)) evt_stack_internal;#define EVT_STACK_INTERNAL_SIZE 2#define EVT_SI_DEVICE  	0x01typedef struct {	__u16   event;	__u16 	dev_id;} __attribute__ ((packed)) evt_si_device;#define EVT_SI_DEVICE_SIZE 4#define EVT_SI_SECURITY	0x02typedef struct {	__u16 	event;	__u16   proto;	__u16   subproto;	__u8    incomming;} __attribute__ ((packed)) evt_si_security;/* --------  HCI Packet structures  -------- */#define HCI_TYPE_LEN	1typedef struct {	__u16 	opcode;		/* OCF & OGF */	__u8 	plen;} __attribute__ ((packed))	hci_command_hdr;#define HCI_COMMAND_HDR_SIZE 	3typedef struct {	__u8 	evt;	__u8 	plen;} __attribute__ ((packed))	hci_event_hdr;#define HCI_EVENT_HDR_SIZE 	2typedef struct {	__u16 	handle;		/* Handle & Flags(PB, BC) */	__u16 	dlen;} __attribute__ ((packed))	hci_acl_hdr;#define HCI_ACL_HDR_SIZE 	4typedef struct {	__u16 	handle;	__u8 	dlen;} __attribute__ ((packed))	hci_sco_hdr;#define HCI_SCO_HDR_SIZE 	3/* Command opcode pack/unpack */#define cmd_opcode_pack(ogf, ocf)	(__u16)((ocf & 0x03ff)|(ogf << 10))#define cmd_opcode_ogf(op)		(op >> 10)#define cmd_opcode_ocf(op)		(op & 0x03ff)/* ACL handle and flags pack/unpack */#define acl_handle_pack(h, f)	(__u16)((h & 0x0fff)|(f << 12))#define acl_handle(h)		(h & 0x0fff)#define acl_flags(h)		(h >> 12)/* HCI Socket options */#define HCI_DATA_DIR	1#define HCI_FILTER	2#define HCI_TIME_STAMP	3/* HCI CMSG flags */#define HCI_CMSG_DIR	0x0001#define HCI_CMSG_TSTAMP	0x0002struct sockaddr_hci {	sa_family_t    hci_family;	unsigned short hci_dev;};#define HCI_DEV_NONE	0xffffstruct hci_filter {	__u32 type_mask;	__u32 event_mask[2];	__u16 opcode;};#define HCI_FLT_TYPE_BITS	31#define HCI_FLT_EVENT_BITS	63#define HCI_FLT_OGF_BITS	63#define HCI_FLT_OCF_BITS	127#if BITS_PER_LONG == 64static inline void hci_set_bit(int nr, void *addr){	*((__u32 *) addr + (nr >> 5)) |= ((__u32) 1 << (nr & 31));}static inline int hci_test_bit(int nr, void *addr){	return *((__u32 *) addr + (nr >> 5)) & ((__u32) 1 << (nr & 31));}#else#define hci_set_bit	set_bit#define hci_test_bit	test_bit#endif/* Ioctl requests structures */struct hci_dev_stats {	__u32 err_rx;	__u32 err_tx;	__u32 cmd_tx;	__u32 evt_rx;	__u32 acl_tx;	__u32 acl_rx;	__u32 sco_tx;	__u32 sco_rx;	__u32 byte_rx;	__u32 byte_tx;};struct hci_dev_info {	__u16 dev_id;	char  name[8];	bdaddr_t bdaddr;	__u32 flags;	__u8  type;	__u8  features[8];	__u32 pkt_type;	__u32 link_policy;	__u32 link_mode;	__u16 acl_mtu;	__u16 acl_pkts;	__u16 sco_mtu;	__u16 sco_pkts;	struct hci_dev_stats stat;};struct hci_conn_info {	__u16    handle;	bdaddr_t bdaddr;	__u8	 type;	__u8	 out;	__u16	 state;	__u32	 link_mode;};struct hci_dev_req {	__u16 dev_id;	__u32 dev_opt;};struct hci_dev_list_req {	__u16  dev_num;	struct hci_dev_req dev_req[0];	/* hci_dev_req structures */};struct hci_conn_list_req {	__u16  dev_id;	__u16  conn_num;	struct hci_conn_info conn_info[0];};struct hci_conn_info_req {	bdaddr_t bdaddr;	__u8     type;	struct   hci_conn_info conn_info[0];};struct hci_inquiry_req {	__u16 dev_id;	__u16 flags;	__u8  lap[3];	__u8  length;	__u8  num_rsp;};#define IREQ_CACHE_FLUSH 0x0001struct hci_remotename_req {	__u16 dev_id;	__u16 flags;	bdaddr_t bdaddr;	__u8  name[248];};#endif /* __HCI_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -