github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/dev_vhci.txt (about)

     1  # Copyright 2020 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  include <net/bluetooth/bluetooth.h>
     5  include <net/bluetooth/hci_sock.h>
     6  include <net/bluetooth/sco.h>
     7  include <net/bluetooth/hci.h>
     8  
     9  syz_emit_vhci(data ptr[in, vhci_pkt], size bytesize[data])
    10  
    11  # Matches HCI_HANDLE_1/HCI_HANDLE_2 in executor/common_linux.h.
    12  hci_handles = 200, 201
    13  type hci_conn_handle flags[hci_handles, int16]
    14  type hci_phy_handle flags[hci_handles, int8]
    15  
    16  vhci_pkt [
    17  	HCI_EVENT_PKT	vhci_event_pkt
    18  	HCI_ACLDATA_PKT	vhci_acldata_pkt
    19  	HCI_SCODATA_PKT	vhci_scodata_pkt
    20  	HCI_VENDOR_PKT	vhci_vendor_pkt
    21  ] [varlen]
    22  
    23  vhci_command_pkt {
    24  	cmd	const[HCI_COMMAND_PKT, int8]
    25  	hdr	hci_command_hdr_un
    26  }
    27  
    28  vhci_event_pkt {
    29  	cmd	const[HCI_EVENT_PKT, int8]
    30  	hdr	hci_event_hdr_un
    31  }
    32  
    33  vhci_acldata_pkt {
    34  	cmd		const[HCI_ACLDATA_PKT, int8]
    35  	acl_hdr		hci_acl_hdr[vhci_acldata_pkt:l2cap_hdr]
    36  	l2cap_hdr	l2cap_hdr_un
    37  }
    38  
    39  vhci_scodata_pkt {
    40  	cmd	const[HCI_SCODATA_PKT, int8]
    41  	sco_hdr	hci_sco_hdr[vhci_scodata_pkt:data]
    42  	data	array[int8]
    43  }
    44  
    45  vhci_vendor_pkt {
    46  	cmd	const[HCI_VENDOR_PKT, int8]
    47  	opcode	flags[vhci_vendor_pkt_opcode, int8]
    48  }
    49  
    50  define HCI_PRIMARY	0x00
    51  define HCI_AMP	0x01
    52  
    53  vhci_vendor_pkt_opcode = HCI_PRIMARY, HCI_AMP, HCI_EXTERNAL_CONFIG, HCI_RAW_DEVICE
    54  
    55  type hci_acl_hdr[DATA] {
    56  	handle	flags[hci_handles, int16:12]
    57  	pb	int16:2
    58  	bc	int16:2
    59  	dlen	bytesize[DATA, int16]
    60  } [packed]
    61  
    62  type hci_sco_hdr[DATA] {
    63  	handle	hci_conn_handle
    64  	dlen	bytesize[DATA, int8]
    65  } [packed]
    66  
    67  ext_flow_spec {
    68  	id		int8
    69  	stype		int8
    70  	msdu		int16
    71  	sdu_itime	int32
    72  	acc_lat		int32
    73  	flush_to	int32
    74  } [packed]
    75  
    76  hci_cis {
    77  	cis_handle	int16
    78  	acl_handle	int16
    79  } [packed]
    80  
    81  hci_cis_params {
    82  	cis_id	int8
    83  	m_sdu	int16
    84  	s_sdu	int16
    85  	m_phy	int8
    86  	s_phy	int8
    87  	m_rtn	int8
    88  	s_rtn	int8
    89  } [packed]
    90  
    91  # TODO: remove these definitions when they are no more present in LTS kernels.
    92  define HCI_OP_CREATE_PHY_LINK	0x0435
    93  define HCI_OP_ACCEPT_PHY_LINK	0x0436
    94  define HCI_OP_DISCONN_PHY_LINK	0x0437
    95  define HCI_OP_CREATE_LOGICAL_LINK	0x0438
    96  define HCI_OP_ACCEPT_LOGICAL_LINK	0x0439
    97  define HCI_OP_DISCONN_LOGICAL_LINK	0x043a
    98  define HCI_OP_LOGICAL_LINK_CANCEL	0x043b
    99  define HCI_OP_READ_LOCAL_AMP_INFO	0x1409
   100  define HCI_OP_READ_LOCAL_AMP_ASSOC	0x140a
   101  define HCI_OP_WRITE_REMOTE_AMP_ASSOC	0x140b
   102  
   103  hci_command_hdr_un [
   104  	accept_conn_req			hci_command_packet_t[HCI_OP_ACCEPT_CONN_REQ, hci_cp_accept_conn_req]
   105  	accept_phy_link			hci_command_packet_t[HCI_OP_ACCEPT_PHY_LINK, hci_cp_accept_phy_link]
   106  	accept_sync_conn_req		hci_command_packet_t[HCI_OP_ACCEPT_SYNC_CONN_REQ, hci_cp_accept_sync_conn_req]
   107  	add_sco				hci_command_packet_t[HCI_OP_ADD_SCO, hci_cp_add_sco]
   108  	auth_requested			hci_command_packet_t[HCI_OP_AUTH_REQUESTED, hci_cp_auth_requested]
   109  	change_conn_link_key		hci_command_packet_t[HCI_OP_CHANGE_CONN_LINK_KEY, hci_cp_change_conn_link_key]
   110  	change_conn_ptype		hci_command_packet_t[HCI_OP_CHANGE_CONN_PTYPE, hci_cp_change_conn_ptype]
   111  	create_logical_link		hci_command_packet_t[HCI_OP_CREATE_LOGICAL_LINK, hci_cp_create_accept_logical_link]
   112  	accept_logical_link		hci_command_packet_t[HCI_OP_ACCEPT_LOGICAL_LINK, hci_cp_create_accept_logical_link]
   113  	create_conn			hci_command_packet_t[HCI_OP_CREATE_CONN, hci_cp_create_conn]
   114  	create_conn_cancel		hci_command_packet_t[HCI_OP_CREATE_CONN_CANCEL, hci_cp_create_conn_cancel]
   115  	create_phy_link			hci_command_packet_t[HCI_OP_CREATE_PHY_LINK, hci_cp_create_phy_link]
   116  	delete_reserved_lt_addr		hci_command_packet_t[HCI_OP_DELETE_RESERVED_LT_ADDR, hci_cp_delete_reserved_lt_addr]
   117  	delete_stored_link_key		hci_command_packet_t[HCI_OP_DELETE_STORED_LINK_KEY, hci_cp_delete_stored_link_key]
   118  	disconn_logical_link		hci_command_packet_t[HCI_OP_DISCONN_LOGICAL_LINK, hci_cp_disconn_logical_link]
   119  	disconn_phy_link		hci_command_packet_t[HCI_OP_DISCONN_PHY_LINK, hci_cp_disconn_phy_link]
   120  	disconnect			hci_command_packet_t[HCI_OP_DISCONNECT, hci_cp_disconnect]
   121  	exit_sniff_mode			hci_command_packet_t[HCI_OP_EXIT_SNIFF_MODE, hci_cp_exit_sniff_mode]
   122  	host_buffer_size		hci_command_packet_t[HCI_OP_HOST_BUFFER_SIZE, hci_cp_host_buffer_size]
   123  	inquiry				hci_command_packet_t[HCI_OP_INQUIRY, hci_cp_inquiry]
   124  	io_capability_neg_reply		hci_command_packet_t[HCI_OP_IO_CAPABILITY_NEG_REPLY, hci_cp_io_capability_neg_reply]
   125  	io_capability_reply		hci_command_packet_t[HCI_OP_IO_CAPABILITY_REPLY, hci_cp_io_capability_reply]
   126  	le_accept_cis			hci_command_packet_t[HCI_OP_LE_ACCEPT_CIS, hci_cp_le_accept_cis]
   127  	le_add_to_resolv_list		hci_command_packet_t[HCI_OP_LE_ADD_TO_RESOLV_LIST, hci_cp_le_add_to_resolv_list]
   128  	le_add_to_accept_list		hci_command_packet_t[HCI_OP_LE_ADD_TO_ACCEPT_LIST, hci_cp_le_add_to_accept_list]
   129  	le_conn_param_req_neg_reply	hci_command_packet_t[HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY, hci_cp_le_conn_param_req_neg_reply]
   130  	le_conn_param_req_reply		hci_command_packet_t[HCI_OP_LE_CONN_PARAM_REQ_REPLY, hci_cp_le_conn_param_req_reply]
   131  	le_conn_update			hci_command_packet_t[HCI_OP_LE_CONN_UPDATE, hci_cp_le_conn_update]
   132  	le_create_cis			hci_command_packet_t[HCI_OP_LE_CREATE_CIS, hci_cp_le_create_cis]
   133  	le_create_conn			hci_command_packet_t[HCI_OP_LE_CREATE_CONN, hci_cp_le_create_conn]
   134  	le_del_from_resolv_list		hci_command_packet_t[HCI_OP_LE_DEL_FROM_RESOLV_LIST, hci_cp_le_del_from_resolv_list]
   135  	le_del_from_accept_list		hci_command_packet_t[HCI_OP_LE_DEL_FROM_ACCEPT_LIST, hci_cp_le_del_from_accept_list]
   136  	le_ext_create_conn		hci_command_packet_t[HCI_OP_LE_EXT_CREATE_CONN, hci_cp_le_ext_create_conn]
   137  	le_ltk_neg_reply		hci_command_packet_t[HCI_OP_LE_LTK_NEG_REPLY, hci_cp_le_ltk_neg_reply]
   138  	le_ltk_reply			hci_command_packet_t[HCI_OP_LE_LTK_REPLY, hci_cp_le_ltk_reply]
   139  	le_read_iso_tx_sync		hci_command_packet_t[HCI_OP_LE_READ_ISO_TX_SYNC, hci_cp_le_read_iso_tx_sync]
   140  	le_read_remote_features		hci_command_packet_t[HCI_OP_LE_READ_REMOTE_FEATURES, hci_cp_le_read_remote_features]
   141  	le_reject_cis			hci_command_packet_t[HCI_OP_LE_REJECT_CIS, hci_cp_le_reject_cis]
   142  	le_remove_cig			hci_command_packet_t[HCI_OP_LE_REMOVE_CIG, hci_cp_le_remove_cig]
   143  	le_set_adv_data			hci_command_packet_t[HCI_OP_LE_SET_ADV_DATA, hci_cp_le_set_adv_data]
   144  	le_set_adv_param		hci_command_packet_t[HCI_OP_LE_SET_ADV_PARAM, hci_cp_le_set_adv_param]
   145  	le_set_adv_set_rand_addr	hci_command_packet_t[HCI_OP_LE_SET_ADV_SET_RAND_ADDR, hci_cp_le_set_adv_set_rand_addr]
   146  	le_set_cig_params		hci_command_packet_t[HCI_OP_LE_SET_CIG_PARAMS, hci_cp_le_set_cig_params]
   147  	le_set_data_len			hci_command_packet_t[HCI_OP_LE_SET_DATA_LEN, hci_cp_le_set_data_len]
   148  	le_set_default_phy		hci_command_packet_t[HCI_OP_LE_SET_DEFAULT_PHY, hci_cp_le_set_default_phy]
   149  	le_set_event_mask		hci_command_packet_t[HCI_OP_LE_SET_EVENT_MASK, hci_cp_le_set_event_mask]
   150  	le_set_ext_adv_data		hci_command_packet_t[HCI_OP_LE_SET_EXT_ADV_DATA, hci_cp_le_set_ext_adv_data]
   151  	le_set_ext_adv_enable		hci_command_packet_t[HCI_OP_LE_SET_EXT_ADV_ENABLE, hci_cp_le_set_ext_adv_enable]
   152  	le_set_ext_adv_params		hci_command_packet_t[HCI_OP_LE_SET_EXT_ADV_PARAMS, hci_cp_le_set_ext_adv_params]
   153  	le_set_ext_scan_enable		hci_command_packet_t[HCI_OP_LE_SET_EXT_SCAN_ENABLE, hci_cp_le_set_ext_scan_enable]
   154  	le_set_ext_scan_params		hci_command_packet_t[HCI_OP_LE_SET_EXT_SCAN_PARAMS, hci_cp_le_set_ext_scan_params]
   155  	le_set_ext_scan_rsp_data	hci_command_packet_t[HCI_OP_LE_SET_EXT_SCAN_RSP_DATA, hci_cp_le_set_ext_scan_rsp_data]
   156  	le_set_scan_enable		hci_command_packet_t[HCI_OP_LE_SET_SCAN_ENABLE, hci_cp_le_set_scan_enable]
   157  	le_set_scan_param		hci_command_packet_t[HCI_OP_LE_SET_SCAN_PARAM, hci_cp_le_set_scan_param]
   158  	le_set_scan_rsp_data		hci_command_packet_t[HCI_OP_LE_SET_SCAN_RSP_DATA, hci_cp_le_set_scan_rsp_data]
   159  	le_start_enc			hci_command_packet_t[HCI_OP_LE_START_ENC, hci_cp_le_start_enc]
   160  	le_write_def_data_len		hci_command_packet_t[HCI_OP_LE_WRITE_DEF_DATA_LEN, hci_cp_le_write_def_data_len]
   161  	link_key_neg_reply		hci_command_packet_t[HCI_OP_LINK_KEY_NEG_REPLY, hci_cp_link_key_neg_reply]
   162  	link_key_reply			hci_command_packet_t[HCI_OP_LINK_KEY_REPLY, hci_cp_link_key_reply]
   163  	logical_link_cancel		hci_command_packet_t[HCI_OP_LOGICAL_LINK_CANCEL, hci_cp_logical_link_cancel]
   164  	pin_code_neg_reply		hci_command_packet_t[HCI_OP_PIN_CODE_NEG_REPLY, hci_cp_pin_code_neg_reply]
   165  	pin_code_reply			hci_command_packet_t[HCI_OP_PIN_CODE_REPLY, hci_cp_pin_code_reply]
   166  	read_auth_payload_to		hci_command_packet_t[HCI_OP_READ_AUTH_PAYLOAD_TO, hci_cp_read_auth_payload_to]
   167  	read_clock			hci_command_packet_t[HCI_OP_READ_CLOCK, hci_cp_read_clock]
   168  	read_clock_offset		hci_command_packet_t[HCI_OP_READ_CLOCK_OFFSET, hci_cp_read_clock_offset]
   169  	read_enc_key_size		hci_command_packet_t[HCI_OP_READ_ENC_KEY_SIZE, hci_cp_read_enc_key_size]
   170  	read_link_policy		hci_command_packet_t[HCI_OP_READ_LINK_POLICY, hci_cp_read_link_policy]
   171  	read_local_amp_assoc		hci_command_packet_t[HCI_OP_READ_LOCAL_AMP_ASSOC, hci_cp_read_local_amp_assoc]
   172  	read_local_ext_features		hci_command_packet_t[HCI_OP_READ_LOCAL_EXT_FEATURES, hci_cp_read_local_ext_features]
   173  	read_remote_ext_features	hci_command_packet_t[HCI_OP_READ_REMOTE_EXT_FEATURES, hci_cp_read_remote_ext_features]
   174  	read_remote_features		hci_command_packet_t[HCI_OP_READ_REMOTE_FEATURES, hci_cp_read_remote_features]
   175  	read_remote_version		hci_command_packet_t[HCI_OP_READ_REMOTE_VERSION, hci_cp_read_remote_version]
   176  	read_rssi			hci_command_packet_t[HCI_OP_READ_RSSI, hci_cp_read_rssi]
   177  	read_stored_link_key		hci_command_packet_t[HCI_OP_READ_STORED_LINK_KEY, hci_cp_read_stored_link_key]
   178  	read_tx_power			hci_command_packet_t[HCI_OP_READ_TX_POWER, hci_cp_read_tx_power]
   179  	reject_conn_req			hci_command_packet_t[HCI_OP_REJECT_CONN_REQ, hci_cp_reject_conn_req]
   180  	reject_sync_conn_req		hci_command_packet_t[HCI_OP_REJECT_SYNC_CONN_REQ, hci_cp_reject_sync_conn_req]
   181  	remote_name_req			hci_command_packet_t[HCI_OP_REMOTE_NAME_REQ, hci_cp_remote_name_req]
   182  	remote_name_req_cancel		hci_command_packet_t[HCI_OP_REMOTE_NAME_REQ_CANCEL, hci_cp_remote_name_req_cancel]
   183  	remote_oob_data_neg_reply	hci_command_packet_t[HCI_OP_REMOTE_OOB_DATA_NEG_REPLY, hci_cp_remote_oob_data_neg_reply]
   184  	remote_oob_data_reply		hci_command_packet_t[HCI_OP_REMOTE_OOB_DATA_REPLY, hci_cp_remote_oob_data_reply]
   185  	remote_oob_ext_data_reply	hci_command_packet_t[HCI_OP_REMOTE_OOB_EXT_DATA_REPLY, hci_cp_remote_oob_ext_data_reply]
   186  	role_discovery			hci_command_packet_t[HCI_OP_ROLE_DISCOVERY, hci_cp_role_discovery]
   187  	set_conn_encrypt		hci_command_packet_t[HCI_OP_SET_CONN_ENCRYPT, hci_cp_set_conn_encrypt]
   188  	set_cpb				hci_command_packet_t[HCI_OP_SET_CPB, hci_cp_set_cpb]
   189  	set_cpb_data			hci_command_packet_t[HCI_OP_SET_CPB_DATA, hci_cp_set_cpb_data]
   190  	set_reserved_lt_addr		hci_command_packet_t[HCI_OP_SET_RESERVED_LT_ADDR, hci_cp_set_reserved_lt_addr]
   191  	setup_sync_conn			hci_command_packet_t[HCI_OP_SETUP_SYNC_CONN, hci_cp_setup_sync_conn]
   192  	sniff_mode			hci_command_packet_t[HCI_OP_SNIFF_MODE, hci_cp_sniff_mode]
   193  	sniff_subrate			hci_command_packet_t[HCI_OP_SNIFF_SUBRATE, hci_cp_sniff_subrate]
   194  	switch_role			hci_command_packet_t[HCI_OP_SWITCH_ROLE, hci_cp_switch_role]
   195  	user_confirm_reply		hci_command_packet_t[HCI_OP_USER_CONFIRM_REPLY, hci_cp_user_confirm_reply]
   196  	user_passkey_reply		hci_command_packet_t[HCI_OP_USER_PASSKEY_REPLY, hci_cp_user_passkey_reply]
   197  	write_auth_payload_to		hci_command_packet_t[HCI_OP_WRITE_AUTH_PAYLOAD_TO, hci_cp_write_auth_payload_to]
   198  	write_class_of_dev		hci_command_packet_t[HCI_OP_WRITE_CLASS_OF_DEV, hci_cp_write_class_of_dev]
   199  	write_current_iac_lap		hci_command_packet_t[HCI_OP_WRITE_CURRENT_IAC_LAP, hci_cp_write_current_iac_lap]
   200  	write_def_err_data_reporting	hci_command_packet_t[HCI_OP_WRITE_DEF_ERR_DATA_REPORTING, hci_cp_write_def_err_data_reporting]
   201  	write_def_link_policy		hci_command_packet_t[HCI_OP_WRITE_DEF_LINK_POLICY, hci_cp_write_def_link_policy]
   202  	write_eir			hci_command_packet_t[HCI_OP_WRITE_EIR, hci_cp_write_eir]
   203  	write_le_host_supported		hci_command_packet_t[HCI_OP_WRITE_LE_HOST_SUPPORTED, hci_cp_write_le_host_supported]
   204  	write_link_policy		hci_command_packet_t[HCI_OP_WRITE_LINK_POLICY, hci_cp_write_link_policy]
   205  	write_local_name		hci_command_packet_t[HCI_OP_WRITE_LOCAL_NAME, hci_cp_write_local_name]
   206  	write_page_scan_activity	hci_command_packet_t[HCI_OP_WRITE_PAGE_SCAN_ACTIVITY, hci_cp_write_page_scan_activity]
   207  	write_remote_amp_assoc		hci_command_packet_t[HCI_OP_WRITE_REMOTE_AMP_ASSOC, hci_cp_write_remote_amp_assoc]
   208  	write_sc_support		hci_command_packet_t[HCI_OP_WRITE_SC_SUPPORT, hci_cp_write_sc_support]
   209  	write_ssp_mode			hci_command_packet_t[HCI_OP_WRITE_SSP_MODE, hci_cp_write_ssp_mode]
   210  	write_sync_train_params		hci_command_packet_t[HCI_OP_WRITE_SYNC_TRAIN_PARAMS, hci_cp_write_sync_train_params]
   211  	write_voice_setting		hci_command_packet_t[HCI_OP_WRITE_VOICE_SETTING, hci_cp_write_voice_setting]
   212  ] [varlen]
   213  
   214  type hci_command_packet_t[OPCODE, PAYLOAD] {
   215  	hdr	hci_command_packet[OPCODE]
   216  	payload	PAYLOAD
   217  } [packed]
   218  
   219  type hci_command_packet[OPCODE] {
   220  	opcode	const[OPCODE, int16]
   221  	plen	bytesize[hci_command_packet_t:payload, int8]
   222  } [packed]
   223  
   224  hci_cp_accept_conn_req {
   225  	bdaddr	bdaddr_t
   226  	role	int8
   227  } [packed]
   228  
   229  hci_cp_accept_phy_link {
   230  	phy_handle	hci_phy_handle
   231  	key_len		int8
   232  	key_type	int8
   233  	key		array[int8]
   234  } [packed]
   235  
   236  hci_cp_accept_sync_conn_req {
   237  	bdaddr		bdaddr_t
   238  	tx_bandwidth	int32
   239  	rx_bandwidth	int32
   240  	max_latency	int16
   241  	content_format	int16
   242  	retrans_effort	int8
   243  	pkt_type	int16
   244  } [packed]
   245  
   246  hci_cp_add_sco {
   247  	handle		hci_conn_handle
   248  	pkt_type	int16
   249  } [packed]
   250  
   251  hci_cp_auth_requested {
   252  	handle	hci_conn_handle
   253  } [packed]
   254  
   255  hci_cp_change_conn_link_key {
   256  	handle	hci_conn_handle
   257  } [packed]
   258  
   259  hci_cp_change_conn_ptype {
   260  	handle		hci_conn_handle
   261  	pkt_type	int16
   262  } [packed]
   263  
   264  hci_cp_create_accept_logical_link {
   265  	phy_handle	hci_phy_handle
   266  	tx_flow_spec	ext_flow_spec
   267  	rx_flow_spec	ext_flow_spec
   268  } [packed]
   269  
   270  hci_cp_create_conn {
   271  	bdaddr		bdaddr_t
   272  	pkt_type	int16
   273  	pscan_rep_mode	int8
   274  	pscan_mode	int8
   275  	clock_offset	int16
   276  	role_switch	int8
   277  } [packed]
   278  
   279  hci_cp_create_conn_cancel {
   280  	bdaddr	bdaddr_t
   281  } [packed]
   282  
   283  hci_cp_create_phy_link {
   284  	phy_handle	hci_phy_handle
   285  	key_len		int8
   286  	key_type	int8
   287  	key		array[int8]
   288  } [packed]
   289  
   290  hci_cp_delete_reserved_lt_addr {
   291  	lt_addr	int8
   292  } [packed]
   293  
   294  hci_cp_delete_stored_link_key {
   295  	bdaddr		bdaddr_t
   296  	delete_all	int8
   297  } [packed]
   298  
   299  hci_cp_disconn_logical_link {
   300  	log_handle	int16
   301  } [packed]
   302  
   303  hci_cp_disconn_phy_link {
   304  	phy_handle	hci_phy_handle
   305  	reason		int8
   306  } [packed]
   307  
   308  hci_cp_disconnect {
   309  	handle	hci_conn_handle
   310  	reason	int8
   311  } [packed]
   312  
   313  hci_cp_exit_sniff_mode {
   314  	handle	hci_conn_handle
   315  } [packed]
   316  
   317  hci_cp_host_buffer_size {
   318  	acl_mtu		int16
   319  	sco_mtu		int8
   320  	acl_max_pkt	int16
   321  	sco_max_pkt	int16
   322  } [packed]
   323  
   324  hci_cp_inquiry {
   325  	lap	array[int8, 3]
   326  	length	int8
   327  	num_rsp	int8
   328  } [packed]
   329  
   330  hci_cp_io_capability_neg_reply {
   331  	bdaddr	bdaddr_t
   332  	reason	int8
   333  } [packed]
   334  
   335  hci_cp_io_capability_reply {
   336  	bdaddr		bdaddr_t
   337  	capability	int8
   338  	oob_data	int8
   339  	authentication	int8
   340  } [packed]
   341  
   342  hci_cp_le_accept_cis {
   343  	handle	hci_conn_handle
   344  } [packed]
   345  
   346  hci_cp_le_add_to_resolv_list {
   347  	bdaddr_type	int8
   348  	bdaddr		bdaddr_t
   349  	peer_irk	array[int8, 16]
   350  	local_irk	array[int8, 16]
   351  } [packed]
   352  
   353  hci_cp_le_add_to_accept_list {
   354  	bdaddr_type	int8
   355  	bdaddr		bdaddr_t
   356  } [packed]
   357  
   358  hci_cp_le_conn_param_req_neg_reply {
   359  	handle	hci_conn_handle
   360  	reason	int8
   361  } [packed]
   362  
   363  hci_cp_le_conn_param_req_reply {
   364  	handle		hci_conn_handle
   365  	interval_min	int16
   366  	interval_max	int16
   367  	latency		int16
   368  	timeout		int16
   369  	min_ce_len	int16
   370  	max_ce_len	int16
   371  } [packed]
   372  
   373  hci_cp_le_conn_update {
   374  	handle			hci_conn_handle
   375  	conn_interval_min	int16
   376  	conn_interval_max	int16
   377  	conn_latency		int16
   378  	supervision_timeout	int16
   379  	min_ce_len		int16
   380  	max_ce_len		int16
   381  } [packed]
   382  
   383  hci_cp_le_create_cis {
   384  	num_cis	len[cis, int8]
   385  	cis	array[hci_cis]
   386  } [packed]
   387  
   388  hci_cp_le_create_conn {
   389  	scan_interval		int16
   390  	scan_window		int16
   391  	filter_policy		int8
   392  	peer_addr_type		int8
   393  	peer_addr		bdaddr_t
   394  	own_address_type	int8
   395  	conn_interval_min	int16
   396  	conn_interval_max	int16
   397  	conn_latency		int16
   398  	supervision_timeout	int16
   399  	min_ce_len		int16
   400  	max_ce_len		int16
   401  } [packed]
   402  
   403  hci_cp_le_del_from_resolv_list {
   404  	bdaddr_type	int8
   405  	bdaddr		bdaddr_t
   406  } [packed]
   407  
   408  hci_cp_le_del_from_accept_list {
   409  	bdaddr_type	int8
   410  	bdaddr		bdaddr_t
   411  } [packed]
   412  
   413  hci_cp_le_ext_create_conn {
   414  	filter_policy	int8
   415  	own_addr_type	int8
   416  	peer_addr_type	int8
   417  	peer_addr	bdaddr_t
   418  	phys		int8
   419  	data		array[int8]
   420  } [packed]
   421  
   422  hci_cp_le_ltk_neg_reply {
   423  	handle	hci_conn_handle
   424  } [packed]
   425  
   426  hci_cp_le_ltk_reply {
   427  	handle	hci_conn_handle
   428  	ltk	array[int8, 16]
   429  } [packed]
   430  
   431  hci_cp_le_read_iso_tx_sync {
   432  	handle	hci_conn_handle
   433  } [packed]
   434  
   435  hci_cp_le_read_remote_features {
   436  	handle	hci_conn_handle
   437  } [packed]
   438  
   439  hci_cp_le_reject_cis {
   440  	handle	hci_conn_handle
   441  	reason	int8
   442  } [packed]
   443  
   444  hci_cp_le_remove_cig {
   445  	cig_id	int8
   446  } [packed]
   447  
   448  hci_cp_le_set_adv_data {
   449  	length	int8
   450  	data	array[int8, 31]
   451  } [packed]
   452  
   453  hci_cp_le_set_adv_param {
   454  	min_interval		int16
   455  	max_interval		int16
   456  	type			int8
   457  	own_address_type	int8
   458  	direct_addr_type	int8
   459  	direct_addr		bdaddr_t
   460  	channel_map		int8
   461  	filter_policy		int8
   462  } [packed]
   463  
   464  hci_cp_le_set_adv_set_rand_addr {
   465  	handle	int8
   466  	bdaddr	bdaddr_t
   467  } [packed]
   468  
   469  hci_cp_le_set_cig_params {
   470  	cig_id		int8
   471  	m_interval	array[int8, 3]
   472  	s_interval	array[int8, 3]
   473  	sca		int8
   474  	packing		int8
   475  	framing		int8
   476  	m_latency	int16
   477  	s_latency	int16
   478  	num_cis		len[cis, int8]
   479  	cis		array[hci_cis_params]
   480  } [packed]
   481  
   482  hci_cp_le_set_data_len {
   483  	handle	hci_conn_handle
   484  	tx_len	int16
   485  	tx_time	int16
   486  } [packed]
   487  
   488  hci_cp_le_set_default_phy {
   489  	all_phys	int8
   490  	tx_phys		int8
   491  	rx_phys		int8
   492  } [packed]
   493  
   494  hci_cp_le_set_event_mask {
   495  	mask	array[int8, 8]
   496  } [packed]
   497  
   498  hci_cp_le_set_ext_adv_data {
   499  	handle		int8
   500  	operation	int8
   501  	frag_pref	int8
   502  	length		int8
   503  	data		array[int8, 31]
   504  } [packed]
   505  
   506  hci_cp_le_set_ext_adv_enable {
   507  	enable		int8
   508  	num_of_sets	int8
   509  	data		array[int8]
   510  } [packed]
   511  
   512  hci_cp_le_set_ext_adv_params {
   513  	handle			int8
   514  	evt_properties		int16
   515  	min_interval		array[int8, 3]
   516  	max_interval		array[int8, 3]
   517  	channel_map		int8
   518  	own_addr_type		int8
   519  	peer_addr_type		int8
   520  	peer_addr		bdaddr_t
   521  	filter_policy		int8
   522  	tx_power		int8
   523  	primary_phy		int8
   524  	secondary_max_skip	int8
   525  	secondary_phy		int8
   526  	sid			int8
   527  	notif_enable		int8
   528  } [packed]
   529  
   530  hci_cp_le_set_ext_scan_enable {
   531  	enable		int8
   532  	filter_dup	int8
   533  	duration	int16
   534  	period		int16
   535  } [packed]
   536  
   537  hci_cp_le_set_ext_scan_params {
   538  	own_addr_type	int8
   539  	filter_policy	int8
   540  	scanning_phys	int8
   541  	data		array[int8]
   542  } [packed]
   543  
   544  hci_cp_le_set_ext_scan_rsp_data {
   545  	handle		int8
   546  	operation	int8
   547  	frag_pref	int8
   548  	length		int8
   549  	data		array[int8, 31]
   550  } [packed]
   551  
   552  hci_cp_le_set_scan_enable {
   553  	enable		int8
   554  	filter_dup	int8
   555  } [packed]
   556  
   557  hci_cp_le_set_scan_param {
   558  	type			int8
   559  	interval		int16
   560  	window			int16
   561  	own_address_type	int8
   562  	filter_policy		int8
   563  } [packed]
   564  
   565  hci_cp_le_set_scan_rsp_data {
   566  	length	int8
   567  	data	array[int8, 31]
   568  } [packed]
   569  
   570  hci_cp_le_start_enc {
   571  	handle	hci_conn_handle
   572  	rand	int64
   573  	ediv	int16
   574  	ltk	array[int8, 16]
   575  } [packed]
   576  
   577  hci_cp_le_write_def_data_len {
   578  	tx_len	int16
   579  	tx_time	int16
   580  } [packed]
   581  
   582  hci_cp_link_key_neg_reply {
   583  	bdaddr	bdaddr_t
   584  } [packed]
   585  
   586  hci_cp_link_key_reply {
   587  	bdaddr		bdaddr_t
   588  	link_key	array[int8, 16]
   589  } [packed]
   590  
   591  hci_cp_logical_link_cancel {
   592  	phy_handle	hci_phy_handle
   593  	flow_spec_id	int8
   594  } [packed]
   595  
   596  hci_cp_pin_code_neg_reply {
   597  	bdaddr	bdaddr_t
   598  } [packed]
   599  
   600  hci_cp_pin_code_reply {
   601  	bdaddr		bdaddr_t
   602  	pin_len		int8
   603  	pin_code	array[int8, 16]
   604  } [packed]
   605  
   606  hci_cp_read_auth_payload_to {
   607  	handle	hci_conn_handle
   608  } [packed]
   609  
   610  hci_cp_read_clock {
   611  	handle	hci_conn_handle
   612  	which	int8
   613  } [packed]
   614  
   615  hci_cp_read_clock_offset {
   616  	handle	hci_conn_handle
   617  } [packed]
   618  
   619  hci_cp_read_enc_key_size {
   620  	handle	hci_conn_handle
   621  } [packed]
   622  
   623  hci_cp_read_link_policy {
   624  	handle	hci_conn_handle
   625  } [packed]
   626  
   627  hci_cp_read_local_amp_assoc {
   628  	phy_handle	hci_phy_handle
   629  	len_so_far	int16
   630  	max_len		int16
   631  } [packed]
   632  
   633  hci_cp_read_local_ext_features {
   634  	page	int8
   635  } [packed]
   636  
   637  hci_cp_read_remote_ext_features {
   638  	handle	hci_conn_handle
   639  	page	int8
   640  } [packed]
   641  
   642  hci_cp_read_remote_features {
   643  	handle	hci_conn_handle
   644  } [packed]
   645  
   646  hci_cp_read_remote_version {
   647  	handle	hci_conn_handle
   648  } [packed]
   649  
   650  hci_cp_read_rssi {
   651  	handle	hci_conn_handle
   652  } [packed]
   653  
   654  hci_cp_read_stored_link_key {
   655  	bdaddr		bdaddr_t
   656  	read_all	int8
   657  } [packed]
   658  
   659  hci_cp_read_tx_power {
   660  	handle	hci_conn_handle
   661  	type	int8
   662  } [packed]
   663  
   664  hci_cp_reject_conn_req {
   665  	bdaddr	bdaddr_t
   666  	reason	int8
   667  } [packed]
   668  
   669  hci_cp_reject_sync_conn_req {
   670  	bdaddr	bdaddr_t
   671  	reason	int8
   672  } [packed]
   673  
   674  hci_cp_remote_name_req {
   675  	bdaddr		bdaddr_t
   676  	pscan_rep_mode	int8
   677  	pscan_mode	int8
   678  	clock_offset	int16
   679  } [packed]
   680  
   681  hci_cp_remote_name_req_cancel {
   682  	bdaddr	bdaddr_t
   683  } [packed]
   684  
   685  hci_cp_remote_oob_data_neg_reply {
   686  	bdaddr	bdaddr_t
   687  } [packed]
   688  
   689  hci_cp_remote_oob_data_reply {
   690  	bdaddr	bdaddr_t
   691  	hash	array[int8, 16]
   692  	rand	array[int8, 16]
   693  } [packed]
   694  
   695  hci_cp_remote_oob_ext_data_reply {
   696  	bdaddr	bdaddr_t
   697  	hash192	array[int8, 16]
   698  	rand192	array[int8, 16]
   699  	hash256	array[int8, 16]
   700  	rand256	array[int8, 16]
   701  } [packed]
   702  
   703  hci_cp_role_discovery {
   704  	handle	hci_conn_handle
   705  } [packed]
   706  
   707  hci_cp_set_conn_encrypt {
   708  	handle	hci_conn_handle
   709  	encrypt	int8
   710  } [packed]
   711  
   712  hci_cp_set_cpb {
   713  	enable		int8
   714  	lt_addr		int8
   715  	lpo_allowed	int8
   716  	packet_type	int16
   717  	interval_min	int16
   718  	interval_max	int16
   719  	cpb_sv_tout	int16
   720  } [packed]
   721  
   722  hci_cp_set_cpb_data {
   723  	lt_addr		int8
   724  	fragment	int8
   725  	data_length	int8
   726  	data		array[int8, 252]
   727  } [packed]
   728  
   729  hci_cp_set_reserved_lt_addr {
   730  	lt_addr	int8
   731  } [packed]
   732  
   733  hci_cp_setup_sync_conn {
   734  	handle		hci_conn_handle
   735  	tx_bandwidth	int32
   736  	rx_bandwidth	int32
   737  	max_latency	int16
   738  	voice_setting	int16
   739  	retrans_effort	int8
   740  	pkt_type	int16
   741  } [packed]
   742  
   743  hci_cp_sniff_mode {
   744  	handle		hci_conn_handle
   745  	max_interval	int16
   746  	min_interval	int16
   747  	attempt		int16
   748  	timeout		int16
   749  } [packed]
   750  
   751  hci_cp_sniff_subrate {
   752  	handle			hci_conn_handle
   753  	max_latency		int16
   754  	min_remote_timeout	int16
   755  	min_local_timeout	int16
   756  } [packed]
   757  
   758  hci_cp_switch_role {
   759  	bdaddr	bdaddr_t
   760  	role	int8
   761  } [packed]
   762  
   763  hci_cp_user_confirm_reply {
   764  	bdaddr	bdaddr_t
   765  } [packed]
   766  
   767  hci_cp_user_passkey_reply {
   768  	bdaddr	bdaddr_t
   769  	passkey	int32
   770  } [packed]
   771  
   772  hci_cp_write_auth_payload_to {
   773  	handle	hci_conn_handle
   774  	timeout	int16
   775  } [packed]
   776  
   777  hci_cp_write_class_of_dev {
   778  	dev_class	array[int8, 3]
   779  } [packed]
   780  
   781  hci_cp_write_current_iac_lap {
   782  	num_iac	len[iac_lap, int8]
   783  	iac_lap	array[int8, 6]
   784  } [packed]
   785  
   786  hci_cp_write_def_err_data_reporting {
   787  	err_data_reporting	int8
   788  } [packed]
   789  
   790  hci_cp_write_def_link_policy {
   791  	policy	int16
   792  } [packed]
   793  
   794  hci_cp_write_eir {
   795  	fec	int8
   796  	data	array[int8, 240]
   797  } [packed]
   798  
   799  hci_cp_write_le_host_supported {
   800  	le	int8
   801  	simul	int8
   802  } [packed]
   803  
   804  hci_cp_write_link_policy {
   805  	handle	hci_conn_handle
   806  	policy	int16
   807  } [packed]
   808  
   809  hci_cp_write_local_name {
   810  	name	array[int8, 248]
   811  } [packed]
   812  
   813  hci_cp_write_page_scan_activity {
   814  	interval	int16
   815  	window		int16
   816  } [packed]
   817  
   818  hci_cp_write_remote_amp_assoc {
   819  	phy_handle	hci_phy_handle
   820  	len_so_far	int16
   821  	rem_len		int16
   822  	frag		array[int8]
   823  } [packed]
   824  
   825  hci_cp_write_sc_support {
   826  	support	int8
   827  } [packed]
   828  
   829  hci_cp_write_ssp_mode {
   830  	mode	int8
   831  } [packed]
   832  
   833  hci_cp_write_sync_train_params {
   834  	interval_min	int16
   835  	interval_max	int16
   836  	sync_train_tout	int32
   837  	service_data	int8
   838  } [packed]
   839  
   840  hci_cp_write_voice_setting {
   841  	voice_setting	int16
   842  } [packed]
   843  
   844  hci_event_hdr_un [
   845  	HCI_EV_INQUIRY_COMPLETE			hci_event_hdr_t[HCI_EV_INQUIRY_COMPLETE, int8]
   846  	extended_inquiry_info			hci_event_hdr_t[HCI_EV_EXTENDED_INQUIRY_RESULT, extended_inquiry_info_t]
   847  	hci_ev_auth_complete			hci_event_hdr_t[HCI_EV_AUTH_COMPLETE, hci_ev_auth_complete]
   848  	hci_ev_change_link_key_complete		hci_event_hdr_t[HCI_EV_CHANGE_LINK_KEY_COMPLETE, hci_ev_change_link_key_complete]
   849  	hci_ev_channel_selected			hci_event_hdr_t[HCI_EV_CHANNEL_SELECTED, hci_ev_channel_selected]
   850  	hci_ev_clock_offset			hci_event_hdr_t[HCI_EV_CLOCK_OFFSET, hci_ev_clock_offset]
   851  	hci_ev_cmd_complete			hci_event_hdr_t[HCI_EV_CMD_COMPLETE, hci_ev_cmd_complete_un]
   852  	hci_ev_cmd_status			hci_event_hdr_t[HCI_EV_CMD_STATUS, hci_ev_cmd_status]
   853  	hci_ev_conn_complete			hci_event_hdr_t[HCI_EV_CONN_COMPLETE, hci_ev_conn_complete]
   854  	hci_ev_conn_request			hci_event_hdr_t[HCI_EV_CONN_REQUEST, hci_ev_conn_request]
   855  	hci_ev_disconn_complete			hci_event_hdr_t[HCI_EV_DISCONN_COMPLETE, hci_ev_disconn_complete]
   856  	hci_ev_disconn_logical_link_complete	hci_event_hdr_t[HCI_EV_DISCONN_LOGICAL_LINK_COMPLETE, hci_ev_disconn_logical_link_complete]
   857  	hci_ev_disconn_phy_link_complete	hci_event_hdr_t[HCI_EV_DISCONN_PHY_LINK_COMPLETE, hci_ev_disconn_phy_link_complete]
   858  	hci_ev_encrypt_change			hci_event_hdr_t[HCI_EV_ENCRYPT_CHANGE, hci_ev_encrypt_change]
   859  	hci_ev_hardware_error			hci_event_hdr_t[HCI_EV_HARDWARE_ERROR, hci_ev_hardware_error]
   860  	hci_ev_io_capa_reply			hci_event_hdr_t[HCI_EV_IO_CAPA_REPLY, hci_ev_io_capa_reply]
   861  	hci_ev_io_capa_request			hci_event_hdr_t[HCI_EV_IO_CAPA_REQUEST, hci_ev_io_capa_request]
   862  	hci_ev_key_refresh_complete		hci_event_hdr_t[HCI_EV_KEY_REFRESH_COMPLETE, hci_ev_key_refresh_complete]
   863  	hci_ev_keypress_notify			hci_event_hdr_t[HCI_EV_KEYPRESS_NOTIFY, hci_ev_keypress_notify]
   864  	hci_ev_le_meta				hci_event_hdr_t[HCI_EV_LE_META, hci_ev_le_meta_un]
   865  	hci_ev_link_key_notify			hci_event_hdr_t[HCI_EV_LINK_KEY_NOTIFY, hci_ev_link_key_notify]
   866  	hci_ev_link_key_req			hci_event_hdr_t[HCI_EV_LINK_KEY_REQ, hci_ev_link_key_req]
   867  	hci_ev_logical_link_complete		hci_event_hdr_t[HCI_EV_LOGICAL_LINK_COMPLETE, hci_ev_logical_link_complete]
   868  	hci_ev_mode_change			hci_event_hdr_t[HCI_EV_MODE_CHANGE, hci_ev_mode_change]
   869  	hci_ev_num_comp_blocks			hci_event_hdr_t[HCI_EV_NUM_COMP_BLOCKS, hci_ev_num_comp_blocks]
   870  	hci_ev_num_comp_pkts			hci_event_hdr_t[HCI_EV_NUM_COMP_PKTS, hci_ev_num_comp_pkts]
   871  	hci_ev_phy_link_complete		hci_event_hdr_t[HCI_EV_PHY_LINK_COMPLETE, hci_ev_phy_link_complete]
   872  	hci_ev_pin_code_req			hci_event_hdr_t[HCI_EV_PIN_CODE_REQ, hci_ev_pin_code_req]
   873  	hci_ev_pkt_type_change			hci_event_hdr_t[HCI_EV_PKT_TYPE_CHANGE, hci_ev_pkt_type_change]
   874  	hci_ev_pscan_rep_mode			hci_event_hdr_t[HCI_EV_PSCAN_REP_MODE, hci_ev_pscan_rep_mode]
   875  	hci_ev_qos_setup_complete		hci_event_hdr_t[HCI_EV_QOS_SETUP_COMPLETE, hci_ev_qos_setup_complete]
   876  	hci_ev_remote_ext_features		hci_event_hdr_t[HCI_EV_REMOTE_EXT_FEATURES, hci_ev_remote_ext_features]
   877  	hci_ev_remote_features			hci_event_hdr_t[HCI_EV_REMOTE_FEATURES, hci_ev_remote_features]
   878  	hci_ev_remote_host_features		hci_event_hdr_t[HCI_EV_REMOTE_HOST_FEATURES, hci_ev_remote_host_features]
   879  	hci_ev_remote_name			hci_event_hdr_t[HCI_EV_REMOTE_NAME, hci_ev_remote_name]
   880  	hci_ev_remote_oob_data_request		hci_event_hdr_t[HCI_EV_REMOTE_OOB_DATA_REQUEST, hci_ev_remote_oob_data_request]
   881  	hci_ev_remote_version			hci_event_hdr_t[HCI_EV_REMOTE_VERSION, hci_ev_remote_version]
   882  	hci_ev_role_change			hci_event_hdr_t[HCI_EV_ROLE_CHANGE, hci_ev_role_change]
   883  	hci_ev_si_device			hci_event_hdr_t[HCI_EV_SI_DEVICE, hci_ev_si_device]
   884  	hci_ev_si_security			hci_event_hdr_t[HCI_EV_SI_SECURITY, hci_ev_si_security]
   885  	hci_ev_simple_pair_complete		hci_event_hdr_t[HCI_EV_SIMPLE_PAIR_COMPLETE, hci_ev_simple_pair_complete]
   886  	hci_ev_sniff_subrate			hci_event_hdr_t[HCI_EV_SNIFF_SUBRATE, hci_ev_sniff_subrate]
   887  	hci_ev_stack_internal			hci_event_hdr_t[HCI_EV_STACK_INTERNAL, hci_ev_stack_internal]
   888  	hci_ev_sync_conn_changed		hci_event_hdr_t[HCI_EV_SYNC_CONN_CHANGED, hci_ev_sync_conn_changed]
   889  	hci_ev_sync_conn_complete		hci_event_hdr_t[HCI_EV_SYNC_CONN_COMPLETE, hci_ev_sync_conn_complete]
   890  	hci_ev_sync_train_complete		hci_event_hdr_t[HCI_EV_SYNC_TRAIN_COMPLETE, hci_ev_sync_train_complete]
   891  	hci_ev_user_confirm_req			hci_event_hdr_t[HCI_EV_USER_CONFIRM_REQUEST, hci_ev_user_confirm_req]
   892  	hci_ev_user_passkey_notify		hci_event_hdr_t[HCI_EV_USER_PASSKEY_NOTIFY, hci_ev_user_passkey_notify]
   893  	hci_ev_user_passkey_req			hci_event_hdr_t[HCI_EV_USER_PASSKEY_REQUEST, hci_ev_user_passkey_req]
   894  	inquiry_info				hci_event_hdr_t[HCI_EV_INQUIRY_RESULT, inquiry_info_t]
   895  	inquiry_info_with_rssi			hci_event_hdr_t[HCI_EV_INQUIRY_RESULT_WITH_RSSI, inquiry_info_with_rssi_t]
   896  	inquiry_info_with_rssi_and_pscan_mode	hci_event_hdr_t[HCI_EV_INQUIRY_RESULT_WITH_RSSI, inquiry_info_with_rssi_and_pscan_mode_t]
   897  	HCI_EV_VENDOR				hci_event_hdr_t[HCI_EV_VENDOR, array[int8]]
   898  ] [varlen]
   899  
   900  type hci_event_hdr_t[EVENT, PAYLOAD] {
   901  	hdr	hci_event_hdr[EVENT]
   902  	payload	PAYLOAD
   903  } [packed]
   904  
   905  type hci_event_hdr[EVENT] {
   906  	evt	const[EVENT, int8]
   907  	plen	bytesize[hci_event_hdr_t:payload, int8]
   908  } [packed]
   909  
   910  hci_ev_le_meta_un [
   911  	hci_ev_le_advertising_info	hci_ev_le_meta_t[HCI_EV_LE_ADVERTISING_REPORT, hci_ev_le_advertising_info_t]
   912  	hci_ev_le_conn_complete		hci_ev_le_meta_t[HCI_EV_LE_CONN_COMPLETE, hci_ev_le_conn_complete]
   913  	hci_ev_le_conn_update_complete	hci_ev_le_meta_t[HCI_EV_LE_CONN_UPDATE_COMPLETE, hci_ev_le_conn_update_complete]
   914  	hci_ev_le_data_len_change	hci_ev_le_meta_t[HCI_EV_LE_DATA_LEN_CHANGE, hci_ev_le_data_len_change]
   915  	hci_ev_le_direct_adv_info	hci_ev_le_meta_t[HCI_EV_LE_DIRECT_ADV_REPORT, hci_ev_le_direct_adv_info]
   916  	hci_ev_le_enh_conn_complete	hci_ev_le_meta_t[HCI_EV_LE_ENHANCED_CONN_COMPLETE, hci_ev_le_enh_conn_complete]
   917  	hci_ev_le_ext_adv_report	hci_ev_le_meta_t[HCI_EV_LE_EXT_ADV_REPORT, hci_ev_le_ext_adv_report]
   918  	hci_ev_le_ltk_req		hci_ev_le_meta_t[HCI_EV_LE_LTK_REQ, hci_ev_le_ltk_req]
   919  	hci_ev_le_phy_update_complete	hci_ev_le_meta_t[HCI_EV_LE_PHY_UPDATE_COMPLETE, hci_ev_le_phy_update_complete]
   920  	hci_ev_le_remote_conn_param_req	hci_ev_le_meta_t[HCI_EV_LE_REMOTE_CONN_PARAM_REQ, hci_ev_le_remote_conn_param_req]
   921  	hci_ev_le_remote_feat_complete	hci_ev_le_meta_t[HCI_EV_LE_REMOTE_FEAT_COMPLETE, hci_ev_le_remote_feat_complete]
   922  	hci_evt_le_cis_established	hci_ev_le_meta_t[HCI_EVT_LE_CIS_ESTABLISHED, hci_evt_le_cis_established]
   923  	hci_evt_le_ext_adv_set_term	hci_ev_le_meta_t[HCI_EV_LE_EXT_ADV_SET_TERM, hci_evt_le_ext_adv_set_term]
   924  ] [varlen]
   925  
   926  type hci_ev_le_meta_t[SUBEVENT, PAYLOAD] {
   927  	hdr	hci_ev_le_meta[SUBEVENT]
   928  	payload	PAYLOAD
   929  } [packed]
   930  
   931  type hci_ev_le_meta[SUBEVENT] {
   932  	subevent	const[SUBEVENT, int8]
   933  } [packed]
   934  
   935  hci_ev_cmd_complete_un [
   936  	hci_rp_delete_reserved_lt_addr		hci_ev_cmd_complete_t[HCI_OP_DELETE_RESERVED_LT_ADDR, hci_rp_delete_reserved_lt_addr]
   937  	hci_rp_delete_stored_link_key		hci_ev_cmd_complete_t[HCI_OP_DELETE_STORED_LINK_KEY, hci_rp_delete_stored_link_key]
   938  	hci_rp_le_ltk_neg_reply			hci_ev_cmd_complete_t[HCI_OP_LE_LTK_NEG_REPLY, hci_rp_le_ltk_neg_reply]
   939  	hci_rp_le_ltk_reply			hci_ev_cmd_complete_t[HCI_OP_LE_LTK_REPLY, hci_rp_le_ltk_reply]
   940  	hci_rp_le_read_adv_tx_power		hci_ev_cmd_complete_t[HCI_OP_LE_READ_ADV_TX_POWER, hci_rp_le_read_adv_tx_power]
   941  	hci_rp_le_read_buffer_size		hci_ev_cmd_complete_t[HCI_OP_LE_READ_BUFFER_SIZE, hci_rp_le_read_buffer_size]
   942  	hci_rp_le_read_buffer_size_v2		hci_ev_cmd_complete_t[HCI_OP_LE_READ_BUFFER_SIZE_V2, hci_rp_le_read_buffer_size_v2]
   943  	hci_rp_le_read_def_data_len		hci_ev_cmd_complete_t[HCI_OP_LE_READ_DEF_DATA_LEN, hci_rp_le_read_def_data_len]
   944  	hci_rp_le_read_iso_tx_sync		hci_ev_cmd_complete_t[HCI_OP_LE_READ_ISO_TX_SYNC, hci_rp_le_read_iso_tx_sync]
   945  	hci_rp_le_read_local_features		hci_ev_cmd_complete_t[HCI_OP_LE_READ_LOCAL_FEATURES, hci_rp_le_read_local_features]
   946  	hci_rp_le_read_max_data_len		hci_ev_cmd_complete_t[HCI_OP_LE_READ_MAX_DATA_LEN, hci_rp_le_read_max_data_len]
   947  	hci_rp_le_read_num_supported_adv_sets	hci_ev_cmd_complete_t[HCI_OP_LE_READ_NUM_SUPPORTED_ADV_SETS, hci_rp_le_read_num_supported_adv_sets]
   948  	hci_rp_le_read_resolv_list_size		hci_ev_cmd_complete_t[HCI_OP_LE_READ_RESOLV_LIST_SIZE, hci_rp_le_read_resolv_list_size]
   949  	hci_rp_le_read_supported_states		hci_ev_cmd_complete_t[HCI_OP_LE_READ_SUPPORTED_STATES, hci_rp_le_read_supported_states]
   950  	hci_rp_le_read_accept_list_size		hci_ev_cmd_complete_t[HCI_OP_LE_READ_ACCEPT_LIST_SIZE, hci_rp_le_read_accept_list_size]
   951  	hci_rp_le_set_cig_params		hci_ev_cmd_complete_t[HCI_OP_LE_SET_CIG_PARAMS, hci_rp_le_set_cig_params]
   952  	hci_rp_le_set_data_len			hci_ev_cmd_complete_t[HCI_OP_LE_SET_DATA_LEN, hci_rp_le_set_data_len]
   953  	hci_rp_le_set_ext_adv_params		hci_ev_cmd_complete_t[HCI_OP_LE_SET_EXT_ADV_PARAMS, hci_rp_le_set_ext_adv_params]
   954  	hci_rp_logical_link_cancel		hci_ev_cmd_complete_t[HCI_OP_LOGICAL_LINK_CANCEL, hci_rp_logical_link_cancel]
   955  	hci_rp_pin_code_neg_reply		hci_ev_cmd_complete_t[HCI_OP_PIN_CODE_NEG_REPLY, hci_rp_pin_code_neg_reply]
   956  	hci_rp_pin_code_reply			hci_ev_cmd_complete_t[HCI_OP_PIN_CODE_REPLY, hci_rp_pin_code_reply]
   957  	hci_rp_read_auth_payload_to		hci_ev_cmd_complete_t[HCI_OP_READ_AUTH_PAYLOAD_TO, hci_rp_read_auth_payload_to]
   958  	hci_rp_read_bd_addr			hci_ev_cmd_complete_t[HCI_OP_READ_BD_ADDR, hci_rp_read_bd_addr]
   959  	hci_rp_read_buffer_size			hci_ev_cmd_complete_t[HCI_OP_READ_BUFFER_SIZE, hci_rp_read_buffer_size]
   960  	hci_rp_read_class_of_dev		hci_ev_cmd_complete_t[HCI_OP_READ_CLASS_OF_DEV, hci_rp_read_class_of_dev]
   961  	hci_rp_read_clock			hci_ev_cmd_complete_t[HCI_OP_READ_CLOCK, hci_rp_read_clock]
   962  	hci_rp_read_data_block_size		hci_ev_cmd_complete_t[HCI_OP_READ_DATA_BLOCK_SIZE, hci_rp_read_data_block_size]
   963  	hci_rp_read_def_err_data_reporting	hci_ev_cmd_complete_t[HCI_OP_READ_DEF_ERR_DATA_REPORTING, hci_rp_read_def_err_data_reporting]
   964  	hci_rp_read_def_link_policy		hci_ev_cmd_complete_t[HCI_OP_READ_DEF_LINK_POLICY, hci_rp_read_def_link_policy]
   965  	hci_rp_read_enc_key_size		hci_ev_cmd_complete_t[HCI_OP_READ_ENC_KEY_SIZE, hci_rp_read_enc_key_size]
   966  	hci_rp_read_flow_control_mode		hci_ev_cmd_complete_t[HCI_OP_READ_FLOW_CONTROL_MODE, hci_rp_read_flow_control_mode]
   967  	hci_rp_read_inq_rsp_tx_power		hci_ev_cmd_complete_t[HCI_OP_READ_INQ_RSP_TX_POWER, hci_rp_read_inq_rsp_tx_power]
   968  	hci_rp_read_link_policy			hci_ev_cmd_complete_t[HCI_OP_READ_LINK_POLICY, hci_rp_read_link_policy]
   969  	hci_rp_read_local_amp_assoc		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_AMP_ASSOC, hci_rp_read_local_amp_assoc]
   970  	hci_rp_read_local_amp_info		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_AMP_INFO, hci_rp_read_local_amp_info]
   971  	hci_rp_read_local_commands		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_COMMANDS, hci_rp_read_local_commands]
   972  	hci_rp_read_local_ext_features		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_EXT_FEATURES, hci_rp_read_local_ext_features]
   973  	hci_rp_read_local_features		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_FEATURES, hci_rp_read_local_features]
   974  	hci_rp_read_local_name			hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_NAME, hci_rp_read_local_name]
   975  	hci_rp_read_local_oob_data		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_OOB_DATA, hci_rp_read_local_oob_data]
   976  	hci_rp_read_local_oob_ext_data		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_OOB_EXT_DATA, hci_rp_read_local_oob_ext_data]
   977  	hci_rp_read_local_pairing_opts		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_PAIRING_OPTS, hci_rp_read_local_pairing_opts]
   978  	hci_rp_read_local_version		hci_ev_cmd_complete_t[HCI_OP_READ_LOCAL_VERSION, hci_rp_read_local_version]
   979  	hci_rp_read_num_supported_iac		hci_ev_cmd_complete_t[HCI_OP_READ_NUM_SUPPORTED_IAC, hci_rp_read_num_supported_iac]
   980  	hci_rp_read_page_scan_activity		hci_ev_cmd_complete_t[HCI_OP_READ_PAGE_SCAN_ACTIVITY, hci_rp_read_page_scan_activity]
   981  	hci_rp_read_page_scan_type		hci_ev_cmd_complete_t[HCI_OP_READ_PAGE_SCAN_TYPE, hci_rp_read_page_scan_type]
   982  	hci_rp_read_rssi			hci_ev_cmd_complete_t[HCI_OP_READ_RSSI, hci_rp_read_rssi]
   983  	hci_rp_read_sc_support			hci_ev_cmd_complete_t[HCI_OP_READ_SC_SUPPORT, hci_rp_read_sc_support]
   984  	hci_rp_read_ssp_mode			hci_ev_cmd_complete_t[HCI_OP_READ_SSP_MODE, hci_rp_read_ssp_mode]
   985  	hci_rp_read_stored_link_key		hci_ev_cmd_complete_t[HCI_OP_READ_STORED_LINK_KEY, hci_rp_read_stored_link_key]
   986  	hci_rp_read_tx_power			hci_ev_cmd_complete_t[HCI_OP_READ_TX_POWER, hci_rp_read_tx_power]
   987  	hci_rp_read_voice_setting		hci_ev_cmd_complete_t[HCI_OP_READ_VOICE_SETTING, hci_rp_read_voice_setting]
   988  	hci_rp_role_discovery			hci_ev_cmd_complete_t[HCI_OP_ROLE_DISCOVERY, hci_rp_role_discovery]
   989  	hci_rp_set_cpb				hci_ev_cmd_complete_t[HCI_OP_SET_CPB, hci_rp_set_cpb]
   990  	hci_rp_set_cpb_data			hci_ev_cmd_complete_t[HCI_OP_SET_CPB_DATA, hci_rp_set_cpb_data]
   991  	hci_rp_set_reserved_lt_addr		hci_ev_cmd_complete_t[HCI_OP_SET_RESERVED_LT_ADDR, hci_rp_set_reserved_lt_addr]
   992  	hci_rp_user_confirm_reply		hci_ev_cmd_complete_t[HCI_OP_USER_CONFIRM_REPLY, hci_rp_user_confirm_reply]
   993  	hci_rp_write_auth_payload_to		hci_ev_cmd_complete_t[HCI_OP_WRITE_AUTH_PAYLOAD_TO, hci_rp_write_auth_payload_to]
   994  	hci_rp_write_link_policy		hci_ev_cmd_complete_t[HCI_OP_WRITE_LINK_POLICY, hci_rp_write_link_policy]
   995  	hci_rp_write_remote_amp_assoc		hci_ev_cmd_complete_t[HCI_OP_WRITE_REMOTE_AMP_ASSOC, hci_rp_write_remote_amp_assoc]
   996  	hci_rp_write_sync_train_params		hci_ev_cmd_complete_t[HCI_OP_WRITE_SYNC_TRAIN_PARAMS, hci_rp_write_sync_train_params]
   997  	HCI_OP_INQUIRY_CANCEL			hci_ev_cmd_complete_t[HCI_OP_INQUIRY_CANCEL, int8]
   998  	HCI_OP_PERIODIC_INQ			hci_ev_cmd_complete_t[HCI_OP_PERIODIC_INQ, int8]
   999  	HCI_OP_EXIT_PERIODIC_INQ		hci_ev_cmd_complete_t[HCI_OP_EXIT_PERIODIC_INQ, int8]
  1000  # Unused:
  1001  # HCI_OP_REMOTE_NAME_REQ_CANCEL		hci_ev_cmd_complete_t[HCI_OP_REMOTE_NAME_REQ_CANCEL, int8]
  1002  	HCI_OP_WRITE_DEF_LINK_POLICY		hci_ev_cmd_complete_t[HCI_OP_WRITE_DEF_LINK_POLICY, int8]
  1003  	HCI_OP_RESET				hci_ev_cmd_complete_t[HCI_OP_RESET, int8]
  1004  	HCI_OP_WRITE_LOCAL_NAME			hci_ev_cmd_complete_t[HCI_OP_WRITE_LOCAL_NAME, int8]
  1005  	HCI_OP_WRITE_AUTH_ENABLE		hci_ev_cmd_complete_t[HCI_OP_WRITE_AUTH_ENABLE, int8]
  1006  	HCI_OP_WRITE_ENCRYPT_MODE		hci_ev_cmd_complete_t[HCI_OP_WRITE_ENCRYPT_MODE, int8]
  1007  	HCI_OP_WRITE_SCAN_ENABLE		hci_ev_cmd_complete_t[HCI_OP_WRITE_SCAN_ENABLE, int8]
  1008  	HCI_OP_WRITE_CLASS_OF_DEV		hci_ev_cmd_complete_t[HCI_OP_WRITE_CLASS_OF_DEV, int8]
  1009  	HCI_OP_WRITE_VOICE_SETTING		hci_ev_cmd_complete_t[HCI_OP_WRITE_VOICE_SETTING, int8]
  1010  	HCI_OP_WRITE_SSP_MODE			hci_ev_cmd_complete_t[HCI_OP_WRITE_SSP_MODE, int8]
  1011  	HCI_OP_WRITE_SC_SUPPORT			hci_ev_cmd_complete_t[HCI_OP_WRITE_SC_SUPPORT, int8]
  1012  	HCI_OP_WRITE_PAGE_SCAN_ACTIVITY		hci_ev_cmd_complete_t[HCI_OP_WRITE_PAGE_SCAN_ACTIVITY, int8]
  1013  	HCI_OP_WRITE_PAGE_SCAN_TYPE		hci_ev_cmd_complete_t[HCI_OP_WRITE_PAGE_SCAN_TYPE, int8]
  1014  	HCI_OP_WRITE_DEF_ERR_DATA_REPORTING	hci_ev_cmd_complete_t[HCI_OP_WRITE_DEF_ERR_DATA_REPORTING, int8]
  1015  	HCI_OP_USER_CONFIRM_NEG_REPLY		hci_ev_cmd_complete_t[HCI_OP_USER_CONFIRM_NEG_REPLY, int8]
  1016  	HCI_OP_USER_PASSKEY_REPLY		hci_ev_cmd_complete_t[HCI_OP_USER_PASSKEY_REPLY, int8]
  1017  	HCI_OP_USER_PASSKEY_NEG_REPLY		hci_ev_cmd_complete_t[HCI_OP_USER_PASSKEY_NEG_REPLY, int8]
  1018  	HCI_OP_LE_SET_RANDOM_ADDR		hci_ev_cmd_complete_t[HCI_OP_LE_SET_RANDOM_ADDR, int8]
  1019  	HCI_OP_LE_SET_ADV_ENABLE		hci_ev_cmd_complete_t[HCI_OP_LE_SET_ADV_ENABLE, int8]
  1020  	HCI_OP_LE_SET_SCAN_PARAM		hci_ev_cmd_complete_t[HCI_OP_LE_SET_SCAN_PARAM, int8]
  1021  	HCI_OP_LE_SET_SCAN_ENABLE		hci_ev_cmd_complete_t[HCI_OP_LE_SET_SCAN_ENABLE, int8]
  1022  	HCI_OP_LE_CLEAR_ACCEPT_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_CLEAR_ACCEPT_LIST, int8]
  1023  	HCI_OP_LE_ADD_TO_ACCEPT_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_ADD_TO_ACCEPT_LIST, int8]
  1024  	HCI_OP_LE_DEL_FROM_ACCEPT_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_DEL_FROM_ACCEPT_LIST, int8]
  1025  	HCI_OP_LE_WRITE_DEF_DATA_LEN		hci_ev_cmd_complete_t[HCI_OP_LE_WRITE_DEF_DATA_LEN, int8]
  1026  	HCI_OP_LE_ADD_TO_RESOLV_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_ADD_TO_RESOLV_LIST, int8]
  1027  	HCI_OP_LE_DEL_FROM_RESOLV_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_DEL_FROM_RESOLV_LIST, int8]
  1028  	HCI_OP_LE_CLEAR_RESOLV_LIST		hci_ev_cmd_complete_t[HCI_OP_LE_CLEAR_RESOLV_LIST, int8]
  1029  	HCI_OP_LE_SET_ADDR_RESOLV_ENABLE	hci_ev_cmd_complete_t[HCI_OP_LE_SET_ADDR_RESOLV_ENABLE, int8]
  1030  	HCI_OP_WRITE_LE_HOST_SUPPORTED		hci_ev_cmd_complete_t[HCI_OP_WRITE_LE_HOST_SUPPORTED, int8]
  1031  	HCI_OP_LE_SET_ADV_PARAM			hci_ev_cmd_complete_t[HCI_OP_LE_SET_ADV_PARAM, int8]
  1032  	HCI_OP_WRITE_SSP_DEBUG_MODE		hci_ev_cmd_complete_t[HCI_OP_WRITE_SSP_DEBUG_MODE, int8]
  1033  	HCI_OP_LE_SET_EXT_SCAN_PARAMS		hci_ev_cmd_complete_t[HCI_OP_LE_SET_EXT_SCAN_PARAMS, int8]
  1034  	HCI_OP_LE_SET_EXT_SCAN_ENABLE		hci_ev_cmd_complete_t[HCI_OP_LE_SET_EXT_SCAN_ENABLE, int8]
  1035  	HCI_OP_LE_SET_DEFAULT_PHY		hci_ev_cmd_complete_t[HCI_OP_LE_SET_DEFAULT_PHY, int8]
  1036  	HCI_OP_LE_SET_EXT_ADV_ENABLE		hci_ev_cmd_complete_t[HCI_OP_LE_SET_EXT_ADV_ENABLE, int8]
  1037  	HCI_OP_LE_SET_ADV_SET_RAND_ADDR		hci_ev_cmd_complete_t[HCI_OP_LE_SET_ADV_SET_RAND_ADDR, int8]
  1038  	HCI_OP_NOP				hci_ev_cmd_complete_t[HCI_OP_NOP, int8]
  1039  ] [varlen]
  1040  
  1041  type hci_ev_cmd_complete_t[OPCODE, PAYLOAD] {
  1042  	hdr	hci_ev_cmd_complete[OPCODE]
  1043  	payload	PAYLOAD
  1044  } [packed]
  1045  
  1046  type hci_ev_cmd_complete[OPCODE] {
  1047  	ncmd	int8
  1048  	opcode	const[OPCODE, int16]
  1049  } [packed]
  1050  
  1051  link_types = SCO_LINK, ACL_LINK, ESCO_LINK
  1052  bdaddr_types = ADDR_LE_DEV_PUBLIC, ADDR_LE_DEV_RANDOM
  1053  
  1054  extended_inquiry_info_t {
  1055  	num_rsp	len[rsps, int8]
  1056  	rsps	array[extended_inquiry_info]
  1057  } [packed]
  1058  
  1059  extended_inquiry_info {
  1060  	bdaddr			bdaddr_t
  1061  	pscan_rep_mode		int8
  1062  	pscan_period_mode	int8
  1063  	dev_class		array[int8, 3]
  1064  	clock_offset		int16
  1065  	rssi			int8
  1066  	data			array[int8, 240]
  1067  } [packed]
  1068  
  1069  hci_comp_blocks_info {
  1070  	handle	hci_conn_handle
  1071  	pkts	int16
  1072  	blocks	int16
  1073  } [packed]
  1074  
  1075  hci_comp_pkts_info {
  1076  	handle	hci_conn_handle
  1077  	count	int16
  1078  } [packed]
  1079  
  1080  hci_ev_auth_complete {
  1081  	status	int8
  1082  	handle	hci_conn_handle
  1083  } [packed]
  1084  
  1085  hci_ev_change_link_key_complete {
  1086  	status	int8
  1087  	handle	hci_conn_handle
  1088  } [packed]
  1089  
  1090  hci_ev_channel_selected {
  1091  	phy_handle	hci_phy_handle
  1092  } [packed]
  1093  
  1094  hci_ev_clock_offset {
  1095  	status		int8
  1096  	handle		hci_conn_handle
  1097  	clock_offset	int16
  1098  } [packed]
  1099  
  1100  hci_ev_cmd_status_opcodes = HCI_OP_NOP, HCI_OP_INQUIRY, HCI_OP_CREATE_CONN, HCI_OP_DISCONNECT, HCI_OP_ADD_SCO, HCI_OP_AUTH_REQUESTED, HCI_OP_SET_CONN_ENCRYPT, HCI_OP_REMOTE_NAME_REQ, HCI_OP_READ_REMOTE_FEATURES, HCI_OP_READ_REMOTE_EXT_FEATURES, HCI_OP_SETUP_SYNC_CONN, HCI_OP_SNIFF_MODE, HCI_OP_EXIT_SNIFF_MODE, HCI_OP_SWITCH_ROLE, HCI_OP_LE_CREATE_CONN, HCI_OP_LE_READ_REMOTE_FEATURES, HCI_OP_LE_START_ENC, HCI_OP_LE_EXT_CREATE_CONN
  1101  
  1102  hci_ev_cmd_status {
  1103  	status	int8
  1104  	ncmd	bool8
  1105  	opcode	flags[hci_ev_cmd_status_opcodes, int16]
  1106  } [packed]
  1107  
  1108  hci_ev_conn_complete {
  1109  	status		int8
  1110  	handle		hci_conn_handle
  1111  	bdaddr		bdaddr_t
  1112  	link_type	flags[link_types, int8]
  1113  	encr_mode	int8
  1114  } [packed]
  1115  
  1116  hci_ev_conn_request {
  1117  	bdaddr		bdaddr_t
  1118  	dev_class	array[int8, 3]
  1119  	link_type	flags[link_types, int8]
  1120  } [packed]
  1121  
  1122  hci_ev_disconn_complete {
  1123  	status	int8
  1124  	handle	hci_conn_handle
  1125  	reason	int8
  1126  } [packed]
  1127  
  1128  hci_ev_disconn_logical_link_complete {
  1129  	status	int8
  1130  	handle	hci_conn_handle
  1131  	reason	int8
  1132  } [packed]
  1133  
  1134  hci_ev_disconn_phy_link_complete {
  1135  	status		int8
  1136  	phy_handle	hci_phy_handle
  1137  	reason		int8
  1138  } [packed]
  1139  
  1140  hci_ev_encrypt_change {
  1141  	status	int8
  1142  	handle	hci_conn_handle
  1143  	encrypt	int8
  1144  } [packed]
  1145  
  1146  hci_ev_hardware_error {
  1147  	code	int8
  1148  } [packed]
  1149  
  1150  hci_ev_io_capa_reply {
  1151  	bdaddr		bdaddr_t
  1152  	capability	int8
  1153  	oob_data	int8
  1154  	authentication	int8
  1155  } [packed]
  1156  
  1157  hci_ev_io_capa_request {
  1158  	bdaddr	bdaddr_t
  1159  } [packed]
  1160  
  1161  hci_ev_key_refresh_complete {
  1162  	status	int8
  1163  	handle	hci_conn_handle
  1164  } [packed]
  1165  
  1166  hci_ev_keypress_notify {
  1167  	bdaddr	bdaddr_t
  1168  	type	int8
  1169  } [packed]
  1170  
  1171  hci_ev_le_advertising_info_t {
  1172  	num_reports	len[reports, int8]
  1173  	reports		array[hci_ev_le_advertising_info]
  1174  } [packed]
  1175  
  1176  hci_ev_le_advertising_info {
  1177  	evt_type	flags[hci_adv_evt_type, int8]
  1178  	bdaddr_type	flags[bdaddr_types, int8]
  1179  	bdaddr		bdaddr_t
  1180  	length		bytesize[data, int8]
  1181  	data		array[int8, 0:HCI_MAX_AD_LENGTH]
  1182  	rssi		int8
  1183  } [packed]
  1184  
  1185  hci_adv_evt_type = LE_ADV_IND, LE_ADV_DIRECT_IND, LE_ADV_SCAN_IND, LE_ADV_NONCONN_IND, LE_ADV_SCAN_RSP
  1186  
  1187  hci_ev_le_conn_complete {
  1188  	status			int8
  1189  	handle			hci_conn_handle
  1190  	role			int8
  1191  	bdaddr_type		flags[bdaddr_types, int8]
  1192  	bdaddr			bdaddr_t
  1193  	interval		int16
  1194  	latency			int16
  1195  	supervision_timeout	int16
  1196  	clk_accurancy		int8
  1197  } [packed]
  1198  
  1199  hci_ev_le_conn_update_complete {
  1200  	status			const[0, int8]
  1201  	handle			hci_conn_handle
  1202  	interval		int16
  1203  	latency			int16
  1204  	supervision_timeout	int16
  1205  } [packed]
  1206  
  1207  hci_ev_le_data_len_change {
  1208  	handle	hci_conn_handle
  1209  	tx_len	int16
  1210  	tx_time	int16
  1211  	rx_len	int16
  1212  	rx_time	int16
  1213  } [packed]
  1214  
  1215  hci_ev_le_direct_adv_info {
  1216  	evt_type		int8
  1217  	bdaddr_type		flags[bdaddr_types, int8]
  1218  	bdaddr			bdaddr_t
  1219  	direct_addr_type	int8
  1220  	direct_addr		bdaddr_t
  1221  	rssi			int8
  1222  } [packed]
  1223  
  1224  hci_ev_le_enh_conn_complete {
  1225  	status			int8
  1226  	handle			hci_conn_handle
  1227  	role			int8
  1228  	bdaddr_type		flags[bdaddr_types, int8]
  1229  	bdaddr			bdaddr_t
  1230  	local_rpa		bdaddr_t
  1231  	peer_rpa		bdaddr_t
  1232  	interval		int16
  1233  	latency			int16
  1234  	supervision_timeout	int16
  1235  	clk_accurancy		int8
  1236  } [packed]
  1237  
  1238  hci_ev_le_ext_adv_report {
  1239  	num	len[info, int8]
  1240  	info	array[hci_ev_le_ext_adv_info]
  1241  } [packed]
  1242  
  1243  hci_ev_le_ext_adv_info {
  1244  	type			flags[hci_legacy_adv_evt_type, int16]
  1245  	bdaddr_type		flags[bdaddr_types, int8]
  1246  	bdaddr			bdaddr_t
  1247  	primary_phy		int8
  1248  	secondary_phy		int8
  1249  	sid			int8
  1250  	tx_power		int8
  1251  	rssi			int8
  1252  	interval		int16
  1253  	direct_addr_type	int8
  1254  	direct_addr		bdaddr_t
  1255  	length			bytesize[data, int8]
  1256  	data			array[int8]
  1257  } [packed]
  1258  
  1259  hci_legacy_adv_evt_type = LE_LEGACY_ADV_IND, LE_LEGACY_ADV_DIRECT_IND, LE_LEGACY_ADV_SCAN_IND, LE_LEGACY_NONCONN_IND, LE_LEGACY_SCAN_RSP_ADV, LE_LEGACY_SCAN_RSP_ADV_SCAN, LE_EXT_ADV_NON_CONN_IND, LE_EXT_ADV_CONN_IND, LE_EXT_ADV_SCAN_IND, LE_EXT_ADV_DIRECT_IND, LE_EXT_ADV_SCAN_RSP, LE_EXT_ADV_LEGACY_PDU
  1260  
  1261  hci_ev_le_ltk_req {
  1262  	handle	hci_conn_handle
  1263  	rand	int64
  1264  	ediv	int16
  1265  } [packed]
  1266  
  1267  hci_ev_le_phy_update_complete {
  1268  	status	int8
  1269  	handle	hci_conn_handle
  1270  	tx_phy	int8
  1271  	rx_phy	int8
  1272  } [packed]
  1273  
  1274  hci_ev_le_remote_conn_param_req {
  1275  	handle		hci_conn_handle
  1276  	interval_min	int16
  1277  	interval_max	int16
  1278  	latency		int16
  1279  	timeout		int16
  1280  } [packed]
  1281  
  1282  hci_ev_le_remote_feat_complete {
  1283  	status		int8
  1284  	handle		hci_conn_handle
  1285  	features	array[int8, 8]
  1286  } [packed]
  1287  
  1288  hci_ev_link_key_notify {
  1289  	bdaddr		bdaddr_t
  1290  	link_key	array[int8, 16]
  1291  	key_type	int8
  1292  } [packed]
  1293  
  1294  hci_ev_link_key_req {
  1295  	bdaddr	bdaddr_t
  1296  } [packed]
  1297  
  1298  hci_ev_logical_link_complete {
  1299  	status		int8
  1300  	handle		hci_conn_handle
  1301  	phy_handle	hci_phy_handle
  1302  	flow_spec_id	int8
  1303  } [packed]
  1304  
  1305  hci_ev_mode_change {
  1306  	status		int8
  1307  	handle		hci_conn_handle
  1308  	mode		int8
  1309  	interval	int16
  1310  } [packed]
  1311  
  1312  hci_ev_num_comp_blocks {
  1313  	num_blocks	int16
  1314  	num_hndl	len[handles, int8]
  1315  	handles		array[hci_comp_blocks_info]
  1316  } [packed]
  1317  
  1318  hci_ev_num_comp_pkts {
  1319  	num_hndl	len[handles, int8]
  1320  	handles		array[hci_comp_pkts_info]
  1321  } [packed]
  1322  
  1323  hci_ev_phy_link_complete {
  1324  	status		int8
  1325  	phy_handle	hci_phy_handle
  1326  } [packed]
  1327  
  1328  hci_ev_pin_code_req {
  1329  	bdaddr	bdaddr_t
  1330  } [packed]
  1331  
  1332  hci_ev_pkt_type_change {
  1333  	status		int8
  1334  	handle		hci_conn_handle
  1335  	pkt_type	int16
  1336  } [packed]
  1337  
  1338  hci_ev_pscan_rep_mode {
  1339  	bdaddr		bdaddr_t
  1340  	pscan_rep_mode	int8
  1341  } [packed]
  1342  
  1343  hci_ev_qos_setup_complete {
  1344  	status	int8
  1345  	handle	hci_conn_handle
  1346  	qos	hci_qos
  1347  } [packed]
  1348  
  1349  hci_ev_remote_ext_features {
  1350  	status		int8
  1351  	handle		hci_conn_handle
  1352  	page		int8
  1353  	max_page	int8
  1354  	features	array[int8, 8]
  1355  } [packed]
  1356  
  1357  hci_ev_remote_features {
  1358  	status		int8
  1359  	handle		hci_conn_handle
  1360  	features	array[int8, 8]
  1361  } [packed]
  1362  
  1363  hci_ev_remote_host_features {
  1364  	bdaddr		bdaddr_t
  1365  	features	array[int8, 8]
  1366  } [packed]
  1367  
  1368  hci_ev_remote_name {
  1369  	status	int8
  1370  	bdaddr	bdaddr_t
  1371  	name	array[int8, 248]
  1372  } [packed]
  1373  
  1374  hci_ev_remote_oob_data_request {
  1375  	bdaddr	bdaddr_t
  1376  } [packed]
  1377  
  1378  hci_ev_remote_version {
  1379  	status		int8
  1380  	handle		hci_conn_handle
  1381  	lmp_ver		int8
  1382  	manufacturer	int16
  1383  	lmp_subver	int16
  1384  } [packed]
  1385  
  1386  hci_ev_role_change {
  1387  	status	int8
  1388  	bdaddr	bdaddr_t
  1389  	role	int8
  1390  } [packed]
  1391  
  1392  hci_ev_si_device {
  1393  	event	int16
  1394  	dev_id	int16
  1395  } [packed]
  1396  
  1397  hci_ev_si_security {
  1398  	event		int16
  1399  	proto		int16
  1400  	subproto	int16
  1401  	incoming	int8
  1402  } [packed]
  1403  
  1404  hci_ev_simple_pair_complete {
  1405  	status	int8
  1406  	bdaddr	bdaddr_t
  1407  } [packed]
  1408  
  1409  hci_ev_sniff_subrate {
  1410  	status			int8
  1411  	handle			hci_conn_handle
  1412  	max_tx_latency		int16
  1413  	max_rx_latency		int16
  1414  	max_remote_timeout	int16
  1415  	max_local_timeout	int16
  1416  } [packed]
  1417  
  1418  hci_ev_stack_internal {
  1419  	type	int16
  1420  	data	array[int8]
  1421  } [packed]
  1422  
  1423  hci_ev_sync_conn_changed {
  1424  	status		int8
  1425  	handle		hci_conn_handle
  1426  	tx_interval	int8
  1427  	retrans_window	int8
  1428  	rx_pkt_len	int16
  1429  	tx_pkt_len	int16
  1430  } [packed]
  1431  
  1432  hci_ev_sync_conn_complete {
  1433  	status		int8
  1434  	handle		hci_conn_handle
  1435  	bdaddr		bdaddr_t
  1436  	link_type	flags[link_types, int8]
  1437  	tx_interval	int8
  1438  	retrans_window	int8
  1439  	rx_pkt_len	int16
  1440  	tx_pkt_len	int16
  1441  	air_mode	int8
  1442  } [packed]
  1443  
  1444  hci_ev_sync_train_complete {
  1445  	status	int8
  1446  } [packed]
  1447  
  1448  hci_ev_user_confirm_req {
  1449  	bdaddr	bdaddr_t
  1450  	passkey	int32
  1451  } [packed]
  1452  
  1453  hci_ev_user_passkey_notify {
  1454  	bdaddr	bdaddr_t
  1455  	passkey	int32
  1456  } [packed]
  1457  
  1458  hci_ev_user_passkey_req {
  1459  	bdaddr	bdaddr_t
  1460  } [packed]
  1461  
  1462  hci_evt_le_cis_established {
  1463  	status		int8
  1464  	handle		hci_conn_handle
  1465  	cig_sync_delay	array[int8, 3]
  1466  	cis_sync_delay	array[int8, 3]
  1467  	m_latency	array[int8, 3]
  1468  	s_latency	array[int8, 3]
  1469  	m_phy		int8
  1470  	s_phy		int8
  1471  	nse		int8
  1472  	m_bn		int8
  1473  	s_bn		int8
  1474  	m_ft		int8
  1475  	s_ft		int8
  1476  	m_mtu		int16
  1477  	s_mtu		int16
  1478  	interval	int16
  1479  } [packed]
  1480  
  1481  hci_evt_le_ext_adv_set_term {
  1482  	status		const[0, int8]
  1483  # This does not seem to be used.
  1484  	handle		const[0, int8]
  1485  	conn_handle	hci_conn_handle
  1486  	num_evts	int8
  1487  } [packed]
  1488  
  1489  hci_rp_delete_reserved_lt_addr {
  1490  	status	int8
  1491  	lt_addr	int8
  1492  } [packed]
  1493  
  1494  hci_rp_delete_stored_link_key {
  1495  	status		int8
  1496  	num_keys	int16
  1497  } [packed]
  1498  
  1499  hci_rp_le_ltk_neg_reply {
  1500  	status	int8
  1501  	handle	hci_conn_handle
  1502  } [packed]
  1503  
  1504  hci_rp_le_ltk_reply {
  1505  	status	int8
  1506  	handle	hci_conn_handle
  1507  } [packed]
  1508  
  1509  hci_rp_le_read_adv_tx_power {
  1510  	status		int8
  1511  	tx_power	int8
  1512  } [packed]
  1513  
  1514  hci_rp_le_read_buffer_size {
  1515  	status		int8
  1516  	le_mtu		int16
  1517  	le_max_pkt	int8
  1518  } [packed]
  1519  
  1520  hci_rp_le_read_buffer_size_v2 {
  1521  	status		int8
  1522  	acl_mtu		int16
  1523  	acl_max_pkt	int8
  1524  	iso_mtu		int16
  1525  	iso_max_pkt	int8
  1526  } [packed]
  1527  
  1528  hci_rp_le_read_def_data_len {
  1529  	status	int8
  1530  	tx_len	int16
  1531  	tx_time	int16
  1532  } [packed]
  1533  
  1534  hci_rp_le_read_iso_tx_sync {
  1535  	status		int8
  1536  	handle		hci_conn_handle
  1537  	seq		int16
  1538  	imestamp	int32
  1539  	offset		array[int8, 3]
  1540  } [packed]
  1541  
  1542  hci_rp_le_read_local_features {
  1543  	status		int8
  1544  	features	array[int8, 8]
  1545  } [packed]
  1546  
  1547  hci_rp_le_read_max_data_len {
  1548  	status	int8
  1549  	tx_len	int16
  1550  	tx_time	int16
  1551  	rx_len	int16
  1552  	rx_time	int16
  1553  } [packed]
  1554  
  1555  hci_rp_le_read_num_supported_adv_sets {
  1556  	status		int8
  1557  	num_of_sets	int8
  1558  } [packed]
  1559  
  1560  hci_rp_le_read_resolv_list_size {
  1561  	status	int8
  1562  	size	int8
  1563  } [packed]
  1564  
  1565  hci_rp_le_read_supported_states {
  1566  	status		int8
  1567  	le_states	array[int8, 8]
  1568  } [packed]
  1569  
  1570  hci_rp_le_read_accept_list_size {
  1571  	status	int8
  1572  	size	int8
  1573  } [packed]
  1574  
  1575  hci_rp_le_set_cig_params {
  1576  	status		int8
  1577  	cig_id		int8
  1578  	num_handles	len[handle, int8]
  1579  	handle		array[hci_conn_handle]
  1580  } [packed]
  1581  
  1582  hci_rp_le_set_data_len {
  1583  	status	int8
  1584  	handle	hci_conn_handle
  1585  } [packed]
  1586  
  1587  hci_rp_le_set_ext_adv_params {
  1588  	status		int8
  1589  	tx_power	int8
  1590  } [packed]
  1591  
  1592  hci_rp_logical_link_cancel {
  1593  	status		int8
  1594  	phy_handle	hci_phy_handle
  1595  	flow_spec_id	int8
  1596  } [packed]
  1597  
  1598  hci_rp_pin_code_neg_reply {
  1599  	status	int8
  1600  	bdaddr	bdaddr_t
  1601  } [packed]
  1602  
  1603  hci_rp_pin_code_reply {
  1604  	status	int8
  1605  	bdaddr	bdaddr_t
  1606  } [packed]
  1607  
  1608  hci_rp_read_auth_payload_to {
  1609  	status	int8
  1610  	handle	hci_conn_handle
  1611  	timeout	int16
  1612  } [packed]
  1613  
  1614  hci_rp_read_bd_addr {
  1615  	status	int8
  1616  	bdaddr	bdaddr_t
  1617  } [packed]
  1618  
  1619  hci_rp_read_buffer_size {
  1620  	status		int8
  1621  	acl_mtu		int16
  1622  	sco_mtu		int8
  1623  	acl_max_pkt	int16
  1624  	sco_max_pkt	int16
  1625  } [packed]
  1626  
  1627  hci_rp_read_class_of_dev {
  1628  	status		int8
  1629  	dev_class	array[int8, 3]
  1630  } [packed]
  1631  
  1632  hci_rp_read_clock {
  1633  	status		int8
  1634  	handle		hci_conn_handle
  1635  	clock		int32
  1636  	accuracy	int16
  1637  } [packed]
  1638  
  1639  hci_rp_read_data_block_size {
  1640  	status		int8
  1641  	max_acl_len	int16
  1642  	block_len	int16
  1643  	num_blocks	int16
  1644  } [packed]
  1645  
  1646  hci_rp_read_def_err_data_reporting {
  1647  	status			int8
  1648  	err_data_reporting	int8
  1649  } [packed]
  1650  
  1651  hci_rp_read_def_link_policy {
  1652  	status	int8
  1653  	policy	int16
  1654  } [packed]
  1655  
  1656  hci_rp_read_enc_key_size {
  1657  	status		int8
  1658  	handle		hci_conn_handle
  1659  	key_size	int8
  1660  } [packed]
  1661  
  1662  hci_rp_read_flow_control_mode {
  1663  	status	int8
  1664  	mode	int8
  1665  } [packed]
  1666  
  1667  hci_rp_read_inq_rsp_tx_power {
  1668  	status		int8
  1669  	tx_power	int8
  1670  } [packed]
  1671  
  1672  hci_rp_read_link_policy {
  1673  	status	int8
  1674  	handle	hci_conn_handle
  1675  	policy	int16
  1676  } [packed]
  1677  
  1678  hci_rp_read_local_amp_assoc {
  1679  	status		int8
  1680  	phy_handle	hci_phy_handle
  1681  	rem_len		int16
  1682  	frag		array[int8]
  1683  } [packed]
  1684  
  1685  hci_rp_read_local_amp_info {
  1686  	status		int8
  1687  	amp_status	int8
  1688  	total_bw	int32
  1689  	max_bw		int32
  1690  	min_latency	int32
  1691  	max_pdu		int32
  1692  	amp_type	int8
  1693  	pal_cap		int16
  1694  	max_assoc_size	int16
  1695  	max_flush_to	int32
  1696  	be_flush_to	int32
  1697  } [packed]
  1698  
  1699  hci_rp_read_local_commands {
  1700  	status		int8
  1701  	commands	array[int8, 64]
  1702  } [packed]
  1703  
  1704  hci_rp_read_local_ext_features {
  1705  	status		int8
  1706  	page		int8
  1707  	max_page	int8
  1708  	features	array[int8, 8]
  1709  } [packed]
  1710  
  1711  hci_rp_read_local_features {
  1712  	status		int8
  1713  	features	array[int8, 8]
  1714  } [packed]
  1715  
  1716  hci_rp_read_local_name {
  1717  	status	int8
  1718  	name	array[int8, 248]
  1719  } [packed]
  1720  
  1721  hci_rp_read_local_oob_data {
  1722  	status	int8
  1723  	hash	array[int8, 16]
  1724  	rand	array[int8, 16]
  1725  } [packed]
  1726  
  1727  hci_rp_read_local_oob_ext_data {
  1728  	status	int8
  1729  	hash192	array[int8, 16]
  1730  	rand192	array[int8, 16]
  1731  	hash256	array[int8, 16]
  1732  	rand256	array[int8, 16]
  1733  } [packed]
  1734  
  1735  hci_rp_read_local_pairing_opts {
  1736  	status		int8
  1737  	pairing_opts	int8
  1738  	max_key_size	int8
  1739  } [packed]
  1740  
  1741  hci_rp_read_local_version {
  1742  	status		int8
  1743  	hci_ver		int8
  1744  	hci_rev		int16
  1745  	lmp_ver		int8
  1746  	manufacturer	int16
  1747  	lmp_subver	int16
  1748  } [packed]
  1749  
  1750  hci_rp_read_num_supported_iac {
  1751  	status	int8
  1752  	num_iac	int8
  1753  } [packed]
  1754  
  1755  hci_rp_read_page_scan_activity {
  1756  	status		int8
  1757  	interval	int16
  1758  	window		int16
  1759  } [packed]
  1760  
  1761  hci_rp_read_page_scan_type {
  1762  	status	int8
  1763  	type	int8
  1764  } [packed]
  1765  
  1766  hci_rp_read_rssi {
  1767  	status	int8
  1768  	handle	hci_conn_handle
  1769  	rssi	int8
  1770  } [packed]
  1771  
  1772  hci_rp_read_sc_support {
  1773  	status	int8
  1774  	support	int8
  1775  } [packed]
  1776  
  1777  hci_rp_read_ssp_mode {
  1778  	status	int8
  1779  	mode	int8
  1780  } [packed]
  1781  
  1782  hci_rp_read_stored_link_key {
  1783  	status		int8
  1784  	max_keys	int16
  1785  	num_keys	int16
  1786  } [packed]
  1787  
  1788  hci_rp_read_tx_power {
  1789  	status		int8
  1790  	handle		hci_conn_handle
  1791  	tx_power	int8
  1792  } [packed]
  1793  
  1794  hci_rp_read_voice_setting {
  1795  	status		int8
  1796  	voice_setting	int16
  1797  } [packed]
  1798  
  1799  hci_rp_role_discovery {
  1800  	status	int8
  1801  	handle	hci_conn_handle
  1802  	role	int8
  1803  } [packed]
  1804  
  1805  hci_rp_set_cpb {
  1806  	status		int8
  1807  	lt_addr		int8
  1808  	interval	int16
  1809  } [packed]
  1810  
  1811  hci_rp_set_cpb_data {
  1812  	status	int8
  1813  	lt_addr	int8
  1814  } [packed]
  1815  
  1816  hci_rp_set_reserved_lt_addr {
  1817  	status	int8
  1818  	lt_addr	int8
  1819  } [packed]
  1820  
  1821  hci_rp_user_confirm_reply {
  1822  	status	int8
  1823  	bdaddr	bdaddr_t
  1824  } [packed]
  1825  
  1826  hci_rp_write_auth_payload_to {
  1827  	status	int8
  1828  	handle	hci_conn_handle
  1829  } [packed]
  1830  
  1831  hci_rp_write_link_policy {
  1832  	status	int8
  1833  	handle	hci_conn_handle
  1834  } [packed]
  1835  
  1836  hci_rp_write_remote_amp_assoc {
  1837  	status		int8
  1838  	phy_handle	hci_phy_handle
  1839  } [packed]
  1840  
  1841  hci_rp_write_sync_train_params {
  1842  	status		int8
  1843  	sync_train_int	int16
  1844  } [packed]
  1845  
  1846  hci_qos {
  1847  	service_type	int8
  1848  	token_rate	int32
  1849  	peak_bandwidth	int32
  1850  	latency		int32
  1851  	delay_variation	int32
  1852  } [packed]
  1853  
  1854  inquiry_info_t {
  1855  	num_rsp	len[rsps, int8]
  1856  	rsps	array[inquiry_info]
  1857  } [packed]
  1858  
  1859  inquiry_info {
  1860  	bdaddr			bdaddr_t
  1861  	pscan_rep_mode		int8
  1862  	pscan_period_mode	int8
  1863  	pscan_mode		int8
  1864  	dev_class		array[int8, 3]
  1865  	clock_offset		int16
  1866  } [packed]
  1867  
  1868  inquiry_info_with_rssi_t {
  1869  	num_rsp	len[rsps, int8]
  1870  	rsps	array[inquiry_info_with_rssi]
  1871  } [packed]
  1872  
  1873  inquiry_info_with_rssi {
  1874  	bdaddr			bdaddr_t
  1875  	pscan_rep_mode		int8
  1876  	pscan_period_mode	int8
  1877  	dev_class		array[int8, 3]
  1878  	clock_offset		int16
  1879  	rssi			int8
  1880  } [packed]
  1881  
  1882  inquiry_info_with_rssi_and_pscan_mode_t {
  1883  	num_rsp	len[rsps, int8]
  1884  	rsps	array[inquiry_info_with_rssi_and_pscan_mode]
  1885  } [packed]
  1886  
  1887  inquiry_info_with_rssi_and_pscan_mode {
  1888  	bdaddr			bdaddr_t
  1889  	pscan_rep_mode		int8
  1890  	pscan_period_mode	int8
  1891  	pscan_mode		int8
  1892  	dev_class		array[int8, 3]
  1893  	clock_offset		int16
  1894  	rssi			int8
  1895  } [packed]