| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 1 | /* | 
|  | 2 | BlueZ - Bluetooth protocol stack for Linux | 
|  | 3 |  | 
|  | 4 | Copyright (C) 2010  Nokia Corporation | 
|  | 5 |  | 
|  | 6 | This program is free software; you can redistribute it and/or modify | 
|  | 7 | it under the terms of the GNU General Public License version 2 as | 
|  | 8 | published by the Free Software Foundation; | 
|  | 9 |  | 
|  | 10 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | 
|  | 11 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
|  | 12 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. | 
|  | 13 | IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY | 
|  | 14 | CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES | 
|  | 15 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 
|  | 16 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 
|  | 17 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 
|  | 18 |  | 
|  | 19 | ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, | 
|  | 20 | COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS | 
|  | 21 | SOFTWARE IS DISCLAIMED. | 
|  | 22 | */ | 
|  | 23 |  | 
| Szymon Janc | 4e51eae | 2011-02-25 19:05:48 +0100 | [diff] [blame] | 24 | #define MGMT_INDEX_NONE			0xFFFF | 
|  | 25 |  | 
| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 26 | struct mgmt_hdr { | 
|  | 27 | __le16 opcode; | 
| Szymon Janc | 4e51eae | 2011-02-25 19:05:48 +0100 | [diff] [blame] | 28 | __le16 index; | 
| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 29 | __le16 len; | 
|  | 30 | } __packed; | 
| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 31 |  | 
| Johan Hedberg | 02d9812 | 2010-12-13 21:07:04 +0200 | [diff] [blame] | 32 | #define MGMT_OP_READ_VERSION		0x0001 | 
|  | 33 | struct mgmt_rp_read_version { | 
|  | 34 | __u8 version; | 
|  | 35 | __le16 revision; | 
|  | 36 | } __packed; | 
|  | 37 |  | 
| Johan Hedberg | faba42e | 2010-12-13 21:07:05 +0200 | [diff] [blame] | 38 | #define MGMT_OP_READ_INDEX_LIST		0x0003 | 
|  | 39 | struct mgmt_rp_read_index_list { | 
|  | 40 | __le16 num_controllers; | 
|  | 41 | __le16 index[0]; | 
|  | 42 | } __packed; | 
|  | 43 |  | 
| Johan Hedberg | dc4fe30 | 2011-03-16 14:29:36 +0200 | [diff] [blame] | 44 | /* Reserve one extra byte for names in management messages so that they | 
|  | 45 | * are always guaranteed to be nul-terminated */ | 
|  | 46 | #define MGMT_MAX_NAME_LENGTH		(HCI_MAX_NAME_LENGTH + 1) | 
|  | 47 |  | 
| Johan Hedberg | f7b64e69 | 2010-12-13 21:07:06 +0200 | [diff] [blame] | 48 | #define MGMT_OP_READ_INFO		0x0004 | 
| Johan Hedberg | f7b64e69 | 2010-12-13 21:07:06 +0200 | [diff] [blame] | 49 | struct mgmt_rp_read_info { | 
| Johan Hedberg | f7b64e69 | 2010-12-13 21:07:06 +0200 | [diff] [blame] | 50 | __u8 type; | 
|  | 51 | __u8 powered; | 
| Johan Hedberg | 9fbcbb4 | 2010-12-30 00:18:33 +0200 | [diff] [blame] | 52 | __u8 connectable; | 
| Johan Hedberg | f7b64e69 | 2010-12-13 21:07:06 +0200 | [diff] [blame] | 53 | __u8 discoverable; | 
|  | 54 | __u8 pairable; | 
|  | 55 | __u8 sec_mode; | 
|  | 56 | bdaddr_t bdaddr; | 
|  | 57 | __u8 dev_class[3]; | 
|  | 58 | __u8 features[8]; | 
|  | 59 | __u16 manufacturer; | 
|  | 60 | __u8 hci_ver; | 
|  | 61 | __u16 hci_rev; | 
| Johan Hedberg | dc4fe30 | 2011-03-16 14:29:36 +0200 | [diff] [blame] | 62 | __u8 name[MGMT_MAX_NAME_LENGTH]; | 
| Johan Hedberg | f7b64e69 | 2010-12-13 21:07:06 +0200 | [diff] [blame] | 63 | } __packed; | 
|  | 64 |  | 
| Johan Hedberg | 72a734e | 2010-12-30 00:38:22 +0200 | [diff] [blame] | 65 | struct mgmt_mode { | 
| Johan Hedberg | 72a734e | 2010-12-30 00:38:22 +0200 | [diff] [blame] | 66 | __u8 val; | 
|  | 67 | } __packed; | 
|  | 68 |  | 
| Johan Hedberg | eec8d2b | 2010-12-16 10:17:38 +0200 | [diff] [blame] | 69 | #define MGMT_OP_SET_POWERED		0x0005 | 
| Johan Hedberg | eec8d2b | 2010-12-16 10:17:38 +0200 | [diff] [blame] | 70 |  | 
| Johan Hedberg | 73f22f6 | 2010-12-29 16:00:25 +0200 | [diff] [blame] | 71 | #define MGMT_OP_SET_DISCOVERABLE	0x0006 | 
| Johan Hedberg | 16ab91a | 2011-11-07 22:16:02 +0200 | [diff] [blame] | 72 | struct mgmt_cp_set_discoverable { | 
|  | 73 | __u8 val; | 
|  | 74 | __u16 timeout; | 
|  | 75 | } __packed; | 
| Johan Hedberg | 73f22f6 | 2010-12-29 16:00:25 +0200 | [diff] [blame] | 76 |  | 
| Johan Hedberg | 9fbcbb4 | 2010-12-30 00:18:33 +0200 | [diff] [blame] | 77 | #define MGMT_OP_SET_CONNECTABLE		0x0007 | 
| Johan Hedberg | 9fbcbb4 | 2010-12-30 00:18:33 +0200 | [diff] [blame] | 78 |  | 
| Johan Hedberg | c542a06 | 2011-01-26 13:11:03 +0200 | [diff] [blame] | 79 | #define MGMT_OP_SET_PAIRABLE		0x0008 | 
|  | 80 |  | 
| Johan Hedberg | 2aeb9a1 | 2011-01-04 12:08:51 +0200 | [diff] [blame] | 81 | #define MGMT_OP_ADD_UUID		0x0009 | 
|  | 82 | struct mgmt_cp_add_uuid { | 
| Johan Hedberg | 2aeb9a1 | 2011-01-04 12:08:51 +0200 | [diff] [blame] | 83 | __u8 uuid[16]; | 
| Johan Hedberg | 1aff6f0 | 2011-01-13 21:56:52 +0200 | [diff] [blame] | 84 | __u8 svc_hint; | 
| Johan Hedberg | 2aeb9a1 | 2011-01-04 12:08:51 +0200 | [diff] [blame] | 85 | } __packed; | 
|  | 86 |  | 
|  | 87 | #define MGMT_OP_REMOVE_UUID		0x000A | 
|  | 88 | struct mgmt_cp_remove_uuid { | 
| Johan Hedberg | 2aeb9a1 | 2011-01-04 12:08:51 +0200 | [diff] [blame] | 89 | __u8 uuid[16]; | 
|  | 90 | } __packed; | 
|  | 91 |  | 
| Johan Hedberg | 1aff6f0 | 2011-01-13 21:56:52 +0200 | [diff] [blame] | 92 | #define MGMT_OP_SET_DEV_CLASS		0x000B | 
|  | 93 | struct mgmt_cp_set_dev_class { | 
| Johan Hedberg | 1aff6f0 | 2011-01-13 21:56:52 +0200 | [diff] [blame] | 94 | __u8 major; | 
|  | 95 | __u8 minor; | 
|  | 96 | } __packed; | 
|  | 97 |  | 
|  | 98 | #define MGMT_OP_SET_SERVICE_CACHE	0x000C | 
|  | 99 | struct mgmt_cp_set_service_cache { | 
| Johan Hedberg | 1aff6f0 | 2011-01-13 21:56:52 +0200 | [diff] [blame] | 100 | __u8 enable; | 
|  | 101 | } __packed; | 
|  | 102 |  | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 103 | struct mgmt_link_key_info { | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 104 | bdaddr_t bdaddr; | 
|  | 105 | u8 type; | 
|  | 106 | u8 val[16]; | 
|  | 107 | u8 pin_len; | 
|  | 108 | } __packed; | 
|  | 109 |  | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 110 | #define MGMT_OP_LOAD_LINK_KEYS		0x000D | 
|  | 111 | struct mgmt_cp_load_link_keys { | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 112 | __u8 debug_keys; | 
|  | 113 | __le16 key_count; | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 114 | struct mgmt_link_key_info keys[0]; | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 115 | } __packed; | 
|  | 116 |  | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 117 | #define MGMT_OP_REMOVE_KEYS		0x000E | 
|  | 118 | struct mgmt_cp_remove_keys { | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 119 | bdaddr_t bdaddr; | 
|  | 120 | __u8 disconnect; | 
|  | 121 | } __packed; | 
| Johan Hedberg | a8a1d19 | 2011-11-10 15:54:38 +0200 | [diff] [blame] | 122 | struct mgmt_rp_remove_keys { | 
|  | 123 | bdaddr_t bdaddr; | 
|  | 124 | __u8 status; | 
|  | 125 | }; | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 126 |  | 
| Johan Hedberg | 8962ee7 | 2011-01-20 12:40:27 +0200 | [diff] [blame] | 127 | #define MGMT_OP_DISCONNECT		0x000F | 
|  | 128 | struct mgmt_cp_disconnect { | 
| Johan Hedberg | 8962ee7 | 2011-01-20 12:40:27 +0200 | [diff] [blame] | 129 | bdaddr_t bdaddr; | 
|  | 130 | } __packed; | 
|  | 131 | struct mgmt_rp_disconnect { | 
| Johan Hedberg | 8962ee7 | 2011-01-20 12:40:27 +0200 | [diff] [blame] | 132 | bdaddr_t bdaddr; | 
| Johan Hedberg | 37d9ef7 | 2011-11-10 15:54:39 +0200 | [diff] [blame] | 133 | __u8 status; | 
| Johan Hedberg | 8962ee7 | 2011-01-20 12:40:27 +0200 | [diff] [blame] | 134 | } __packed; | 
|  | 135 |  | 
| Johan Hedberg | 4c659c3 | 2011-11-07 23:13:39 +0200 | [diff] [blame] | 136 | #define MGMT_ADDR_BREDR			0x00 | 
| Johan Hedberg | 48264f0 | 2011-11-09 13:58:58 +0200 | [diff] [blame] | 137 | #define MGMT_ADDR_LE_PUBLIC		0x01 | 
|  | 138 | #define MGMT_ADDR_LE_RANDOM		0x02 | 
| Johan Hedberg | 4c659c3 | 2011-11-07 23:13:39 +0200 | [diff] [blame] | 139 | #define MGMT_ADDR_INVALID		0xff | 
|  | 140 |  | 
|  | 141 | struct mgmt_addr_info { | 
|  | 142 | bdaddr_t bdaddr; | 
|  | 143 | __u8 type; | 
|  | 144 | } __packed; | 
|  | 145 |  | 
| Johan Hedberg | 2784eb4 | 2011-01-21 13:56:35 +0200 | [diff] [blame] | 146 | #define MGMT_OP_GET_CONNECTIONS		0x0010 | 
| Johan Hedberg | 2784eb4 | 2011-01-21 13:56:35 +0200 | [diff] [blame] | 147 | struct mgmt_rp_get_connections { | 
| Johan Hedberg | 2784eb4 | 2011-01-21 13:56:35 +0200 | [diff] [blame] | 148 | __le16 conn_count; | 
| Johan Hedberg | 4c659c3 | 2011-11-07 23:13:39 +0200 | [diff] [blame] | 149 | struct mgmt_addr_info addr[0]; | 
| Johan Hedberg | 2784eb4 | 2011-01-21 13:56:35 +0200 | [diff] [blame] | 150 | } __packed; | 
|  | 151 |  | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 152 | #define MGMT_OP_PIN_CODE_REPLY		0x0011 | 
|  | 153 | struct mgmt_cp_pin_code_reply { | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 154 | bdaddr_t bdaddr; | 
|  | 155 | __u8 pin_len; | 
|  | 156 | __u8 pin_code[16]; | 
|  | 157 | } __packed; | 
| Johan Hedberg | ac56fb1 | 2011-02-19 12:05:59 -0300 | [diff] [blame] | 158 | struct mgmt_rp_pin_code_reply { | 
| Johan Hedberg | ac56fb1 | 2011-02-19 12:05:59 -0300 | [diff] [blame] | 159 | bdaddr_t bdaddr; | 
|  | 160 | uint8_t status; | 
|  | 161 | } __packed; | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 162 |  | 
|  | 163 | #define MGMT_OP_PIN_CODE_NEG_REPLY	0x0012 | 
|  | 164 | struct mgmt_cp_pin_code_neg_reply { | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 165 | bdaddr_t bdaddr; | 
|  | 166 | } __packed; | 
|  | 167 |  | 
| Johan Hedberg | 17fa4b9 | 2011-01-25 13:28:33 +0200 | [diff] [blame] | 168 | #define MGMT_OP_SET_IO_CAPABILITY	0x0013 | 
|  | 169 | struct mgmt_cp_set_io_capability { | 
| Johan Hedberg | 17fa4b9 | 2011-01-25 13:28:33 +0200 | [diff] [blame] | 170 | __u8 io_capability; | 
|  | 171 | } __packed; | 
|  | 172 |  | 
| Johan Hedberg | e9a416b | 2011-02-19 12:05:56 -0300 | [diff] [blame] | 173 | #define MGMT_OP_PAIR_DEVICE		0x0014 | 
|  | 174 | struct mgmt_cp_pair_device { | 
| Johan Hedberg | ba4e564 | 2011-11-11 00:07:34 +0200 | [diff] [blame] | 175 | struct mgmt_addr_info addr; | 
| Johan Hedberg | e9a416b | 2011-02-19 12:05:56 -0300 | [diff] [blame] | 176 | __u8 io_cap; | 
|  | 177 | } __packed; | 
|  | 178 | struct mgmt_rp_pair_device { | 
| Johan Hedberg | ba4e564 | 2011-11-11 00:07:34 +0200 | [diff] [blame] | 179 | struct mgmt_addr_info addr; | 
| Johan Hedberg | e9a416b | 2011-02-19 12:05:56 -0300 | [diff] [blame] | 180 | __u8 status; | 
|  | 181 | } __packed; | 
|  | 182 |  | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 183 | #define MGMT_OP_USER_CONFIRM_REPLY	0x0015 | 
|  | 184 | struct mgmt_cp_user_confirm_reply { | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 185 | bdaddr_t bdaddr; | 
|  | 186 | } __packed; | 
|  | 187 | struct mgmt_rp_user_confirm_reply { | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 188 | bdaddr_t bdaddr; | 
|  | 189 | __u8 status; | 
|  | 190 | } __packed; | 
|  | 191 |  | 
|  | 192 | #define MGMT_OP_USER_CONFIRM_NEG_REPLY	0x0016 | 
|  | 193 |  | 
| Johan Hedberg | b312b161 | 2011-03-16 14:29:37 +0200 | [diff] [blame] | 194 | #define MGMT_OP_SET_LOCAL_NAME		0x0017 | 
|  | 195 | struct mgmt_cp_set_local_name { | 
|  | 196 | __u8 name[MGMT_MAX_NAME_LENGTH]; | 
|  | 197 | } __packed; | 
|  | 198 |  | 
| Szymon Janc | c35938b | 2011-03-22 13:12:21 +0100 | [diff] [blame] | 199 | #define MGMT_OP_READ_LOCAL_OOB_DATA	0x0018 | 
|  | 200 | struct mgmt_rp_read_local_oob_data { | 
|  | 201 | __u8 hash[16]; | 
|  | 202 | __u8 randomizer[16]; | 
|  | 203 | } __packed; | 
|  | 204 |  | 
| Szymon Janc | 2763eda | 2011-03-22 13:12:22 +0100 | [diff] [blame] | 205 | #define MGMT_OP_ADD_REMOTE_OOB_DATA	0x0019 | 
|  | 206 | struct mgmt_cp_add_remote_oob_data { | 
|  | 207 | bdaddr_t bdaddr; | 
|  | 208 | __u8 hash[16]; | 
|  | 209 | __u8 randomizer[16]; | 
|  | 210 | } __packed; | 
|  | 211 |  | 
|  | 212 | #define MGMT_OP_REMOVE_REMOTE_OOB_DATA	0x001A | 
|  | 213 | struct mgmt_cp_remove_remote_oob_data { | 
|  | 214 | bdaddr_t bdaddr; | 
|  | 215 | } __packed; | 
|  | 216 |  | 
| Johan Hedberg | 14a5366 | 2011-04-27 10:29:56 -0400 | [diff] [blame] | 217 | #define MGMT_OP_START_DISCOVERY		0x001B | 
|  | 218 |  | 
|  | 219 | #define MGMT_OP_STOP_DISCOVERY		0x001C | 
|  | 220 |  | 
| Antti Julku | 7fbec22 | 2011-06-15 12:01:15 +0300 | [diff] [blame] | 221 | #define MGMT_OP_BLOCK_DEVICE		0x001D | 
|  | 222 | struct mgmt_cp_block_device { | 
|  | 223 | bdaddr_t bdaddr; | 
|  | 224 | } __packed; | 
|  | 225 |  | 
|  | 226 | #define MGMT_OP_UNBLOCK_DEVICE		0x001E | 
|  | 227 | struct mgmt_cp_unblock_device { | 
|  | 228 | bdaddr_t bdaddr; | 
|  | 229 | } __packed; | 
|  | 230 |  | 
| Antti Julku | f6422ec | 2011-06-22 13:11:56 +0300 | [diff] [blame] | 231 | #define MGMT_OP_SET_FAST_CONNECTABLE	0x001F | 
|  | 232 | struct mgmt_cp_set_fast_connectable { | 
|  | 233 | __u8 enable; | 
|  | 234 | } __packed; | 
|  | 235 |  | 
| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 236 | #define MGMT_EV_CMD_COMPLETE		0x0001 | 
|  | 237 | struct mgmt_ev_cmd_complete { | 
|  | 238 | __le16 opcode; | 
|  | 239 | __u8 data[0]; | 
|  | 240 | } __packed; | 
|  | 241 |  | 
|  | 242 | #define MGMT_EV_CMD_STATUS		0x0002 | 
|  | 243 | struct mgmt_ev_cmd_status { | 
|  | 244 | __u8 status; | 
|  | 245 | __le16 opcode; | 
|  | 246 | } __packed; | 
|  | 247 |  | 
|  | 248 | #define MGMT_EV_CONTROLLER_ERROR	0x0003 | 
|  | 249 | struct mgmt_ev_controller_error { | 
| Johan Hedberg | c02178d | 2010-12-08 00:21:05 +0200 | [diff] [blame] | 250 | __u8 error_code; | 
|  | 251 | } __packed; | 
| Johan Hedberg | c71e97b | 2010-12-13 21:07:07 +0200 | [diff] [blame] | 252 |  | 
|  | 253 | #define MGMT_EV_INDEX_ADDED		0x0004 | 
| Johan Hedberg | c71e97b | 2010-12-13 21:07:07 +0200 | [diff] [blame] | 254 |  | 
|  | 255 | #define MGMT_EV_INDEX_REMOVED		0x0005 | 
| Johan Hedberg | 5add6af | 2010-12-16 10:00:37 +0200 | [diff] [blame] | 256 |  | 
|  | 257 | #define MGMT_EV_POWERED			0x0006 | 
| Johan Hedberg | 73f22f6 | 2010-12-29 16:00:25 +0200 | [diff] [blame] | 258 |  | 
|  | 259 | #define MGMT_EV_DISCOVERABLE		0x0007 | 
| Johan Hedberg | 9fbcbb4 | 2010-12-30 00:18:33 +0200 | [diff] [blame] | 260 |  | 
|  | 261 | #define MGMT_EV_CONNECTABLE		0x0008 | 
| Johan Hedberg | c542a06 | 2011-01-26 13:11:03 +0200 | [diff] [blame] | 262 |  | 
|  | 263 | #define MGMT_EV_PAIRABLE		0x0009 | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 264 |  | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 265 | #define MGMT_EV_NEW_LINK_KEY		0x000A | 
|  | 266 | struct mgmt_ev_new_link_key { | 
| Johan Hedberg | 4df378a | 2011-04-28 11:29:03 -0700 | [diff] [blame] | 267 | __u8 store_hint; | 
| Johan Hedberg | 86742e1 | 2011-11-07 23:13:38 +0200 | [diff] [blame] | 268 | struct mgmt_link_key_info key; | 
| Johan Hedberg | 55ed8ca1 | 2011-01-17 14:41:05 +0200 | [diff] [blame] | 269 | } __packed; | 
| Johan Hedberg | f752054 | 2011-01-20 12:34:39 +0200 | [diff] [blame] | 270 |  | 
|  | 271 | #define MGMT_EV_CONNECTED		0x000B | 
| Johan Hedberg | f752054 | 2011-01-20 12:34:39 +0200 | [diff] [blame] | 272 |  | 
|  | 273 | #define MGMT_EV_DISCONNECTED		0x000C | 
| Johan Hedberg | 17d5c04 | 2011-01-22 06:09:08 +0200 | [diff] [blame] | 274 |  | 
|  | 275 | #define MGMT_EV_CONNECT_FAILED		0x000D | 
|  | 276 | struct mgmt_ev_connect_failed { | 
| Johan Hedberg | 4c659c3 | 2011-11-07 23:13:39 +0200 | [diff] [blame] | 277 | struct mgmt_addr_info addr; | 
| Johan Hedberg | 17d5c04 | 2011-01-22 06:09:08 +0200 | [diff] [blame] | 278 | __u8 status; | 
|  | 279 | } __packed; | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 280 |  | 
|  | 281 | #define MGMT_EV_PIN_CODE_REQUEST	0x000E | 
|  | 282 | struct mgmt_ev_pin_code_request { | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 283 | bdaddr_t bdaddr; | 
| Waldemar Rymarkiewicz | a770bb5 | 2011-04-28 12:07:59 +0200 | [diff] [blame] | 284 | __u8 secure; | 
| Johan Hedberg | 980e1a5 | 2011-01-22 06:10:07 +0200 | [diff] [blame] | 285 | } __packed; | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 286 |  | 
|  | 287 | #define MGMT_EV_USER_CONFIRM_REQUEST	0x000F | 
|  | 288 | struct mgmt_ev_user_confirm_request { | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 289 | bdaddr_t bdaddr; | 
| Johan Hedberg | 55bc1a3 | 2011-04-28 11:28:56 -0700 | [diff] [blame] | 290 | __u8 confirm_hint; | 
| Johan Hedberg | a5c2968 | 2011-02-19 12:05:57 -0300 | [diff] [blame] | 291 | __le32 value; | 
|  | 292 | } __packed; | 
| Johan Hedberg | 2a61169 | 2011-02-19 12:06:00 -0300 | [diff] [blame] | 293 |  | 
|  | 294 | #define MGMT_EV_AUTH_FAILED		0x0010 | 
|  | 295 | struct mgmt_ev_auth_failed { | 
| Johan Hedberg | 2a61169 | 2011-02-19 12:06:00 -0300 | [diff] [blame] | 296 | bdaddr_t bdaddr; | 
|  | 297 | __u8 status; | 
|  | 298 | } __packed; | 
| Johan Hedberg | b312b161 | 2011-03-16 14:29:37 +0200 | [diff] [blame] | 299 |  | 
|  | 300 | #define MGMT_EV_LOCAL_NAME_CHANGED	0x0011 | 
|  | 301 | struct mgmt_ev_local_name_changed { | 
|  | 302 | __u8 name[MGMT_MAX_NAME_LENGTH]; | 
|  | 303 | } __packed; | 
| Johan Hedberg | e17acd4 | 2011-03-30 23:57:16 +0300 | [diff] [blame] | 304 |  | 
|  | 305 | #define MGMT_EV_DEVICE_FOUND		0x0012 | 
|  | 306 | struct mgmt_ev_device_found { | 
| Johan Hedberg | 4c659c3 | 2011-11-07 23:13:39 +0200 | [diff] [blame] | 307 | struct mgmt_addr_info addr; | 
| Johan Hedberg | e17acd4 | 2011-03-30 23:57:16 +0300 | [diff] [blame] | 308 | __u8 dev_class[3]; | 
|  | 309 | __s8 rssi; | 
|  | 310 | __u8 eir[HCI_MAX_EIR_LENGTH]; | 
|  | 311 | } __packed; | 
| Johan Hedberg | a88a965 | 2011-03-30 13:18:12 +0300 | [diff] [blame] | 312 |  | 
|  | 313 | #define MGMT_EV_REMOTE_NAME		0x0013 | 
|  | 314 | struct mgmt_ev_remote_name { | 
|  | 315 | bdaddr_t bdaddr; | 
|  | 316 | __u8 name[MGMT_MAX_NAME_LENGTH]; | 
|  | 317 | } __packed; | 
| Johan Hedberg | 314b238 | 2011-04-27 10:29:57 -0400 | [diff] [blame] | 318 |  | 
|  | 319 | #define MGMT_EV_DISCOVERING		0x0014 | 
| Antti Julku | 5e76244 | 2011-08-25 16:48:02 +0300 | [diff] [blame] | 320 |  | 
|  | 321 | #define MGMT_EV_DEVICE_BLOCKED		0x0015 | 
|  | 322 | struct mgmt_ev_device_blocked { | 
|  | 323 | bdaddr_t bdaddr; | 
|  | 324 | } __packed; | 
|  | 325 |  | 
|  | 326 | #define MGMT_EV_DEVICE_UNBLOCKED	0x0016 | 
|  | 327 | struct mgmt_ev_device_unblocked { | 
|  | 328 | bdaddr_t bdaddr; | 
|  | 329 | } __packed; |