diff options
Diffstat (limited to 'include/net/bluetooth')
| -rw-r--r-- | include/net/bluetooth/hci.h | 14 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 17 | ||||
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 22 | 
3 files changed, 44 insertions, 9 deletions
| diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index cdd9f1fe7cfa..c36dc1e20556 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -1517,6 +1517,20 @@ struct hci_cp_le_write_def_data_len {  	__le16	tx_time;  } __packed; +#define HCI_OP_LE_ADD_TO_RESOLV_LIST	0x2027 +struct hci_cp_le_add_to_resolv_list { +	__u8	 bdaddr_type; +	bdaddr_t bdaddr; +	__u8	 peer_irk[16]; +	__u8	 local_irk[16]; +} __packed; + +#define HCI_OP_LE_DEL_FROM_RESOLV_LIST	0x2028 +struct hci_cp_le_del_from_resolv_list { +	__u8	 bdaddr_type; +	bdaddr_t bdaddr; +} __packed; +  #define HCI_OP_LE_CLEAR_RESOLV_LIST	0x2029  #define HCI_OP_LE_READ_RESOLV_LIST_SIZE	0x202a diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 0db1b9b428b7..e5ea633ea368 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -103,6 +103,14 @@ struct bdaddr_list {  	u8 bdaddr_type;  }; +struct bdaddr_list_with_irk { +	struct list_head list; +	bdaddr_t bdaddr; +	u8 bdaddr_type; +	u8 peer_irk[16]; +	u8 local_irk[16]; +}; +  struct bt_uuid {  	struct list_head list;  	u8 uuid[16]; @@ -259,6 +267,8 @@ struct hci_dev {  	__u16		le_max_tx_time;  	__u16		le_max_rx_len;  	__u16		le_max_rx_time; +	__u8		le_max_key_size; +	__u8		le_min_key_size;  	__u16		discov_interleaved_timeout;  	__u16		conn_info_min_age;  	__u16		conn_info_max_age; @@ -1058,8 +1068,15 @@ int hci_inquiry(void __user *arg);  struct bdaddr_list *hci_bdaddr_list_lookup(struct list_head *list,  					   bdaddr_t *bdaddr, u8 type); +struct bdaddr_list_with_irk *hci_bdaddr_list_lookup_with_irk( +				    struct list_head *list, bdaddr_t *bdaddr, +				    u8 type);  int hci_bdaddr_list_add(struct list_head *list, bdaddr_t *bdaddr, u8 type); +int hci_bdaddr_list_add_with_irk(struct list_head *list, bdaddr_t *bdaddr, +					u8 type, u8 *peer_irk, u8 *local_irk);  int hci_bdaddr_list_del(struct list_head *list, bdaddr_t *bdaddr, u8 type); +int hci_bdaddr_list_del_with_irk(struct list_head *list, bdaddr_t *bdaddr, +								u8 type);  void hci_bdaddr_list_clear(struct list_head *list);  struct hci_conn_params *hci_conn_params_lookup(struct hci_dev *hdev, diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 0697fd413087..093aedebdf0c 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h @@ -277,12 +277,19 @@ struct l2cap_conn_rsp {  #define L2CAP_CR_SEC_BLOCK	0x0003  #define L2CAP_CR_NO_MEM		0x0004  #define L2CAP_CR_BAD_AMP	0x0005 -#define L2CAP_CR_AUTHENTICATION	0x0005 -#define L2CAP_CR_AUTHORIZATION	0x0006 -#define L2CAP_CR_BAD_KEY_SIZE	0x0007 -#define L2CAP_CR_ENCRYPTION	0x0008 -#define L2CAP_CR_INVALID_SCID	0x0009 -#define L2CAP_CR_SCID_IN_USE	0x000A +#define L2CAP_CR_INVALID_SCID	0x0006 +#define L2CAP_CR_SCID_IN_USE	0x0007 + +/* credit based connect results */ +#define L2CAP_CR_LE_SUCCESS		0x0000 +#define L2CAP_CR_LE_BAD_PSM		0x0002 +#define L2CAP_CR_LE_NO_MEM		0x0004 +#define L2CAP_CR_LE_AUTHENTICATION	0x0005 +#define L2CAP_CR_LE_AUTHORIZATION	0x0006 +#define L2CAP_CR_LE_BAD_KEY_SIZE	0x0007 +#define L2CAP_CR_LE_ENCRYPTION		0x0008 +#define L2CAP_CR_LE_INVALID_SCID	0x0009 +#define L2CAP_CR_LE_SCID_IN_USE		0X000A  /* connect/create channel status */  #define L2CAP_CS_NO_INFO	0x0000 @@ -455,9 +462,6 @@ struct l2cap_conn_param_update_rsp {  #define L2CAP_CONN_PARAM_ACCEPTED	0x0000  #define L2CAP_CONN_PARAM_REJECTED	0x0001 -#define L2CAP_LE_MAX_CREDITS		10 -#define L2CAP_LE_DEFAULT_MPS		230 -  struct l2cap_le_conn_req {  	__le16     psm;  	__le16     scid; |