#ifndef __HCI_H
#define __HCI_H
#define HCI_MAX_ACL_SIZE …
#define HCI_MAX_SCO_SIZE …
#define HCI_MAX_ISO_SIZE …
#define HCI_MAX_EVENT_SIZE …
#define HCI_MAX_FRAME_SIZE …
#define HCI_LINK_KEY_SIZE …
#define HCI_MAX_CPB_DATA_SIZE …
#define HCI_DEV_REG …
#define HCI_DEV_UNREG …
#define HCI_DEV_UP …
#define HCI_DEV_DOWN …
#define HCI_DEV_SUSPEND …
#define HCI_DEV_RESUME …
#define HCI_DEV_OPEN …
#define HCI_DEV_CLOSE …
#define HCI_DEV_SETUP …
#define HCI_NOTIFY_CONN_ADD …
#define HCI_NOTIFY_CONN_DEL …
#define HCI_NOTIFY_VOICE_SETTING …
#define HCI_NOTIFY_ENABLE_SCO_CVSD …
#define HCI_NOTIFY_ENABLE_SCO_TRANSP …
#define HCI_NOTIFY_DISABLE_SCO …
#define HCI_VIRTUAL …
#define HCI_USB …
#define HCI_PCCARD …
#define HCI_UART …
#define HCI_RS232 …
#define HCI_PCI …
#define HCI_SDIO …
#define HCI_SPI …
#define HCI_I2C …
#define HCI_SMD …
#define HCI_VIRTIO …
enum { … };
enum { … };
enum { … };
enum { … };
#define HCI_DISCONN_TIMEOUT …
#define HCI_PAIRING_TIMEOUT …
#define HCI_INIT_TIMEOUT …
#define HCI_CMD_TIMEOUT …
#define HCI_NCMD_TIMEOUT …
#define HCI_ACL_TX_TIMEOUT …
#define HCI_AUTO_OFF_TIMEOUT …
#define HCI_ACL_CONN_TIMEOUT …
#define HCI_LE_CONN_TIMEOUT …
#define HCI_COMMAND_PKT …
#define HCI_ACLDATA_PKT …
#define HCI_SCODATA_PKT …
#define HCI_EVENT_PKT …
#define HCI_ISODATA_PKT …
#define HCI_DIAG_PKT …
#define HCI_VENDOR_PKT …
#define HCI_DM1 …
#define HCI_DM3 …
#define HCI_DM5 …
#define HCI_DH1 …
#define HCI_DH3 …
#define HCI_DH5 …
#define HCI_2DH1 …
#define HCI_3DH1 …
#define HCI_2DH3 …
#define HCI_3DH3 …
#define HCI_2DH5 …
#define HCI_3DH5 …
#define HCI_HV1 …
#define HCI_HV2 …
#define HCI_HV3 …
#define SCO_PTYPE_MASK …
#define ACL_PTYPE_MASK …
#define ESCO_HV1 …
#define ESCO_HV2 …
#define ESCO_HV3 …
#define ESCO_EV3 …
#define ESCO_EV4 …
#define ESCO_EV5 …
#define ESCO_2EV3 …
#define ESCO_3EV3 …
#define ESCO_2EV5 …
#define ESCO_3EV5 …
#define SCO_ESCO_MASK …
#define EDR_ESCO_MASK …
#define ACL_START_NO_FLUSH …
#define ACL_CONT …
#define ACL_START …
#define ACL_COMPLETE …
#define ACL_ACTIVE_BCAST …
#define ACL_PICO_BCAST …
#define ISO_START …
#define ISO_CONT …
#define ISO_SINGLE …
#define ISO_END …
#define ISO_TS …
#define SCO_LINK …
#define ACL_LINK …
#define ESCO_LINK …
#define LE_LINK …
#define ISO_LINK …
#define INVALID_LINK …
#define LMP_3SLOT …
#define LMP_5SLOT …
#define LMP_ENCRYPT …
#define LMP_SOFFSET …
#define LMP_TACCURACY …
#define LMP_RSWITCH …
#define LMP_HOLD …
#define LMP_SNIFF …
#define LMP_PARK …
#define LMP_RSSI …
#define LMP_QUALITY …
#define LMP_SCO …
#define LMP_HV2 …
#define LMP_HV3 …
#define LMP_ULAW …
#define LMP_ALAW …
#define LMP_CVSD …
#define LMP_PSCHEME …
#define LMP_PCONTROL …
#define LMP_TRANSPARENT …
#define LMP_EDR_2M …
#define LMP_EDR_3M …
#define LMP_RSSI_INQ …
#define LMP_ESCO …
#define LMP_EV4 …
#define LMP_EV5 …
#define LMP_NO_BREDR …
#define LMP_LE …
#define LMP_EDR_3SLOT …
#define LMP_EDR_5SLOT …
#define LMP_SNIFF_SUBR …
#define LMP_PAUSE_ENC …
#define LMP_EDR_ESCO_2M …
#define LMP_EDR_ESCO_3M …
#define LMP_EDR_3S_ESCO …
#define LMP_EXT_INQ …
#define LMP_SIMUL_LE_BR …
#define LMP_SIMPLE_PAIR …
#define LMP_ERR_DATA_REPORTING …
#define LMP_NO_FLUSH …
#define LMP_LSTO …
#define LMP_INQ_TX_PWR …
#define LMP_EXTFEATURES …
#define LMP_CPB_CENTRAL …
#define LMP_CPB_PERIPHERAL …
#define LMP_SYNC_TRAIN …
#define LMP_SYNC_SCAN …
#define LMP_SC …
#define LMP_PING …
#define LMP_HOST_SSP …
#define LMP_HOST_LE …
#define LMP_HOST_LE_BREDR …
#define LMP_HOST_SC …
#define HCI_LE_ENCRYPTION …
#define HCI_LE_CONN_PARAM_REQ_PROC …
#define HCI_LE_PERIPHERAL_FEATURES …
#define HCI_LE_PING …
#define HCI_LE_DATA_LEN_EXT …
#define HCI_LE_LL_PRIVACY …
#define HCI_LE_EXT_SCAN_POLICY …
#define HCI_LE_PHY_2M …
#define HCI_LE_PHY_CODED …
#define HCI_LE_EXT_ADV …
#define HCI_LE_PERIODIC_ADV …
#define HCI_LE_CHAN_SEL_ALG2 …
#define HCI_LE_CIS_CENTRAL …
#define HCI_LE_CIS_PERIPHERAL …
#define HCI_LE_ISO_BROADCASTER …
#define HCI_LE_ISO_SYNC_RECEIVER …
#define HCI_CM_ACTIVE …
#define HCI_CM_HOLD …
#define HCI_CM_SNIFF …
#define HCI_CM_PARK …
#define HCI_LP_RSWITCH …
#define HCI_LP_HOLD …
#define HCI_LP_SNIFF …
#define HCI_LP_PARK …
#define HCI_LM_ACCEPT …
#define HCI_LM_MASTER …
#define HCI_LM_AUTH …
#define HCI_LM_ENCRYPT …
#define HCI_LM_TRUSTED …
#define HCI_LM_RELIABLE …
#define HCI_LM_SECURE …
#define HCI_LM_FIPS …
#define HCI_AT_NO_BONDING …
#define HCI_AT_NO_BONDING_MITM …
#define HCI_AT_DEDICATED_BONDING …
#define HCI_AT_DEDICATED_BONDING_MITM …
#define HCI_AT_GENERAL_BONDING …
#define HCI_AT_GENERAL_BONDING_MITM …
#define HCI_IO_DISPLAY_ONLY …
#define HCI_IO_DISPLAY_YESNO …
#define HCI_IO_KEYBOARD_ONLY …
#define HCI_IO_NO_INPUT_OUTPUT …
#define HCI_LK_COMBINATION …
#define HCI_LK_LOCAL_UNIT …
#define HCI_LK_REMOTE_UNIT …
#define HCI_LK_DEBUG_COMBINATION …
#define HCI_LK_UNAUTH_COMBINATION_P192 …
#define HCI_LK_AUTH_COMBINATION_P192 …
#define HCI_LK_CHANGED_COMBINATION …
#define HCI_LK_UNAUTH_COMBINATION_P256 …
#define HCI_LK_AUTH_COMBINATION_P256 …
#define HCI_ERROR_UNKNOWN_CONN_ID …
#define HCI_ERROR_AUTH_FAILURE …
#define HCI_ERROR_PIN_OR_KEY_MISSING …
#define HCI_ERROR_MEMORY_EXCEEDED …
#define HCI_ERROR_CONNECTION_TIMEOUT …
#define HCI_ERROR_COMMAND_DISALLOWED …
#define HCI_ERROR_REJ_LIMITED_RESOURCES …
#define HCI_ERROR_REJ_BAD_ADDR …
#define HCI_ERROR_INVALID_PARAMETERS …
#define HCI_ERROR_REMOTE_USER_TERM …
#define HCI_ERROR_REMOTE_LOW_RESOURCES …
#define HCI_ERROR_REMOTE_POWER_OFF …
#define HCI_ERROR_LOCAL_HOST_TERM …
#define HCI_ERROR_PAIRING_NOT_ALLOWED …
#define HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE …
#define HCI_ERROR_INVALID_LL_PARAMS …
#define HCI_ERROR_UNSPECIFIED …
#define HCI_ERROR_ADVERTISING_TIMEOUT …
#define HCI_ERROR_CANCELLED_BY_HOST …
#define HCI_FLOW_CTL_MODE_PACKET_BASED …
#define HCI_FLOW_CTL_MODE_BLOCK_BASED …
#define HCI_TX_POWER_INVALID …
#define HCI_RSSI_INVALID …
#define HCI_SYNC_HANDLE_INVALID …
#define HCI_ROLE_MASTER …
#define HCI_ROLE_SLAVE …
#define EIR_FLAGS …
#define EIR_UUID16_SOME …
#define EIR_UUID16_ALL …
#define EIR_UUID32_SOME …
#define EIR_UUID32_ALL …
#define EIR_UUID128_SOME …
#define EIR_UUID128_ALL …
#define EIR_NAME_SHORT …
#define EIR_NAME_COMPLETE …
#define EIR_TX_POWER …
#define EIR_CLASS_OF_DEV …
#define EIR_SSP_HASH_C192 …
#define EIR_SSP_RAND_R192 …
#define EIR_DEVICE_ID …
#define EIR_APPEARANCE …
#define EIR_SERVICE_DATA …
#define EIR_LE_BDADDR …
#define EIR_LE_ROLE …
#define EIR_SSP_HASH_C256 …
#define EIR_SSP_RAND_R256 …
#define EIR_LE_SC_CONFIRM …
#define EIR_LE_SC_RANDOM …
#define LE_AD_LIMITED …
#define LE_AD_GENERAL …
#define LE_AD_NO_BREDR …
#define LE_AD_SIM_LE_BREDR_CTRL …
#define LE_AD_SIM_LE_BREDR_HOST …
#define HCI_OP_NOP …
#define HCI_OP_INQUIRY …
struct hci_cp_inquiry { … } __packed;
#define HCI_OP_INQUIRY_CANCEL …
#define HCI_OP_PERIODIC_INQ …
#define HCI_OP_EXIT_PERIODIC_INQ …
#define HCI_OP_CREATE_CONN …
struct hci_cp_create_conn { … } __packed;
#define HCI_OP_DISCONNECT …
struct hci_cp_disconnect { … } __packed;
#define HCI_OP_ADD_SCO …
struct hci_cp_add_sco { … } __packed;
#define HCI_OP_CREATE_CONN_CANCEL …
struct hci_cp_create_conn_cancel { … } __packed;
#define HCI_OP_ACCEPT_CONN_REQ …
struct hci_cp_accept_conn_req { … } __packed;
#define HCI_OP_REJECT_CONN_REQ …
struct hci_cp_reject_conn_req { … } __packed;
#define HCI_OP_LINK_KEY_REPLY …
struct hci_cp_link_key_reply { … } __packed;
#define HCI_OP_LINK_KEY_NEG_REPLY …
struct hci_cp_link_key_neg_reply { … } __packed;
#define HCI_OP_PIN_CODE_REPLY …
struct hci_cp_pin_code_reply { … } __packed;
struct hci_rp_pin_code_reply { … } __packed;
#define HCI_OP_PIN_CODE_NEG_REPLY …
struct hci_cp_pin_code_neg_reply { … } __packed;
struct hci_rp_pin_code_neg_reply { … } __packed;
#define HCI_OP_CHANGE_CONN_PTYPE …
struct hci_cp_change_conn_ptype { … } __packed;
#define HCI_OP_AUTH_REQUESTED …
struct hci_cp_auth_requested { … } __packed;
#define HCI_OP_SET_CONN_ENCRYPT …
struct hci_cp_set_conn_encrypt { … } __packed;
#define HCI_OP_CHANGE_CONN_LINK_KEY …
struct hci_cp_change_conn_link_key { … } __packed;
#define HCI_OP_REMOTE_NAME_REQ …
struct hci_cp_remote_name_req { … } __packed;
#define HCI_OP_REMOTE_NAME_REQ_CANCEL …
struct hci_cp_remote_name_req_cancel { … } __packed;
#define HCI_OP_READ_REMOTE_FEATURES …
struct hci_cp_read_remote_features { … } __packed;
#define HCI_OP_READ_REMOTE_EXT_FEATURES …
struct hci_cp_read_remote_ext_features { … } __packed;
#define HCI_OP_READ_REMOTE_VERSION …
struct hci_cp_read_remote_version { … } __packed;
#define HCI_OP_READ_CLOCK_OFFSET …
struct hci_cp_read_clock_offset { … } __packed;
#define HCI_OP_SETUP_SYNC_CONN …
struct hci_cp_setup_sync_conn { … } __packed;
#define HCI_OP_ACCEPT_SYNC_CONN_REQ …
struct hci_cp_accept_sync_conn_req { … } __packed;
#define HCI_OP_REJECT_SYNC_CONN_REQ …
struct hci_cp_reject_sync_conn_req { … } __packed;
#define HCI_OP_IO_CAPABILITY_REPLY …
struct hci_cp_io_capability_reply { … } __packed;
#define HCI_OP_USER_CONFIRM_REPLY …
struct hci_cp_user_confirm_reply { … } __packed;
struct hci_rp_user_confirm_reply { … } __packed;
#define HCI_OP_USER_CONFIRM_NEG_REPLY …
#define HCI_OP_USER_PASSKEY_REPLY …
struct hci_cp_user_passkey_reply { … } __packed;
#define HCI_OP_USER_PASSKEY_NEG_REPLY …
#define HCI_OP_REMOTE_OOB_DATA_REPLY …
struct hci_cp_remote_oob_data_reply { … } __packed;
#define HCI_OP_REMOTE_OOB_DATA_NEG_REPLY …
struct hci_cp_remote_oob_data_neg_reply { … } __packed;
#define HCI_OP_IO_CAPABILITY_NEG_REPLY …
struct hci_cp_io_capability_neg_reply { … } __packed;
#define HCI_OP_ENHANCED_SETUP_SYNC_CONN …
struct hci_coding_format { … } __packed;
struct hci_cp_enhanced_setup_sync_conn { … } __packed;
struct hci_rp_logical_link_cancel { … } __packed;
#define HCI_OP_SET_CPB …
struct hci_cp_set_cpb { … } __packed;
struct hci_rp_set_cpb { … } __packed;
#define HCI_OP_START_SYNC_TRAIN …
#define HCI_OP_REMOTE_OOB_EXT_DATA_REPLY …
struct hci_cp_remote_oob_ext_data_reply { … } __packed;
#define HCI_OP_SNIFF_MODE …
struct hci_cp_sniff_mode { … } __packed;
#define HCI_OP_EXIT_SNIFF_MODE …
struct hci_cp_exit_sniff_mode { … } __packed;
#define HCI_OP_ROLE_DISCOVERY …
struct hci_cp_role_discovery { … } __packed;
struct hci_rp_role_discovery { … } __packed;
#define HCI_OP_SWITCH_ROLE …
struct hci_cp_switch_role { … } __packed;
#define HCI_OP_READ_LINK_POLICY …
struct hci_cp_read_link_policy { … } __packed;
struct hci_rp_read_link_policy { … } __packed;
#define HCI_OP_WRITE_LINK_POLICY …
struct hci_cp_write_link_policy { … } __packed;
struct hci_rp_write_link_policy { … } __packed;
#define HCI_OP_READ_DEF_LINK_POLICY …
struct hci_rp_read_def_link_policy { … } __packed;
#define HCI_OP_WRITE_DEF_LINK_POLICY …
struct hci_cp_write_def_link_policy { … } __packed;
#define HCI_OP_SNIFF_SUBRATE …
struct hci_cp_sniff_subrate { … } __packed;
#define HCI_OP_SET_EVENT_MASK …
#define HCI_OP_RESET …
#define HCI_OP_SET_EVENT_FLT …
#define HCI_SET_EVENT_FLT_SIZE …
struct hci_cp_set_event_filter { … } __packed;
#define HCI_FLT_CLEAR_ALL …
#define HCI_FLT_INQ_RESULT …
#define HCI_FLT_CONN_SETUP …
#define HCI_CONN_SETUP_ALLOW_ALL …
#define HCI_CONN_SETUP_ALLOW_CLASS …
#define HCI_CONN_SETUP_ALLOW_BDADDR …
#define HCI_CONN_SETUP_AUTO_OFF …
#define HCI_CONN_SETUP_AUTO_ON …
#define HCI_CONN_SETUP_AUTO_ON_WITH_RS …
#define HCI_OP_READ_STORED_LINK_KEY …
struct hci_cp_read_stored_link_key { … } __packed;
struct hci_rp_read_stored_link_key { … } __packed;
#define HCI_OP_DELETE_STORED_LINK_KEY …
struct hci_cp_delete_stored_link_key { … } __packed;
struct hci_rp_delete_stored_link_key { … } __packed;
#define HCI_MAX_NAME_LENGTH …
#define HCI_OP_WRITE_LOCAL_NAME …
struct hci_cp_write_local_name { … } __packed;
#define HCI_OP_READ_LOCAL_NAME …
struct hci_rp_read_local_name { … } __packed;
#define HCI_OP_WRITE_CA_TIMEOUT …
#define HCI_OP_WRITE_PG_TIMEOUT …
#define HCI_OP_WRITE_SCAN_ENABLE …
#define SCAN_DISABLED …
#define SCAN_INQUIRY …
#define SCAN_PAGE …
#define HCI_OP_READ_AUTH_ENABLE …
#define HCI_OP_WRITE_AUTH_ENABLE …
#define AUTH_DISABLED …
#define AUTH_ENABLED …
#define HCI_OP_READ_ENCRYPT_MODE …
#define HCI_OP_WRITE_ENCRYPT_MODE …
#define ENCRYPT_DISABLED …
#define ENCRYPT_P2P …
#define ENCRYPT_BOTH …
#define HCI_OP_READ_CLASS_OF_DEV …
struct hci_rp_read_class_of_dev { … } __packed;
#define HCI_OP_WRITE_CLASS_OF_DEV …
struct hci_cp_write_class_of_dev { … } __packed;
#define HCI_OP_READ_VOICE_SETTING …
struct hci_rp_read_voice_setting { … } __packed;
#define HCI_OP_WRITE_VOICE_SETTING …
struct hci_cp_write_voice_setting { … } __packed;
#define HCI_OP_HOST_BUFFER_SIZE …
struct hci_cp_host_buffer_size { … } __packed;
#define HCI_OP_READ_NUM_SUPPORTED_IAC …
struct hci_rp_read_num_supported_iac { … } __packed;
#define HCI_OP_READ_CURRENT_IAC_LAP …
#define HCI_OP_WRITE_CURRENT_IAC_LAP …
struct hci_cp_write_current_iac_lap { … } __packed;
#define HCI_OP_WRITE_INQUIRY_MODE …
#define HCI_MAX_EIR_LENGTH …
#define HCI_OP_WRITE_EIR …
struct hci_cp_write_eir { … } __packed;
#define HCI_OP_READ_SSP_MODE …
struct hci_rp_read_ssp_mode { … } __packed;
#define HCI_OP_WRITE_SSP_MODE …
struct hci_cp_write_ssp_mode { … } __packed;
#define HCI_OP_READ_LOCAL_OOB_DATA …
struct hci_rp_read_local_oob_data { … } __packed;
#define HCI_OP_READ_INQ_RSP_TX_POWER …
struct hci_rp_read_inq_rsp_tx_power { … } __packed;
#define HCI_OP_READ_DEF_ERR_DATA_REPORTING …
#define ERR_DATA_REPORTING_DISABLED …
#define ERR_DATA_REPORTING_ENABLED …
struct hci_rp_read_def_err_data_reporting { … } __packed;
#define HCI_OP_WRITE_DEF_ERR_DATA_REPORTING …
struct hci_cp_write_def_err_data_reporting { … } __packed;
#define HCI_OP_SET_EVENT_MASK_PAGE_2 …
#define HCI_OP_READ_LOCATION_DATA …
#define HCI_OP_READ_FLOW_CONTROL_MODE …
struct hci_rp_read_flow_control_mode { … } __packed;
#define HCI_OP_WRITE_LE_HOST_SUPPORTED …
struct hci_cp_write_le_host_supported { … } __packed;
#define HCI_OP_SET_RESERVED_LT_ADDR …
struct hci_cp_set_reserved_lt_addr { … } __packed;
struct hci_rp_set_reserved_lt_addr { … } __packed;
#define HCI_OP_DELETE_RESERVED_LT_ADDR …
struct hci_cp_delete_reserved_lt_addr { … } __packed;
struct hci_rp_delete_reserved_lt_addr { … } __packed;
#define HCI_OP_SET_CPB_DATA …
struct hci_cp_set_cpb_data { … } __packed;
struct hci_rp_set_cpb_data { … } __packed;
#define HCI_OP_READ_SYNC_TRAIN_PARAMS …
#define HCI_OP_WRITE_SYNC_TRAIN_PARAMS …
struct hci_cp_write_sync_train_params { … } __packed;
struct hci_rp_write_sync_train_params { … } __packed;
#define HCI_OP_READ_SC_SUPPORT …
struct hci_rp_read_sc_support { … } __packed;
#define HCI_OP_WRITE_SC_SUPPORT …
struct hci_cp_write_sc_support { … } __packed;
#define HCI_OP_READ_AUTH_PAYLOAD_TO …
struct hci_cp_read_auth_payload_to { … } __packed;
struct hci_rp_read_auth_payload_to { … } __packed;
#define HCI_OP_WRITE_AUTH_PAYLOAD_TO …
struct hci_cp_write_auth_payload_to { … } __packed;
struct hci_rp_write_auth_payload_to { … } __packed;
#define HCI_OP_READ_LOCAL_OOB_EXT_DATA …
struct hci_rp_read_local_oob_ext_data { … } __packed;
#define HCI_CONFIGURE_DATA_PATH …
struct hci_op_configure_data_path { … } __packed;
#define HCI_OP_READ_LOCAL_VERSION …
struct hci_rp_read_local_version { … } __packed;
#define HCI_OP_READ_LOCAL_COMMANDS …
struct hci_rp_read_local_commands { … } __packed;
#define HCI_OP_READ_LOCAL_FEATURES …
struct hci_rp_read_local_features { … } __packed;
#define HCI_OP_READ_LOCAL_EXT_FEATURES …
struct hci_cp_read_local_ext_features { … } __packed;
struct hci_rp_read_local_ext_features { … } __packed;
#define HCI_OP_READ_BUFFER_SIZE …
struct hci_rp_read_buffer_size { … } __packed;
#define HCI_OP_READ_BD_ADDR …
struct hci_rp_read_bd_addr { … } __packed;
#define HCI_OP_READ_DATA_BLOCK_SIZE …
struct hci_rp_read_data_block_size { … } __packed;
#define HCI_OP_READ_LOCAL_CODECS …
struct hci_std_codecs { … } __packed;
struct hci_vnd_codec { … } __packed;
struct hci_vnd_codecs { … } __packed;
struct hci_rp_read_local_supported_codecs { … } __packed;
#define HCI_OP_READ_LOCAL_PAIRING_OPTS …
struct hci_rp_read_local_pairing_opts { … } __packed;
#define HCI_OP_READ_LOCAL_CODECS_V2 …
struct hci_std_codec_v2 { … } __packed;
struct hci_std_codecs_v2 { … } __packed;
struct hci_vnd_codec_v2 { … } __packed;
struct hci_vnd_codecs_v2 { … } __packed;
struct hci_rp_read_local_supported_codecs_v2 { … } __packed;
#define HCI_OP_READ_LOCAL_CODEC_CAPS …
struct hci_op_read_local_codec_caps { … } __packed;
struct hci_codec_caps { … } __packed;
struct hci_rp_read_local_codec_caps { … } __packed;
#define HCI_OP_READ_PAGE_SCAN_ACTIVITY …
struct hci_rp_read_page_scan_activity { … } __packed;
#define HCI_OP_WRITE_PAGE_SCAN_ACTIVITY …
struct hci_cp_write_page_scan_activity { … } __packed;
#define HCI_OP_READ_TX_POWER …
struct hci_cp_read_tx_power { … } __packed;
struct hci_rp_read_tx_power { … } __packed;
#define HCI_OP_READ_PAGE_SCAN_TYPE …
struct hci_rp_read_page_scan_type { … } __packed;
#define HCI_OP_WRITE_PAGE_SCAN_TYPE …
#define PAGE_SCAN_TYPE_STANDARD …
#define PAGE_SCAN_TYPE_INTERLACED …
#define HCI_OP_READ_RSSI …
struct hci_cp_read_rssi { … } __packed;
struct hci_rp_read_rssi { … } __packed;
#define HCI_OP_READ_CLOCK …
struct hci_cp_read_clock { … } __packed;
struct hci_rp_read_clock { … } __packed;
#define HCI_OP_READ_ENC_KEY_SIZE …
struct hci_cp_read_enc_key_size { … } __packed;
struct hci_rp_read_enc_key_size { … } __packed;
#define HCI_OP_GET_MWS_TRANSPORT_CONFIG …
#define HCI_OP_ENABLE_DUT_MODE …
#define HCI_OP_WRITE_SSP_DEBUG_MODE …
#define HCI_OP_LE_SET_EVENT_MASK …
struct hci_cp_le_set_event_mask { … } __packed;
#define HCI_MIN_LE_MTU …
#define HCI_OP_LE_READ_BUFFER_SIZE …
struct hci_rp_le_read_buffer_size { … } __packed;
#define HCI_OP_LE_READ_LOCAL_FEATURES …
struct hci_rp_le_read_local_features { … } __packed;
#define HCI_OP_LE_SET_RANDOM_ADDR …
#define HCI_OP_LE_SET_ADV_PARAM …
struct hci_cp_le_set_adv_param { … } __packed;
#define HCI_OP_LE_READ_ADV_TX_POWER …
struct hci_rp_le_read_adv_tx_power { … } __packed;
#define HCI_MAX_AD_LENGTH …
#define HCI_OP_LE_SET_ADV_DATA …
struct hci_cp_le_set_adv_data { … } __packed;
#define HCI_OP_LE_SET_SCAN_RSP_DATA …
struct hci_cp_le_set_scan_rsp_data { … } __packed;
#define HCI_OP_LE_SET_ADV_ENABLE …
#define LE_SCAN_PASSIVE …
#define LE_SCAN_ACTIVE …
#define HCI_OP_LE_SET_SCAN_PARAM …
struct hci_cp_le_set_scan_param { … } __packed;
#define LE_SCAN_DISABLE …
#define LE_SCAN_ENABLE …
#define LE_SCAN_FILTER_DUP_DISABLE …
#define LE_SCAN_FILTER_DUP_ENABLE …
#define HCI_OP_LE_SET_SCAN_ENABLE …
struct hci_cp_le_set_scan_enable { … } __packed;
#define HCI_LE_USE_PEER_ADDR …
#define HCI_LE_USE_ACCEPT_LIST …
#define HCI_OP_LE_CREATE_CONN …
struct hci_cp_le_create_conn { … } __packed;
#define HCI_OP_LE_CREATE_CONN_CANCEL …
#define HCI_OP_LE_READ_ACCEPT_LIST_SIZE …
struct hci_rp_le_read_accept_list_size { … } __packed;
#define HCI_OP_LE_CLEAR_ACCEPT_LIST …
#define HCI_OP_LE_ADD_TO_ACCEPT_LIST …
struct hci_cp_le_add_to_accept_list { … } __packed;
#define HCI_OP_LE_DEL_FROM_ACCEPT_LIST …
struct hci_cp_le_del_from_accept_list { … } __packed;
#define HCI_OP_LE_CONN_UPDATE …
struct hci_cp_le_conn_update { … } __packed;
#define HCI_OP_LE_READ_REMOTE_FEATURES …
struct hci_cp_le_read_remote_features { … } __packed;
#define HCI_OP_LE_START_ENC …
struct hci_cp_le_start_enc { … } __packed;
#define HCI_OP_LE_LTK_REPLY …
struct hci_cp_le_ltk_reply { … } __packed;
struct hci_rp_le_ltk_reply { … } __packed;
#define HCI_OP_LE_LTK_NEG_REPLY …
struct hci_cp_le_ltk_neg_reply { … } __packed;
struct hci_rp_le_ltk_neg_reply { … } __packed;
#define HCI_OP_LE_READ_SUPPORTED_STATES …
struct hci_rp_le_read_supported_states { … } __packed;
#define HCI_OP_LE_CONN_PARAM_REQ_REPLY …
struct hci_cp_le_conn_param_req_reply { … } __packed;
#define HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY …
struct hci_cp_le_conn_param_req_neg_reply { … } __packed;
#define HCI_OP_LE_SET_DATA_LEN …
struct hci_cp_le_set_data_len { … } __packed;
struct hci_rp_le_set_data_len { … } __packed;
#define HCI_OP_LE_READ_DEF_DATA_LEN …
struct hci_rp_le_read_def_data_len { … } __packed;
#define HCI_OP_LE_WRITE_DEF_DATA_LEN …
struct hci_cp_le_write_def_data_len { … } __packed;
#define HCI_OP_LE_ADD_TO_RESOLV_LIST …
struct hci_cp_le_add_to_resolv_list { … } __packed;
#define HCI_OP_LE_DEL_FROM_RESOLV_LIST …
struct hci_cp_le_del_from_resolv_list { … } __packed;
#define HCI_OP_LE_CLEAR_RESOLV_LIST …
#define HCI_OP_LE_READ_RESOLV_LIST_SIZE …
struct hci_rp_le_read_resolv_list_size { … } __packed;
#define HCI_OP_LE_SET_ADDR_RESOLV_ENABLE …
#define HCI_OP_LE_SET_RPA_TIMEOUT …
#define HCI_OP_LE_READ_MAX_DATA_LEN …
struct hci_rp_le_read_max_data_len { … } __packed;
#define HCI_OP_LE_SET_DEFAULT_PHY …
struct hci_cp_le_set_default_phy { … } __packed;
#define HCI_LE_SET_PHY_1M …
#define HCI_LE_SET_PHY_2M …
#define HCI_LE_SET_PHY_CODED …
#define HCI_OP_LE_SET_EXT_SCAN_PARAMS …
struct hci_cp_le_set_ext_scan_params { … } __packed;
#define LE_SCAN_PHY_1M …
#define LE_SCAN_PHY_2M …
#define LE_SCAN_PHY_CODED …
struct hci_cp_le_scan_phy_params { … } __packed;
#define HCI_OP_LE_SET_EXT_SCAN_ENABLE …
struct hci_cp_le_set_ext_scan_enable { … } __packed;
#define HCI_OP_LE_EXT_CREATE_CONN …
struct hci_cp_le_ext_create_conn { … } __packed;
struct hci_cp_le_ext_conn_param { … } __packed;
#define HCI_OP_LE_PA_CREATE_SYNC …
struct hci_cp_le_pa_create_sync { … } __packed;
#define HCI_OP_LE_PA_TERM_SYNC …
struct hci_cp_le_pa_term_sync { … } __packed;
#define HCI_OP_LE_READ_NUM_SUPPORTED_ADV_SETS …
struct hci_rp_le_read_num_supported_adv_sets { … } __packed;
#define HCI_OP_LE_SET_EXT_ADV_PARAMS …
struct hci_cp_le_set_ext_adv_params { … } __packed;
#define HCI_ADV_PHY_1M …
#define HCI_ADV_PHY_2M …
#define HCI_ADV_PHY_CODED …
struct hci_rp_le_set_ext_adv_params { … } __packed;
struct hci_cp_ext_adv_set { … } __packed;
#define HCI_MAX_EXT_AD_LENGTH …
#define HCI_OP_LE_SET_EXT_ADV_DATA …
struct hci_cp_le_set_ext_adv_data { … } __packed;
#define HCI_OP_LE_SET_EXT_SCAN_RSP_DATA …
struct hci_cp_le_set_ext_scan_rsp_data { … } __packed;
#define HCI_OP_LE_SET_EXT_ADV_ENABLE …
struct hci_cp_le_set_ext_adv_enable { … } __packed;
#define HCI_OP_LE_SET_PER_ADV_PARAMS …
struct hci_cp_le_set_per_adv_params { … } __packed;
#define HCI_MAX_PER_AD_LENGTH …
#define HCI_MAX_PER_AD_TOT_LEN …
#define HCI_OP_LE_SET_PER_ADV_DATA …
struct hci_cp_le_set_per_adv_data { … } __packed;
#define HCI_OP_LE_SET_PER_ADV_ENABLE …
struct hci_cp_le_set_per_adv_enable { … } __packed;
#define LE_SET_ADV_DATA_OP_COMPLETE …
#define LE_SET_ADV_DATA_NO_FRAG …
#define HCI_OP_LE_REMOVE_ADV_SET …
#define HCI_OP_LE_CLEAR_ADV_SETS …
#define HCI_OP_LE_SET_ADV_SET_RAND_ADDR …
struct hci_cp_le_set_adv_set_rand_addr { … } __packed;
#define HCI_OP_LE_READ_TRANSMIT_POWER …
struct hci_rp_le_read_transmit_power { … } __packed;
#define HCI_NETWORK_PRIVACY …
#define HCI_DEVICE_PRIVACY …
#define HCI_OP_LE_SET_PRIVACY_MODE …
struct hci_cp_le_set_privacy_mode { … } __packed;
#define HCI_OP_LE_READ_BUFFER_SIZE_V2 …
struct hci_rp_le_read_buffer_size_v2 { … } __packed;
#define HCI_OP_LE_READ_ISO_TX_SYNC …
struct hci_cp_le_read_iso_tx_sync { … } __packed;
struct hci_rp_le_read_iso_tx_sync { … } __packed;
#define HCI_OP_LE_SET_CIG_PARAMS …
struct hci_cis_params { … } __packed;
struct hci_cp_le_set_cig_params { … } __packed;
struct hci_rp_le_set_cig_params { … } __packed;
#define HCI_OP_LE_CREATE_CIS …
struct hci_cis { … } __packed;
struct hci_cp_le_create_cis { … } __packed;
#define HCI_OP_LE_REMOVE_CIG …
struct hci_cp_le_remove_cig { … } __packed;
#define HCI_OP_LE_ACCEPT_CIS …
struct hci_cp_le_accept_cis { … } __packed;
#define HCI_OP_LE_REJECT_CIS …
struct hci_cp_le_reject_cis { … } __packed;
#define HCI_OP_LE_CREATE_BIG …
struct hci_bis { … } __packed;
struct hci_cp_le_create_big { … } __packed;
#define HCI_OP_LE_TERM_BIG …
struct hci_cp_le_term_big { … } __packed;
#define HCI_OP_LE_BIG_CREATE_SYNC …
struct hci_cp_le_big_create_sync { … } __packed;
#define HCI_OP_LE_BIG_TERM_SYNC …
struct hci_cp_le_big_term_sync { … } __packed;
#define HCI_OP_LE_SETUP_ISO_PATH …
struct hci_cp_le_setup_iso_path { … } __packed;
struct hci_rp_le_setup_iso_path { … } __packed;
#define HCI_OP_LE_SET_HOST_FEATURE …
struct hci_cp_le_set_host_feature { … } __packed;
struct hci_ev_status { … } __packed;
#define HCI_EV_INQUIRY_COMPLETE …
#define HCI_EV_INQUIRY_RESULT …
struct inquiry_info { … } __packed;
struct hci_ev_inquiry_result { … };
#define HCI_EV_CONN_COMPLETE …
struct hci_ev_conn_complete { … } __packed;
#define HCI_EV_CONN_REQUEST …
struct hci_ev_conn_request { … } __packed;
#define HCI_EV_DISCONN_COMPLETE …
struct hci_ev_disconn_complete { … } __packed;
#define HCI_EV_AUTH_COMPLETE …
struct hci_ev_auth_complete { … } __packed;
#define HCI_EV_REMOTE_NAME …
struct hci_ev_remote_name { … } __packed;
#define HCI_EV_ENCRYPT_CHANGE …
struct hci_ev_encrypt_change { … } __packed;
#define HCI_EV_CHANGE_LINK_KEY_COMPLETE …
struct hci_ev_change_link_key_complete { … } __packed;
#define HCI_EV_REMOTE_FEATURES …
struct hci_ev_remote_features { … } __packed;
#define HCI_EV_REMOTE_VERSION …
struct hci_ev_remote_version { … } __packed;
#define HCI_EV_QOS_SETUP_COMPLETE …
struct hci_qos { … } __packed;
struct hci_ev_qos_setup_complete { … } __packed;
#define HCI_EV_CMD_COMPLETE …
struct hci_ev_cmd_complete { … } __packed;
#define HCI_EV_CMD_STATUS …
struct hci_ev_cmd_status { … } __packed;
#define HCI_EV_HARDWARE_ERROR …
struct hci_ev_hardware_error { … } __packed;
#define HCI_EV_ROLE_CHANGE …
struct hci_ev_role_change { … } __packed;
#define HCI_EV_NUM_COMP_PKTS …
struct hci_comp_pkts_info { … } __packed;
struct hci_ev_num_comp_pkts { … } __packed;
#define HCI_EV_MODE_CHANGE …
struct hci_ev_mode_change { … } __packed;
#define HCI_EV_PIN_CODE_REQ …
struct hci_ev_pin_code_req { … } __packed;
#define HCI_EV_LINK_KEY_REQ …
struct hci_ev_link_key_req { … } __packed;
#define HCI_EV_LINK_KEY_NOTIFY …
struct hci_ev_link_key_notify { … } __packed;
#define HCI_EV_CLOCK_OFFSET …
struct hci_ev_clock_offset { … } __packed;
#define HCI_EV_PKT_TYPE_CHANGE …
struct hci_ev_pkt_type_change { … } __packed;
#define HCI_EV_PSCAN_REP_MODE …
struct hci_ev_pscan_rep_mode { … } __packed;
#define HCI_EV_INQUIRY_RESULT_WITH_RSSI …
struct inquiry_info_rssi { … } __packed;
struct inquiry_info_rssi_pscan { … } __packed;
struct hci_ev_inquiry_result_rssi { … } __packed;
#define HCI_EV_REMOTE_EXT_FEATURES …
struct hci_ev_remote_ext_features { … } __packed;
#define HCI_EV_SYNC_CONN_COMPLETE …
struct hci_ev_sync_conn_complete { … } __packed;
#define HCI_EV_SYNC_CONN_CHANGED …
struct hci_ev_sync_conn_changed { … } __packed;
#define HCI_EV_SNIFF_SUBRATE …
struct hci_ev_sniff_subrate { … } __packed;
#define HCI_EV_EXTENDED_INQUIRY_RESULT …
struct extended_inquiry_info { … } __packed;
struct hci_ev_ext_inquiry_result { … } __packed;
#define HCI_EV_KEY_REFRESH_COMPLETE …
struct hci_ev_key_refresh_complete { … } __packed;
#define HCI_EV_IO_CAPA_REQUEST …
struct hci_ev_io_capa_request { … } __packed;
#define HCI_EV_IO_CAPA_REPLY …
struct hci_ev_io_capa_reply { … } __packed;
#define HCI_EV_USER_CONFIRM_REQUEST …
struct hci_ev_user_confirm_req { … } __packed;
#define HCI_EV_USER_PASSKEY_REQUEST …
struct hci_ev_user_passkey_req { … } __packed;
#define HCI_EV_REMOTE_OOB_DATA_REQUEST …
struct hci_ev_remote_oob_data_request { … } __packed;
#define HCI_EV_SIMPLE_PAIR_COMPLETE …
struct hci_ev_simple_pair_complete { … } __packed;
#define HCI_EV_USER_PASSKEY_NOTIFY …
struct hci_ev_user_passkey_notify { … } __packed;
#define HCI_KEYPRESS_STARTED …
#define HCI_KEYPRESS_ENTERED …
#define HCI_KEYPRESS_ERASED …
#define HCI_KEYPRESS_CLEARED …
#define HCI_KEYPRESS_COMPLETED …
#define HCI_EV_KEYPRESS_NOTIFY …
struct hci_ev_keypress_notify { … } __packed;
#define HCI_EV_REMOTE_HOST_FEATURES …
struct hci_ev_remote_host_features { … } __packed;
#define HCI_EV_LE_META …
struct hci_ev_le_meta { … } __packed;
#define HCI_EV_PHY_LINK_COMPLETE …
struct hci_ev_phy_link_complete { … } __packed;
#define HCI_EV_CHANNEL_SELECTED …
struct hci_ev_channel_selected { … } __packed;
#define HCI_EV_DISCONN_PHY_LINK_COMPLETE …
struct hci_ev_disconn_phy_link_complete { … } __packed;
#define HCI_EV_LOGICAL_LINK_COMPLETE …
struct hci_ev_logical_link_complete { … } __packed;
#define HCI_EV_DISCONN_LOGICAL_LINK_COMPLETE …
struct hci_ev_disconn_logical_link_complete { … } __packed;
#define HCI_EV_NUM_COMP_BLOCKS …
struct hci_comp_blocks_info { … } __packed;
struct hci_ev_num_comp_blocks { … } __packed;
#define HCI_EV_SYNC_TRAIN_COMPLETE …
struct hci_ev_sync_train_complete { … } __packed;
#define HCI_EV_PERIPHERAL_PAGE_RESP_TIMEOUT …
#define HCI_EV_LE_CONN_COMPLETE …
struct hci_ev_le_conn_complete { … } __packed;
#define LE_ADV_IND …
#define LE_ADV_DIRECT_IND …
#define LE_ADV_SCAN_IND …
#define LE_ADV_NONCONN_IND …
#define LE_ADV_SCAN_RSP …
#define LE_ADV_INVALID …
#define LE_LEGACY_ADV_IND …
#define LE_LEGACY_ADV_DIRECT_IND …
#define LE_LEGACY_ADV_SCAN_IND …
#define LE_LEGACY_NONCONN_IND …
#define LE_LEGACY_SCAN_RSP_ADV …
#define LE_LEGACY_SCAN_RSP_ADV_SCAN …
#define LE_EXT_ADV_NON_CONN_IND …
#define LE_EXT_ADV_CONN_IND …
#define LE_EXT_ADV_SCAN_IND …
#define LE_EXT_ADV_DIRECT_IND …
#define LE_EXT_ADV_SCAN_RSP …
#define LE_EXT_ADV_LEGACY_PDU …
#define LE_EXT_ADV_EVT_TYPE_MASK …
#define ADDR_LE_DEV_PUBLIC …
#define ADDR_LE_DEV_RANDOM …
#define ADDR_LE_DEV_PUBLIC_RESOLVED …
#define ADDR_LE_DEV_RANDOM_RESOLVED …
#define HCI_EV_LE_ADVERTISING_REPORT …
struct hci_ev_le_advertising_info { … } __packed;
struct hci_ev_le_advertising_report { … } __packed;
#define HCI_EV_LE_CONN_UPDATE_COMPLETE …
struct hci_ev_le_conn_update_complete { … } __packed;
#define HCI_EV_LE_REMOTE_FEAT_COMPLETE …
struct hci_ev_le_remote_feat_complete { … } __packed;
#define HCI_EV_LE_LTK_REQ …
struct hci_ev_le_ltk_req { … } __packed;
#define HCI_EV_LE_REMOTE_CONN_PARAM_REQ …
struct hci_ev_le_remote_conn_param_req { … } __packed;
#define HCI_EV_LE_DATA_LEN_CHANGE …
struct hci_ev_le_data_len_change { … } __packed;
#define HCI_EV_LE_DIRECT_ADV_REPORT …
struct hci_ev_le_direct_adv_info { … } __packed;
struct hci_ev_le_direct_adv_report { … } __packed;
#define HCI_EV_LE_PHY_UPDATE_COMPLETE …
struct hci_ev_le_phy_update_complete { … } __packed;
#define HCI_EV_LE_EXT_ADV_REPORT …
struct hci_ev_le_ext_adv_info { … } __packed;
struct hci_ev_le_ext_adv_report { … } __packed;
#define HCI_EV_LE_PA_SYNC_ESTABLISHED …
struct hci_ev_le_pa_sync_established { … } __packed;
#define HCI_EV_LE_ENHANCED_CONN_COMPLETE …
struct hci_ev_le_enh_conn_complete { … } __packed;
#define HCI_EV_LE_PER_ADV_REPORT …
struct hci_ev_le_per_adv_report { … } __packed;
#define LE_PA_DATA_COMPLETE …
#define LE_PA_DATA_MORE_TO_COME …
#define LE_PA_DATA_TRUNCATED …
#define HCI_EV_LE_EXT_ADV_SET_TERM …
struct hci_evt_le_ext_adv_set_term { … } __packed;
#define HCI_EVT_LE_CIS_ESTABLISHED …
struct hci_evt_le_cis_established { … } __packed;
#define HCI_EVT_LE_CIS_REQ …
struct hci_evt_le_cis_req { … } __packed;
#define HCI_EVT_LE_CREATE_BIG_COMPLETE …
struct hci_evt_le_create_big_complete { … } __packed;
#define HCI_EVT_LE_BIG_SYNC_ESTABILISHED …
struct hci_evt_le_big_sync_estabilished { … } __packed;
#define HCI_EVT_LE_BIG_INFO_ADV_REPORT …
struct hci_evt_le_big_info_adv_report { … } __packed;
#define HCI_EV_VENDOR …
#define HCI_EV_STACK_INTERNAL …
struct hci_ev_stack_internal { … } __packed;
#define HCI_EV_SI_DEVICE …
struct hci_ev_si_device { … } __packed;
#define HCI_EV_SI_SECURITY …
struct hci_ev_si_security { … } __packed;
#define HCI_COMMAND_HDR_SIZE …
#define HCI_EVENT_HDR_SIZE …
#define HCI_ACL_HDR_SIZE …
#define HCI_SCO_HDR_SIZE …
#define HCI_ISO_HDR_SIZE …
struct hci_command_hdr { … } __packed;
struct hci_event_hdr { … } __packed;
struct hci_acl_hdr { … } __packed;
struct hci_sco_hdr { … } __packed;
struct hci_iso_hdr { … } __packed;
#define HCI_ISO_STATUS_VALID …
#define HCI_ISO_STATUS_INVALID …
#define HCI_ISO_STATUS_NOP …
#define HCI_ISO_DATA_HDR_SIZE …
struct hci_iso_data_hdr { … };
#define HCI_ISO_TS_DATA_HDR_SIZE …
struct hci_iso_ts_data_hdr { … };
static inline struct hci_event_hdr *hci_event_hdr(const struct sk_buff *skb)
{ … }
static inline struct hci_acl_hdr *hci_acl_hdr(const struct sk_buff *skb)
{ … }
static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb)
{ … }
#define hci_opcode_pack(ogf, ocf) …
#define hci_opcode_ogf(op) …
#define hci_opcode_ocf(op) …
#define hci_handle_pack(h, f) …
#define hci_handle(h) …
#define hci_flags(h) …
#define hci_iso_flags_pb(f) …
#define hci_iso_flags_ts(f) …
#define hci_iso_flags_pack(pb, ts) …
#define hci_iso_data_len_pack(h, f) …
#define hci_iso_data_len(h) …
#define hci_iso_data_flags(h) …
#define HCI_TRANSPORT_SCO_ESCO …
static inline void hci_cpu_to_le24(__u32 val, __u8 dst[3])
{ … }
#endif