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

📄 hci.h

📁 这是Linux环境下的蓝牙源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
#define MAX_IAC_LAP 0x40#define OCF_READ_CURRENT_IAC_LAP	0x0039typedef struct {	uint8_t		status;	uint8_t		num_current_iac;	uint8_t		lap[MAX_IAC_LAP][3];} __attribute__ ((packed)) read_current_iac_lap_rp;#define READ_CURRENT_IAC_LAP_RP_SIZE 2+3*MAX_IAC_LAP#define OCF_WRITE_CURRENT_IAC_LAP	0x003Atypedef struct {	uint8_t		num_current_iac;	uint8_t		lap[MAX_IAC_LAP][3];} __attribute__ ((packed)) write_current_iac_lap_cp;#define WRITE_CURRENT_IAC_LAP_CP_SIZE 1+3*MAX_IAC_LAP#define OCF_READ_PAGE_SCAN_PERIOD_MODE	0x003B#define OCF_WRITE_PAGE_SCAN_PERIOD_MODE	0x003C#define OCF_READ_PAGE_SCAN_MODE		0x003D#define OCF_WRITE_PAGE_SCAN_MODE	0x003E#define OCF_SET_AFH_CLASSIFICATION	0x003Ftypedef struct {	uint8_t		map[10];} __attribute__ ((packed)) set_afh_classification_cp;#define SET_AFH_CLASSIFICATION_CP_SIZE 10typedef struct {	uint8_t		status;} __attribute__ ((packed)) set_afh_classification_rp;#define SET_AFH_CLASSIFICATION_RP_SIZE 1#define OCF_READ_INQUIRY_SCAN_TYPE	0x0042typedef struct {	uint8_t		status;	uint8_t		type;} __attribute__ ((packed)) read_inquiry_scan_type_rp;#define READ_INQUIRY_SCAN_TYPE_RP_SIZE 2#define OCF_WRITE_INQUIRY_SCAN_TYPE	0x0043typedef struct {	uint8_t		type;} __attribute__ ((packed)) write_inquiry_scan_type_cp;#define WRITE_INQUIRY_SCAN_TYPE_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_inquiry_scan_type_rp;#define WRITE_INQUIRY_SCAN_TYPE_RP_SIZE 1#define OCF_READ_INQUIRY_MODE		0x0044typedef struct {	uint8_t		status;	uint8_t		mode;} __attribute__ ((packed)) read_inquiry_mode_rp;#define READ_INQUIRY_MODE_RP_SIZE 2#define OCF_WRITE_INQUIRY_MODE		0x0045typedef struct {	uint8_t		mode;} __attribute__ ((packed)) write_inquiry_mode_cp;#define WRITE_INQUIRY_MODE_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_inquiry_mode_rp;#define WRITE_INQUIRY_MODE_RP_SIZE 1#define OCF_READ_PAGE_SCAN_TYPE		0x0046#define OCF_WRITE_PAGE_SCAN_TYPE	0x0047#define OCF_READ_AFH_MODE		0x0048typedef struct {	uint8_t		status;	uint8_t		mode;} __attribute__ ((packed)) read_afh_mode_rp;#define READ_AFH_MODE_RP_SIZE 2#define OCF_WRITE_AFH_MODE		0x0049typedef struct {	uint8_t		mode;} __attribute__ ((packed)) write_afh_mode_cp;#define WRITE_AFH_MODE_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_afh_mode_rp;#define WRITE_AFH_MODE_RP_SIZE 1#define OCF_READ_EXT_INQUIRY_RESPONSE	0x0051typedef struct {	uint8_t		status;	uint8_t		fec;	uint8_t		data[240];} __attribute__ ((packed)) read_ext_inquiry_response_rp;#define READ_EXT_INQUIRY_RESPONSE_RP_SIZE 242#define OCF_WRITE_EXT_INQUIRY_RESPONSE	0x0052typedef struct {	uint8_t		fec;	uint8_t		data[240];} __attribute__ ((packed)) write_ext_inquiry_response_cp;#define WRITE_EXT_INQUIRY_RESPONSE_CP_SIZE 241typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_ext_inquiry_response_rp;#define WRITE_EXT_INQUIRY_RESPONSE_RP_SIZE 1#define OCF_REFRESH_ENCRYPTION_KEY	0x0053typedef struct {	uint16_t	handle;} __attribute__ ((packed)) refresh_encryption_key_cp;#define REFRESH_ENCRYPTION_KEY_CP_SIZE 2typedef struct {	uint8_t		status;} __attribute__ ((packed)) refresh_encryption_key_rp;#define REFRESH_ENCRYPTION_KEY_RP_SIZE 1#define OCF_READ_SIMPLE_PAIRING_MODE	0x0055typedef struct {	uint8_t		status;	uint8_t		mode;} __attribute__ ((packed)) read_simple_pairing_mode_rp;#define READ_SIMPLE_PAIRING_MODE_RP_SIZE 2#define OCF_WRITE_SIMPLE_PAIRING_MODE	0x0056typedef struct {	uint8_t		mode;} __attribute__ ((packed)) write_simple_pairing_mode_cp;#define WRITE_SIMPLE_PAIRING_MODE_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_simple_pairing_mode_rp;#define WRITE_SIMPLE_PAIRING_MODE_RP_SIZE 1#define OCF_READ_LOCAL_OOB_DATA		0x0057typedef struct {	uint8_t		status;	uint8_t		hash[16];	uint8_t		randomizer[16];} __attribute__ ((packed)) read_local_oob_data_rp;#define READ_LOCAL_OOB_DATA_RP_SIZE 33#define OCF_READ_INQUIRY_TRANSMIT_POWER_LEVEL	0x0058typedef struct {	uint8_t		status;	int8_t		level;} __attribute__ ((packed)) read_inquiry_transmit_power_level_rp;#define READ_INQUIRY_TRANSMIT_POWER_LEVEL_RP_SIZE 2#define OCF_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL	0x0059typedef struct {	int8_t		level;} __attribute__ ((packed)) write_inquiry_transmit_power_level_cp;#define WRITE_INQUIRY_TRANSMIT_POWER_LEVEL_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_inquiry_transmit_power_level_rp;#define WRITE_INQUIRY_TRANSMIT_POWER_LEVEL_RP_SIZE 1#define OCF_READ_DEFAULT_ERROR_DATA_REPORTING	0x005Atypedef struct {	uint8_t		status;	uint8_t		reporting;} __attribute__ ((packed)) read_default_error_data_reporting_rp;#define READ_DEFAULT_ERROR_DATA_REPORTING_RP_SIZE 2#define OCF_WRITE_DEFAULT_ERROR_DATA_REPORTING	0x005Btypedef struct {	uint8_t		reporting;} __attribute__ ((packed)) write_default_error_data_reporting_cp;#define WRITE_DEFAULT_ERROR_DATA_REPORTING_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_default_error_data_reporting_rp;#define WRITE_DEFAULT_ERROR_DATA_REPORTING_RP_SIZE 1#define OCF_ENHANCED_FLUSH		0x005Ftypedef struct {	uint16_t	handle;	uint8_t		type;} __attribute__ ((packed)) enhanced_flush_cp;#define ENHANCED_FLUSH_CP_SIZE 3#define OCF_SEND_KEYPRESS_NOTIFY	0x0060typedef struct {	bdaddr_t	bdaddr;	uint8_t		type;} __attribute__ ((packed)) send_keypress_notify_cp;#define SEND_KEYPRESS_NOTIFY_CP_SIZE 7typedef struct {	uint8_t		status;} __attribute__ ((packed)) send_keypress_notify_rp;#define SEND_KEYPRESS_NOTIFY_RP_SIZE 1/* Informational Parameters */#define OGF_INFO_PARAM		0x04#define OCF_READ_LOCAL_VERSION		0x0001typedef struct {	uint8_t		status;	uint8_t		hci_ver;	uint16_t	hci_rev;	uint8_t		lmp_ver;	uint16_t	manufacturer;	uint16_t	lmp_subver;} __attribute__ ((packed)) read_local_version_rp;#define READ_LOCAL_VERSION_RP_SIZE 9#define OCF_READ_LOCAL_COMMANDS		0x0002typedef struct {	uint8_t		status;	uint8_t		commands[64];} __attribute__ ((packed)) read_local_commands_rp;#define READ_LOCAL_COMMANDS_RP_SIZE 65#define OCF_READ_LOCAL_FEATURES		0x0003typedef struct {	uint8_t		status;	uint8_t		features[8];} __attribute__ ((packed)) read_local_features_rp;#define READ_LOCAL_FEATURES_RP_SIZE 9#define OCF_READ_LOCAL_EXT_FEATURES	0x0004typedef struct {	uint8_t		page_num;} __attribute__ ((packed)) read_local_ext_features_cp;#define READ_LOCAL_EXT_FEATURES_CP_SIZE 1typedef struct {	uint8_t		status;	uint8_t		page_num;	uint8_t		max_page_num;	uint8_t		features[8];} __attribute__ ((packed)) read_local_ext_features_rp;#define READ_LOCAL_EXT_FEATURES_RP_SIZE 11#define OCF_READ_BUFFER_SIZE		0x0005typedef struct {	uint8_t		status;	uint16_t	acl_mtu;	uint8_t		sco_mtu;	uint16_t	acl_max_pkt;	uint16_t	sco_max_pkt;} __attribute__ ((packed)) read_buffer_size_rp;#define READ_BUFFER_SIZE_RP_SIZE 8#define OCF_READ_COUNTRY_CODE		0x0007#define OCF_READ_BD_ADDR		0x0009typedef struct {	uint8_t		status;	bdaddr_t	bdaddr;} __attribute__ ((packed)) read_bd_addr_rp;#define READ_BD_ADDR_RP_SIZE 7/* Status params */#define OGF_STATUS_PARAM	0x05#define OCF_READ_FAILED_CONTACT_COUNTER		0x0001typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		counter;} __attribute__ ((packed)) read_failed_contact_counter_rp;#define READ_FAILED_CONTACT_COUNTER_RP_SIZE 4#define OCF_RESET_FAILED_CONTACT_COUNTER	0x0002typedef struct {	uint8_t		status;	uint16_t	handle;} __attribute__ ((packed)) reset_failed_contact_counter_rp;#define RESET_FAILED_CONTACT_COUNTER_RP_SIZE 4#define OCF_READ_LINK_QUALITY		0x0003typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		link_quality;} __attribute__ ((packed)) read_link_quality_rp;#define READ_LINK_QUALITY_RP_SIZE 4#define OCF_READ_RSSI			0x0005typedef struct {	uint8_t		status;	uint16_t	handle;	int8_t		rssi;} __attribute__ ((packed)) read_rssi_rp;#define READ_RSSI_RP_SIZE 4#define OCF_READ_AFH_MAP		0x0006typedef struct {	uint8_t		status;	uint16_t	handle;	uint8_t		mode;	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#define OCF_READ_LOOPBACK_MODE			0x0001#define OCF_WRITE_LOOPBACK_MODE			0x0002#define OCF_ENABLE_DEVICE_UNDER_TEST_MODE	0x0003#define OCF_WRITE_SIMPLE_PAIRING_DEBUG_MODE	0x0004typedef struct {	uint8_t		mode;} __attribute__ ((packed)) write_simple_pairing_debug_mode_cp;#define WRITE_SIMPLE_PAIRING_DEBUG_MODE_CP_SIZE 1typedef struct {	uint8_t		status;} __attribute__ ((packed)) write_simple_pairing_debug_mode_rp;#define WRITE_SIMPLE_PAIRING_DEBUG_MODE_RP_SIZE 1/* 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		0x10

⌨️ 快捷键说明

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