diff options
Diffstat (limited to 'include/net/bluetooth/hci.h')
| -rw-r--r-- | include/net/bluetooth/hci.h | 77 | 
1 files changed, 77 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 0c20227e57f6..be30aabe7b88 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -211,11 +211,16 @@ enum {  #define LMP_EDR_3S_ESCO	0x80  #define LMP_EXT_INQ	0x01 +#define LMP_SIMUL_LE_BR	0x02  #define LMP_SIMPLE_PAIR	0x08  #define LMP_NO_FLUSH	0x40  #define LMP_LSTO	0x01  #define LMP_INQ_TX_PWR	0x02 +#define LMP_EXTFEATURES	0x80 + +/* Extended LMP features */ +#define LMP_HOST_LE	0x02  /* Connection modes */  #define HCI_CM_ACTIVE	0x0000 @@ -254,6 +259,10 @@ enum {  #define HCI_LK_UNAUTH_COMBINATION	0x04  #define HCI_LK_AUTH_COMBINATION		0x05  #define HCI_LK_CHANGED_COMBINATION	0x06 +/* The spec doesn't define types for SMP keys */ +#define HCI_LK_SMP_LTK			0x81 +#define HCI_LK_SMP_IRK			0x82 +#define HCI_LK_SMP_CSRK			0x83  /* -----  HCI Commands ---- */  #define HCI_OP_NOP			0x0000 @@ -653,6 +662,12 @@ struct hci_rp_read_local_oob_data {  #define HCI_OP_READ_INQ_RSP_TX_POWER	0x0c58 +#define HCI_OP_WRITE_LE_HOST_SUPPORTED	0x0c6d +struct hci_cp_write_le_host_supported { +	__u8 le; +	__u8 simul; +} __packed; +  #define HCI_OP_READ_LOCAL_VERSION	0x1001  struct hci_rp_read_local_version {  	__u8     status; @@ -676,6 +691,9 @@ struct hci_rp_read_local_features {  } __packed;  #define HCI_OP_READ_LOCAL_EXT_FEATURES	0x1004 +struct hci_cp_read_local_ext_features { +	__u8     page; +} __packed;  struct hci_rp_read_local_ext_features {  	__u8     status;  	__u8     page; @@ -710,6 +728,12 @@ struct hci_rp_le_read_buffer_size {  	__u8     le_max_pkt;  } __packed; +#define HCI_OP_LE_SET_SCAN_ENABLE	0x200c +struct hci_cp_le_set_scan_enable { +	__u8     enable; +	__u8     filter_dup; +} __packed; +  #define HCI_OP_LE_CREATE_CONN		0x200d  struct hci_cp_le_create_conn {  	__le16   scan_interval; @@ -739,6 +763,33 @@ struct hci_cp_le_conn_update {  	__le16   max_ce_len;  } __packed; +#define HCI_OP_LE_START_ENC		0x2019 +struct hci_cp_le_start_enc { +	__le16	handle; +	__u8	rand[8]; +	__le16	ediv; +	__u8	ltk[16]; +} __packed; + +#define HCI_OP_LE_LTK_REPLY		0x201a +struct hci_cp_le_ltk_reply { +	__le16	handle; +	__u8	ltk[16]; +} __packed; +struct hci_rp_le_ltk_reply { +	__u8	status; +	__le16	handle; +} __packed; + +#define HCI_OP_LE_LTK_NEG_REPLY		0x201b +struct hci_cp_le_ltk_neg_reply { +	__le16	handle; +} __packed; +struct hci_rp_le_ltk_neg_reply { +	__u8	status; +	__le16	handle; +} __packed; +  /* ---- HCI Events ---- */  #define HCI_EV_INQUIRY_COMPLETE		0x01 @@ -1029,6 +1080,32 @@ struct hci_ev_le_conn_complete {  	__u8     clk_accurancy;  } __packed; +#define HCI_EV_LE_LTK_REQ		0x05 +struct hci_ev_le_ltk_req { +	__le16	handle; +	__u8	random[8]; +	__le16	ediv; +} __packed; + +/* Advertising report event types */ +#define ADV_IND		0x00 +#define ADV_DIRECT_IND	0x01 +#define ADV_SCAN_IND	0x02 +#define ADV_NONCONN_IND	0x03 +#define ADV_SCAN_RSP	0x04 + +#define ADDR_LE_DEV_PUBLIC	0x00 +#define ADDR_LE_DEV_RANDOM	0x01 + +#define HCI_EV_LE_ADVERTISING_REPORT	0x02 +struct hci_ev_le_advertising_info { +	__u8	 evt_type; +	__u8	 bdaddr_type; +	bdaddr_t bdaddr; +	__u8	 length; +	__u8	 data[0]; +} __packed; +  /* Internal events generated by Bluetooth stack */  #define HCI_EV_STACK_INTERNAL	0xfd  struct hci_ev_stack_internal {  |