/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2011-2014  Intel Corporation
 *  Copyright (C) 2002-2010  Marcel Holtmann <marcel@holtmann.org>
 *
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#include <stdint.h>

struct bt_ll_hdr {
	uint8_t  preamble;
	uint32_t access_addr;
} __attribute__ ((packed));

#define BT_LL_CONN_UPDATE_REQ	0x00
struct bt_ll_conn_update_req {
	uint8_t  win_size;
	uint16_t win_offset;
	uint16_t interval;
	uint16_t latency;
	uint16_t timeout;
	uint16_t instant;
} __attribute__ ((packed));

#define BT_LL_CHANNEL_MAP_REQ	0x01
struct bt_ll_channel_map_req {
	uint8_t  map[5];
	uint16_t instant;
} __attribute__ ((packed));

#define BT_LL_TERMINATE_IND	0x02
struct bt_ll_terminate_ind {
	uint8_t  error;
} __attribute__ ((packed));

#define BT_LL_ENC_REQ		0x03
struct bt_ll_enc_req {
	uint64_t rand;
	uint16_t ediv;
	uint64_t skd;
	uint32_t iv;
} __attribute__ ((packed));

#define BT_LL_ENC_RSP		0x04
struct bt_ll_enc_rsp {
	uint64_t skd;
	uint32_t iv;
} __attribute__ ((packed));

#define BT_LL_START_ENC_REQ	0x05

#define BT_LL_START_ENC_RSP	0x06

#define BT_LL_UNKNOWN_RSP	0x07
struct bt_ll_unknown_rsp {
	uint8_t  type;
} __attribute__ ((packed));

#define BT_LL_FEATURE_REQ	0x08
struct bt_ll_feature_req {
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LL_FEATURE_RSP	0x09
struct bt_ll_feature_rsp {
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LL_PAUSE_ENC_REQ	0x0a

#define BT_LL_PAUSE_ENC_RSP	0x0b

#define BT_LL_VERSION_IND	0x0c
struct bt_ll_version_ind {
	uint8_t  version;
	uint16_t company;
	uint16_t subversion;
} __attribute__ ((packed));

#define BT_LL_REJECT_IND	0x0d
struct bt_ll_reject_ind {
	uint8_t  error;
} __attribute__ ((packed));

#define LMP_ESC4(x) ((127 << 8) | (x))

#define BT_LMP_ACCEPTED			3
struct bt_lmp_accepted {
	uint8_t  opcode;
} __attribute__ ((packed));

#define BT_LMP_NOT_ACCEPTED		4
struct bt_lmp_not_accepted {
	uint8_t  opcode;
	uint8_t  error;
} __attribute__ ((packed));

#define BT_LMP_CLKOFFSET_REQ		5

#define BT_LMP_DETACH			7
struct bt_lmp_detach {
	uint8_t  error;
} __attribute__ ((packed));

#define BT_LMP_AU_RAND			11
struct bt_lmp_au_rand {
	uint8_t  number[16];
} __attribute__ ((packed));

#define BT_LMP_SRES			12
struct bt_lmp_sres {
	uint8_t  response[4];
} __attribute__ ((packed));

#define BT_LMP_ENCRYPTION_MODE_REQ	15
struct bt_lmp_encryption_mode_req {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_LMP_ENCRYPTION_KEY_SIZE_REQ	16
struct bt_lmp_encryption_key_size_req {
	uint8_t  key_size;
} __attribute__ ((packed));

#define BT_LMP_START_ENCRYPTION_REQ	17
struct bt_lmp_start_encryption_req {
	uint8_t  number[16];
} __attribute__ ((packed));

#define BT_LMP_STOP_ENCRYPTION_REQ	18

#define BT_LMP_UNSNIFF_REQ		24

#define BT_LMP_MAX_POWER		33

#define BT_LMP_MIN_POWER		34

#define BT_LMP_AUTO_RATE		35

#define BT_LMP_VERSION_REQ		37
struct bt_lmp_version_req {
	uint8_t  version;
	uint16_t company;
	uint16_t subversion;
} __attribute__ ((packed));

#define BT_LMP_VERSION_RES		38
struct bt_lmp_version_res {
	uint8_t  version;
	uint16_t company;
	uint16_t subversion;
} __attribute__ ((packed));

#define BT_LMP_FEATURES_REQ		39
struct bt_lmp_features_req {
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LMP_FEATURES_RES		40
struct bt_lmp_features_res {
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LMP_MAX_SLOT			45
struct bt_lmp_max_slot {
	uint8_t  slots;
} __attribute__ ((packed));

#define BT_LMP_MAX_SLOT_REQ		46
struct bt_lmp_max_slot_req {
	uint8_t  slots;
} __attribute__ ((packed));

#define BT_LMP_TIMING_ACCURACY_REQ	47

#define BT_LMP_TIMING_ACCURACY_RES	48
struct bt_lmp_timing_accuracy_res {
	uint8_t  drift;
	uint8_t  jitter;
} __attribute__ ((packed));

#define BT_LMP_SETUP_COMPLETE		49

#define BT_LMP_USE_SEMI_PERMANENT_KEY	50

#define BT_LMP_HOST_CONNECTION_REQ	51

#define BT_LMP_PAGE_SCAN_MODE_REQ	54
struct bt_lmp_page_scan_mode_req {
	uint8_t  scheme;
	uint8_t  settings;
} __attribute__ ((packed));

#define BT_LMP_TEST_ACTIVATE		56

#define BT_LMP_ENCRYPTION_KEY_SIZE_MASK_REQ	58

#define BT_LMP_SET_AFH			60
struct bt_lmp_set_afh {
	uint32_t instant;
	uint8_t  mode;
	uint8_t  map[10];
} __attribute__ ((packed));

#define BT_LMP_ENCAPSULATED_HEADER	61
struct bt_lmp_encapsulated_header {
	uint8_t  major;
	uint8_t  minor;
	uint8_t  length;
} __attribute__ ((packed));

#define BT_LMP_ENCAPSULATED_PAYLOAD	62
struct bt_lmp_encapsulated_payload {
	uint8_t  data[16];
} __attribute__ ((packed));

#define BT_LMP_SIMPLE_PAIRING_CONFIRM	63
struct bt_lmp_simple_pairing_confirm {
	uint8_t  value[16];
} __attribute__ ((packed));

#define BT_LMP_SIMPLE_PAIRING_NUMBER	64
struct bt_lmp_simple_pairing_number {
	uint8_t  value[16];
} __attribute__ ((packed));

#define BT_LMP_DHKEY_CHECK		65
struct bt_lmp_dhkey_check {
	uint8_t  value[16];
} __attribute__ ((packed));

#define BT_LMP_PAUSE_ENCRYPTION_AES_REQ	66

#define BT_LMP_ACCEPTED_EXT		LMP_ESC4(1)
struct bt_lmp_accepted_ext {
	uint8_t  escape;
	uint8_t  opcode;
} __attribute__ ((packed));

#define BT_LMP_NOT_ACCEPTED_EXT		LMP_ESC4(2)
struct bt_lmp_not_accepted_ext {
	uint8_t  escape;
	uint8_t  opcode;
	uint8_t  error;
} __attribute__ ((packed));

#define BT_LMP_FEATURES_REQ_EXT		LMP_ESC4(3)
struct bt_lmp_features_req_ext {
	uint8_t  page;
	uint8_t  max_page;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LMP_FEATURES_RES_EXT		LMP_ESC4(4)
struct bt_lmp_features_res_ext {
	uint8_t  page;
	uint8_t  max_page;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_LMP_PACKET_TYPE_TABLE_REQ	LMP_ESC4(11)
struct bt_lmp_packet_type_table_req {
	uint8_t  table;
} __attribute__ ((packed));

#define BT_LMP_CHANNEL_CLASSIFICATION_REQ	LMP_ESC4(16)
struct bt_lmp_channel_classification_req {
	uint8_t  mode;
	uint16_t min_interval;
	uint16_t max_interval;
} __attribute__ ((packed));

#define BT_LMP_CHANNEL_CLASSIFICATION	LMP_ESC4(17)
struct bt_lmp_channel_classification {
	uint8_t  classification[10];
} __attribute__ ((packed));

#define BT_LMP_PAUSE_ENCRYPTION_REQ	LMP_ESC4(23)

#define BT_LMP_RESUME_ENCRYPTION_REQ	LMP_ESC4(24)

#define BT_LMP_IO_CAPABILITY_REQ	LMP_ESC4(25)
struct bt_lmp_io_capability_req {
	uint8_t  capability;
	uint8_t  oob_data;
	uint8_t  authentication;
} __attribute__ ((packed));

#define BT_LMP_IO_CAPABILITY_RES	LMP_ESC4(26)
struct bt_lmp_io_capability_res {
	uint8_t  capability;
	uint8_t  oob_data;
	uint8_t  authentication;
} __attribute__ ((packed));

#define BT_LMP_NUMERIC_COMPARISON_FAILED	LMP_ESC(27)

#define BT_LMP_PASSKEY_FAILED		LMP_ESC4(28)

#define BT_LMP_OOB_FAILED		LMP_ESC(29)

#define BT_LMP_POWER_CONTROL_REQ	LMP_ESC4(31)
struct bt_lmp_power_control_req {
	uint8_t  request;
} __attribute__ ((packed));

#define BT_LMP_POWER_CONTROL_RES	LMP_ESC4(32)
struct bt_lmp_power_control_res {
	uint8_t  response;
} __attribute__ ((packed));

#define BT_LMP_PING_REQ			LMP_ESC4(33)

#define BT_LMP_PING_RES			LMP_ESC4(34)

#define BT_H4_CMD_PKT	0x01
#define BT_H4_ACL_PKT	0x02
#define BT_H4_SCO_PKT	0x03
#define BT_H4_EVT_PKT	0x04

struct bt_hci_cmd_hdr {
	uint16_t opcode;
	uint8_t  plen;
} __attribute__ ((packed));

struct bt_hci_acl_hdr {
	uint16_t handle;
	uint16_t dlen;
} __attribute__ ((packed));

struct bt_hci_sco_hdr {
	uint16_t handle;
	uint8_t  dlen;
} __attribute__ ((packed));

struct bt_hci_evt_hdr {
	uint8_t  evt;
	uint8_t  plen;
} __attribute__ ((packed));

#define BT_HCI_CMD_NOP				0x0000

#define BT_HCI_CMD_INQUIRY			0x0401
struct bt_hci_cmd_inquiry {
	uint8_t  lap[3];
	uint8_t  length;
	uint8_t  num_resp;
} __attribute__ ((packed));

#define BT_HCI_CMD_INQUIRY_CANCEL		0x0402

#define BT_HCI_CMD_PERIODIC_INQUIRY		0x0403
struct bt_hci_cmd_periodic_inquiry {
	uint16_t max_period;
	uint16_t min_period;
	uint8_t  lap[3];
	uint8_t  length;
	uint8_t  num_resp;
} __attribute__ ((packed));

#define BT_HCI_CMD_EXIT_PERIODIC_INQUIRY	0x0404

#define BT_HCI_CMD_CREATE_CONN			0x0405
struct bt_hci_cmd_create_conn {
	uint8_t  bdaddr[6];
	uint16_t pkt_type;
	uint8_t  pscan_rep_mode;
	uint8_t  pscan_mode;
	uint16_t clock_offset;
	uint8_t  role_switch;
} __attribute__ ((packed));

#define BT_HCI_CMD_DISCONNECT			0x0406
struct bt_hci_cmd_disconnect {
	uint16_t handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_CMD_ADD_SCO_CONN			0x0407
struct bt_hci_cmd_add_sco_conn {
	uint16_t handle;
	uint16_t pkt_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_CREATE_CONN_CANCEL		0x0408
struct bt_hci_cmd_create_conn_cancel {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_ACCEPT_CONN_REQUEST		0x0409
struct bt_hci_cmd_accept_conn_request {
	uint8_t  bdaddr[6];
	uint8_t  role;
} __attribute__ ((packed));

#define BT_HCI_CMD_REJECT_CONN_REQUEST		0x040a
struct bt_hci_cmd_reject_conn_request {
	uint8_t  bdaddr[6];
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_CMD_LINK_KEY_REQUEST_REPLY	0x040b
struct bt_hci_cmd_link_key_request_reply {
	uint8_t  bdaddr[6];
	uint8_t  link_key[16];
} __attribute__ ((packed));
struct bt_hci_rsp_link_key_request_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LINK_KEY_REQUEST_NEG_REPLY	0x040c
struct bt_hci_cmd_link_key_request_neg_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_link_key_request_neg_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_PIN_CODE_REQUEST_REPLY	0x040d
struct bt_hci_cmd_pin_code_request_reply {
	uint8_t  bdaddr[6];
	uint8_t  pin_len;
	uint8_t  pin_code[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_PIN_CODE_REQUEST_NEG_REPLY	0x040e
struct bt_hci_cmd_pin_code_request_neg_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_pin_code_request_neg_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_CHANGE_CONN_PKT_TYPE		0x040f
struct bt_hci_cmd_change_conn_pkt_type {
	uint16_t handle;
	uint16_t pkt_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_AUTH_REQUESTED		0x0411
struct bt_hci_cmd_auth_requested {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_CONN_ENCRYPT		0x0413
struct bt_hci_cmd_set_conn_encrypt {
	uint16_t handle;
	uint8_t  encr_mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_CHANGE_CONN_LINK_KEY		0x0415
struct bt_hci_cmd_change_conn_link_key {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_MASTER_LINK_KEY		0x0417
struct bt_hci_cmd_master_link_key {
	uint8_t  key_flag;
} __attribute__ ((packed));

#define BT_HCI_CMD_REMOTE_NAME_REQUEST		0x0419
struct bt_hci_cmd_remote_name_request {
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
	uint8_t  pscan_mode;
	uint16_t clock_offset;
} __attribute__ ((packed));

#define BT_HCI_CMD_REMOTE_NAME_REQUEST_CANCEL	0x041a
struct bt_hci_cmd_remote_name_request_cancel {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_remote_name_request_cancel {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_REMOTE_FEATURES		0x041b
struct bt_hci_cmd_read_remote_features {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_REMOTE_EXT_FEATURES	0x041c
struct bt_hci_cmd_read_remote_ext_features {
	uint16_t handle;
	uint8_t  page;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_REMOTE_VERSION		0x041d
struct bt_hci_cmd_read_remote_version {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_CLOCK_OFFSET		0x041f
struct bt_hci_cmd_read_clock_offset {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LMP_HANDLE		0x0420
struct bt_hci_cmd_read_lmp_handle {
	uint16_t  handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_lmp_handle {
	uint8_t  status;
	uint16_t handle;
	uint8_t  lmp_handle;
	uint32_t reserved;
} __attribute__ ((packed));

#define BT_HCI_CMD_SETUP_SYNC_CONN		0x0428
struct bt_hci_cmd_setup_sync_conn {
	uint16_t handle;
	uint32_t tx_bandwidth;
	uint32_t rx_bandwidth;
	uint16_t max_latency;
	uint16_t voice_setting;
	uint8_t  retrans_effort;
	uint16_t pkt_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_ACCEPT_SYNC_CONN_REQUEST	0x0429
struct bt_hci_cmd_accept_sync_conn_request {
	uint8_t  bdaddr[6];
	uint32_t tx_bandwidth;
	uint32_t rx_bandwidth;
	uint16_t max_latency;
	uint16_t voice_setting;
	uint8_t  retrans_effort;
	uint16_t pkt_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_REJECT_SYNC_CONN_REQUEST	0x042a
struct bt_hci_cmd_reject_sync_conn_request {
	uint8_t  bdaddr[6];
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_CMD_IO_CAPABILITY_REQUEST_REPLY		0x042b
struct bt_hci_cmd_io_capability_request_reply {
	uint8_t  bdaddr[6];
	uint8_t  capability;
	uint8_t  oob_data;
	uint8_t  authentication;
} __attribute__ ((packed));
struct bt_hci_rsp_io_capability_request_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_USER_CONFIRM_REQUEST_REPLY		0x042c
struct bt_hci_cmd_user_confirm_request_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_user_confirm_request_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_USER_CONFIRM_REQUEST_NEG_REPLY	0x042d
struct bt_hci_cmd_user_confirm_request_neg_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_user_confirm_request_neg_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_USER_PASSKEY_REQUEST_REPLY		0x042e
struct bt_hci_cmd_user_passkey_request_reply {
	uint8_t  bdaddr[6];
	uint32_t passkey;
} __attribute__ ((packed));

#define BT_HCI_CMD_USER_PASSKEY_REQUEST_NEG_REPLY	0x042f
struct bt_hci_cmd_user_passkey_request_neg_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_REMOTE_OOB_DATA_REQUEST_REPLY	0x0430
struct bt_hci_cmd_remote_oob_data_request_reply {
	uint8_t  bdaddr[6];
	uint8_t  hash[16];
	uint8_t  randomizer[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_REMOTE_OOB_DATA_REQUEST_NEG_REPLY	0x0433
struct bt_hci_cmd_remote_oob_data_request_neg_reply {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_IO_CAPABILITY_REQUEST_NEG_REPLY	0x0434
struct bt_hci_cmd_io_capability_request_neg_reply {
	uint8_t  bdaddr[6];
	uint8_t  reason;
} __attribute__ ((packed));
struct bt_hci_rsp_io_capability_request_neg_reply {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_CREATE_PHY_LINK		0x0435
struct bt_hci_cmd_create_phy_link {
	uint8_t  phy_handle;
	uint8_t  key_len;
	uint8_t  key_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_ACCEPT_PHY_LINK		0x0436
struct bt_hci_cmd_accept_phy_link {
	uint8_t  phy_handle;
	uint8_t  key_len;
	uint8_t  key_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_DISCONN_PHY_LINK		0x0437
struct bt_hci_cmd_disconn_phy_link {
	uint8_t  phy_handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_CMD_CREATE_LOGIC_LINK		0x0438
struct bt_hci_cmd_create_logic_link {
	uint8_t  phy_handle;
	uint8_t  tx_flow_spec[16];
	uint8_t  rx_flow_spec[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_ACCEPT_LOGIC_LINK		0x0439
struct bt_hci_cmd_accept_logic_link {
	uint8_t  phy_handle;
	uint8_t  tx_flow_spec[16];
	uint8_t  rx_flow_spec[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_DISCONN_LOGIC_LINK		0x043a
struct bt_hci_cmd_disconn_logic_link {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LOGIC_LINK_CANCEL		0x043b
struct bt_hci_cmd_logic_link_cancel {
	uint8_t  phy_handle;
	uint8_t  flow_spec;
} __attribute__ ((packed));
struct bt_hci_rsp_logic_link_cancel {
	uint8_t  status;
	uint8_t  phy_handle;
	uint8_t  flow_spec;
} __attribute__ ((packed));

#define BT_HCI_CMD_FLOW_SPEC_MODIFY		0x043c
struct bt_hci_cmd_flow_spec_modify {
	uint16_t handle;
	uint8_t  tx_flow_spec[16];
	uint8_t  rx_flow_spec[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_ENHANCED_SETUP_SYNC_CONN	0x043d
struct bt_hci_cmd_enhanced_setup_sync_conn {
	uint16_t handle;
	uint32_t tx_bandwidth;
	uint32_t rx_bandwidth;
	uint8_t  tx_coding_format[5];
	uint8_t  rx_coding_format[5];
	uint16_t tx_codec_frame_size;
	uint16_t rx_codec_frame_size;
	uint32_t input_bandwidth;
	uint32_t output_bandwidth;
	uint8_t  input_coding_format[5];
	uint8_t  output_coding_format[5];
	uint16_t input_coded_data_size;
	uint16_t output_coded_data_size;
	uint8_t  input_pcm_data_format;
	uint8_t  output_pcm_data_format;
	uint8_t  input_pcm_msb_position;
	uint8_t  output_pcm_msb_position;
	uint8_t  input_data_path;
	uint8_t  output_data_path;
	uint8_t  input_unit_size;
	uint8_t  output_unit_size;
	uint16_t max_latency;
	uint16_t pkt_type;
	uint8_t  retrans_effort;
} __attribute__ ((packed));

#define BT_HCI_CMD_ENHANCED_ACCEPT_SYNC_CONN_REQUEST	0x043e
struct bt_hci_cmd_enhanced_accept_sync_conn_request {
	uint8_t  bdaddr[6];
	uint32_t tx_bandwidth;
	uint32_t rx_bandwidth;
	uint8_t  tx_coding_format[5];
	uint8_t  rx_coding_format[5];
	uint16_t tx_codec_frame_size;
	uint16_t rx_codec_frame_size;
	uint32_t input_bandwidth;
	uint32_t output_bandwidth;
	uint8_t  input_coding_format[5];
	uint8_t  output_coding_format[5];
	uint16_t input_coded_data_size;
	uint16_t output_coded_data_size;
	uint8_t  input_pcm_data_format;
	uint8_t  output_pcm_data_format;
	uint8_t  input_pcm_msb_position;
	uint8_t  output_pcm_msb_position;
	uint8_t  input_data_path;
	uint8_t  output_data_path;
	uint8_t  input_unit_size;
	uint8_t  output_unit_size;
	uint16_t max_latency;
	uint16_t pkt_type;
	uint8_t  retrans_effort;
} __attribute__ ((packed));

#define BT_HCI_CMD_TRUNCATED_PAGE		0x043f
struct bt_hci_cmd_truncated_page {
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
	uint16_t clock_offset;
} __attribute__ ((packed));

#define BT_HCI_CMD_TRUNCATED_PAGE_CANCEL	0x0440
struct bt_hci_cmd_truncated_page_cancel {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_SLAVE_BROADCAST		0x0441
struct bt_hci_cmd_set_slave_broadcast {
	uint8_t  enable;
	uint8_t  lt_addr;
	uint8_t  lpo_allowed;
	uint16_t pkt_type;
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t timeout;
} __attribute__ ((packed));
struct bt_hci_rsp_set_slave_broadcast {
	uint8_t  status;
	uint8_t  lt_addr;
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_SLAVE_BROADCAST_RECEIVE	0x0442
struct bt_hci_cmd_set_slave_broadcast_receive {
	uint8_t  enable;
	uint8_t  bdaddr[6];
	uint8_t  lt_addr;
	uint16_t interval;
	uint32_t offset;
	uint32_t instant;
	uint16_t timeout;
	uint8_t  accuracy;
	uint8_t  skip;
	uint16_t pkt_type;
	uint8_t  map[10];
} __attribute__ ((packed));
struct bt_hci_rsp_set_slave_broadcast_receive {
	uint8_t  status;
	uint8_t  bdaddr[6];
	uint8_t  lt_addr;
} __attribute__ ((packed));

#define BT_HCI_CMD_START_SYNC_TRAIN		0x0443

#define BT_HCI_CMD_RECEIVE_SYNC_TRAIN		0x0444
struct bt_hci_cmd_receive_sync_train {
	uint8_t  bdaddr[6];
	uint16_t timeout;
	uint16_t window;
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_REMOTE_OOB_EXT_DATA_REQUEST_REPLY	0x0445
struct bt_hci_cmd_remote_oob_ext_data_request_reply {
	uint8_t  bdaddr[6];
	uint8_t  hash192[16];
	uint8_t  randomizer192[16];
	uint8_t  hash256[16];
	uint8_t  randomizer256[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_HOLD_MODE			0x0801
struct bt_hci_cmd_hold_mode {
	uint16_t handle;
	uint16_t max_interval;
	uint16_t min_interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_SNIFF_MODE			0x0803
struct bt_hci_cmd_sniff_mode {
	uint16_t handle;
	uint16_t max_interval;
	uint16_t min_interval;
	uint16_t attempt;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_EXIT_SNIFF_MODE		0x0804
struct bt_hci_cmd_exit_sniff_mode {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_PARK_STATE			0x0805
struct bt_hci_cmd_park_state {
	uint16_t handle;
	uint16_t max_interval;
	uint16_t min_interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_EXIT_PARK_STATE		0x0806
struct bt_hci_cmd_exit_park_state {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_QOS_SETUP			0x0807
struct bt_hci_cmd_qos_setup {
	uint16_t handle;
	uint8_t  flags;
	uint8_t  service_type;
	uint32_t token_rate;
	uint32_t peak_bandwidth;
	uint32_t latency;
	uint32_t delay_variation;
} __attribute__ ((packed));

#define BT_HCI_CMD_ROLE_DISCOVERY		0x0809
struct bt_hci_cmd_role_discovery {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_role_discovery {
	uint8_t  status;
	uint16_t handle;
	uint8_t  role;
} __attribute__ ((packed));

#define BT_HCI_CMD_SWITCH_ROLE			0x080b
struct bt_hci_cmd_switch_role {
	uint8_t  bdaddr[6];
	uint8_t  role;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LINK_POLICY		0x080c
struct bt_hci_cmd_read_link_policy {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_link_policy {
	uint8_t  status;
	uint16_t handle;
	uint16_t policy;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LINK_POLICY		0x080d
struct bt_hci_cmd_write_link_policy {
	uint16_t handle;
	uint16_t policy;
} __attribute__ ((packed));
struct bt_hci_rsp_write_link_policy {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_DEFAULT_LINK_POLICY	0x080e
struct bt_hci_rsp_read_default_link_policy {
	uint8_t  status;
	uint16_t policy;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_DEFAULT_LINK_POLICY	0x080f
struct bt_hci_cmd_write_default_link_policy {
	uint16_t policy;
} __attribute__ ((packed));

#define BT_HCI_CMD_FLOW_SPEC			0x0810
struct bt_hci_cmd_flow_spec {
	uint16_t handle;
	uint8_t  flags;
	uint8_t  direction;
	uint8_t  service_type;
	uint32_t token_rate;
	uint32_t token_bucket_size;
	uint32_t peak_bandwidth;
	uint32_t access_latency;
} __attribute__ ((packed));

#define BT_HCI_CMD_SNIFF_SUBRATING		0x0811
struct bt_hci_cmd_sniff_subrating {
	uint16_t handle;
	uint16_t max_latency;
	uint16_t min_remote_timeout;
	uint16_t min_local_timeout;
} __attribute__ ((packed));
struct bt_hci_rsp_sniff_subrating {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_EVENT_MASK		0x0c01
struct bt_hci_cmd_set_event_mask {
	uint8_t  mask[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_RESET			0x0c03

#define BT_HCI_CMD_SET_EVENT_FILTER		0x0c05
struct bt_hci_cmd_set_event_filter {
	uint8_t  type;
	uint8_t  cond_type;
	uint8_t  cond[0];
} __attribute__ ((packed));

#define BT_HCI_CMD_FLUSH			0x0c08
struct bt_hci_cmd_flush {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_flush {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PIN_TYPE		0x0c09
struct bt_hci_rsp_read_pin_type {
	uint8_t  status;
	uint8_t  pin_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PIN_TYPE		0x0c0a
struct bt_hci_cmd_write_pin_type {
	uint8_t  pin_type;
} __attribute__ ((packed));

#define BT_HCI_CMD_CREATE_NEW_UNIT_KEY		0x0c0b

#define BT_HCI_CMD_READ_STORED_LINK_KEY		0x0c0d
struct bt_hci_cmd_read_stored_link_key {
	uint8_t  bdaddr[6];
	uint8_t  read_all;
} __attribute__ ((packed));
struct bt_hci_rsp_read_stored_link_key {
	uint8_t  status;
	uint16_t max_num_keys;
	uint16_t num_keys;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_STORED_LINK_KEY	0x0c11
struct bt_hci_cmd_write_stored_link_key {
	uint8_t  num_keys;
} __attribute__ ((packed));
struct bt_hci_rsp_write_stored_link_key {
	uint8_t  status;
	uint8_t  num_keys;
} __attribute__ ((packed));

#define BT_HCI_CMD_DELETE_STORED_LINK_KEY	0x0c12
struct bt_hci_cmd_delete_stored_link_key {
	uint8_t  bdaddr[6];
	uint8_t  delete_all;
} __attribute__ ((packed));
struct bt_hci_rsp_delete_stored_link_key {
	uint8_t  status;
	uint16_t num_keys;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LOCAL_NAME		0x0c13
struct bt_hci_cmd_write_local_name {
	uint8_t  name[248];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_NAME		0x0c14
struct bt_hci_rsp_read_local_name {
	uint8_t  status;
	uint8_t  name[248];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_CONN_ACCEPT_TIMEOUT	0x0c15
struct bt_hci_rsp_read_conn_accept_timeout {
	uint8_t  status;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_CONN_ACCEPT_TIMEOUT	0x0c16
struct bt_hci_cmd_write_conn_accept_timeout {
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PAGE_TIMEOUT		0x0c17
struct bt_hci_rsp_read_page_timeout {
	uint8_t  status;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PAGE_TIMEOUT		0x0c18
struct bt_hci_cmd_write_page_timeout {
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_SCAN_ENABLE		0x0c19
struct bt_hci_rsp_read_scan_enable {
	uint8_t  status;
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_SCAN_ENABLE		0x0c1a
struct bt_hci_cmd_write_scan_enable {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PAGE_SCAN_ACTIVITY	0x0c1b
struct bt_hci_rsp_read_page_scan_activity {
	uint8_t  status;
	uint16_t interval;
	uint16_t window;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PAGE_SCAN_ACTIVITY	0x0c1c
struct bt_hci_cmd_write_page_scan_activity {
	uint16_t interval;
	uint16_t window;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_INQUIRY_SCAN_ACTIVITY	0x0c1d
struct bt_hci_rsp_read_inquiry_scan_activity {
	uint8_t  status;
	uint16_t interval;
	uint16_t window;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_INQUIRY_SCAN_ACTIVITY	0x0c1e
struct bt_hci_cmd_write_inquiry_scan_activity {
	uint16_t interval;
	uint16_t window;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_AUTH_ENABLE		0x0c1f
struct bt_hci_rsp_read_auth_enable {
	uint8_t  status;
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_AUTH_ENABLE		0x0c20
struct bt_hci_cmd_write_auth_enable {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_ENCRYPT_MODE		0x0c21
struct bt_hci_rsp_read_encrypt_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_ENCRYPT_MODE		0x0c22
struct bt_hci_cmd_write_encrypt_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_CLASS_OF_DEV		0x0c23
struct bt_hci_rsp_read_class_of_dev {
	uint8_t  status;
	uint8_t  dev_class[3];
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_CLASS_OF_DEV		0x0c24
struct bt_hci_cmd_write_class_of_dev {
	uint8_t  dev_class[3];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_VOICE_SETTING		0x0c25
struct bt_hci_rsp_read_voice_setting {
	uint8_t  status;
	uint16_t setting;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_VOICE_SETTING		0x0c26
struct bt_hci_cmd_write_voice_setting {
	uint16_t setting;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_AUTO_FLUSH_TIMEOUT	0x0c27
struct bt_hci_cmd_read_auto_flush_timeout {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_auto_flush_timeout {
	uint8_t  status;
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_AUTO_FLUSH_TIMEOUT	0x0c28
struct bt_hci_cmd_write_auto_flush_timeout {
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));
struct bt_hci_rsp_write_auto_flush_timeout {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_NUM_BROADCAST_RETRANS	0x0c29
struct bt_hci_rsp_read_num_broadcast_retrans {
	uint8_t  status;
	uint8_t  num_retrans;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_NUM_BROADCAST_RETRANS	0x0c2a
struct bt_hci_cmd_write_num_broadcast_retrans {
	uint8_t  num_retrans;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_HOLD_MODE_ACTIVITY	0x0c2b
struct bt_hci_rsp_read_hold_mode_activity {
	uint8_t  status;
	uint8_t  activity;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_HOLD_MODE_ACTIVITY	0x0c2c
struct bt_hci_cmd_write_hold_mode_activity {
	uint8_t  activity;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_TX_POWER		0x0c2d
struct bt_hci_cmd_read_tx_power {
	uint16_t handle;
	uint8_t  type;
} __attribute__ ((packed));
struct bt_hci_rsp_read_tx_power {
	uint8_t  status;
	uint16_t handle;
	int8_t   level;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_SYNC_FLOW_CONTROL	0x0c2e
struct bt_hci_rsp_read_sync_flow_control {
	uint8_t  status;
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_SYNC_FLOW_CONTROL	0x0c2f
struct bt_hci_cmd_write_sync_flow_control {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_HOST_FLOW_CONTROL	0x0c31
struct bt_hci_cmd_set_host_flow_control {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_HOST_BUFFER_SIZE		0x0c33
struct bt_hci_cmd_host_buffer_size {
	uint16_t acl_mtu;
	uint8_t  sco_mtu;
	uint16_t acl_max_pkt;
	uint16_t sco_max_pkt;
} __attribute__ ((packed));

#define BT_HCI_CMD_HOST_NUM_COMPLETED_PACKETS	0x0c35
struct bt_hci_cmd_host_num_completed_packets {
	uint8_t  num_handles;
	uint16_t handle;
	uint16_t count;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LINK_SUPV_TIMEOUT	0x0c36
struct bt_hci_cmd_read_link_supv_timeout {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_link_supv_timeout {
	uint8_t  status;
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LINK_SUPV_TIMEOUT	0x0c37
struct bt_hci_cmd_write_link_supv_timeout {
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));
struct bt_hci_rsp_write_link_supv_timeout {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_NUM_SUPPORTED_IAC	0x0c38
struct bt_hci_rsp_read_num_supported_iac {
	uint8_t  status;
	uint8_t  num_iac;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_CURRENT_IAC_LAP		0x0c39
struct bt_hci_rsp_read_current_iac_lap {
	uint8_t  status;
	uint8_t  num_iac;
	uint8_t  iac_lap[0];
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_CURRENT_IAC_LAP	0x0c3a
struct bt_hci_cmd_write_current_iac_lap {
	uint8_t  num_iac;
	uint8_t  iac_lap[0];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PAGE_SCAN_PERIOD_MODE	0x0c3b
struct bt_hci_rsp_read_page_scan_period_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PAGE_SCAN_PERIOD_MODE	0x0c3c
struct bt_hci_cmd_write_page_scan_period_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PAGE_SCAN_MODE		0x0c3d
struct bt_hci_rsp_read_page_scan_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PAGE_SCAN_MODE		0x0c3e
struct bt_hci_cmd_write_page_scan_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_AFH_HOST_CLASSIFICATION	0x0c3f
struct bt_hci_cmd_set_afh_host_classification {
	uint8_t  map[10];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_INQUIRY_SCAN_TYPE	0x0c42
struct bt_hci_rsp_read_inquiry_scan_type {
	uint8_t  status;
	uint8_t  type;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_INQUIRY_SCAN_TYPE	0x0c43
struct bt_hci_cmd_write_inquiry_scan_type {
	uint8_t type;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_INQUIRY_MODE		0x0c44
struct bt_hci_rsp_read_inquiry_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_INQUIRY_MODE		0x0c45
struct bt_hci_cmd_write_inquiry_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_PAGE_SCAN_TYPE		0x0c46
struct bt_hci_rsp_read_page_scan_type {
	uint8_t status;
	uint8_t type;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_PAGE_SCAN_TYPE		0x0c47
struct bt_hci_cmd_write_page_scan_type {
	uint8_t type;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_AFH_ASSESSMENT_MODE	0x0c48
struct bt_hci_rsp_read_afh_assessment_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_AFH_ASSESSMENT_MODE	0x0c49
struct bt_hci_cmd_write_afh_assessment_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_EXT_INQUIRY_RESPONSE	0x0c51
struct bt_hci_rsp_read_ext_inquiry_response {
	uint8_t  status;
	uint8_t  fec;
	uint8_t  data[240];
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_EXT_INQUIRY_RESPONSE	0x0c52
struct bt_hci_cmd_write_ext_inquiry_response {
	uint8_t  fec;
	uint8_t  data[240];
} __attribute__ ((packed));

#define BT_HCI_CMD_REFRESH_ENCRYPT_KEY		0x0c53
struct bt_hci_cmd_refresh_encrypt_key {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_SIMPLE_PAIRING_MODE	0x0c55
struct bt_hci_rsp_read_simple_pairing_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_SIMPLE_PAIRING_MODE	0x0c56
struct bt_hci_cmd_write_simple_pairing_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_OOB_DATA		0x0c57
struct bt_hci_rsp_read_local_oob_data {
	uint8_t  status;
	uint8_t  hash[16];
	uint8_t  randomizer[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_INQUIRY_RESP_TX_POWER	0x0c58
struct bt_hci_rsp_read_inquiry_resp_tx_power {
	uint8_t  status;
	int8_t   level;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_INQUIRY_TX_POWER	0x0c59
struct bt_hci_cmd_write_inquiry_tx_power {
	int8_t   level;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_ERRONEOUS_REPORTING	0x0c5a
struct bt_hci_rsp_read_erroneous_reporting {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_ERRONEOUS_REPORTING	0x0c5b
struct bt_hci_cmd_write_erroneous_reporting {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_ENHANCED_FLUSH		0x0c5f
struct bt_hci_cmd_enhanced_flush {
	uint16_t handle;
	uint8_t  type;
} __attribute__ ((packed));

#define BT_HCI_CMD_SEND_KEYPRESS_NOTIFY		0x0c60
struct bt_hci_cmd_send_keypress_notify {
	uint8_t  bdaddr[6];
	uint8_t  type;
} __attribute__ ((packed));
struct bt_hci_rsp_send_keypress_notify {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_EVENT_MASK_PAGE2		0x0c63
struct bt_hci_cmd_set_event_mask_page2 {
	uint8_t  mask[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCATION_DATA		0x0c64
struct bt_hci_rsp_read_location_data {
	uint8_t  status;
	uint8_t  domain_aware;
	uint8_t  domain[2];
	uint8_t  domain_options;
	uint8_t  options;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LOCATION_DATA		0x0c65
struct bt_hci_cmd_write_location_data {
	uint8_t  domain_aware;
	uint8_t  domain[2];
	uint8_t  domain_options;
	uint8_t  options;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_FLOW_CONTROL_MODE	0x0c66
struct bt_hci_rsp_read_flow_control_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_FLOW_CONTROL_MODE	0x0c67
struct bt_hci_cmd_write_flow_control_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_ENHANCED_TX_POWER	0x0c68
struct bt_hci_cmd_read_enhanced_tx_power {
	uint16_t handle;
	uint8_t  type;
} __attribute__ ((packed));
struct bt_hci_rsp_read_enhanced_tx_power {
	uint8_t  status;
	uint16_t handle;
	int8_t   level_gfsk;
	int8_t   level_dqpsk;
	int8_t   level_8dpsk;
} __attribute__ ((packed));

#define BT_HCI_CMD_SHORT_RANGE_MODE		0x0c6b
struct bt_hci_cmd_short_range_mode {
	uint8_t  phy_handle;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LE_HOST_SUPPORTED	0x0c6c
struct bt_hci_rsp_read_le_host_supported {
	uint8_t  status;
	uint8_t  supported;
	uint8_t  simultaneous;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LE_HOST_SUPPORTED	0x0c6d
struct bt_hci_cmd_write_le_host_supported {
	uint8_t  supported;
	uint8_t  simultaneous;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_RESERVED_LT_ADDR		0x0c74
struct bt_hci_cmd_set_reserved_lt_addr {
	uint8_t  lt_addr;
} __attribute__ ((packed));
struct bt_hci_rsp_set_reserved_lt_addr {
	uint8_t  status;
	uint8_t  lt_addr;
} __attribute__ ((packed));

#define BT_HCI_CMD_DELETE_RESERVED_LT_ADDR	0x0c75
struct bt_hci_cmd_delete_reserved_lt_addr {
	uint8_t  lt_addr;
} __attribute__ ((packed));
struct bt_hci_rsp_delete_reserved_lt_addr {
	uint8_t  status;
	uint8_t  lt_addr;
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_SLAVE_BROADCAST_DATA	0x0c76
struct bt_hci_cmd_set_slave_broadcast_data {
	uint8_t  lt_addr;
	uint8_t  fragment;
	uint8_t  length;
} __attribute__ ((packed));
struct bt_hci_rsp_set_slave_broadcast_data {
	uint8_t  status;
	uint8_t  lt_addr;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_SYNC_TRAIN_PARAMS	0x0c77
struct bt_hci_rsp_read_sync_train_params {
	uint8_t  status;
	uint16_t interval;
	uint32_t timeout;
	uint8_t  service_data;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_SYNC_TRAIN_PARAMS	0x0c78
struct bt_hci_cmd_write_sync_train_params {
	uint16_t min_interval;
	uint16_t max_interval;
	uint32_t timeout;
	uint8_t  service_data;
} __attribute__ ((packed));
struct bt_hci_rsp_write_sync_train_params {
	uint8_t  status;
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_SECURE_CONN_SUPPORT	0x0c79
struct bt_hci_rsp_read_secure_conn_support {
	uint8_t  status;
	uint8_t  support;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_SECURE_CONN_SUPPORT	0x0c7a
struct bt_hci_cmd_write_secure_conn_support {
	uint8_t support;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_AUTH_PAYLOAD_TIMEOUT	0x0c7b
struct bt_hci_cmd_read_auth_payload_timeout {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_auth_payload_timeout {
	uint8_t  status;
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_AUTH_PAYLOAD_TIMEOUT	0x0c7c
struct bt_hci_cmd_write_auth_payload_timeout {
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));
struct bt_hci_rsp_write_auth_payload_timeout {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_OOB_EXT_DATA	0x0c7d
struct bt_hci_rsp_read_local_oob_ext_data {
	uint8_t  status;
	uint8_t  hash192[16];
	uint8_t  randomizer192[16];
	uint8_t  hash256[16];
	uint8_t  randomizer256[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_EXT_PAGE_TIMEOUT	0x0c7e
struct bt_hci_rsp_read_ext_page_timeout {
	uint8_t  status;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_EXT_PAGE_TIMEOUT	0x0c7f
struct bt_hci_cmd_write_ext_page_timeout {
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_EXT_INQUIRY_LENGTH	0x0c80
struct bt_hci_rsp_read_ext_inquiry_length {
	uint8_t  status;
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_EXT_INQUIRY_LENGTH	0x0c81
struct bt_hci_cmd_write_ext_inquiry_length {
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_VERSION		0x1001
struct bt_hci_rsp_read_local_version {
	uint8_t  status;
	uint8_t  hci_ver;
	uint16_t hci_rev;
	uint8_t  lmp_ver;
	uint16_t manufacturer;
	uint16_t lmp_subver;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_COMMANDS		0x1002
struct bt_hci_rsp_read_local_commands {
	uint8_t  status;
	uint8_t  commands[64];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_FEATURES		0x1003
struct bt_hci_rsp_read_local_features {
	uint8_t  status;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_EXT_FEATURES	0x1004
struct bt_hci_cmd_read_local_ext_features {
	uint8_t  page;
} __attribute__ ((packed));
struct bt_hci_rsp_read_local_ext_features {
	uint8_t  status;
	uint8_t  page;
	uint8_t  max_page;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_BUFFER_SIZE		0x1005
struct bt_hci_rsp_read_buffer_size {
	uint8_t  status;
	uint16_t acl_mtu;
	uint8_t  sco_mtu;
	uint16_t acl_max_pkt;
	uint16_t sco_max_pkt;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_COUNTRY_CODE		0x1007
struct bt_hci_rsp_read_country_code {
	uint8_t  status;
	uint8_t  code;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_BD_ADDR			0x1009
struct bt_hci_rsp_read_bd_addr {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_DATA_BLOCK_SIZE		0x100a
struct bt_hci_rsp_read_data_block_size {
	uint8_t  status;
	uint16_t max_acl_len;
	uint16_t block_len;
	uint16_t num_blocks;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_CODECS		0x100b
struct bt_hci_rsp_read_local_codecs {
	uint8_t  status;
	uint8_t  num_codecs;
	uint8_t  codec[0];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_FAILED_CONTACT_COUNTER	0x1401
struct bt_hci_cmd_read_failed_contact_counter {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_failed_contact_counter {
	uint8_t  status;
	uint16_t handle;
	uint16_t counter;
} __attribute__ ((packed));

#define BT_HCI_CMD_RESET_FAILED_CONTACT_COUNTER	0x1402
struct bt_hci_cmd_reset_failed_contact_counter {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_reset_failed_contact_counter {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LINK_QUALITY		0x1403
struct bt_hci_cmd_read_link_quality {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_link_quality {
	uint8_t  status;
	uint16_t handle;
	uint8_t  link_quality;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_RSSI			0x1405
struct bt_hci_cmd_read_rssi {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_rssi {
	uint8_t  status;
	uint16_t handle;
	int8_t   rssi;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_AFH_CHANNEL_MAP		0x1406
struct bt_hci_cmd_read_afh_channel_map {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_afh_channel_map {
	uint8_t  status;
	uint16_t handle;
	uint8_t  mode;
	uint8_t  map[10];
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_CLOCK			0x1407
struct bt_hci_cmd_read_clock {
	uint16_t handle;
	uint8_t  type;
} __attribute__ ((packed));
struct bt_hci_rsp_read_clock {
	uint8_t  status;
	uint16_t handle;
	uint32_t clock;
	uint16_t accuracy;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_ENCRYPT_KEY_SIZE	0x1408
struct bt_hci_cmd_read_encrypt_key_size {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_read_encrypt_key_size {
	uint8_t  status;
	uint16_t handle;
	uint8_t  key_size;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_AMP_INFO		0x1409
struct bt_hci_rsp_read_local_amp_info {
	uint8_t  status;
	uint8_t  amp_status;
	uint32_t total_bw;
	uint32_t max_bw;
	uint32_t min_latency;
	uint32_t max_pdu;
	uint8_t  amp_type;
	uint16_t pal_cap;
	uint16_t max_assoc_len;
	uint32_t max_flush_to;
	uint32_t be_flush_to;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOCAL_AMP_ASSOC		0x140a
struct bt_hci_cmd_read_local_amp_assoc {
	uint8_t  phy_handle;
	uint16_t len_so_far;
	uint16_t max_assoc_len;
} __attribute__ ((packed));
struct bt_hci_rsp_read_local_amp_assoc {
	uint8_t  status;
	uint8_t  phy_handle;
	uint16_t remain_assoc_len;
	uint8_t  assoc_fragment[248];
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_REMOTE_AMP_ASSOC	0x140b
struct bt_hci_cmd_write_remote_amp_assoc {
	uint8_t  phy_handle;
	uint16_t len_so_far;
	uint16_t remain_assoc_len;
	uint8_t  assoc_fragment[248];
} __attribute__ ((packed));
struct bt_hci_rsp_write_remote_amp_assoc {
	uint8_t  status;
	uint8_t  phy_handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_GET_MWS_TRANSPORT_CONFIG	0x140c
struct bt_hci_rsp_get_mws_transport_config {
	uint8_t  status;
	uint8_t  num_transports;
	uint8_t  transport[0];
} __attribute__ ((packed));

#define BT_HCI_CMD_SET_TRIGGERED_CLOCK_CAPTURE	0x140d
struct bt_hci_cmd_set_triggered_clock_capture {
	uint16_t handle;
	uint8_t  enable;
	uint8_t  type;
	uint8_t  lpo_allowed;
	uint8_t  num_filter;
} __attribute__ ((packed));

#define BT_HCI_CMD_READ_LOOPBACK_MODE		0x1801
struct bt_hci_rsp_read_loopback_mode {
	uint8_t  status;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_WRITE_LOOPBACK_MODE		0x1802
struct bt_hci_cmd_write_loopback_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_ENABLE_DUT_MODE		0x1803

#define BT_HCI_CMD_WRITE_SSP_DEBUG_MODE		0x1804
struct bt_hci_cmd_write_ssp_debug_mode {
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_EVENT_MASK		0x2001
struct bt_hci_cmd_le_set_event_mask {
	uint8_t  mask[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_BUFFER_SIZE		0x2002
struct bt_hci_rsp_le_read_buffer_size {
	uint8_t  status;
        uint16_t le_mtu;
        uint8_t  le_max_pkt;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_LOCAL_FEATURES	0x2003
struct bt_hci_rsp_le_read_local_features {
	uint8_t  status;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_RANDOM_ADDRESS	0x2005
struct bt_hci_cmd_le_set_random_address {
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_ADV_PARAMETERS	0x2006
struct bt_hci_cmd_le_set_adv_parameters {
	uint16_t min_interval;
	uint16_t max_interval;
	uint8_t  type;
	uint8_t  own_addr_type;
	uint8_t  direct_addr_type;
	uint8_t  direct_addr[6];
	uint8_t  channel_map;
	uint8_t  filter_policy;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_ADV_TX_POWER		0x2007
struct bt_hci_rsp_le_read_adv_tx_power {
	uint8_t  status;
	int8_t   level;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_ADV_DATA		0x2008
struct bt_hci_cmd_le_set_adv_data {
	uint8_t  len;
	uint8_t  data[31];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_SCAN_RSP_DATA		0x2009
struct bt_hci_cmd_le_set_scan_rsp_data {
	uint8_t  len;
	uint8_t  data[31];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_ADV_ENABLE		0x200a
struct bt_hci_cmd_le_set_adv_enable {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_SCAN_PARAMETERS	0x200b
struct bt_hci_cmd_le_set_scan_parameters {
	uint8_t  type;
	uint16_t interval;
	uint16_t window;
	uint8_t  own_addr_type;
	uint8_t  filter_policy;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_SCAN_ENABLE		0x200c
struct bt_hci_cmd_le_set_scan_enable {
	uint8_t  enable;
	uint8_t  filter_dup;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CREATE_CONN		0x200d
struct bt_hci_cmd_le_create_conn {
	uint16_t scan_interval;
	uint16_t scan_window;
	uint8_t  filter_policy;
	uint8_t  peer_addr_type;
	uint8_t  peer_addr[6];
	uint8_t  own_addr_type;
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t latency;
	uint16_t supv_timeout;
	uint16_t min_length;
	uint16_t max_length;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CREATE_CONN_CANCEL	0x200e

#define BT_HCI_CMD_LE_READ_WHITE_LIST_SIZE	0x200f
struct bt_hci_rsp_le_read_white_list_size {
	uint8_t  status;
	uint8_t  size;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CLEAR_WHITE_LIST		0x2010

#define BT_HCI_CMD_LE_ADD_TO_WHITE_LIST		0x2011
struct bt_hci_cmd_le_add_to_white_list {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_REMOVE_FROM_WHITE_LIST	0x2012
struct bt_hci_cmd_le_remove_from_white_list {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CONN_UPDATE		0x2013
struct bt_hci_cmd_le_conn_update {
	uint16_t handle;
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t latency;
	uint16_t supv_timeout;
	uint16_t min_length;
	uint16_t max_length;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_HOST_CLASSIFICATION	0x2014
struct bt_hci_cmd_le_set_host_classification {
	uint8_t  map[5];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_CHANNEL_MAP		0x2015
struct bt_hci_cmd_le_read_channel_map {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_le_read_channel_map {
	uint8_t  status;
	uint16_t handle;
	uint8_t  map[5];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_REMOTE_FEATURES	0x2016
struct bt_hci_cmd_le_read_remote_features {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_ENCRYPT			0x2017
struct bt_hci_cmd_le_encrypt {
	uint8_t  key[16];
	uint8_t  plaintext[16];
} __attribute__ ((packed));
struct bt_hci_rsp_le_encrypt {
	uint8_t  status;
	uint8_t  data[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_RAND			0x2018
struct bt_hci_rsp_le_rand {
	uint8_t  status;
	uint64_t number;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_START_ENCRYPT		0x2019
struct bt_hci_cmd_le_start_encrypt {
	uint16_t handle;
	uint64_t rand;
	uint16_t ediv;
	uint8_t  ltk[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_LTK_REQ_REPLY		0x201a
struct bt_hci_cmd_le_ltk_req_reply {
	uint16_t handle;
	uint8_t  ltk[16];
} __attribute__ ((packed));
struct bt_hci_rsp_le_ltk_req_reply {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_LTK_REQ_NEG_REPLY		0x201b
struct bt_hci_cmd_le_ltk_req_neg_reply {
	uint16_t handle;
} __attribute__ ((packed));
struct bt_hci_rsp_le_ltk_req_neg_reply {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_SUPPORTED_STATES	0x201c
struct bt_hci_rsp_le_read_supported_states {
	uint8_t  status;
	uint8_t  states[8];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_RECEIVER_TEST		0x201d
struct bt_hci_cmd_le_receiver_test {
	uint8_t  frequency;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_TRANSMITTER_TEST		0x201e
struct bt_hci_cmd_le_transmitter_test {
	uint8_t  frequency;
	uint8_t  data_len;
	uint8_t  payload;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_TEST_END			0x201f
struct bt_hci_rsp_le_test_end {
	uint8_t  status;
	uint16_t num_packets;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CONN_PARAM_REQ_REPLY	0x2020
struct bt_hci_cmd_le_conn_param_req_reply {
	uint16_t handle;
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t latency;
	uint16_t supv_timeout;
	uint16_t min_length;
	uint16_t max_length;
} __attribute__ ((packed));
struct bt_hci_rsp_le_conn_param_req_reply {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CONN_PARAM_REQ_NEG_REPLY	0x2021
struct bt_hci_cmd_le_conn_param_req_neg_reply {
	uint16_t handle;
	uint8_t  reason;
} __attribute__ ((packed));
struct bt_hci_rsp_le_conn_param_req_neg_reply {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_DATA_LENGTH		0x2022
struct bt_hci_cmd_le_set_data_length {
	uint16_t handle;
	uint16_t tx_len;
	uint16_t tx_time;
} __attribute__ ((packed));
struct bt_hci_rsp_le_set_data_length {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_DEFAULT_DATA_LENGTH	0x2023
struct bt_hci_rsp_le_read_default_data_length {
	uint8_t  status;
	uint16_t tx_len;
	uint16_t tx_time;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_WRITE_DEFAULT_DATA_LENGTH	0x2024
struct bt_hci_cmd_le_write_default_data_length {
	uint16_t tx_len;
	uint16_t tx_time;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_LOCAL_PK256		0x2025

#define BT_HCI_CMD_LE_GENERATE_DHKEY		0x2026
struct bt_hci_cmd_le_generate_dhkey {
	uint8_t  remote_pk256[64];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_ADD_TO_RESOLV_LIST	0x2027
struct bt_hci_cmd_le_add_to_resolv_list {
	uint8_t  addr_type;
	uint8_t  addr[6];
	uint8_t  peer_irk[16];
	uint8_t  local_irk[16];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_REMOVE_FROM_RESOLV_LIST	0x2028
struct bt_hci_cmd_le_remove_from_resolv_list {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_CLEAR_RESOLV_LIST		0x2029

#define BT_HCI_CMD_LE_READ_RESOLV_LIST_SIZE	0x202a
struct bt_hci_rsp_le_read_resolv_list_size {
	uint8_t  status;
	uint8_t  size;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_PEER_RESOLV_ADDR	0x202b
struct bt_hci_cmd_le_read_peer_resolv_addr {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_le_read_peer_resolv_addr {
	uint8_t  status;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_LOCAL_RESOLV_ADDR	0x202c
struct bt_hci_cmd_le_read_local_resolv_addr {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));
struct bt_hci_rsp_le_read_local_resolv_addr {
	uint8_t  status;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_RESOLV_ENABLE		0x202d
struct bt_hci_cmd_le_set_resolv_enable {
	uint8_t  enable;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_SET_RESOLV_TIMEOUT	0x202e
struct bt_hci_cmd_le_set_resolv_timeout {
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_CMD_LE_READ_MAX_DATA_LENGTH	0x202f
struct bt_hci_rsp_le_read_max_data_length {
	uint8_t  status;
	uint16_t max_tx_len;
	uint16_t max_tx_time;
	uint16_t max_rx_len;
	uint16_t max_rx_time;
} __attribute__ ((packed));

#define BT_HCI_EVT_INQUIRY_COMPLETE		0x01
struct bt_hci_evt_inquiry_complete {
	uint8_t  status;
} __attribute__ ((packed));

#define BT_HCI_EVT_INQUIRY_RESULT		0x02
struct bt_hci_evt_inquiry_result {
	uint8_t  num_resp;
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
	uint8_t  pscan_period_mode;
	uint8_t  pscan_mode;
	uint8_t  dev_class[3];
	uint16_t clock_offset;
} __attribute__ ((packed));

#define BT_HCI_EVT_CONN_COMPLETE		0x03
struct bt_hci_evt_conn_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  bdaddr[6];
	uint8_t  link_type;
	uint8_t  encr_mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_CONN_REQUEST			0x04
struct bt_hci_evt_conn_request {
	uint8_t  bdaddr[6];
	uint8_t  dev_class[3];
	uint8_t  link_type;
} __attribute__ ((packed));

#define BT_HCI_EVT_DISCONNECT_COMPLETE		0x05
struct bt_hci_evt_disconnect_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_EVT_AUTH_COMPLETE		0x06
struct bt_hci_evt_auth_complete {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_NAME_REQUEST_COMPLETE	0x07
struct bt_hci_evt_remote_name_request_complete {
	uint8_t  status;
	uint8_t  bdaddr[6];
	uint8_t  name[248];
} __attribute__ ((packed));

#define BT_HCI_EVT_ENCRYPT_CHANGE		0x08
struct bt_hci_evt_encrypt_change {
	uint8_t  status;
	uint16_t handle;
	uint8_t  encr_mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_CHANGE_CONN_LINK_KEY_COMPLETE 0x09
struct bt_hci_evt_change_conn_link_key_complete {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_MASTER_LINK_KEY_COMPLETE	0x0a
struct bt_hci_evt_master_link_key_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  key_flag;
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_FEATURES_COMPLETE	0x0b
struct bt_hci_evt_remote_features_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_VERSION_COMPLETE	0x0c
struct bt_hci_evt_remote_version_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  lmp_ver;
	uint16_t manufacturer;
	uint16_t lmp_subver;
} __attribute__ ((packed));

#define BT_HCI_EVT_QOS_SETUP_COMPLETE		0x0d
struct bt_hci_evt_qos_setup_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  flags;
	uint8_t  service_type;
	uint32_t token_rate;
	uint32_t peak_bandwidth;
	uint32_t latency;
	uint32_t delay_variation;
} __attribute__ ((packed));

#define BT_HCI_EVT_CMD_COMPLETE			0x0e
struct bt_hci_evt_cmd_complete {
	uint8_t  ncmd;
	uint16_t opcode;
} __attribute__ ((packed));

#define BT_HCI_EVT_CMD_STATUS			0x0f
struct bt_hci_evt_cmd_status {
	uint8_t  status;
	uint8_t  ncmd;
	uint16_t opcode;
} __attribute__ ((packed));

#define BT_HCI_EVT_HARDWARE_ERROR		0x10
struct bt_hci_evt_hardware_error {
	uint8_t  code;
} __attribute__ ((packed));

#define BT_HCI_EVT_FLUSH_OCCURRED		0x11
struct bt_hci_evt_flush_occurred {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_ROLE_CHANGE			0x12
struct bt_hci_evt_role_change {
	uint8_t  status;
	uint8_t  bdaddr[6];
	uint8_t  role;
} __attribute__ ((packed));

#define BT_HCI_EVT_NUM_COMPLETED_PACKETS	0x13
struct bt_hci_evt_num_completed_packets {
	uint8_t  num_handles;
	uint16_t handle;
	uint16_t count;
} __attribute__ ((packed));

#define BT_HCI_EVT_MODE_CHANGE			0x14
struct bt_hci_evt_mode_change {
	uint8_t  status;
	uint16_t handle;
	uint8_t  mode;
	uint16_t interval;
} __attribute__ ((packed));

#define BT_HCI_EVT_RETURN_LINK_KEYS		0x15

#define BT_HCI_EVT_PIN_CODE_REQUEST		0x16
struct bt_hci_evt_pin_code_request {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_LINK_KEY_REQUEST		0x17
struct bt_hci_evt_link_key_request {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_LINK_KEY_NOTIFY		0x18
struct bt_hci_evt_link_key_notify {
	uint8_t  bdaddr[6];
	uint8_t  link_key[16];
	uint8_t  key_type;
} __attribute__ ((packed));

#define BT_HCI_EVT_LOOPBACK_COMMAND		0x19

#define BT_HCI_EVT_DATA_BUFFER_OVERFLOW		0x1a
struct bt_hci_evt_data_buffer_overflow {
	uint8_t  link_type;
} __attribute__ ((packed));

#define BT_HCI_EVT_MAX_SLOTS_CHANGE		0x1b
struct bt_hci_evt_max_slots_change {
	uint16_t handle;
	uint8_t  max_slots;
} __attribute__ ((packed));

#define BT_HCI_EVT_CLOCK_OFFSET_COMPLETE	0x1c
struct bt_hci_evt_clock_offset_complete {
	uint8_t  status;
	uint16_t handle;
	uint16_t clock_offset;
} __attribute__ ((packed));

#define BT_HCI_EVT_CONN_PKT_TYPE_CHANGED	0x1d
struct bt_hci_evt_conn_pkt_type_changed {
	uint8_t  status;
	uint16_t handle;
	uint16_t pkt_type;
} __attribute__ ((packed));

#define BT_HCI_EVT_QOS_VIOLATION		0x1e
struct bt_hci_evt_qos_violation {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_PSCAN_MODE_CHANGE		0x1f
struct bt_hci_evt_pscan_mode_change {
	uint8_t  bdaddr[6];
	uint8_t  pscan_mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_PSCAN_REP_MODE_CHANGE	0x20
struct bt_hci_evt_pscan_rep_mode_change {
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_FLOW_SPEC_COMPLETE		0x21
struct bt_hci_evt_flow_spec_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  flags;
	uint8_t  direction;
	uint8_t  service_type;
	uint32_t token_rate;
	uint32_t token_bucket_size;
	uint32_t peak_bandwidth;
	uint32_t access_latency;
} __attribute__ ((packed));

#define BT_HCI_EVT_INQUIRY_RESULT_WITH_RSSI	0x22
struct bt_hci_evt_inquiry_result_with_rssi {
	uint8_t  num_resp;
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
	uint8_t  pscan_period_mode;
	uint8_t  dev_class[3];
	uint16_t clock_offset;
	int8_t   rssi;
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_EXT_FEATURES_COMPLETE	0x23
struct bt_hci_evt_remote_ext_features_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  page;
	uint8_t  max_page;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_EVT_SYNC_CONN_COMPLETE		0x2c
struct bt_hci_evt_sync_conn_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  bdaddr[6];
	uint8_t  link_type;
	uint8_t  tx_interval;
	uint8_t  retrans_window;
	uint16_t rx_pkt_len;
	uint16_t tx_pkt_len;
	uint8_t  air_mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_SYNC_CONN_CHANGED		0x2d
struct bt_hci_evt_sync_conn_changed {
	uint8_t  status;
	uint16_t handle;
	uint8_t  tx_interval;
	uint8_t  retrans_window;
	uint16_t rx_pkt_len;
	uint16_t tx_pkt_len;
} __attribute__ ((packed));

#define BT_HCI_EVT_SNIFF_SUBRATING		0x2e
struct bt_hci_evt_sniff_subrating {
	uint8_t  status;
	uint16_t handle;
	uint16_t max_tx_latency;
	uint16_t max_rx_latency;
	uint16_t min_remote_timeout;
	uint16_t min_local_timeout;
} __attribute__ ((packed));

#define BT_HCI_EVT_EXT_INQUIRY_RESULT		0x2f
struct bt_hci_evt_ext_inquiry_result {
	uint8_t  num_resp;
	uint8_t  bdaddr[6];
	uint8_t  pscan_rep_mode;
	uint8_t  pscan_period_mode;
	uint8_t  dev_class[3];
	uint16_t clock_offset;
	int8_t   rssi;
	uint8_t  data[240];
} __attribute__ ((packed));

#define BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE	0x30
struct bt_hci_evt_encrypt_key_refresh_complete {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_IO_CAPABILITY_REQUEST	0x31
struct bt_hci_evt_io_capability_request {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_IO_CAPABILITY_RESPONSE	0x32
struct bt_hci_evt_io_capability_response {
	uint8_t  bdaddr[6];
	uint8_t  capability;
	uint8_t  oob_data;
	uint8_t  authentication;
} __attribute__ ((packed));

#define BT_HCI_EVT_USER_CONFIRM_REQUEST		0x33
struct bt_hci_evt_user_confirm_request {
	uint8_t  bdaddr[6];
	uint32_t passkey;
} __attribute__ ((packed));

#define BT_HCI_EVT_USER_PASSKEY_REQUEST		0x34
struct bt_hci_evt_user_passkey_request {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_OOB_DATA_REQUEST	0x35
struct bt_hci_evt_remote_oob_data_request {
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_SIMPLE_PAIRING_COMPLETE	0x36
struct bt_hci_evt_simple_pairing_complete {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_LINK_SUPV_TIMEOUT_CHANGED	0x38
struct bt_hci_evt_link_supv_timeout_changed {
	uint16_t handle;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_HCI_EVT_ENHANCED_FLUSH_COMPLETE	0x39
struct bt_hci_evt_enhanced_flush_complete {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_USER_PASSKEY_NOTIFY		0x3b
struct bt_hci_evt_user_passkey_notify {
	uint8_t  bdaddr[6];
	uint32_t passkey;
} __attribute__ ((packed));

#define BT_HCI_EVT_KEYPRESS_NOTIFY		0x3c
struct bt_hci_evt_keypress_notify {
	uint8_t  bdaddr[6];
	uint8_t  type;
} __attribute__ ((packed));

#define BT_HCI_EVT_REMOTE_HOST_FEATURES_NOTIFY	0x3d
struct bt_hci_evt_remote_host_features_notify {
	uint8_t  bdaddr[6];
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_META_EVENT		0x3e

#define BT_HCI_EVT_PHY_LINK_COMPLETE		0x40
struct bt_hci_evt_phy_link_complete {
	uint8_t  status;
	uint8_t  phy_handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_CHANNEL_SELECTED		0x41
struct bt_hci_evt_channel_selected {
	uint8_t  phy_handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_DISCONN_PHY_LINK_COMPLETE	0x42
struct bt_hci_evt_disconn_phy_link_complete {
	uint8_t  status;
	uint8_t  phy_handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_EVT_PHY_LINK_LOSS_EARLY_WARNING	0x43
struct bt_hci_evt_phy_link_loss_early_warning {
	uint8_t  phy_handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_EVT_PHY_LINK_RECOVERY		0x44
struct bt_hci_evt_phy_link_recovery {
	uint8_t  phy_handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_LOGIC_LINK_COMPLETE		0x45
struct bt_hci_evt_logic_link_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  phy_handle;
	uint8_t  flow_spec;
} __attribute__ ((packed));

#define BT_HCI_EVT_DISCONN_LOGIC_LINK_COMPLETE	0x46
struct bt_hci_evt_disconn_logic_link_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_HCI_EVT_FLOW_SPEC_MODIFY_COMPLETE	0x47
struct bt_hci_evt_flow_spec_modify_complete {
	uint8_t  status;
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_NUM_COMPLETED_DATA_BLOCKS	0x48
struct bt_hci_evt_num_completed_data_blocks {
	uint16_t total_num_blocks;
	uint8_t  num_handles;
	uint16_t handle;
	uint16_t num_packets;
	uint16_t num_blocks;
} __attribute__ ((packed));

#define BT_HCI_EVT_SHORT_RANGE_MODE_CHANGE	0x4c
struct bt_hci_evt_short_range_mode_change {
	uint8_t  status;
	uint8_t  phy_handle;
	uint8_t  mode;
} __attribute__ ((packed));

#define BT_HCI_EVT_AMP_STATUS_CHANGE		0x4d
struct bt_hci_evt_amp_status_change {
	uint8_t  status;
	uint8_t  amp_status;
} __attribute__ ((packed));

#define BT_HCI_EVT_TRIGGERED_CLOCK_CAPTURE	0x4e
struct bt_hci_evt_triggered_clock_capture {
	uint16_t handle;
	uint8_t  type;
	uint32_t clock;
	uint16_t clock_offset;
} __attribute__ ((packed));

#define BT_HCI_EVT_SYNC_TRAIN_COMPLETE		0x4f
struct bt_hci_evt_sync_train_complete {
	uint8_t  status;
} __attribute__ ((packed));

#define BT_HCI_EVT_SYNC_TRAIN_RECEIVED		0x50
struct bt_hci_evt_sync_train_received {
	uint8_t  status;
	uint8_t  bdaddr[6];
	uint32_t offset;
	uint8_t  map[10];
	uint8_t  lt_addr;
	uint32_t instant;
	uint16_t interval;
	uint8_t  service_data;
} __attribute__ ((packed));

#define BT_HCI_EVT_SLAVE_BROADCAST_RECEIVE	0x51
struct bt_hci_evt_slave_broadcast_receive {
	uint8_t  bdaddr[6];
	uint8_t  lt_addr;
	uint32_t clock;
	uint32_t offset;
	uint8_t  status;
	uint8_t  fragment;
	uint8_t  length;
} __attribute__ ((packed));

#define BT_HCI_EVT_SLAVE_BROADCAST_TIMEOUT	0x52
struct bt_hci_evt_slave_broadcast_timeout {
	uint8_t  bdaddr[6];
	uint8_t  lt_addr;
} __attribute__ ((packed));

#define BT_HCI_EVT_TRUNCATED_PAGE_COMPLETE	0x53
struct bt_hci_evt_truncated_page_complete {
	uint8_t  status;
	uint8_t  bdaddr[6];
} __attribute__ ((packed));

#define BT_HCI_EVT_SLAVE_PAGE_RESPONSE_TIMEOUT	0x54

#define BT_HCI_EVT_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE	0x55
struct bt_hci_evt_slave_broadcast_channel_map_change {
	uint8_t  map[10];
} __attribute__ ((packed));

#define BT_HCI_EVT_INQUIRY_RESPONSE_NOTIFY	0x56
struct bt_hci_evt_inquiry_response_notify {
	uint8_t  lap[3];
	int8_t   rssi;
} __attribute__ ((packed));

#define BT_HCI_EVT_AUTH_PAYLOAD_TIMEOUT_EXPIRED	0x57
struct bt_hci_evt_auth_payload_timeout_expired {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_CONN_COMPLETE		0x01
struct bt_hci_evt_le_conn_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  role;
	uint8_t  peer_addr_type;
	uint8_t  peer_addr[6];
	uint16_t interval;
	uint16_t latency;
	uint16_t supv_timeout;
	uint8_t  clock_accuracy;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_ADV_REPORT		0x02
struct bt_hci_evt_le_adv_report {
	uint8_t  num_reports;
	uint8_t  event_type;
	uint8_t  addr_type;
	uint8_t  addr[6];
	uint8_t  data_len;
	uint8_t  data[0];
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE	0x03
struct bt_hci_evt_le_conn_update_complete {
	uint8_t  status;
	uint16_t handle;
	uint16_t interval;
	uint16_t latency;
	uint16_t supv_timeout;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_REMOTE_FEATURES_COMPLETE	0x04
struct bt_hci_evt_le_remote_features_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  features[8];
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_LONG_TERM_KEY_REQUEST	0x05
struct bt_hci_evt_le_long_term_key_request {
	uint16_t handle;
	uint64_t rand;
	uint16_t ediv;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_CONN_PARAM_REQUEST	0x06
struct bt_hci_evt_le_conn_param_request {
	uint16_t handle;
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t latency;
	uint16_t supv_timeout;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_DATA_LENGTH_CHANGE	0x07
struct bt_hci_evt_le_data_length_change {
	uint16_t handle;
	uint16_t max_tx_len;
	uint16_t max_tx_time;
	uint16_t max_rx_len;
	uint16_t max_rx_time;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_READ_LOCAL_PK256_COMPLETE	0x08
struct bt_hci_evt_le_read_local_pk256_complete {
	uint8_t  status;
	uint8_t  local_pk256[64];
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE	0x09
struct bt_hci_evt_le_generate_dhkey_complete {
	uint8_t  status;
	uint8_t  dhkey[32];
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_ENHANCED_CONN_COMPLETE	0x0a
struct bt_hci_evt_le_enhanced_conn_complete {
	uint8_t  status;
	uint16_t handle;
	uint8_t  role;
	uint8_t  peer_addr_type;
	uint8_t  peer_addr[6];
	uint8_t  local_rpa[6];
	uint8_t  peer_rpa[6];
	uint16_t interval;
	uint16_t latency;
	uint16_t supv_timeout;
	uint8_t  clock_accuracy;
} __attribute__ ((packed));

#define BT_HCI_EVT_LE_DIRECT_ADV_REPORT		0x0b
struct bt_hci_evt_le_direct_adv_report {
	uint8_t  num_reports;
	uint8_t  event_type;
	uint8_t  addr_type;
	uint8_t  addr[6];
	uint8_t  direct_addr_type;
	uint8_t  direct_addr[6];
	int8_t   rssi;
} __attribute__ ((packed));

#define BT_HCI_ERR_SUCCESS			0x00
#define BT_HCI_ERR_UNKNOWN_COMMAND		0x01
#define BT_HCI_ERR_UNKNOWN_CONN_ID		0x02
#define BT_HCI_ERR_HARDWARE_FAILURE		0x03
#define BT_HCI_ERR_PAGE_TIMEOUT			0x04
#define BT_HCI_ERR_AUTH_FAILURE			0x05
#define BT_HCI_ERR_PIN_OR_KEY_MISSING		0x06
#define BT_HCI_ERR_MEM_CAPACITY_EXCEEDED	0x07
#define BT_HCI_ERR_COMMAND_DISALLOWED		0x0c
#define BT_HCI_ERR_UNSUPPORTED_FEATURE		0x11
#define BT_HCI_ERR_INVALID_PARAMETERS		0x12
#define BT_HCI_ERR_UNSPECIFIED_ERROR		0x1f
#define BT_HCI_ERR_CONN_FAILED_TO_ESTABLISH	0x3e

struct bt_l2cap_hdr {
	uint16_t len;
	uint16_t cid;
} __attribute__ ((packed));

struct bt_l2cap_hdr_sig {
	uint8_t  code;
	uint8_t  ident;
	uint16_t len;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CMD_REJECT		0x01
struct bt_l2cap_pdu_cmd_reject {
	uint16_t reason;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONN_REQ		0x02
struct bt_l2cap_pdu_conn_req {
	uint16_t psm;
	uint16_t scid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONN_RSP		0x03
struct bt_l2cap_pdu_conn_rsp {
	uint16_t dcid;
	uint16_t scid;
	uint16_t result;
	uint16_t status;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONFIG_REQ		0x04
struct bt_l2cap_pdu_config_req {
	uint16_t dcid;
	uint16_t flags;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONFIG_RSP		0x05
struct bt_l2cap_pdu_config_rsp {
	uint16_t scid;
	uint16_t flags;
	uint16_t result;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_DISCONN_REQ	0x06
struct bt_l2cap_pdu_disconn_req {
	uint16_t dcid;
	uint16_t scid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_DISCONN_RSP	0x07
struct bt_l2cap_pdu_disconn_rsp {
	uint16_t dcid;
	uint16_t scid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_ECHO_REQ		0x08

#define BT_L2CAP_PDU_ECHO_RSP		0x09

#define BT_L2CAP_PDU_INFO_REQ		0x0a
struct bt_l2cap_pdu_info_req {
	uint16_t type;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_INFO_RSP		0x0b
struct bt_l2cap_pdu_info_rsp {
	uint16_t type;
	uint16_t result;
	uint8_t  data[0];
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CREATE_CHAN_REQ	0x0c
struct bt_l2cap_pdu_create_chan_req {
	uint16_t psm;
	uint16_t scid;
	uint8_t  ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CREATE_CHAN_RSP	0x0d
struct bt_l2cap_pdu_create_chan_rsp {
	uint16_t dcid;
	uint16_t scid;
	uint16_t result;
	uint16_t status;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_MOVE_CHAN_REQ	0x0e
struct bt_l2cap_pdu_move_chan_req {
	uint16_t icid;
	uint8_t  ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_MOVE_CHAN_RSP	0x0f
struct bt_l2cap_pdu_move_chan_rsp {
	uint16_t icid;
	uint16_t result;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_MOVE_CHAN_CFM	0x10
struct bt_l2cap_pdu_move_chan_cfm {
	uint16_t icid;
	uint16_t result;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_MOVE_CHAN_CFM_RSP	0x11
struct bt_l2cap_pdu_move_chan_cfm_rsp {
	uint16_t icid;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONN_PARAM_REQ	0x12
struct bt_l2cap_pdu_conn_param_req {
	uint16_t min_interval;
	uint16_t max_interval;
	uint16_t latency;
	uint16_t timeout;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_CONN_PARAM_RSP	0x13
struct bt_l2cap_pdu_conn_param_rsp {
	uint16_t result;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_LE_CONN_REQ	0x14
struct bt_l2cap_pdu_le_conn_req {
	uint16_t psm;
	uint16_t scid;
	uint16_t mtu;
	uint16_t mps;
	uint16_t credits;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_LE_CONN_RSP	0x15
struct bt_l2cap_pdu_le_conn_rsp {
	uint16_t dcid;
	uint16_t mtu;
	uint16_t mps;
	uint16_t credits;
	uint16_t result;
} __attribute__ ((packed));

#define BT_L2CAP_PDU_LE_FLOWCTL_CREDS	0x16
struct bt_l2cap_pdu_le_flowctl_creds {
	uint16_t cid;
	uint16_t credits;
} __attribute__ ((packed));

struct bt_l2cap_hdr_connless {
	uint16_t psm;
} __attribute__ ((packed));

struct bt_l2cap_hdr_amp {
	uint8_t  code;
	uint8_t  ident;
	uint16_t len;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_CMD_REJECT		0x01
struct bt_l2cap_amp_cmd_reject {
	uint16_t reason;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_DISCOVER_REQ	0x02
struct bt_l2cap_amp_discover_req {
	uint16_t size;
	uint16_t features;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_DISCOVER_RSP	0x03
struct bt_l2cap_amp_discover_rsp {
	uint16_t size;
	uint16_t features;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_CHANGE_NOTIFY	0x04

#define BT_L2CAP_AMP_CHANGE_RESPONSE	0x05

#define BT_L2CAP_AMP_GET_INFO_REQ	0x06
struct bt_l2cap_amp_get_info_req {
	uint8_t  ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_GET_INFO_RSP	0x07
struct bt_l2cap_amp_get_info_rsp {
	uint8_t  ctrlid;
	uint8_t  status;
	uint32_t total_bw;
	uint32_t max_bw;
	uint32_t min_latency;
	uint16_t pal_cap;
	uint16_t max_assoc_len;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_GET_ASSOC_REQ	0x08
struct bt_l2cap_amp_get_assoc_req {
	uint8_t  ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_GET_ASSOC_RSP	0x09
struct bt_l2cap_amp_get_assoc_rsp {
	uint8_t  ctrlid;
	uint8_t  status;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_CREATE_PHY_LINK_REQ	0x0a
struct bt_l2cap_amp_create_phy_link_req {
	uint8_t  local_ctrlid;
	uint8_t  remote_ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_CREATE_PHY_LINK_RSP	0x0b
struct bt_l2cap_amp_create_phy_link_rsp {
	uint8_t  local_ctrlid;
	uint8_t  remote_ctrlid;
	uint8_t  status;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_DISCONN_PHY_LINK_REQ	0x0c
struct bt_l2cap_amp_disconn_phy_link_req {
	uint8_t  local_ctrlid;
	uint8_t  remote_ctrlid;
} __attribute__ ((packed));

#define BT_L2CAP_AMP_DISCONN_PHY_LINK_RSP	0x0d
struct bt_l2cap_amp_disconn_phy_link_rsp {
	uint8_t  local_ctrlid;
	uint8_t  remote_ctrlid;
	uint8_t  status;
} __attribute__ ((packed));

struct bt_l2cap_hdr_att {
	uint8_t  code;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_ERROR_RESPONSE		0x01
struct bt_l2cap_att_error_response {
	uint8_t  request;
	uint16_t handle;
	uint8_t  error;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_EXCHANGE_MTU_REQ		0x02
struct bt_l2cap_att_exchange_mtu_req {
	uint16_t mtu;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_EXCHANGE_MTU_RSP		0x03
struct bt_l2cap_att_exchange_mtu_rsp {
	uint16_t mtu;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_READ_TYPE_REQ		0x08
struct bt_l2cap_att_read_type_req {
	uint16_t start_handle;
	uint16_t end_handle;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_READ_TYPE_RSP		0x09
struct bt_l2cap_att_read_type_rsp {
	uint8_t  length;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_READ_REQ			0x0a
struct bt_l2cap_att_read_req {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_READ_RSP			0x0b

#define BT_L2CAP_ATT_READ_GROUP_TYPE_REQ	0x10
struct bt_l2cap_att_read_group_type_req {
	uint16_t start_handle;
	uint16_t end_handle;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_READ_GROUP_TYPE_RSP	0x11
struct bt_l2cap_att_read_group_type_rsp {
	uint8_t  length;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_HANDLE_VALUE_NOTIFY	0x1b
struct bt_l2cap_att_handle_value_notify {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_HANDLE_VALUE_IND		0x1d
struct bt_l2cap_att_handle_value_ind {
	uint16_t handle;
} __attribute__ ((packed));

#define BT_L2CAP_ATT_HANDLE_VALUE_CONF		0x1e

struct bt_l2cap_hdr_smp {
	uint8_t  code;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PAIRING_REQUEST	0x01
struct bt_l2cap_smp_pairing_request {
	uint8_t  io_capa;
	uint8_t  oob_data;
	uint8_t  auth_req;
	uint8_t  max_key_size;
	uint8_t  init_key_dist;
	uint8_t  resp_key_dist;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PAIRING_RESPONSE	0x02
struct bt_l2cap_smp_pairing_response {
	uint8_t  io_capa;
	uint8_t  oob_data;
	uint8_t  auth_req;
	uint8_t  max_key_size;
	uint8_t  init_key_dist;
	uint8_t  resp_key_dist;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PAIRING_CONFIRM	0x03
struct bt_l2cap_smp_pairing_confirm {
	uint8_t  value[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PAIRING_RANDOM	0x04
struct bt_l2cap_smp_pairing_random {
	uint8_t  value[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PAIRING_FAILED	0x05
struct bt_l2cap_smp_pairing_failed {
	uint8_t  reason;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_ENCRYPT_INFO	0x06
struct bt_l2cap_smp_encrypt_info {
	uint8_t  ltk[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_MASTER_IDENT	0x07
struct bt_l2cap_smp_master_ident {
	uint16_t ediv;
	uint64_t rand;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_IDENT_INFO		0x08
struct bt_l2cap_smp_ident_info {
	uint8_t  irk[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_IDENT_ADDR_INFO	0x09
struct bt_l2cap_smp_ident_addr_info {
	uint8_t  addr_type;
	uint8_t  addr[6];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_SIGNING_INFO	0x0a
struct bt_l2cap_smp_signing_info {
	uint8_t  csrk[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_SECURITY_REQUEST	0x0b
struct bt_l2cap_smp_security_request {
	uint8_t  auth_req;
} __attribute__ ((packed));

#define BT_L2CAP_SMP_PUBLIC_KEY		0x0c
struct bt_l2cap_smp_public_key {
	uint8_t  x[32];
	uint8_t  y[32];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_DHKEY_CHECK	0x0d
struct bt_l2cap_smp_dhkey_check {
	uint8_t  e[16];
} __attribute__ ((packed));

#define BT_L2CAP_SMP_KEYPRESS_NOTIFY	0x0e
struct bt_l2cap_smp_keypress_notify {
	uint8_t  type;
} __attribute__ ((packed));

struct bt_sdp_hdr {
	uint8_t  pdu;
	uint16_t tid;
	uint16_t plen;
} __attribute__ ((packed));
