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

📄 hci.h

📁 Bluezan implementation of the Bluetooth&#8482 wireless standards specifications for Linux. The code
💻 H
📖 第 1 页 / 共 3 页
字号:
	uint8_t		map[10];} __attribute__ ((packed)) read_afh_map_rp;#define READ_AFH_MAP_RP_SIZE 14#define OCF_READ_CLOCK			0x0007typedef struct {	uint16_t	handle;	uint8_t		which_clock;} __attribute__ ((packed)) read_clock_cp;#define READ_CLOCK_CP_SIZE 3typedef struct {	uint8_t		status;	uint16_t	handle;	uint32_t	clock;	uint16_t	accuracy;} __attribute__ ((packed)) read_clock_rp;#define READ_CLOCK_RP_SIZE 9/* 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;	uint8_t		pscan_rep_mode;	uint8_t		pscan_period_mode;	uint8_t		pscan_mode;	uint8_t		dev_class[3];	uint16_t	clock_offset;} __attribute__ ((packed)) inquiry_info;#define INQUIRY_INFO_SIZE 14#define EVT_CONN_COMPLETE		0x03typedef struct {	uint8_t		status;	uint16_t	handle;	bdaddr_t	bdaddr;	uint8_t		link_type;	uint8_t		encr_mode;} __attribute__ ((packed)) evt_conn_complete;#define EVT_CONN_COMPLETE_SIZE 13#define EVT_CONN_REQUEST		0x04typedef struct {	bdaddr_t	bdaddr;	uint8_t		dev_class[3];	uint8_t		link_type;} __attribute__ ((packed)) evt_conn_request;#define EVT_CONN_REQUEST_SIZE 10#define EVT_DISCONN_COMPLETE		0x05typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		reason;} __attribute__ ((packed)) evt_disconn_complete;#define EVT_DISCONN_COMPLETE_SIZE 4#define EVT_AUTH_COMPLETE		0x06typedef struct {	uint8_t		status;	uint16_t	handle;} __attribute__ ((packed)) evt_auth_complete;#define EVT_AUTH_COMPLETE_SIZE 3#define EVT_REMOTE_NAME_REQ_COMPLETE	0x07typedef struct {	uint8_t		status;	bdaddr_t	bdaddr;	uint8_t		name[248];} __attribute__ ((packed)) evt_remote_name_req_complete;#define EVT_REMOTE_NAME_REQ_COMPLETE_SIZE 255#define EVT_ENCRYPT_CHANGE		0x08typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		encrypt;} __attribute__ ((packed)) evt_encrypt_change;#define EVT_ENCRYPT_CHANGE_SIZE 5#define EVT_CHANGE_CONN_LINK_KEY_COMPLETE	0x09typedef struct {	uint8_t		status;	uint16_t	handle;}  __attribute__ ((packed)) evt_change_conn_link_key_complete;#define EVT_CHANGE_CONN_LINK_KEY_COMPLETE_SIZE 3#define EVT_MASTER_LINK_KEY_COMPLETE		0x0Atypedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		key_flag;} __attribute__ ((packed)) evt_master_link_key_complete;#define EVT_MASTER_LINK_KEY_COMPLETE_SIZE 4#define EVT_READ_REMOTE_FEATURES_COMPLETE	0x0Btypedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		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 {	uint8_t		status;	uint16_t	handle;	uint8_t		lmp_ver;	uint16_t	manufacturer;	uint16_t	lmp_subver;} __attribute__ ((packed)) evt_read_remote_version_complete;#define EVT_READ_REMOTE_VERSION_COMPLETE_SIZE 8#define EVT_QOS_SETUP_COMPLETE		0x0Dtypedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		flags;			/* Reserved */	hci_qos		qos;} __attribute__ ((packed)) evt_qos_setup_complete;#define EVT_QOS_SETUP_COMPLETE_SIZE (4 + HCI_QOS_CP_SIZE)#define EVT_CMD_COMPLETE 		0x0Etypedef struct {	uint8_t		ncmd;	uint16_t	opcode;} __attribute__ ((packed)) evt_cmd_complete;#define EVT_CMD_COMPLETE_SIZE 3#define EVT_CMD_STATUS 			0x0Ftypedef struct {	uint8_t		status;	uint8_t		ncmd;	uint16_t	opcode;} __attribute__ ((packed)) evt_cmd_status;#define EVT_CMD_STATUS_SIZE 4#define EVT_HARDWARE_ERROR		0x10typedef struct {	uint8_t		code;} __attribute__ ((packed)) evt_hardware_error;#define EVT_HARDWARE_ERROR_SIZE 1#define EVT_FLUSH_OCCURRED		0x11typedef struct {	uint16_t	handle;} __attribute__ ((packed)) evt_flush_occured;#define EVT_FLUSH_OCCURRED_SIZE 2#define EVT_ROLE_CHANGE			0x12typedef struct {	uint8_t		status;	bdaddr_t	bdaddr;	uint8_t		role;} __attribute__ ((packed)) evt_role_change;#define EVT_ROLE_CHANGE_SIZE 8#define EVT_NUM_COMP_PKTS		0x13typedef struct {	uint8_t		num_hndl;	/* variable length part */} __attribute__ ((packed)) evt_num_comp_pkts;#define EVT_NUM_COMP_PKTS_SIZE 1#define EVT_MODE_CHANGE			0x14typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		mode;	uint16_t	interval;} __attribute__ ((packed)) evt_mode_change;#define EVT_MODE_CHANGE_SIZE 6#define EVT_RETURN_LINK_KEYS		0x15typedef struct {	uint8_t		num_keys;	/* variable length part */} __attribute__ ((packed)) evt_return_link_keys;#define EVT_RETURN_LINK_KEYS_SIZE 1#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;	uint8_t		link_key[16];	uint8_t		key_type;} __attribute__ ((packed)) evt_link_key_notify;#define EVT_LINK_KEY_NOTIFY_SIZE 23#define EVT_LOOPBACK_COMMAND		0x19#define EVT_DATA_BUFFER_OVERFLOW	0x1Atypedef struct {	uint8_t		link_type;} __attribute__ ((packed)) evt_data_buffer_overflow;#define EVT_DATA_BUFFER_OVERFLOW_SIZE 1#define EVT_MAX_SLOTS_CHANGE		0x1Btypedef struct {	uint16_t	handle;	uint8_t		max_slots;} __attribute__ ((packed)) evt_max_slots_change;#define EVT_MAX_SLOTS_CHANGE_SIZE 3#define EVT_READ_CLOCK_OFFSET_COMPLETE	0x1Ctypedef struct {	uint8_t		status;	uint16_t	handle;	uint16_t	clock_offset;} __attribute__ ((packed)) evt_read_clock_offset_complete;#define EVT_READ_CLOCK_OFFSET_COMPLETE_SIZE 5#define EVT_CONN_PTYPE_CHANGED		0x1Dtypedef struct {	uint8_t		status;	uint16_t	handle;	uint16_t	ptype;} __attribute__ ((packed)) evt_conn_ptype_changed;#define EVT_CONN_PTYPE_CHANGED_SIZE 5#define EVT_QOS_VIOLATION		0x1Etypedef struct {	uint16_t	handle;} __attribute__ ((packed)) evt_qos_violation;#define EVT_QOS_VIOLATION_SIZE 2#define EVT_PSCAN_REP_MODE_CHANGE	0x20typedef struct {	bdaddr_t	bdaddr;	uint8_t		pscan_rep_mode;} __attribute__ ((packed)) evt_pscan_rep_mode_change;#define EVT_PSCAN_REP_MODE_CHANGE_SIZE 7#define EVT_FLOW_SPEC_COMPLETE		0x21typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		flags;	uint8_t		direction;	hci_qos		qos;} __attribute__ ((packed)) evt_flow_spec_complete;#define EVT_FLOW_SPEC_COMPLETE_SIZE (5 + HCI_QOS_CP_SIZE)#define EVT_INQUIRY_RESULT_WITH_RSSI	0x22typedef struct {	bdaddr_t	bdaddr;	uint8_t		pscan_rep_mode;	uint8_t		pscan_period_mode;	uint8_t		dev_class[3];	uint16_t	clock_offset;	int8_t		rssi;} __attribute__ ((packed)) inquiry_info_with_rssi;#define INQUIRY_INFO_WITH_RSSI_SIZE 14typedef struct {	bdaddr_t	bdaddr;	uint8_t		pscan_rep_mode;	uint8_t		pscan_period_mode;	uint8_t		pscan_mode;	uint8_t		dev_class[3];	uint16_t	clock_offset;	int8_t		rssi;} __attribute__ ((packed)) inquiry_info_with_rssi_and_pscan_mode;#define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE_SIZE 15#define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE	0x23typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		page_num;	uint8_t		max_page_num;	uint8_t		features[8];} __attribute__ ((packed)) evt_read_remote_ext_features_complete;#define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE_SIZE 13#define EVT_SYNC_CONN_COMPLETE		0x2Ctypedef struct {	uint8_t		status;	uint16_t	handle;	bdaddr_t	bdaddr;	uint8_t		link_type;	uint8_t		trans_interval;	uint8_t		retrans_window;	uint16_t	rx_pkt_len;	uint16_t	tx_pkt_len;	uint8_t		air_mode;} __attribute__ ((packed)) evt_sync_conn_complete;#define EVT_SYNC_CONN_COMPLETE_SIZE 17#define EVT_SYNC_CONN_CHANGED		0x2Dtypedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		trans_interval;	uint8_t		retrans_window;	uint16_t	rx_pkt_len;	uint16_t	tx_pkt_len;} __attribute__ ((packed)) evt_sync_conn_changed;#define EVT_SYNC_CONN_CHANGED_SIZE 9#define EVT_TESTING			0xFE#define EVT_VENDOR			0xFF/* Internal events generated by BlueZ stack */#define EVT_STACK_INTERNAL		0xFDtypedef struct {	uint16_t	type;	uint8_t		data[0];} __attribute__ ((packed)) evt_stack_internal;#define EVT_STACK_INTERNAL_SIZE 2#define EVT_SI_DEVICE	0x01typedef struct {	uint16_t	event;	uint16_t	dev_id;} __attribute__ ((packed)) evt_si_device;#define EVT_SI_DEVICE_SIZE 4#define EVT_SI_SECURITY	0x02typedef struct {	uint16_t	event;	uint16_t	proto;	uint16_t	subproto;	uint8_t		incoming;} __attribute__ ((packed)) evt_si_security;/* --------  HCI Packet structures  -------- */#define HCI_TYPE_LEN	1typedef struct {	uint16_t	opcode;		/* OCF & OGF */	uint8_t		plen;} __attribute__ ((packed))	hci_command_hdr;#define HCI_COMMAND_HDR_SIZE 	3typedef struct {	uint8_t		evt;	uint8_t		plen;} __attribute__ ((packed))	hci_event_hdr;#define HCI_EVENT_HDR_SIZE 	2typedef struct {	uint16_t	handle;		/* Handle & Flags(PB, BC) */	uint16_t	dlen;} __attribute__ ((packed))	hci_acl_hdr;#define HCI_ACL_HDR_SIZE 	4typedef struct {	uint16_t	handle;	uint8_t		dlen;} __attribute__ ((packed))	hci_sco_hdr;#define HCI_SCO_HDR_SIZE 	3/* Command opcode pack/unpack */#define cmd_opcode_pack(ogf, ocf)	(uint16_t)((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)	(uint16_t)((h & 0x0fff)|(f << 12))#define acl_handle(h)		(h & 0x0fff)#define acl_flags(h)		(h >> 12)#endif /* _NO_HCI_DEFS *//* 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 {	uint32_t type_mask;	uint32_t event_mask[2];	uint16_t 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/* Ioctl requests structures */struct hci_dev_stats {	uint32_t err_rx;	uint32_t err_tx;	uint32_t cmd_tx;	uint32_t evt_rx;	uint32_t acl_tx;	uint32_t acl_rx;	uint32_t sco_tx;	uint32_t sco_rx;	uint32_t byte_rx;	uint32_t byte_tx;};struct hci_dev_info {	uint16_t dev_id;	char     name[8];	bdaddr_t bdaddr;	uint32_t flags;	uint8_t  type;	uint8_t  features[8];	uint32_t pkt_type;	uint32_t link_policy;	uint32_t link_mode;	uint16_t acl_mtu;	uint16_t acl_pkts;	uint16_t sco_mtu;	uint16_t sco_pkts;	struct   hci_dev_stats stat;};struct hci_conn_info {	uint16_t handle;	bdaddr_t bdaddr;	uint8_t  type;	uint8_t	 out;	uint16_t state;	uint32_t link_mode;};struct hci_dev_req {	uint16_t dev_id;	uint32_t dev_opt;};struct hci_dev_list_req {	uint16_t dev_num;	struct hci_dev_req dev_req[0];	/* hci_dev_req structures */};struct hci_conn_list_req {	uint16_t dev_id;	uint16_t conn_num;	struct hci_conn_info conn_info[0];};struct hci_conn_info_req {	bdaddr_t bdaddr;	uint8_t  type;	struct hci_conn_info conn_info[0];};struct hci_inquiry_req {	uint16_t dev_id;	uint16_t flags;	uint8_t  lap[3];	uint8_t  length;	uint8_t  num_rsp;};#define IREQ_CACHE_FLUSH 0x0001struct hci_remotename_req {	uint16_t dev_id;	uint16_t flags;	bdaddr_t bdaddr;	uint8_t  name[248];};#ifdef __cplusplus}#endif#endif /* __HCI_H */

⌨️ 快捷键说明

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