Bluetooth: Add set_io_capability management command
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / net / bluetooth / mgmt.h
index ca29c1367ffd38b203960b1a3ea39412a234957b..44ac55c850794ec971b7a820e1186f6052f9bc25 100644 (file)
@@ -47,6 +47,7 @@ struct mgmt_rp_read_info {
        __le16 index;
        __u8 type;
        __u8 powered;
+       __u8 connectable;
        __u8 discoverable;
        __u8 pairable;
        __u8 sec_mode;
@@ -58,6 +59,107 @@ struct mgmt_rp_read_info {
        __u16 hci_rev;
 } __packed;
 
+struct mgmt_mode {
+       __le16 index;
+       __u8 val;
+} __packed;
+
+#define MGMT_OP_SET_POWERED            0x0005
+
+#define MGMT_OP_SET_DISCOVERABLE       0x0006
+
+#define MGMT_OP_SET_CONNECTABLE                0x0007
+
+#define MGMT_OP_SET_PAIRABLE           0x0008
+
+#define MGMT_OP_ADD_UUID               0x0009
+struct mgmt_cp_add_uuid {
+       __le16 index;
+       __u8 uuid[16];
+       __u8 svc_hint;
+} __packed;
+
+#define MGMT_OP_REMOVE_UUID            0x000A
+struct mgmt_cp_remove_uuid {
+       __le16 index;
+       __u8 uuid[16];
+} __packed;
+
+#define MGMT_OP_SET_DEV_CLASS          0x000B
+struct mgmt_cp_set_dev_class {
+       __le16 index;
+       __u8 major;
+       __u8 minor;
+} __packed;
+
+#define MGMT_OP_SET_SERVICE_CACHE      0x000C
+struct mgmt_cp_set_service_cache {
+       __le16 index;
+       __u8 enable;
+} __packed;
+
+struct mgmt_key_info {
+       bdaddr_t bdaddr;
+       u8 type;
+       u8 val[16];
+       u8 pin_len;
+} __packed;
+
+#define MGMT_OP_LOAD_KEYS              0x000D
+struct mgmt_cp_load_keys {
+       __le16 index;
+       __u8 debug_keys;
+       __le16 key_count;
+       struct mgmt_key_info keys[0];
+} __packed;
+
+#define MGMT_OP_REMOVE_KEY             0x000E
+struct mgmt_cp_remove_key {
+       __le16 index;
+       bdaddr_t bdaddr;
+       __u8 disconnect;
+} __packed;
+
+#define MGMT_OP_DISCONNECT             0x000F
+struct mgmt_cp_disconnect {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;
+struct mgmt_rp_disconnect {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_OP_GET_CONNECTIONS                0x0010
+struct mgmt_cp_get_connections {
+       __le16 index;
+} __packed;
+struct mgmt_rp_get_connections {
+       __le16 index;
+       __le16 conn_count;
+       bdaddr_t conn[0];
+} __packed;
+
+#define MGMT_OP_PIN_CODE_REPLY         0x0011
+struct mgmt_cp_pin_code_reply {
+       __le16 index;
+       bdaddr_t bdaddr;
+       __u8 pin_len;
+       __u8 pin_code[16];
+} __packed;
+
+#define MGMT_OP_PIN_CODE_NEG_REPLY     0x0012
+struct mgmt_cp_pin_code_neg_reply {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_OP_SET_IO_CAPABILITY      0x0013
+struct mgmt_cp_set_io_capability {
+       __le16 index;
+       __u8 io_capability;
+} __packed;
+
 #define MGMT_EV_CMD_COMPLETE           0x0001
 struct mgmt_ev_cmd_complete {
        __le16 opcode;
@@ -85,3 +187,43 @@ struct mgmt_ev_index_added {
 struct mgmt_ev_index_removed {
        __le16 index;
 } __packed;
+
+#define MGMT_EV_POWERED                        0x0006
+
+#define MGMT_EV_DISCOVERABLE           0x0007
+
+#define MGMT_EV_CONNECTABLE            0x0008
+
+#define MGMT_EV_PAIRABLE               0x0009
+
+#define MGMT_EV_NEW_KEY                        0x000A
+struct mgmt_ev_new_key {
+       __le16 index;
+       struct mgmt_key_info key;
+       __u8 old_key_type;
+} __packed;
+
+#define MGMT_EV_CONNECTED              0x000B
+struct mgmt_ev_connected {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_EV_DISCONNECTED           0x000C
+struct mgmt_ev_disconnected {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_EV_CONNECT_FAILED         0x000D
+struct mgmt_ev_connect_failed {
+       __le16 index;
+       bdaddr_t bdaddr;
+       __u8 status;
+} __packed;
+
+#define MGMT_EV_PIN_CODE_REQUEST       0x000E
+struct mgmt_ev_pin_code_request {
+       __le16 index;
+       bdaddr_t bdaddr;
+} __packed;