Compilation fix for newer mbed-os

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
Andrea Palmieri
Date:
Mon May 16 17:22:03 2016 +0200
Revision:
229:9981f62cdb1a
Parent:
132:51056160fa4a
Child:
284:6a7441796347
Fix issues and add features

- Fix handles management
- Fix UUIDs management
- Implement API to read random address
- Fix clearing/setting of ADV payload
- Fix scanning behaviour
- Fix scanning while a connection is ongoing
- Implement Char Descriptor discovery
- Implement scanning/advertising filter policy (White List partial management)
- Update underlying BlueNRG stack
- Cosmetics

Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 132:51056160fa4a 1 /******************** (C) COPYRIGHT 2014 STMicroelectronics ********************
Wolfgang Betz 132:51056160fa4a 2 * File Name : bluenrg_aci_const.h
Wolfgang Betz 132:51056160fa4a 3 * Author : AMS - AAS
Wolfgang Betz 132:51056160fa4a 4 * Version : V1.0.0
Wolfgang Betz 132:51056160fa4a 5 * Date : 26-Jun-2014
Wolfgang Betz 132:51056160fa4a 6 * Description : Header file with ACI definitions for BlueNRG FW6.3.
Wolfgang Betz 132:51056160fa4a 7 ********************************************************************************
Wolfgang Betz 132:51056160fa4a 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Wolfgang Betz 132:51056160fa4a 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Wolfgang Betz 132:51056160fa4a 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Wolfgang Betz 132:51056160fa4a 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Wolfgang Betz 132:51056160fa4a 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Wolfgang Betz 132:51056160fa4a 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Wolfgang Betz 132:51056160fa4a 14 *******************************************************************************/
Wolfgang Betz 132:51056160fa4a 15
Wolfgang Betz 132:51056160fa4a 16 #ifndef __BLUENRG_ACI_CONST_H_
Wolfgang Betz 132:51056160fa4a 17 #define __BLUENRG_ACI_CONST_H_
Wolfgang Betz 132:51056160fa4a 18
Wolfgang Betz 132:51056160fa4a 19 #include "compiler.h"
Wolfgang Betz 132:51056160fa4a 20 #include "link_layer.h"
Wolfgang Betz 132:51056160fa4a 21 #include "hci_const.h"
Wolfgang Betz 132:51056160fa4a 22 #include "bluenrg_gatt_server.h"
Wolfgang Betz 132:51056160fa4a 23
Wolfgang Betz 132:51056160fa4a 24 #ifndef DOXYGEN_SHOULD_SKIP_THIS
Wolfgang Betz 132:51056160fa4a 25
Wolfgang Betz 132:51056160fa4a 26 #define OCF_HAL_WRITE_CONFIG_DATA 0x000C
Wolfgang Betz 132:51056160fa4a 27
Andrea Palmieri 229:9981f62cdb1a 28 #define OCF_HAL_READ_CONFIG_DATA 0x000D
Andrea Palmieri 229:9981f62cdb1a 29 typedef __packed struct _hal_read_config_data_cp{
Andrea Palmieri 229:9981f62cdb1a 30 uint8_t offset;
Andrea Palmieri 229:9981f62cdb1a 31 } PACKED hal_read_config_data_cp;
Andrea Palmieri 229:9981f62cdb1a 32 #define HAL_READ_CONFIG_DATA_RP_SIZE 1
Andrea Palmieri 229:9981f62cdb1a 33 typedef __packed struct _hal_read_config_data_rp{
Andrea Palmieri 229:9981f62cdb1a 34 uint8_t status;
Andrea Palmieri 229:9981f62cdb1a 35 uint8_t data[HCI_MAX_PAYLOAD_SIZE-HAL_READ_CONFIG_DATA_RP_SIZE];
Andrea Palmieri 229:9981f62cdb1a 36 } PACKED hal_read_config_data_rp;
Andrea Palmieri 229:9981f62cdb1a 37
Wolfgang Betz 132:51056160fa4a 38 #define OCF_HAL_SET_TX_POWER_LEVEL 0x000F
Wolfgang Betz 132:51056160fa4a 39 typedef __packed struct _hal_set_tx_power_level_cp{
Wolfgang Betz 132:51056160fa4a 40 uint8_t en_high_power;
Wolfgang Betz 132:51056160fa4a 41 uint8_t pa_level;
Wolfgang Betz 132:51056160fa4a 42 } PACKED hal_set_tx_power_level_cp;
Wolfgang Betz 132:51056160fa4a 43 #define HAL_SET_TX_POWER_LEVEL_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 44
Wolfgang Betz 132:51056160fa4a 45 #define OCF_HAL_DEVICE_STANDBY 0x0013
Wolfgang Betz 132:51056160fa4a 46
Andrea Palmieri 229:9981f62cdb1a 47 #define OCF_HAL_LE_TX_TEST_PACKET_NUMBER 0x0014
Andrea Palmieri 229:9981f62cdb1a 48 typedef __packed struct _hal_le_tx_test_packet_number_rp{
Andrea Palmieri 229:9981f62cdb1a 49 uint8_t status;
Andrea Palmieri 229:9981f62cdb1a 50 uint32_t number_of_packets;
Andrea Palmieri 229:9981f62cdb1a 51 } PACKED hal_le_tx_test_packet_number_rp;
Andrea Palmieri 229:9981f62cdb1a 52
Wolfgang Betz 132:51056160fa4a 53 #define OCF_HAL_TONE_START 0x0015
Wolfgang Betz 132:51056160fa4a 54 typedef __packed struct _hal_tone_start_cp{
Wolfgang Betz 132:51056160fa4a 55 uint8_t rf_channel;
Wolfgang Betz 132:51056160fa4a 56 } PACKED hal_tone_start_cp;
Wolfgang Betz 132:51056160fa4a 57 #define HAL_TONE_START_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 58
Wolfgang Betz 132:51056160fa4a 59 #define OCF_HAL_TONE_STOP 0x0016
Wolfgang Betz 132:51056160fa4a 60
Wolfgang Betz 132:51056160fa4a 61 #define OCF_UPDATER_START 0x0020
Wolfgang Betz 132:51056160fa4a 62 #define OCF_UPDATER_REBOOT 0x0021
Wolfgang Betz 132:51056160fa4a 63
Wolfgang Betz 132:51056160fa4a 64 #define OCF_GET_UPDATER_VERSION 0x0022
Wolfgang Betz 132:51056160fa4a 65 typedef __packed struct _get_updater_version_rp{
Wolfgang Betz 132:51056160fa4a 66 uint8_t status;
Wolfgang Betz 132:51056160fa4a 67 uint8_t version;
Wolfgang Betz 132:51056160fa4a 68 } PACKED get_updater_version_rp;
Wolfgang Betz 132:51056160fa4a 69 #define GET_UPDATER_VERSION_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 70
Wolfgang Betz 132:51056160fa4a 71 #define OCF_GET_UPDATER_BUFSIZE 0x0023
Wolfgang Betz 132:51056160fa4a 72 typedef __packed struct _get_updater_bufsize_rp{
Wolfgang Betz 132:51056160fa4a 73 uint8_t status;
Wolfgang Betz 132:51056160fa4a 74 uint8_t buffer_size;
Wolfgang Betz 132:51056160fa4a 75 } PACKED get_updater_bufsize_rp;
Wolfgang Betz 132:51056160fa4a 76 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 77
Wolfgang Betz 132:51056160fa4a 78 #define OCF_UPDATER_ERASE_BLUE_FLAG 0x0024
Wolfgang Betz 132:51056160fa4a 79
Wolfgang Betz 132:51056160fa4a 80 #define OCF_UPDATER_RESET_BLUE_FLAG 0x0025
Wolfgang Betz 132:51056160fa4a 81
Wolfgang Betz 132:51056160fa4a 82 #define OCF_UPDATER_ERASE_SECTOR 0x0026
Wolfgang Betz 132:51056160fa4a 83 typedef __packed struct _updater_erase_sector_cp{
Wolfgang Betz 132:51056160fa4a 84 uint32_t address;
Wolfgang Betz 132:51056160fa4a 85 } PACKED updater_erase_sector_cp;
Wolfgang Betz 132:51056160fa4a 86 #define UPDATER_ERASE_SECTOR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 87
Wolfgang Betz 132:51056160fa4a 88 #define OCF_UPDATER_PROG_DATA_BLOCK 0x0027
Wolfgang Betz 132:51056160fa4a 89 #define UPDATER_PROG_DATA_BLOCK_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 90 typedef __packed struct _updater_prog_data_block_cp{
Wolfgang Betz 132:51056160fa4a 91 uint32_t address;
Wolfgang Betz 132:51056160fa4a 92 uint16_t data_len;
Wolfgang Betz 132:51056160fa4a 93 uint8_t data[HCI_MAX_PAYLOAD_SIZE-UPDATER_PROG_DATA_BLOCK_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 94 } PACKED updater_prog_data_block_cp;
Wolfgang Betz 132:51056160fa4a 95
Wolfgang Betz 132:51056160fa4a 96 #define OCF_UPDATER_READ_DATA_BLOCK 0x0028
Wolfgang Betz 132:51056160fa4a 97 typedef __packed struct _updater_read_data_block_cp{
Wolfgang Betz 132:51056160fa4a 98 uint32_t address;
Wolfgang Betz 132:51056160fa4a 99 uint16_t data_len;
Wolfgang Betz 132:51056160fa4a 100 } PACKED updater_read_data_block_cp;
Wolfgang Betz 132:51056160fa4a 101 #define UPDATER_READ_DATA_BLOCK_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 102 typedef __packed struct _updater_read_data_block_rp{
Wolfgang Betz 132:51056160fa4a 103 uint8_t status;
Wolfgang Betz 132:51056160fa4a 104 uint8_t data[VARIABLE_SIZE];
Wolfgang Betz 132:51056160fa4a 105 } PACKED updater_read_data_block_rp;
Wolfgang Betz 132:51056160fa4a 106 #define GET_UPDATER_BUFSIZE_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 107
Wolfgang Betz 132:51056160fa4a 108 #define OCF_UPDATER_CALC_CRC 0x0029
Wolfgang Betz 132:51056160fa4a 109 typedef __packed struct _updater_calc_crc_cp{
Wolfgang Betz 132:51056160fa4a 110 uint32_t address;
Wolfgang Betz 132:51056160fa4a 111 uint8_t num_sectors;
Wolfgang Betz 132:51056160fa4a 112 } PACKED updater_calc_crc_cp;
Wolfgang Betz 132:51056160fa4a 113 #define UPDATER_CALC_CRC_CP_SIZE 5
Wolfgang Betz 132:51056160fa4a 114 typedef __packed struct _updater_calc_crc_rp{
Wolfgang Betz 132:51056160fa4a 115 uint8_t status;
Wolfgang Betz 132:51056160fa4a 116 uint32_t crc;
Wolfgang Betz 132:51056160fa4a 117 } PACKED updater_calc_crc_rp;
Wolfgang Betz 132:51056160fa4a 118 #define UPDATER_CALC_CRC_RP_SIZE 5
Wolfgang Betz 132:51056160fa4a 119
Wolfgang Betz 132:51056160fa4a 120 #define OCF_UPDATER_HW_VERSION 0x002A
Wolfgang Betz 132:51056160fa4a 121 typedef __packed struct _updater_hw_version_rp{
Wolfgang Betz 132:51056160fa4a 122 uint8_t status;
Wolfgang Betz 132:51056160fa4a 123 uint8_t version;
Wolfgang Betz 132:51056160fa4a 124 } PACKED updater_hw_version_rp;
Wolfgang Betz 132:51056160fa4a 125 #define UPDATER_HW_VERSION_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 126
Wolfgang Betz 132:51056160fa4a 127 #define OCF_GAP_SET_NON_DISCOVERABLE 0x0081
Wolfgang Betz 132:51056160fa4a 128
Wolfgang Betz 132:51056160fa4a 129 #define OCF_GAP_SET_LIMITED_DISCOVERABLE 0x0082
Wolfgang Betz 132:51056160fa4a 130
Wolfgang Betz 132:51056160fa4a 131 #define OCF_GAP_SET_DISCOVERABLE 0x0083
Wolfgang Betz 132:51056160fa4a 132
Wolfgang Betz 132:51056160fa4a 133 #define OCF_GAP_SET_DIRECT_CONNECTABLE 0x0084
Wolfgang Betz 132:51056160fa4a 134 typedef __packed struct _gap_set_direct_conectable_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 135 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 136 uint8_t directed_adv_type;
Wolfgang Betz 132:51056160fa4a 137 uint8_t direct_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 138 tBDAddr direct_bdaddr;
Wolfgang Betz 132:51056160fa4a 139 } PACKED gap_set_direct_conectable_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 140
Wolfgang Betz 132:51056160fa4a 141 typedef __packed struct _gap_set_direct_conectable_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 142 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 143 uint8_t direct_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 144 tBDAddr direct_bdaddr;
Wolfgang Betz 132:51056160fa4a 145 } PACKED gap_set_direct_conectable_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 146 #define GAP_SET_DIRECT_CONNECTABLE_CP_SIZE 8
Wolfgang Betz 132:51056160fa4a 147
Wolfgang Betz 132:51056160fa4a 148 #define OCF_GAP_SET_IO_CAPABILITY 0x0085
Wolfgang Betz 132:51056160fa4a 149 typedef __packed struct _gap_set_io_capability_cp{
Wolfgang Betz 132:51056160fa4a 150 uint8_t io_capability;
Wolfgang Betz 132:51056160fa4a 151 } PACKED gap_set_io_capability_cp;
Wolfgang Betz 132:51056160fa4a 152 #define GAP_SET_IO_CAPABILITY_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 153
Wolfgang Betz 132:51056160fa4a 154 #define OCF_GAP_SET_AUTH_REQUIREMENT 0x0086
Wolfgang Betz 132:51056160fa4a 155 typedef __packed struct _gap_set_auth_requirement_cp{
Wolfgang Betz 132:51056160fa4a 156 uint8_t mitm_mode;
Wolfgang Betz 132:51056160fa4a 157 uint8_t oob_enable;
Wolfgang Betz 132:51056160fa4a 158 uint8_t oob_data[16];
Wolfgang Betz 132:51056160fa4a 159 uint8_t min_encryption_key_size;
Wolfgang Betz 132:51056160fa4a 160 uint8_t max_encryption_key_size;
Wolfgang Betz 132:51056160fa4a 161 uint8_t use_fixed_pin;
Wolfgang Betz 132:51056160fa4a 162 uint32_t fixed_pin;
Wolfgang Betz 132:51056160fa4a 163 uint8_t bonding_mode;
Wolfgang Betz 132:51056160fa4a 164 } PACKED gap_set_auth_requirement_cp;
Wolfgang Betz 132:51056160fa4a 165 #define GAP_SET_AUTH_REQUIREMENT_CP_SIZE 26
Wolfgang Betz 132:51056160fa4a 166
Wolfgang Betz 132:51056160fa4a 167 #define OCF_GAP_SET_AUTHOR_REQUIREMENT 0x0087
Wolfgang Betz 132:51056160fa4a 168 typedef __packed struct _gap_set_author_requirement_cp{
Wolfgang Betz 132:51056160fa4a 169 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 170 uint8_t authorization_enable;
Wolfgang Betz 132:51056160fa4a 171 } PACKED gap_set_author_requirement_cp;
Wolfgang Betz 132:51056160fa4a 172 #define GAP_SET_AUTHOR_REQUIREMENT_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 173
Wolfgang Betz 132:51056160fa4a 174 #define OCF_GAP_PASSKEY_RESPONSE 0x0088
Wolfgang Betz 132:51056160fa4a 175 typedef __packed struct _gap_passkey_response_cp{
Wolfgang Betz 132:51056160fa4a 176 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 177 uint32_t passkey;
Wolfgang Betz 132:51056160fa4a 178 } PACKED gap_passkey_response_cp;
Wolfgang Betz 132:51056160fa4a 179 #define GAP_PASSKEY_RESPONSE_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 180
Wolfgang Betz 132:51056160fa4a 181 #define OCF_GAP_AUTHORIZATION_RESPONSE 0x0089
Wolfgang Betz 132:51056160fa4a 182 typedef __packed struct _gap_authorization_response_cp{
Wolfgang Betz 132:51056160fa4a 183 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 184 uint8_t authorize;
Wolfgang Betz 132:51056160fa4a 185 } PACKED gap_authorization_response_cp;
Wolfgang Betz 132:51056160fa4a 186 #define GAP_AUTHORIZATION_RESPONSE_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 187
Wolfgang Betz 132:51056160fa4a 188 #define OCF_GAP_INIT 0x008A
Wolfgang Betz 132:51056160fa4a 189 typedef __packed struct _gap_init_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 190 uint8_t role;
Wolfgang Betz 132:51056160fa4a 191 uint8_t privacy_enabled;
Wolfgang Betz 132:51056160fa4a 192 uint8_t device_name_char_len;
Wolfgang Betz 132:51056160fa4a 193 } PACKED gap_init_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 194 #define GAP_INIT_CP_SIZE_IDB05A1 3
Wolfgang Betz 132:51056160fa4a 195
Wolfgang Betz 132:51056160fa4a 196 typedef __packed struct _gap_init_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 197 uint8_t role;
Wolfgang Betz 132:51056160fa4a 198 } PACKED gap_init_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 199 #define GAP_INIT_CP_SIZE_IDB04A1 1
Wolfgang Betz 132:51056160fa4a 200 typedef __packed struct _gap_init_rp{
Wolfgang Betz 132:51056160fa4a 201 uint8_t status;
Wolfgang Betz 132:51056160fa4a 202 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 203 uint16_t dev_name_char_handle;
Wolfgang Betz 132:51056160fa4a 204 uint16_t appearance_char_handle;
Wolfgang Betz 132:51056160fa4a 205 } PACKED gap_init_rp;
Wolfgang Betz 132:51056160fa4a 206 #define GAP_INIT_RP_SIZE 7
Wolfgang Betz 132:51056160fa4a 207
Wolfgang Betz 132:51056160fa4a 208 #define OCF_GAP_SET_NON_CONNECTABLE 0x008B
Wolfgang Betz 132:51056160fa4a 209 typedef __packed struct _gap_set_non_connectable_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 210 uint8_t advertising_event_type;
Wolfgang Betz 132:51056160fa4a 211 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 212 #endif
Wolfgang Betz 132:51056160fa4a 213 } PACKED gap_set_non_connectable_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 214
Wolfgang Betz 132:51056160fa4a 215 typedef __packed struct _gap_set_non_connectable_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 216 uint8_t advertising_event_type;
Wolfgang Betz 132:51056160fa4a 217 } PACKED gap_set_non_connectable_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 218
Wolfgang Betz 132:51056160fa4a 219 #define OCF_GAP_SET_UNDIRECTED_CONNECTABLE 0x008C
Wolfgang Betz 132:51056160fa4a 220 typedef __packed struct _gap_set_undirected_connectable_cp{
Wolfgang Betz 132:51056160fa4a 221 uint8_t adv_filter_policy;
Wolfgang Betz 132:51056160fa4a 222 uint8_t own_addr_type;
Wolfgang Betz 132:51056160fa4a 223 } PACKED gap_set_undirected_connectable_cp;
Wolfgang Betz 132:51056160fa4a 224 #define GAP_SET_UNDIRECTED_CONNECTABLE_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 225
Wolfgang Betz 132:51056160fa4a 226 #define OCF_GAP_SLAVE_SECURITY_REQUEST 0x008D
Wolfgang Betz 132:51056160fa4a 227 typedef __packed struct _gap_slave_security_request_cp{
Wolfgang Betz 132:51056160fa4a 228 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 229 uint8_t bonding;
Wolfgang Betz 132:51056160fa4a 230 uint8_t mitm_protection;
Wolfgang Betz 132:51056160fa4a 231 } PACKED gap_slave_security_request_cp;
Wolfgang Betz 132:51056160fa4a 232 #define GAP_SLAVE_SECURITY_REQUEST_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 233
Wolfgang Betz 132:51056160fa4a 234 #define OCF_GAP_UPDATE_ADV_DATA 0x008E
Wolfgang Betz 132:51056160fa4a 235
Wolfgang Betz 132:51056160fa4a 236 #define OCF_GAP_DELETE_AD_TYPE 0x008F
Wolfgang Betz 132:51056160fa4a 237 typedef __packed struct _gap_delete_ad_type_cp{
Wolfgang Betz 132:51056160fa4a 238 uint8_t ad_type;
Wolfgang Betz 132:51056160fa4a 239 } PACKED gap_delete_ad_type_cp;
Wolfgang Betz 132:51056160fa4a 240 #define GAP_DELETE_AD_TYPE_CP_SIZE 1
Wolfgang Betz 132:51056160fa4a 241
Wolfgang Betz 132:51056160fa4a 242 #define OCF_GAP_GET_SECURITY_LEVEL 0x0090
Wolfgang Betz 132:51056160fa4a 243 typedef __packed struct _gap_get_security_level_rp{
Wolfgang Betz 132:51056160fa4a 244 uint8_t status;
Wolfgang Betz 132:51056160fa4a 245 uint8_t mitm_protection;
Wolfgang Betz 132:51056160fa4a 246 uint8_t bonding;
Wolfgang Betz 132:51056160fa4a 247 uint8_t oob_data;
Wolfgang Betz 132:51056160fa4a 248 uint8_t passkey_required;
Wolfgang Betz 132:51056160fa4a 249 } PACKED gap_get_security_level_rp;
Wolfgang Betz 132:51056160fa4a 250 #define GAP_GET_SECURITY_LEVEL_RP_SIZE 5
Wolfgang Betz 132:51056160fa4a 251
Wolfgang Betz 132:51056160fa4a 252 #define OCF_GAP_SET_EVT_MASK 0x0091
Wolfgang Betz 132:51056160fa4a 253 typedef __packed struct _gap_set_evt_mask_cp{
Wolfgang Betz 132:51056160fa4a 254 uint16_t evt_mask;
Wolfgang Betz 132:51056160fa4a 255 } PACKED gap_set_evt_mask_cp;
Wolfgang Betz 132:51056160fa4a 256 #define GAP_SET_EVT_MASK_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 257
Wolfgang Betz 132:51056160fa4a 258 #define OCF_GAP_CONFIGURE_WHITELIST 0x0092
Wolfgang Betz 132:51056160fa4a 259
Wolfgang Betz 132:51056160fa4a 260 #define OCF_GAP_TERMINATE 0x0093
Wolfgang Betz 132:51056160fa4a 261 typedef __packed struct _gap_terminate_cp{
Wolfgang Betz 132:51056160fa4a 262 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 263 uint8_t reason;
Wolfgang Betz 132:51056160fa4a 264 } PACKED gap_terminate_cp;
Wolfgang Betz 132:51056160fa4a 265 #define GAP_TERMINATE_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 266
Wolfgang Betz 132:51056160fa4a 267 #define OCF_GAP_CLEAR_SECURITY_DB 0x0094
Wolfgang Betz 132:51056160fa4a 268
Wolfgang Betz 132:51056160fa4a 269 #define OCF_GAP_ALLOW_REBOND_DB 0x0095
Wolfgang Betz 132:51056160fa4a 270
Wolfgang Betz 132:51056160fa4a 271 typedef __packed struct _gap_allow_rebond_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 272 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 273 } PACKED gap_allow_rebond_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 274
Wolfgang Betz 132:51056160fa4a 275 #define OCF_GAP_START_LIMITED_DISCOVERY_PROC 0x0096
Wolfgang Betz 132:51056160fa4a 276 typedef __packed struct _gap_start_limited_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 277 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 278 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 279 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 280 uint8_t filterDuplicates;
Wolfgang Betz 132:51056160fa4a 281 } PACKED gap_start_limited_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 282 #define GAP_START_LIMITED_DISCOVERY_PROC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 283
Wolfgang Betz 132:51056160fa4a 284 #define OCF_GAP_START_GENERAL_DISCOVERY_PROC 0x0097
Wolfgang Betz 132:51056160fa4a 285 typedef __packed struct _gap_start_general_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 286 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 287 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 288 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 289 uint8_t filterDuplicates;
Wolfgang Betz 132:51056160fa4a 290 } PACKED gap_start_general_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 291 #define GAP_START_GENERAL_DISCOVERY_PROC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 292
Wolfgang Betz 132:51056160fa4a 293 #define OCF_GAP_START_NAME_DISCOVERY_PROC 0x0098
Wolfgang Betz 132:51056160fa4a 294 typedef __packed struct _gap_start_name_discovery_proc_cp{
Wolfgang Betz 132:51056160fa4a 295 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 296 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 297 uint8_t peer_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 298 tBDAddr peer_bdaddr;
Wolfgang Betz 132:51056160fa4a 299 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 300 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 301 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 302 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 303 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 304 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 305 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 306 } PACKED gap_start_name_discovery_proc_cp;
Wolfgang Betz 132:51056160fa4a 307 #define GAP_START_NAME_DISCOVERY_PROC_CP_SIZE 24
Wolfgang Betz 132:51056160fa4a 308
Wolfgang Betz 132:51056160fa4a 309 #define OCF_GAP_START_AUTO_CONN_ESTABLISH_PROC 0x0099
Wolfgang Betz 132:51056160fa4a 310
Wolfgang Betz 132:51056160fa4a 311 #define OCF_GAP_START_GENERAL_CONN_ESTABLISH_PROC 0x009A
Wolfgang Betz 132:51056160fa4a 312 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 313 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 314 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 315 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 316 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 317 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 318 } PACKED gap_start_general_conn_establish_proc_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 319
Wolfgang Betz 132:51056160fa4a 320 typedef __packed struct _gap_start_general_conn_establish_proc_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 321 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 322 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 323 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 324 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 325 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 326 uint8_t use_reconn_addr;
Wolfgang Betz 132:51056160fa4a 327 tBDAddr reconn_addr;
Wolfgang Betz 132:51056160fa4a 328 } PACKED gap_start_general_conn_establish_proc_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 329
Wolfgang Betz 132:51056160fa4a 330 #define OCF_GAP_START_SELECTIVE_CONN_ESTABLISH_PROC 0x009B
Wolfgang Betz 132:51056160fa4a 331 #define GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE 8
Wolfgang Betz 132:51056160fa4a 332 typedef __packed struct _gap_start_selective_conn_establish_proc_cp{
Wolfgang Betz 132:51056160fa4a 333 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 334 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 335 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 336 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 337 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 338 uint8_t num_whitelist_entries;
Wolfgang Betz 132:51056160fa4a 339 uint8_t addr_array[HCI_MAX_PAYLOAD_SIZE-GAP_START_SELECTIVE_CONN_ESTABLISH_PROC_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 340 } PACKED gap_start_selective_conn_establish_proc_cp;
Wolfgang Betz 132:51056160fa4a 341
Wolfgang Betz 132:51056160fa4a 342 #define OCF_GAP_CREATE_CONNECTION 0x009C
Wolfgang Betz 132:51056160fa4a 343 typedef __packed struct _gap_create_connection_cp{
Wolfgang Betz 132:51056160fa4a 344 uint16_t scanInterval;
Wolfgang Betz 132:51056160fa4a 345 uint16_t scanWindow;
Wolfgang Betz 132:51056160fa4a 346 uint8_t peer_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 347 tBDAddr peer_bdaddr;
Wolfgang Betz 132:51056160fa4a 348 uint8_t own_bdaddr_type;
Wolfgang Betz 132:51056160fa4a 349 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 350 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 351 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 352 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 353 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 354 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 355 } PACKED gap_create_connection_cp;
Wolfgang Betz 132:51056160fa4a 356 #define GAP_CREATE_CONNECTION_CP_SIZE 24
Wolfgang Betz 132:51056160fa4a 357
Wolfgang Betz 132:51056160fa4a 358 #define OCF_GAP_TERMINATE_GAP_PROCEDURE 0x009D
Wolfgang Betz 132:51056160fa4a 359
Wolfgang Betz 132:51056160fa4a 360 #define OCF_GAP_START_CONNECTION_UPDATE 0x009E
Wolfgang Betz 132:51056160fa4a 361 typedef __packed struct _gap_start_connection_update_cp{
Wolfgang Betz 132:51056160fa4a 362 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 363 uint16_t conn_min_interval;
Wolfgang Betz 132:51056160fa4a 364 uint16_t conn_max_interval;
Wolfgang Betz 132:51056160fa4a 365 uint16_t conn_latency;
Wolfgang Betz 132:51056160fa4a 366 uint16_t supervision_timeout;
Wolfgang Betz 132:51056160fa4a 367 uint16_t min_conn_length;
Wolfgang Betz 132:51056160fa4a 368 uint16_t max_conn_length;
Wolfgang Betz 132:51056160fa4a 369 } PACKED gap_start_connection_update_cp;
Wolfgang Betz 132:51056160fa4a 370 #define GAP_START_CONNECTION_UPDATE_CP_SIZE 14
Wolfgang Betz 132:51056160fa4a 371
Wolfgang Betz 132:51056160fa4a 372 #define OCF_GAP_SEND_PAIRING_REQUEST 0x009F
Wolfgang Betz 132:51056160fa4a 373 typedef __packed struct _gap_send_pairing_request_cp{
Wolfgang Betz 132:51056160fa4a 374 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 375 uint8_t force_rebond;
Wolfgang Betz 132:51056160fa4a 376 } PACKED gap_send_pairing_request_cp;
Wolfgang Betz 132:51056160fa4a 377 #define GAP_GAP_SEND_PAIRING_REQUEST_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 378
Wolfgang Betz 132:51056160fa4a 379 #define OCF_GAP_RESOLVE_PRIVATE_ADDRESS 0x00A0
Wolfgang Betz 132:51056160fa4a 380 typedef __packed struct _gap_resolve_private_address_cp{
Wolfgang Betz 132:51056160fa4a 381 tBDAddr address;
Wolfgang Betz 132:51056160fa4a 382 } PACKED gap_resolve_private_address_cp;
Wolfgang Betz 132:51056160fa4a 383 #define GAP_RESOLVE_PRIVATE_ADDRESS_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 384 typedef __packed struct _gap_resolve_private_address_rp{
Wolfgang Betz 132:51056160fa4a 385 uint8_t status;
Wolfgang Betz 132:51056160fa4a 386 tBDAddr address;
Wolfgang Betz 132:51056160fa4a 387 } PACKED gap_resolve_private_address_rp;
Wolfgang Betz 132:51056160fa4a 388
Wolfgang Betz 132:51056160fa4a 389 #define OCF_GAP_SET_BROADCAST_MODE 0x00A1
Wolfgang Betz 132:51056160fa4a 390 #define GAP_SET_BROADCAST_MODE_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 391 typedef __packed struct _gap_set_broadcast_mode_cp{
Wolfgang Betz 132:51056160fa4a 392 uint16_t adv_interv_min;
Wolfgang Betz 132:51056160fa4a 393 uint16_t adv_interv_max;
Wolfgang Betz 132:51056160fa4a 394 uint8_t adv_type;
Wolfgang Betz 132:51056160fa4a 395 uint8_t own_addr_type;
Wolfgang Betz 132:51056160fa4a 396 uint8_t var_len_data[HCI_MAX_PAYLOAD_SIZE-GAP_SET_BROADCAST_MODE_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 397 } PACKED gap_set_broadcast_mode_cp;
Wolfgang Betz 132:51056160fa4a 398
Wolfgang Betz 132:51056160fa4a 399 #define OCF_GAP_START_OBSERVATION_PROC 0x00A2
Wolfgang Betz 132:51056160fa4a 400 typedef __packed struct _gap_start_observation_proc_cp{
Wolfgang Betz 132:51056160fa4a 401 uint16_t scan_interval;
Wolfgang Betz 132:51056160fa4a 402 uint16_t scan_window;
Wolfgang Betz 132:51056160fa4a 403 uint8_t scan_type;
Wolfgang Betz 132:51056160fa4a 404 uint8_t own_address_type;
Wolfgang Betz 132:51056160fa4a 405 uint8_t filter_duplicates;
Wolfgang Betz 132:51056160fa4a 406 } PACKED gap_start_observation_proc_cp;
Wolfgang Betz 132:51056160fa4a 407
Wolfgang Betz 132:51056160fa4a 408 #define OCF_GAP_GET_BONDED_DEVICES 0x00A3
Wolfgang Betz 132:51056160fa4a 409 typedef __packed struct _gap_get_bonded_devices_rp{
Wolfgang Betz 132:51056160fa4a 410 uint8_t status;
Wolfgang Betz 132:51056160fa4a 411 uint8_t num_addr;
Wolfgang Betz 132:51056160fa4a 412 uint8_t dev_list[HCI_MAX_PAYLOAD_SIZE-HCI_EVENT_HDR_SIZE-EVT_CMD_COMPLETE_SIZE-1];
Wolfgang Betz 132:51056160fa4a 413 } PACKED gap_get_bonded_devices_rp;
Wolfgang Betz 132:51056160fa4a 414
Wolfgang Betz 132:51056160fa4a 415 #define OCF_GAP_IS_DEVICE_BONDED 0x00A4
Wolfgang Betz 132:51056160fa4a 416 typedef __packed struct _gap_is_device_bonded_cp{
Wolfgang Betz 132:51056160fa4a 417 uint8_t peer_address_type;
Wolfgang Betz 132:51056160fa4a 418 tBDAddr peer_address;
Wolfgang Betz 132:51056160fa4a 419 } PACKED gap_is_device_bonded_cp;
Wolfgang Betz 132:51056160fa4a 420
Wolfgang Betz 132:51056160fa4a 421
Wolfgang Betz 132:51056160fa4a 422 #define OCF_GATT_INIT 0x0101
Wolfgang Betz 132:51056160fa4a 423
Wolfgang Betz 132:51056160fa4a 424 #define OCF_GATT_ADD_SERV 0x0102
Wolfgang Betz 132:51056160fa4a 425 typedef __packed struct _gatt_add_serv_rp{
Wolfgang Betz 132:51056160fa4a 426 uint8_t status;
Wolfgang Betz 132:51056160fa4a 427 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 428 } PACKED gatt_add_serv_rp;
Wolfgang Betz 132:51056160fa4a 429 #define GATT_ADD_SERV_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 430
Wolfgang Betz 132:51056160fa4a 431 #define OCF_GATT_INCLUDE_SERV 0x0103
Wolfgang Betz 132:51056160fa4a 432 typedef __packed struct _gatt_include_serv_rp{
Wolfgang Betz 132:51056160fa4a 433 uint8_t status;
Wolfgang Betz 132:51056160fa4a 434 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 435 } PACKED gatt_include_serv_rp;
Wolfgang Betz 132:51056160fa4a 436 #define GATT_INCLUDE_SERV_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 437
Wolfgang Betz 132:51056160fa4a 438 #define OCF_GATT_ADD_CHAR 0x0104
Wolfgang Betz 132:51056160fa4a 439 typedef __packed struct _gatt_add_char_rp{
Wolfgang Betz 132:51056160fa4a 440 uint8_t status;
Wolfgang Betz 132:51056160fa4a 441 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 442 } PACKED gatt_add_char_rp;
Wolfgang Betz 132:51056160fa4a 443 #define GATT_ADD_CHAR_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 444
Wolfgang Betz 132:51056160fa4a 445 #define OCF_GATT_ADD_CHAR_DESC 0x0105
Wolfgang Betz 132:51056160fa4a 446 typedef __packed struct _gatt_add_char_desc_rp{
Wolfgang Betz 132:51056160fa4a 447 uint8_t status;
Wolfgang Betz 132:51056160fa4a 448 uint16_t handle;
Wolfgang Betz 132:51056160fa4a 449 } PACKED gatt_add_char_desc_rp;
Wolfgang Betz 132:51056160fa4a 450 #define GATT_ADD_CHAR_DESC_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 451
Wolfgang Betz 132:51056160fa4a 452 #define OCF_GATT_UPD_CHAR_VAL 0x0106
Wolfgang Betz 132:51056160fa4a 453
Wolfgang Betz 132:51056160fa4a 454 #define OCF_GATT_DEL_CHAR 0x0107
Wolfgang Betz 132:51056160fa4a 455 typedef __packed struct _gatt_del_char_cp{
Wolfgang Betz 132:51056160fa4a 456 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 457 uint16_t char_handle;
Wolfgang Betz 132:51056160fa4a 458 } PACKED gatt_del_char_cp;
Wolfgang Betz 132:51056160fa4a 459 #define GATT_DEL_CHAR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 460
Wolfgang Betz 132:51056160fa4a 461 #define OCF_GATT_DEL_SERV 0x0108
Wolfgang Betz 132:51056160fa4a 462 typedef __packed struct _gatt_del_serv_cp{
Wolfgang Betz 132:51056160fa4a 463 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 464 } PACKED gatt_del_serv_cp;
Wolfgang Betz 132:51056160fa4a 465 #define GATT_DEL_SERV_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 466
Wolfgang Betz 132:51056160fa4a 467 #define OCF_GATT_DEL_INC_SERV 0x0109
Wolfgang Betz 132:51056160fa4a 468 typedef __packed struct _gatt_del_inc_serv_cp{
Wolfgang Betz 132:51056160fa4a 469 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 470 uint16_t inc_serv_handle;
Wolfgang Betz 132:51056160fa4a 471 } PACKED gatt_del_inc_serv_cp;
Wolfgang Betz 132:51056160fa4a 472 #define GATT_DEL_INC_SERV_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 473
Wolfgang Betz 132:51056160fa4a 474 #define OCF_GATT_SET_EVT_MASK 0x010A
Wolfgang Betz 132:51056160fa4a 475 typedef __packed struct _gatt_set_evt_mask_cp{
Wolfgang Betz 132:51056160fa4a 476 uint32_t evt_mask;
Wolfgang Betz 132:51056160fa4a 477 } PACKED gatt_set_evt_mask_cp;
Wolfgang Betz 132:51056160fa4a 478 #define GATT_SET_EVT_MASK_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 479
Wolfgang Betz 132:51056160fa4a 480 #define OCF_GATT_EXCHANGE_CONFIG 0x010B
Wolfgang Betz 132:51056160fa4a 481 typedef __packed struct _gatt_exchange_config_cp{
Wolfgang Betz 132:51056160fa4a 482 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 483 } PACKED gatt_exchange_config_cp;
Wolfgang Betz 132:51056160fa4a 484 #define GATT_EXCHANGE_CONFIG_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 485
Wolfgang Betz 132:51056160fa4a 486 #define OCF_ATT_FIND_INFO_REQ 0x010C
Wolfgang Betz 132:51056160fa4a 487 typedef __packed struct _att_find_info_req_cp{
Wolfgang Betz 132:51056160fa4a 488 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 489 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 490 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 491 } PACKED att_find_info_req_cp;
Wolfgang Betz 132:51056160fa4a 492 #define ATT_FIND_INFO_REQ_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 493
Wolfgang Betz 132:51056160fa4a 494 #define OCF_ATT_FIND_BY_TYPE_VALUE_REQ 0x010D
Wolfgang Betz 132:51056160fa4a 495 #define ATT_FIND_BY_TYPE_VALUE_REQ_CP_SIZE 9
Wolfgang Betz 132:51056160fa4a 496 typedef __packed struct _att_find_by_type_value_req_cp{
Wolfgang Betz 132:51056160fa4a 497 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 498 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 499 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 500 uint8_t uuid[2];
Wolfgang Betz 132:51056160fa4a 501 uint8_t attr_val_len;
Wolfgang Betz 132:51056160fa4a 502 uint8_t attr_val[ATT_MTU - 7];
Wolfgang Betz 132:51056160fa4a 503 } PACKED att_find_by_type_value_req_cp;
Wolfgang Betz 132:51056160fa4a 504
Wolfgang Betz 132:51056160fa4a 505 #define OCF_ATT_READ_BY_TYPE_REQ 0x010E
Wolfgang Betz 132:51056160fa4a 506 #define ATT_READ_BY_TYPE_REQ_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 507 typedef __packed struct _att_read_by_type_req_cp{
Wolfgang Betz 132:51056160fa4a 508 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 509 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 510 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 511 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 512 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 513 } PACKED att_read_by_type_req_cp;
Wolfgang Betz 132:51056160fa4a 514
Wolfgang Betz 132:51056160fa4a 515 #define OCF_ATT_READ_BY_GROUP_TYPE_REQ 0x010F
Wolfgang Betz 132:51056160fa4a 516 #define ATT_READ_BY_GROUP_TYPE_REQ_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 517 typedef __packed struct _att_read_by_group_type_req_cp{
Wolfgang Betz 132:51056160fa4a 518 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 519 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 520 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 521 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 522 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 523 } PACKED att_read_by_group_type_req_cp;
Wolfgang Betz 132:51056160fa4a 524
Wolfgang Betz 132:51056160fa4a 525 #define OCF_ATT_PREPARE_WRITE_REQ 0x0110
Wolfgang Betz 132:51056160fa4a 526 #define ATT_PREPARE_WRITE_REQ_CP_SIZE 7 // without attr_val
Wolfgang Betz 132:51056160fa4a 527 typedef __packed struct _att_prepare_write_req_cp{
Wolfgang Betz 132:51056160fa4a 528 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 529 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 530 uint16_t value_offset;
Wolfgang Betz 132:51056160fa4a 531 uint8_t attr_val_len;
Wolfgang Betz 132:51056160fa4a 532 uint8_t attr_val[ATT_MTU-5];
Wolfgang Betz 132:51056160fa4a 533 } PACKED att_prepare_write_req_cp;
Wolfgang Betz 132:51056160fa4a 534
Wolfgang Betz 132:51056160fa4a 535 #define OCF_ATT_EXECUTE_WRITE_REQ 0x0111
Wolfgang Betz 132:51056160fa4a 536 typedef __packed struct _att_execute_write_req_cp{
Wolfgang Betz 132:51056160fa4a 537 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 538 uint8_t execute;
Wolfgang Betz 132:51056160fa4a 539 } PACKED att_execute_write_req_cp;
Wolfgang Betz 132:51056160fa4a 540 #define ATT_EXECUTE_WRITE_REQ_CP_SIZE 3
Wolfgang Betz 132:51056160fa4a 541
Wolfgang Betz 132:51056160fa4a 542 #define OCF_GATT_DISC_ALL_PRIM_SERVICES 0X0112
Wolfgang Betz 132:51056160fa4a 543 typedef __packed struct _gatt_disc_all_prim_serivces_cp{
Wolfgang Betz 132:51056160fa4a 544 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 545 } PACKED gatt_disc_all_prim_services_cp;
Wolfgang Betz 132:51056160fa4a 546 #define GATT_DISC_ALL_PRIM_SERVICES_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 547
Wolfgang Betz 132:51056160fa4a 548 #define OCF_GATT_DISC_PRIM_SERVICE_BY_UUID 0x0113
Wolfgang Betz 132:51056160fa4a 549 typedef __packed struct _gatt_disc_prim_service_by_uuid_cp{
Wolfgang Betz 132:51056160fa4a 550 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 551 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 552 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 553 } PACKED gatt_disc_prim_service_by_uuid_cp;
Wolfgang Betz 132:51056160fa4a 554 #define GATT_DISC_PRIM_SERVICE_BY_UUID_CP_SIZE 3 // Without uuid
Wolfgang Betz 132:51056160fa4a 555
Wolfgang Betz 132:51056160fa4a 556 #define OCF_GATT_FIND_INCLUDED_SERVICES 0X0114
Wolfgang Betz 132:51056160fa4a 557 typedef __packed struct _gatt_disc_find_included_services_cp{
Wolfgang Betz 132:51056160fa4a 558 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 559 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 560 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 561 } PACKED gatt_find_included_services_cp;
Wolfgang Betz 132:51056160fa4a 562 #define GATT_FIND_INCLUDED_SERVICES_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 563
Wolfgang Betz 132:51056160fa4a 564 #define OCF_GATT_DISC_ALL_CHARAC_OF_SERV 0X0115
Wolfgang Betz 132:51056160fa4a 565 typedef __packed struct _gatt_disc_all_charac_of_serv_cp{
Wolfgang Betz 132:51056160fa4a 566 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 567 uint16_t start_attr_handle;
Wolfgang Betz 132:51056160fa4a 568 uint16_t end_attr_handle;
Wolfgang Betz 132:51056160fa4a 569 } PACKED gatt_disc_all_charac_of_serv_cp;
Wolfgang Betz 132:51056160fa4a 570 #define GATT_DISC_ALL_CHARAC_OF_SERV_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 571
Wolfgang Betz 132:51056160fa4a 572 #define OCF_GATT_DISC_CHARAC_BY_UUID 0X0116
Wolfgang Betz 132:51056160fa4a 573
Wolfgang Betz 132:51056160fa4a 574 #define OCF_GATT_DISC_ALL_CHARAC_DESCRIPTORS 0X0117
Wolfgang Betz 132:51056160fa4a 575 typedef __packed struct _gatt_disc_all_charac_descriptors_cp{
Wolfgang Betz 132:51056160fa4a 576 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 577 uint16_t char_val_handle;
Wolfgang Betz 132:51056160fa4a 578 uint16_t char_end_handle;
Wolfgang Betz 132:51056160fa4a 579 } PACKED gatt_disc_all_charac_descriptors_cp;
Wolfgang Betz 132:51056160fa4a 580 #define GATT_DISC_ALL_CHARAC_DESCRIPTORS_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 581
Wolfgang Betz 132:51056160fa4a 582 #define OCF_GATT_READ_CHARAC_VAL 0x0118
Wolfgang Betz 132:51056160fa4a 583 typedef __packed struct _gatt_read_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 584 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 585 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 586 } PACKED gatt_read_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 587 #define GATT_READ_CHARAC_VAL_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 588
Wolfgang Betz 132:51056160fa4a 589 #define OCF_GATT_READ_USING_CHARAC_UUID 0x0109
Wolfgang Betz 132:51056160fa4a 590 typedef __packed struct _gatt_read_using_charac_uuid_cp{
Wolfgang Betz 132:51056160fa4a 591 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 592 uint16_t start_handle;
Wolfgang Betz 132:51056160fa4a 593 uint16_t end_handle;
Wolfgang Betz 132:51056160fa4a 594 uint8_t uuid_type;
Wolfgang Betz 132:51056160fa4a 595 uint8_t uuid[16];
Wolfgang Betz 132:51056160fa4a 596 } PACKED gatt_read_using_charac_uuid_cp;
Wolfgang Betz 132:51056160fa4a 597 #define GATT_READ_USING_CHARAC_UUID_CP_SIZE 7 // without UUID
Wolfgang Betz 132:51056160fa4a 598
Wolfgang Betz 132:51056160fa4a 599 #define OCF_GATT_READ_LONG_CHARAC_VAL 0x011A
Wolfgang Betz 132:51056160fa4a 600 typedef __packed struct _gatt_read_long_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 601 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 602 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 603 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 604 } PACKED gatt_read_long_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 605 #define GATT_READ_LONG_CHARAC_VAL_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 606
Wolfgang Betz 132:51056160fa4a 607 #define OCF_GATT_READ_MULTIPLE_CHARAC_VAL 0x011B
Wolfgang Betz 132:51056160fa4a 608 #define GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE 3 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 609 typedef __packed struct _gatt_read_multiple_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 610 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 611 uint8_t num_handles;
Wolfgang Betz 132:51056160fa4a 612 uint8_t set_of_handles[HCI_MAX_PAYLOAD_SIZE-GATT_READ_MULTIPLE_CHARAC_VAL_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 613 } PACKED gatt_read_multiple_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 614
Wolfgang Betz 132:51056160fa4a 615 #define OCF_GATT_WRITE_CHAR_VALUE 0x011C
Wolfgang Betz 132:51056160fa4a 616
Wolfgang Betz 132:51056160fa4a 617 #define OCF_GATT_WRITE_LONG_CHARAC_VAL 0x011D
Wolfgang Betz 132:51056160fa4a 618 #define GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 619 typedef __packed struct _gatt_write_long_charac_val_cp{
Wolfgang Betz 132:51056160fa4a 620 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 621 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 622 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 623 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 624 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_VAL_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 625 } PACKED gatt_write_long_charac_val_cp;
Wolfgang Betz 132:51056160fa4a 626
Wolfgang Betz 132:51056160fa4a 627 #define OCF_GATT_WRITE_CHARAC_RELIABLE 0x011E
Wolfgang Betz 132:51056160fa4a 628 #define GATT_WRITE_CHARAC_RELIABLE_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 629 typedef __packed struct _gatt_write_charac_reliable_cp{
Wolfgang Betz 132:51056160fa4a 630 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 631 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 632 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 633 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 634 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_CHARAC_RELIABLE_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 635 } PACKED gatt_write_charac_reliable_cp;
Wolfgang Betz 132:51056160fa4a 636
Wolfgang Betz 132:51056160fa4a 637 #define OCF_GATT_WRITE_LONG_CHARAC_DESC 0x011F
Wolfgang Betz 132:51056160fa4a 638 #define GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE 7 // without set_of_handles
Wolfgang Betz 132:51056160fa4a 639 typedef __packed struct _gatt_write_long_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 640 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 641 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 642 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 643 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 644 uint8_t attr_val[HCI_MAX_PAYLOAD_SIZE-GATT_WRITE_LONG_CHARAC_DESC_CP_SIZE];
Wolfgang Betz 132:51056160fa4a 645 } PACKED gatt_write_long_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 646
Wolfgang Betz 132:51056160fa4a 647 #define OCF_GATT_READ_LONG_CHARAC_DESC 0x0120
Wolfgang Betz 132:51056160fa4a 648 typedef __packed struct _gatt_read_long_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 649 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 650 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 651 uint16_t val_offset;
Wolfgang Betz 132:51056160fa4a 652 } PACKED gatt_read_long_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 653 #define GATT_READ_LONG_CHARAC_DESC_CP_SIZE 6
Wolfgang Betz 132:51056160fa4a 654
Wolfgang Betz 132:51056160fa4a 655 #define OCF_GATT_WRITE_CHAR_DESCRIPTOR 0x0121
Wolfgang Betz 132:51056160fa4a 656
Wolfgang Betz 132:51056160fa4a 657 #define OCF_GATT_READ_CHAR_DESCRIPTOR 0x0122
Wolfgang Betz 132:51056160fa4a 658 typedef __packed struct _gatt_read_charac_desc_cp{
Wolfgang Betz 132:51056160fa4a 659 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 660 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 661 } PACKED gatt_read_charac_desc_cp;
Wolfgang Betz 132:51056160fa4a 662 #define GATT_READ_CHAR_DESCRIPTOR_CP_SIZE 4
Wolfgang Betz 132:51056160fa4a 663
Wolfgang Betz 132:51056160fa4a 664 #define OCF_GATT_WRITE_WITHOUT_RESPONSE 0x0123
Wolfgang Betz 132:51056160fa4a 665 #define GATT_WRITE_WITHOUT_RESPONSE_CP_SIZE 5 // without attr_val
Wolfgang Betz 132:51056160fa4a 666 typedef __packed struct _gatt_write_without_resp_cp{
Wolfgang Betz 132:51056160fa4a 667 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 668 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 669 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 670 uint8_t attr_val[ATT_MTU - 3];
Wolfgang Betz 132:51056160fa4a 671 } PACKED gatt_write_without_resp_cp;
Wolfgang Betz 132:51056160fa4a 672
Wolfgang Betz 132:51056160fa4a 673 #define OCF_GATT_SIGNED_WRITE_WITHOUT_RESPONSE 0x0124
Wolfgang Betz 132:51056160fa4a 674 #define GATT_SIGNED_WRITE_WITHOUT_RESPONSE_CP_SIZE 5 // without attr_val
Wolfgang Betz 132:51056160fa4a 675 typedef __packed struct _gatt_signed_write_without_resp_cp{
Wolfgang Betz 132:51056160fa4a 676 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 677 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 678 uint8_t val_len;
Wolfgang Betz 132:51056160fa4a 679 uint8_t attr_val[ATT_MTU - 13];
Wolfgang Betz 132:51056160fa4a 680 } PACKED gatt_signed_write_without_resp_cp;
Wolfgang Betz 132:51056160fa4a 681
Wolfgang Betz 132:51056160fa4a 682 #define OCF_GATT_CONFIRM_INDICATION 0x0125
Wolfgang Betz 132:51056160fa4a 683 typedef __packed struct _gatt_confirm_indication_cp{
Wolfgang Betz 132:51056160fa4a 684 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 685 } PACKED gatt_confirm_indication_cp;
Wolfgang Betz 132:51056160fa4a 686 #define GATT_CONFIRM_INDICATION_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 687
Wolfgang Betz 132:51056160fa4a 688 #define OCF_GATT_WRITE_RESPONSE 0x0126
Wolfgang Betz 132:51056160fa4a 689
Wolfgang Betz 132:51056160fa4a 690 #define OCF_GATT_ALLOW_READ 0x0127
Wolfgang Betz 132:51056160fa4a 691 typedef __packed struct _gatt_allow_read_cp{
Wolfgang Betz 132:51056160fa4a 692 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 693 } PACKED gatt_allow_read_cp;
Wolfgang Betz 132:51056160fa4a 694 #define GATT_ALLOW_READ_CP_SIZE 2
Wolfgang Betz 132:51056160fa4a 695
Wolfgang Betz 132:51056160fa4a 696 #define OCF_GATT_SET_SECURITY_PERMISSION 0x0128
Wolfgang Betz 132:51056160fa4a 697 typedef __packed struct _gatt_set_security_permission_cp{
Wolfgang Betz 132:51056160fa4a 698 uint16_t service_handle;
Wolfgang Betz 132:51056160fa4a 699 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 700 uint8_t security_permission;
Wolfgang Betz 132:51056160fa4a 701 } PACKED gatt_set_security_permission_cp;
Wolfgang Betz 132:51056160fa4a 702 #define GATT_GATT_SET_SECURITY_PERMISSION_CP_SIZE 5
Wolfgang Betz 132:51056160fa4a 703
Wolfgang Betz 132:51056160fa4a 704 #define OCF_GATT_SET_DESC_VAL 0x0129
Wolfgang Betz 132:51056160fa4a 705
Wolfgang Betz 132:51056160fa4a 706 #define OCF_GATT_READ_HANDLE_VALUE 0x012A
Wolfgang Betz 132:51056160fa4a 707 typedef __packed struct _gatt_read_handle_val_cp{
Wolfgang Betz 132:51056160fa4a 708 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 709 } PACKED gatt_read_handle_val_cp;
Wolfgang Betz 132:51056160fa4a 710 #define GATT_READ_HANDLE_VALUE_RP_SIZE 3
Wolfgang Betz 132:51056160fa4a 711 typedef __packed struct _gatt_read_handle_val_rp{
Wolfgang Betz 132:51056160fa4a 712 uint8_t status;
Wolfgang Betz 132:51056160fa4a 713 uint16_t value_len;
Wolfgang Betz 132:51056160fa4a 714 uint8_t value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_RP_SIZE];
Wolfgang Betz 132:51056160fa4a 715 } PACKED gatt_read_handle_val_rp;
Wolfgang Betz 132:51056160fa4a 716
Wolfgang Betz 132:51056160fa4a 717 #define OCF_GATT_READ_HANDLE_VALUE_OFFSET 0x012B
Wolfgang Betz 132:51056160fa4a 718 typedef __packed struct _gatt_read_handle_val_offset_cp{
Wolfgang Betz 132:51056160fa4a 719 uint16_t attr_handle;
Wolfgang Betz 132:51056160fa4a 720 uint8_t offset;
Wolfgang Betz 132:51056160fa4a 721 } PACKED gatt_read_handle_val_offset_cp;
Wolfgang Betz 132:51056160fa4a 722 #define GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE 2
Wolfgang Betz 132:51056160fa4a 723 typedef __packed struct _gatt_read_handle_val_offset_rp{
Wolfgang Betz 132:51056160fa4a 724 uint8_t status;
Wolfgang Betz 132:51056160fa4a 725 uint8_t value_len;
Wolfgang Betz 132:51056160fa4a 726 uint8_t value[HCI_MAX_PAYLOAD_SIZE-GATT_READ_HANDLE_VALUE_OFFSET_RP_SIZE];
Wolfgang Betz 132:51056160fa4a 727 } PACKED gatt_read_handle_val_offset_rp;
Wolfgang Betz 132:51056160fa4a 728
Wolfgang Betz 132:51056160fa4a 729 #define OCF_L2CAP_CONN_PARAM_UPDATE_REQ 0x0181
Wolfgang Betz 132:51056160fa4a 730 typedef __packed struct _l2cap_conn_param_update_req_cp{
Wolfgang Betz 132:51056160fa4a 731 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 732 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 733 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 734 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 735 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 736 } PACKED l2cap_conn_param_update_req_cp;
Wolfgang Betz 132:51056160fa4a 737 #define L2CAP_CONN_PARAM_UPDATE_REQ_CP_SIZE 10
Wolfgang Betz 132:51056160fa4a 738
Wolfgang Betz 132:51056160fa4a 739 #define OCF_L2CAP_CONN_PARAM_UPDATE_RESP 0x0182
Wolfgang Betz 132:51056160fa4a 740 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB05A1{
Wolfgang Betz 132:51056160fa4a 741 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 742 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 743 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 744 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 745 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 746 uint16_t min_ce_length;
Wolfgang Betz 132:51056160fa4a 747 uint16_t max_ce_length;
Wolfgang Betz 132:51056160fa4a 748 uint8_t id;
Wolfgang Betz 132:51056160fa4a 749 uint8_t accept;
Wolfgang Betz 132:51056160fa4a 750 } PACKED l2cap_conn_param_update_resp_cp_IDB05A1;
Wolfgang Betz 132:51056160fa4a 751
Wolfgang Betz 132:51056160fa4a 752 typedef __packed struct _l2cap_conn_param_update_resp_cp_IDB04A1{
Wolfgang Betz 132:51056160fa4a 753 uint16_t conn_handle;
Wolfgang Betz 132:51056160fa4a 754 uint16_t interval_min;
Wolfgang Betz 132:51056160fa4a 755 uint16_t interval_max;
Wolfgang Betz 132:51056160fa4a 756 uint16_t slave_latency;
Wolfgang Betz 132:51056160fa4a 757 uint16_t timeout_multiplier;
Wolfgang Betz 132:51056160fa4a 758 uint8_t id;
Wolfgang Betz 132:51056160fa4a 759 uint8_t accept;
Wolfgang Betz 132:51056160fa4a 760 } PACKED l2cap_conn_param_update_resp_cp_IDB04A1;
Wolfgang Betz 132:51056160fa4a 761
Wolfgang Betz 132:51056160fa4a 762 /**
Wolfgang Betz 132:51056160fa4a 763 * @defgroup BlueNRG_Events BlueNRG events (vendor specific)
Wolfgang Betz 132:51056160fa4a 764 * @{
Wolfgang Betz 132:51056160fa4a 765 */
Wolfgang Betz 132:51056160fa4a 766
Wolfgang Betz 132:51056160fa4a 767 /**
Wolfgang Betz 132:51056160fa4a 768 * Vendor specific event for BlueNRG.
Wolfgang Betz 132:51056160fa4a 769 */
Wolfgang Betz 132:51056160fa4a 770 typedef __packed struct _evt_blue_aci{
Wolfgang Betz 132:51056160fa4a 771 uint16_t ecode; /**< One of the BlueNRG event codes. */
Wolfgang Betz 132:51056160fa4a 772 uint8_t data[VARIABLE_SIZE];
Wolfgang Betz 132:51056160fa4a 773 } PACKED evt_blue_aci;
Wolfgang Betz 132:51056160fa4a 774
Wolfgang Betz 132:51056160fa4a 775
Wolfgang Betz 132:51056160fa4a 776 /**
Wolfgang Betz 132:51056160fa4a 777 * @}
Wolfgang Betz 132:51056160fa4a 778 */
Wolfgang Betz 132:51056160fa4a 779
Wolfgang Betz 132:51056160fa4a 780 #endif /* __BLUENRG_ACI_CONST_H_ */