1 /** 2 ****************************************************************************** 3 * @file ble_events.h 4 * @author GPM WBL Application team 5 * @brief Header file for Bluetooth Low Energy stack events callbacks 6 * Autogenerated files, do not edit!! 7 ****************************************************************************** 8 * @attention 9 * 10 * Copyright (c) 2024 STMicroelectronics. 11 * All rights reserved. 12 * 13 * This software is licensed under terms that can be found in the LICENSE file 14 * in the root directory of this software component. 15 * If no LICENSE file comes with this software, it is provided AS-IS. 16 * 17 ****************************************************************************** 18 */ 19 20 #ifndef _BLE_EVENTS_H_ 21 #define _BLE_EVENTS_H_ 22 23 #include "compiler.h" 24 #include "ble_types.h" 25 26 /** 27 * @brief Format of packets coming from BLE Stack. 28 */ 29 typedef PACKED(struct) _hci_pckt{ 30 uint8_t type; /*!< Type of packet. For possible values see @ref HCI_pckt_type */ 31 uint8_t data[0]; /*!< HCI data packets. Format depends on type field. 32 It can be casted to one of @ref HCI_data_pckt_structs */ 33 } hci_pckt; 34 35 /** @defgroup HCI_pckt_type HCI packet type 36 * @{ 37 */ 38 #define HCI_COMMAND_PKT_TYPE 0x01U /*!< Not used. */ 39 #define HCI_ACLDATA_PKT_TYPE 0x02U 40 #define HCI_EVENT_PKT_TYPE 0x04U 41 #define HCI_ISODATA_PKT_TYPE 0x05U 42 #define HCI_COMMAND_EXT_PKT_TYPE 0x81U /*!< Not used. */ 43 #define HCI_EVENT_EXT_PKT_TYPE 0x82U 44 #define HCI_VENDOR_PKT_TYPE 0xFFU /*!< Not used. */ 45 /** 46 * @} 47 */ 48 49 /** @defgroup HCI_data_pckt_structs Structures for HCI data packets 50 * @{ 51 */ 52 53 /** 54 * @brief Packet format of events. 55 * 56 * This is data field of hci_pckt if type field is equal to HCI_EVENT_PKT_TYPE. 57 */ 58 typedef PACKED(struct) _hci_event_pckt{ 59 uint8_t evt; /*!< One of @ref HCI_evt_code */ 60 uint8_t plen; /*!< Parameter Total Length, i.e. length of data field. */ 61 uint8_t data[0]; /*!< Event payload. To be casted to one of event struct types of @ref HCI_evt_structs. */ 62 } hci_event_pckt; 63 64 /** 65 * @brief Packet format of extended proprietary events. 66 * 67 * This is data field of hci_pckt if type field is equal to HCI_EVENT_EXT_PKT_TYPE. 68 */ 69 typedef PACKED(struct) _hci_event_ext_pckt{ 70 uint8_t evt; /*!< HCI_VENDOR_EVT_CODE is the only allowed value. */ 71 uint16_t plen; /*!< Parameter Total Length, i.e. length of data field. */ 72 uint8_t data[0]; /*!< Event payload. To be casted to one of event struct types of @ref HCI_evt_structs. 73 Current possible type is only aci_blecore_event. */ 74 } hci_event_ext_pckt; 75 76 /** 77 * @brief Packet format of ACL data packets. 78 * 79 * This is data field of hci_pckt if type field is equal to HCI_ACLDATA_PKT_TYPE. 80 */ 81 typedef PACKED(struct) _hci_acl_data_pckt{ 82 uint16_t handle_flags; /*!< This field includes Handle (12 bits), PB Flag (2 bits) and BC Flag (2 bits). */ 83 uint16_t dlen; /*!< Data Total Length. */ 84 uint8_t data[0]; /*!< Data. */ 85 } hci_acl_data_pckt; 86 87 /** 88 * @brief Packet format of ISO data packets. 89 * 90 * This is data field of hci_pckt if type field is equal to HCI_ISODATA_PKT_TYPE. 91 */ 92 typedef PACKED(struct) _hci_iso_data_pckt{ 93 uint16_t handle_flags; /*!< This field includes Handle (12 bits), PB Flag (2 bits) and TS Flag (1 bit). */ 94 uint16_t dlen; /*!< Data Total Length (14 bits used, 2 msb are reserved). */ 95 uint8_t data[0]; /*!< Data. Format is described in Core v5.4 Vol. 4, part E, section 5.4.5. */ 96 } hci_iso_data_pckt; 97 98 /** 99 * @} 100 */ 101 102 103 /** @defgroup HCI_evt_code HCI event codes 104 * @{ 105 */ 106 107 #define HCI_DISCONNECTION_COMPLETE_EVT_CODE 0x05 108 #define HCI_ENCRYPTION_CHANGE_EVT_CODE 0x08 109 #define HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE_EVT_CODE 0x0C 110 #define HCI_HARDWARE_ERROR_EVT_CODE 0x10 111 #define HCI_NUMBER_OF_COMPLETED_PACKETS_EVT_CODE 0x13 112 #define HCI_DATA_BUFFER_OVERFLOW_EVT_CODE 0x1A 113 #define HCI_ENCRYPTION_KEY_REFRESH_COMPLETE_EVT_CODE 0x30 114 #define HCI_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED_EVT_CODE 0x57 115 #define HCI_LE_META_EVT_CODE 0x3E 116 #define HCI_VENDOR_EVT_CODE 0xFF 117 118 /** 119 * @} 120 */ 121 122 /* Structs for events are never allocated. They are only used to cast a specific 123 event type. For this reason, this macro has no much importance for events. */ 124 #define HCI_MAX_PAYLOAD_SIZE 532 125 126 /** @defgroup HCI_evt_structs HCI event structures 127 * Types to be used to cast data field of @ref hci_event_pckt type 128 * @{ 129 */ 130 typedef PACKED(struct) hci_disconnection_complete_event_rp0_s { 131 uint8_t Status; 132 uint16_t Connection_Handle; 133 uint8_t Reason; 134 } hci_disconnection_complete_event_rp0; 135 136 typedef PACKED(struct) hci_encryption_change_event_rp0_s { 137 uint8_t Status; 138 uint16_t Connection_Handle; 139 uint8_t Encryption_Enabled; 140 } hci_encryption_change_event_rp0; 141 142 typedef PACKED(struct) hci_read_remote_version_information_complete_event_rp0_s { 143 uint8_t Status; 144 uint16_t Connection_Handle; 145 uint8_t Version; 146 uint16_t Manufacturer_Name; 147 uint16_t Subversion; 148 } hci_read_remote_version_information_complete_event_rp0; 149 150 typedef PACKED(struct) hci_hardware_error_event_rp0_s { 151 uint8_t Hardware_Code; 152 } hci_hardware_error_event_rp0; 153 154 typedef PACKED(struct) hci_number_of_completed_packets_event_rp0_s { 155 uint8_t Number_of_Handles; 156 packed_Handle_Packets_Pair_Entry_t Handle_Packets_Pair_Entry[(HCI_MAX_PAYLOAD_SIZE - 1)/sizeof(packed_Handle_Packets_Pair_Entry_t)]; 157 } hci_number_of_completed_packets_event_rp0; 158 159 typedef PACKED(struct) hci_data_buffer_overflow_event_rp0_s { 160 uint8_t Link_Type; 161 } hci_data_buffer_overflow_event_rp0; 162 163 typedef PACKED(struct) hci_encryption_key_refresh_complete_event_rp0_s { 164 uint8_t Status; 165 uint16_t Connection_Handle; 166 } hci_encryption_key_refresh_complete_event_rp0; 167 168 typedef PACKED(struct) hci_authenticated_payload_timeout_expired_event_rp0_s { 169 uint16_t Connection_Handle; 170 } hci_authenticated_payload_timeout_expired_event_rp0; 171 172 /** 173 * @brief Format of Standard LE Meta Events 174 * 175 * This is data field of @ref hci_event_pckt if evt field is equal to HCI_LE_META_EVT_CODE. 176 */ 177 typedef PACKED(struct) hci_le_meta_event_s { 178 uint8_t subevent; /*!< A value of @ref HCI_le_meta_evt_code. */ 179 uint8_t data[0]; /*!< LE Meta event. To be casted to a struct of @ref HCI_le_meta_evt_structs. */ 180 } hci_le_meta_event; 181 182 /** 183 * @brief Format of proprietary events. 184 * 185 * This is data field of @ref hci_event_pckt or @ref hci_event_ext_pckt if evt field is equal to HCI_VENDOR_EVT_CODE. 186 */ 187 typedef PACKED(struct) aci_blecore_event_s { 188 uint16_t ecode; /*!< A value of @ref ACI_evt_code. */ 189 uint8_t data[0]; /*!< Proprietary event parameters. To be casted to a struct of @ref ACI_evt_structs. */ 190 } aci_blecore_event; 191 192 /** 193 * @} 194 */ 195 196 197 /** @defgroup HCI_le_meta_evt_code HCI LE Meta subevent codes 198 * Codes found in subevent field of hci_le_meta_event struct. 199 * @{ 200 */ 201 #define HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE 0x01 202 #define HCI_LE_ADVERTISING_REPORT_SUBEVT_CODE 0x02 203 #define HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE 0x03 204 #define HCI_LE_READ_REMOTE_FEATURES_COMPLETE_SUBEVT_CODE 0x04 205 #define HCI_LE_LONG_TERM_KEY_REQUEST_SUBEVT_CODE 0x05 206 #define HCI_LE_DATA_LENGTH_CHANGE_SUBEVT_CODE 0x07 207 #define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_SUBEVT_CODE 0x08 208 #define HCI_LE_GENERATE_DHKEY_COMPLETE_SUBEVT_CODE 0x09 209 #define HCI_LE_ENHANCED_CONNECTION_COMPLETE_SUBEVT_CODE 0x0A 210 #define HCI_LE_DIRECTED_ADVERTISING_REPORT_SUBEVT_CODE 0x0B 211 #define HCI_LE_PHY_UPDATE_COMPLETE_SUBEVT_CODE 0x0C 212 #define HCI_LE_EXTENDED_ADVERTISING_REPORT_SUBEVT_CODE 0x0D 213 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_SUBEVT_CODE 0x0E 214 #define HCI_LE_PERIODIC_ADVERTISING_REPORT_SUBEVT_CODE 0x0F 215 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_LOST_SUBEVT_CODE 0x10 216 #define HCI_LE_SCAN_TIMEOUT_SUBEVT_CODE 0x11 217 #define HCI_LE_ADVERTISING_SET_TERMINATED_SUBEVT_CODE 0x12 218 #define HCI_LE_SCAN_REQUEST_RECEIVED_SUBEVT_CODE 0x13 219 #define HCI_LE_CHANNEL_SELECTION_ALGORITHM_SUBEVT_CODE 0x14 220 #define HCI_LE_CONNECTIONLESS_IQ_REPORT_SUBEVT_CODE 0x15 221 #define HCI_LE_CONNECTION_IQ_REPORT_SUBEVT_CODE 0x16 222 #define HCI_LE_CTE_REQUEST_FAILED_SUBEVT_CODE 0x17 223 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED_SUBEVT_CODE 0x18 224 #define HCI_LE_CIS_ESTABLISHED_SUBEVT_CODE 0x19 225 #define HCI_LE_CIS_REQUEST_SUBEVT_CODE 0x1A 226 #define HCI_LE_CREATE_BIG_COMPLETE_SUBEVT_CODE 0x1B 227 #define HCI_LE_TERMINATE_BIG_COMPLETE_SUBEVT_CODE 0x1C 228 #define HCI_LE_BIG_SYNC_ESTABLISHED_SUBEVT_CODE 0x1D 229 #define HCI_LE_BIG_SYNC_LOST_SUBEVT_CODE 0x1E 230 #define HCI_LE_REQUEST_PEER_SCA_COMPLETE_SUBEVT_CODE 0x1F 231 #define HCI_LE_PATH_LOSS_THRESHOLD_SUBEVT_CODE 0x20 232 #define HCI_LE_TRANSMIT_POWER_REPORTING_SUBEVT_CODE 0x21 233 #define HCI_LE_BIGINFO_ADVERTISING_REPORT_SUBEVT_CODE 0x22 234 #define HCI_LE_SUBRATE_CHANGE_SUBEVT_CODE 0x23 235 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2_SUBEVT_CODE 0x24 236 #define HCI_LE_PERIODIC_ADVERTISING_REPORT_V2_SUBEVT_CODE 0x25 237 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED_V2_SUBEVT_CODE 0x26 238 #define HCI_LE_PERIODIC_ADVERTISING_SUBEVENT_DATA_REQUEST_SUBEVT_CODE 0x27 239 #define HCI_LE_PERIODIC_ADVERTISING_RESPONSE_REPORT_SUBEVT_CODE 0x28 240 #define HCI_LE_ENHANCED_CONNECTION_COMPLETE_V2_SUBEVT_CODE 0x29 241 /** 242 * @} 243 */ 244 245 /** @defgroup HCI_le_meta_evt_structs HCI LE Meta event structures 246 * Types to be used to cast data field of hci_le_meta_event type 247 * @{ 248 */ 249 typedef PACKED(struct) hci_le_connection_complete_event_rp0_s { 250 uint8_t Status; 251 uint16_t Connection_Handle; 252 uint8_t Role; 253 uint8_t Peer_Address_Type; 254 uint8_t Peer_Address[6]; 255 uint16_t Connection_Interval; 256 uint16_t Peripheral_Latency; 257 uint16_t Supervision_Timeout; 258 uint8_t Central_Clock_Accuracy; 259 } hci_le_connection_complete_event_rp0; 260 261 typedef PACKED(struct) hci_le_advertising_report_event_rp0_s { 262 uint8_t Num_Reports; 263 packed_Advertising_Report_t Advertising_Report; /* N elements of variable size */ 264 } hci_le_advertising_report_event_rp0; 265 266 typedef PACKED(struct) hci_le_connection_update_complete_event_rp0_s { 267 uint8_t Status; 268 uint16_t Connection_Handle; 269 uint16_t Connection_Interval; 270 uint16_t Peripheral_Latency; 271 uint16_t Supervision_Timeout; 272 } hci_le_connection_update_complete_event_rp0; 273 274 typedef PACKED(struct) hci_le_read_remote_features_complete_event_rp0_s { 275 uint8_t Status; 276 uint16_t Connection_Handle; 277 uint8_t LE_Features[8]; 278 } hci_le_read_remote_features_complete_event_rp0; 279 280 typedef PACKED(struct) hci_le_long_term_key_request_event_rp0_s { 281 uint16_t Connection_Handle; 282 uint8_t Random_Number[8]; 283 uint16_t Encrypted_Diversifier; 284 } hci_le_long_term_key_request_event_rp0; 285 286 typedef PACKED(struct) hci_le_data_length_change_event_rp0_s { 287 uint16_t Connection_Handle; 288 uint16_t MaxTxOctets; 289 uint16_t MaxTxTime; 290 uint16_t MaxRxOctets; 291 uint16_t MaxRxTime; 292 } hci_le_data_length_change_event_rp0; 293 294 typedef PACKED(struct) hci_le_read_local_p256_public_key_complete_event_rp0_s { 295 uint8_t Status; 296 uint8_t Local_P256_Public_Key[64]; 297 } hci_le_read_local_p256_public_key_complete_event_rp0; 298 299 typedef PACKED(struct) hci_le_generate_dhkey_complete_event_rp0_s { 300 uint8_t Status; 301 uint8_t DHKey[32]; 302 } hci_le_generate_dhkey_complete_event_rp0; 303 304 typedef PACKED(struct) hci_le_enhanced_connection_complete_event_rp0_s { 305 uint8_t Status; 306 uint16_t Connection_Handle; 307 uint8_t Role; 308 uint8_t Peer_Address_Type; 309 uint8_t Peer_Address[6]; 310 uint8_t Local_Resolvable_Private_Address[6]; 311 uint8_t Peer_Resolvable_Private_Address[6]; 312 uint16_t Connection_Interval; 313 uint16_t Peripheral_Latency; 314 uint16_t Supervision_Timeout; 315 uint8_t Central_Clock_Accuracy; 316 } hci_le_enhanced_connection_complete_event_rp0; 317 318 typedef PACKED(struct) hci_le_directed_advertising_report_event_rp0_s { 319 uint8_t Num_Reports; 320 packed_Direct_Advertising_Report_t Direct_Advertising_Report[(HCI_MAX_PAYLOAD_SIZE - 1)/sizeof(packed_Direct_Advertising_Report_t)]; 321 } hci_le_directed_advertising_report_event_rp0; 322 323 typedef PACKED(struct) hci_le_phy_update_complete_event_rp0_s { 324 uint8_t Status; 325 uint16_t Connection_Handle; 326 uint8_t TX_PHY; 327 uint8_t RX_PHY; 328 } hci_le_phy_update_complete_event_rp0; 329 330 typedef PACKED(struct) hci_le_extended_advertising_report_event_rp0_s { 331 uint8_t Num_Reports; 332 packed_Extended_Advertising_Report_t Extended_Advertising_Report; /* N elements of variable size */ 333 } hci_le_extended_advertising_report_event_rp0; 334 335 typedef PACKED(struct) hci_le_periodic_advertising_sync_established_event_rp0_s { 336 uint8_t Status; 337 uint16_t Sync_Handle; 338 uint8_t Advertising_SID; 339 uint8_t Advertiser_Address_Type; 340 uint8_t Advertiser_Address[6]; 341 uint8_t Advertiser_PHY; 342 uint16_t Periodic_Advertising_Interval; 343 uint8_t Advertiser_Clock_Accuracy; 344 } hci_le_periodic_advertising_sync_established_event_rp0; 345 346 typedef PACKED(struct) hci_le_periodic_advertising_report_event_rp0_s { 347 uint16_t Sync_Handle; 348 int8_t TX_Power; 349 int8_t RSSI; 350 uint8_t CTE_Type; 351 uint8_t Data_Status; 352 uint8_t Data_Length; 353 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)]; 354 } hci_le_periodic_advertising_report_event_rp0; 355 356 typedef PACKED(struct) hci_le_periodic_advertising_sync_lost_event_rp0_s { 357 uint16_t Sync_Handle; 358 } hci_le_periodic_advertising_sync_lost_event_rp0; 359 360 typedef PACKED(struct) hci_le_advertising_set_terminated_event_rp0_s { 361 uint8_t Status; 362 uint8_t Advertising_Handle; 363 uint16_t Connection_Handle; 364 uint8_t Num_Completed_Extended_Advertising_Events; 365 } hci_le_advertising_set_terminated_event_rp0; 366 367 typedef PACKED(struct) hci_le_scan_request_received_event_rp0_s { 368 uint8_t Advertising_Handle; 369 uint8_t Scanner_Address_Type; 370 uint8_t Scanner_Address[6]; 371 } hci_le_scan_request_received_event_rp0; 372 373 typedef PACKED(struct) hci_le_channel_selection_algorithm_event_rp0_s { 374 uint16_t Connection_Handle; 375 uint8_t Channel_Selection_Algorithm; 376 } hci_le_channel_selection_algorithm_event_rp0; 377 378 typedef PACKED(struct) hci_le_connectionless_iq_report_event_rp0_s { 379 uint16_t Sync_Handle; 380 uint8_t Channel_Index; 381 int16_t RSSI; 382 uint8_t RSSI_Antenna_ID; 383 uint8_t CTE_Type; 384 uint8_t Slot_Durations; 385 uint8_t Packet_Status; 386 uint16_t Periodic_Event_Counter; 387 uint8_t Sample_Count; 388 packed_Samples_t Samples[(HCI_MAX_PAYLOAD_SIZE - 12)/sizeof(packed_Samples_t)]; 389 } hci_le_connectionless_iq_report_event_rp0; 390 391 typedef PACKED(struct) hci_le_connection_iq_report_event_rp0_s { 392 uint16_t Connection_Handle; 393 uint8_t RX_PHY; 394 uint8_t Data_Channel_Index; 395 int16_t RSSI; 396 uint8_t RSSI_Antenna_ID; 397 uint8_t CTE_Type; 398 uint8_t Slot_Durations; 399 uint8_t Packet_Status; 400 uint16_t Connection_Event_Counter; 401 uint8_t Sample_Count; 402 packed_Samples_t Samples[(HCI_MAX_PAYLOAD_SIZE - 13)/sizeof(packed_Samples_t)]; 403 } hci_le_connection_iq_report_event_rp0; 404 405 typedef PACKED(struct) hci_le_cte_request_failed_event_rp0_s { 406 uint8_t Status; 407 uint16_t Connection_Handle; 408 } hci_le_cte_request_failed_event_rp0; 409 410 typedef PACKED(struct) hci_le_periodic_advertising_sync_transfer_received_event_rp0_s { 411 uint8_t Status; 412 uint16_t Connection_Handle; 413 uint16_t Service_data; 414 uint16_t Sync_Handle; 415 uint8_t Advertising_SID; 416 uint8_t Advertiser_Address_Type; 417 uint8_t Advertiser_Address[6]; 418 uint8_t Advertiser_PHY; 419 uint16_t Periodic_Advertising_Interval; 420 uint8_t Advertiser_Clock_Accuracy; 421 } hci_le_periodic_advertising_sync_transfer_received_event_rp0; 422 423 typedef PACKED(struct) hci_le_cis_established_event_rp0_s { 424 uint8_t Status; 425 uint16_t Connection_Handle; 426 uint8_t CIG_Sync_Delay[3]; 427 uint8_t CIS_Sync_Delay[3]; 428 uint8_t Transport_Latency_C_To_P[3]; 429 uint8_t Transport_Latency_P_To_C[3]; 430 uint8_t PHY_C_To_P; 431 uint8_t PHY_P_To_C; 432 uint8_t NSE; 433 uint8_t BN_C_To_P; 434 uint8_t BN_P_To_C; 435 uint8_t FT_C_To_P; 436 uint8_t FT_P_To_C; 437 uint16_t Max_PDU_C_To_P; 438 uint16_t Max_PDU_P_To_C; 439 uint16_t ISO_Interval; 440 } hci_le_cis_established_event_rp0; 441 442 typedef PACKED(struct) hci_le_cis_request_event_rp0_s { 443 uint16_t ACL_Connection_Handle; 444 uint16_t CIS_Connection_Handle; 445 uint8_t CIG_ID; 446 uint8_t CIS_ID; 447 } hci_le_cis_request_event_rp0; 448 449 typedef PACKED(struct) hci_le_create_big_complete_event_rp0_s { 450 uint8_t Status; 451 uint8_t BIG_Handle; 452 uint8_t BIG_Sync_Delay[3]; 453 uint8_t Transport_Latency_BIG[3]; 454 uint8_t PHY; 455 uint8_t NSE; 456 uint8_t BN; 457 uint8_t PTO; 458 uint8_t IRC; 459 uint16_t Max_PDU; 460 uint16_t ISO_Interval; 461 uint8_t Num_BIS; 462 uint16_t Connection_Handle[(HCI_MAX_PAYLOAD_SIZE - 18)/sizeof(uint16_t)]; 463 } hci_le_create_big_complete_event_rp0; 464 465 typedef PACKED(struct) hci_le_terminate_big_complete_event_rp0_s { 466 uint8_t BIG_Handle; 467 uint8_t Reason; 468 } hci_le_terminate_big_complete_event_rp0; 469 470 typedef PACKED(struct) hci_le_big_sync_established_event_rp0_s { 471 uint8_t Status; 472 uint8_t BIG_Handle; 473 uint8_t Transport_Latency_BIG[3]; 474 uint8_t NSE; 475 uint8_t BN; 476 uint8_t PTO; 477 uint8_t IRC; 478 uint16_t Max_PDU; 479 uint16_t ISO_Interval; 480 uint8_t Num_BIS; 481 uint16_t Connection_Handle[(HCI_MAX_PAYLOAD_SIZE - 14)/sizeof(uint16_t)]; 482 } hci_le_big_sync_established_event_rp0; 483 484 typedef PACKED(struct) hci_le_big_sync_lost_event_rp0_s { 485 uint8_t BIG_Handle; 486 uint8_t Reason; 487 } hci_le_big_sync_lost_event_rp0; 488 489 typedef PACKED(struct) hci_le_request_peer_sca_complete_event_rp0_s { 490 uint8_t Status; 491 uint16_t Connection_Handle; 492 uint8_t Peer_Clock_Accuracy; 493 } hci_le_request_peer_sca_complete_event_rp0; 494 495 typedef PACKED(struct) hci_le_path_loss_threshold_event_rp0_s { 496 uint16_t Connection_Handle; 497 uint8_t Current_Path_Loss; 498 uint8_t Zone_Entered; 499 } hci_le_path_loss_threshold_event_rp0; 500 501 typedef PACKED(struct) hci_le_transmit_power_reporting_event_rp0_s { 502 uint8_t Status; 503 uint16_t Connection_Handle; 504 uint8_t Reason; 505 uint8_t PHY; 506 int8_t Transmit_Power_Level; 507 uint8_t Transmit_Power_Level_Flag; 508 int8_t Delta; 509 } hci_le_transmit_power_reporting_event_rp0; 510 511 typedef PACKED(struct) hci_le_biginfo_advertising_report_event_rp0_s { 512 uint16_t Sync_Handle; 513 uint8_t Num_BIS; 514 uint8_t NSE; 515 uint16_t ISO_Interval; 516 uint8_t BN; 517 uint8_t PTO; 518 uint8_t IRC; 519 uint16_t Max_PDU; 520 uint8_t SDU_Interval[3]; 521 uint16_t Max_SDU; 522 uint8_t PHY; 523 uint8_t Framing; 524 uint8_t Encryption; 525 } hci_le_biginfo_advertising_report_event_rp0; 526 527 typedef PACKED(struct) hci_le_subrate_change_event_rp0_s { 528 uint8_t Status; 529 uint16_t Connection_Handle; 530 uint16_t Subrate_Factor; 531 uint16_t Peripheral_Latency; 532 uint16_t Continuation_Number; 533 uint16_t Supervision_Timeout; 534 } hci_le_subrate_change_event_rp0; 535 536 typedef PACKED(struct) hci_le_periodic_advertising_sync_established_v2_event_rp0_s { 537 uint8_t Status; 538 uint16_t Sync_Handle; 539 uint8_t Advertising_SID; 540 uint8_t Advertiser_Address_Type; 541 uint8_t Advertiser_Address[6]; 542 uint8_t Advertiser_PHY; 543 uint16_t Periodic_Advertising_Interval; 544 uint8_t Advertiser_Clock_Accuracy; 545 uint8_t Num_Subevents; 546 uint8_t Subevent_Interval; 547 uint8_t Response_Slot_Delay; 548 uint8_t Response_Slot_Spacing; 549 } hci_le_periodic_advertising_sync_established_v2_event_rp0; 550 551 typedef PACKED(struct) hci_le_periodic_advertising_report_v2_event_rp0_s { 552 uint16_t Sync_Handle; 553 int8_t TX_Power; 554 int8_t RSSI; 555 uint8_t CTE_Type; 556 uint16_t Periodic_Event_Counter; 557 uint8_t Subevent; 558 uint8_t Data_Status; 559 uint8_t Data_Length; 560 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)]; 561 } hci_le_periodic_advertising_report_v2_event_rp0; 562 563 typedef PACKED(struct) hci_le_periodic_advertising_sync_transfer_received_v2_event_rp0_s { 564 uint8_t Status; 565 uint16_t Connection_Handle; 566 uint16_t Service_data; 567 uint16_t Sync_Handle; 568 uint8_t Advertising_SID; 569 uint8_t Advertiser_Address_Type; 570 uint8_t Advertiser_Address[6]; 571 uint8_t Advertiser_PHY; 572 uint16_t Periodic_Advertising_Interval; 573 uint8_t Advertiser_Clock_Accuracy; 574 uint8_t Num_Subevents; 575 uint8_t Subevent_Interval; 576 uint8_t Response_Slot_Delay; 577 uint8_t Response_Slot_Spacing; 578 } hci_le_periodic_advertising_sync_transfer_received_v2_event_rp0; 579 580 typedef PACKED(struct) hci_le_periodic_advertising_subevent_data_request_event_rp0_s { 581 uint8_t Advertising_Handle; 582 uint8_t Subevent_Start; 583 uint8_t Subevent_Data_Count; 584 } hci_le_periodic_advertising_subevent_data_request_event_rp0; 585 586 typedef PACKED(struct) hci_le_periodic_advertising_response_report_event_rp0_s { 587 uint8_t Advertising_Handle; 588 uint8_t Subevent; 589 uint8_t Tx_Status; 590 uint8_t Num_Responses; 591 packed_Periodic_Advertising_Response_t Periodic_Advertising_Response; /* N elements of variable size */ 592 } hci_le_periodic_advertising_response_report_event_rp0; 593 594 typedef PACKED(struct) hci_le_enhanced_connection_complete_v2_event_rp0_s { 595 uint8_t Status; 596 uint16_t Connection_Handle; 597 uint8_t Role; 598 uint8_t Peer_Address_Type; 599 uint8_t Peer_Address[6]; 600 uint8_t Local_Resolvable_Private_Address[6]; 601 uint8_t Peer_Resolvable_Private_Address[6]; 602 uint16_t Connection_Interval; 603 uint16_t Peripheral_Latency; 604 uint16_t Supervision_Timeout; 605 uint8_t Central_Clock_Accuracy; 606 uint8_t Advertising_Handle; 607 uint16_t Sync_Handle; 608 } hci_le_enhanced_connection_complete_v2_event_rp0; 609 610 /** 611 * @} 612 */ 613 614 /** @defgroup ACI_evt_code ACI proprietary event codes 615 * Codes found in ecode field of aci_blecore_event struct. 616 * @{ 617 */ 618 619 /* Vendor specific codes of ACI GAP events */ 620 621 #define ACI_HAL_END_OF_RADIO_ACTIVITY_VSEVT_CODE 0x0004 622 #define ACI_HAL_FW_ERROR_VSEVT_CODE 0x0006 623 #define ACI_HAL_ADV_SCAN_RESP_DATA_UPDATE_VSEVT_CODE 0x0010 624 #define ACI_HAL_PAWR_DATA_FREE_VSEVT_CODE 0x0011 625 #define ACI_GAP_LIMITED_DISCOVERABLE_VSEVT_CODE 0x0400 626 #define ACI_GAP_PAIRING_COMPLETE_VSEVT_CODE 0x0401 627 #define ACI_GAP_PASSKEY_REQ_VSEVT_CODE 0x0402 628 #define ACI_GAP_PROC_COMPLETE_VSEVT_CODE 0x0407 629 #define ACI_GAP_ADDR_NOT_RESOLVED_VSEVT_CODE 0x0408 630 #define ACI_GAP_NUMERIC_COMPARISON_VALUE_VSEVT_CODE 0x0409 631 #define ACI_GAP_KEYPRESS_NOTIFICATION_VSEVT_CODE 0x040A 632 #define ACI_GAP_PAIRING_VSEVT_CODE 0x040B 633 #define ACI_L2CAP_CONNECTION_UPDATE_RESP_VSEVT_CODE 0x0800 634 #define ACI_L2CAP_PROC_TIMEOUT_VSEVT_CODE 0x0801 635 #define ACI_L2CAP_CONNECTION_UPDATE_REQ_VSEVT_CODE 0x0802 636 #define ACI_L2CAP_COS_DISCONNECTION_COMPLETE_VSEVT_CODE 0x0804 637 #define ACI_L2CAP_COS_FLOW_CONTROL_CREDIT_VSEVT_CODE 0x0805 638 #define ACI_L2CAP_COS_SDU_DATA_TX_VSEVT_CODE 0x0806 639 #define ACI_L2CAP_COS_RECONFIGURATION_VSEVT_CODE 0x0809 640 #define ACI_L2CAP_COMMAND_REJECT_VSEVT_CODE 0x080A 641 #define ACI_L2CAP_COS_SDU_DATA_RX_VSEVT_CODE 0x080D 642 #define ACI_L2CAP_COS_CONNECTION_REQ_VSEVT_CODE 0x080E 643 #define ACI_L2CAP_COS_CONNECTION_RESP_VSEVT_CODE 0x080F 644 #define ACI_GATT_SRV_ATTRIBUTE_MODIFIED_VSEVT_CODE 0x0C01 645 #define ACI_GATT_PROC_TIMEOUT_VSEVT_CODE 0x0C02 646 #define ACI_ATT_EXCHANGE_MTU_RESP_VSEVT_CODE 0x0C03 647 #define ACI_ATT_CLT_FIND_INFO_RESP_VSEVT_CODE 0x0C04 648 #define ACI_ATT_CLT_FIND_BY_TYPE_VALUE_RESP_VSEVT_CODE 0x0C05 649 #define ACI_ATT_CLT_READ_BY_TYPE_RESP_VSEVT_CODE 0x0C06 650 #define ACI_ATT_CLT_READ_RESP_VSEVT_CODE 0x0C07 651 #define ACI_ATT_CLT_READ_BLOB_RESP_VSEVT_CODE 0x0C08 652 #define ACI_ATT_CLT_READ_MULTIPLE_RESP_VSEVT_CODE 0x0C09 653 #define ACI_ATT_CLT_READ_BY_GROUP_TYPE_RESP_VSEVT_CODE 0x0C0A 654 #define ACI_ATT_CLT_PREPARE_WRITE_RESP_VSEVT_CODE 0x0C0C 655 #define ACI_ATT_CLT_EXEC_WRITE_RESP_VSEVT_CODE 0x0C0D 656 #define ACI_GATT_CLT_INDICATION_VSEVT_CODE 0x0C0E 657 #define ACI_GATT_CLT_NOTIFICATION_VSEVT_CODE 0x0C0F 658 #define ACI_GATT_CLT_PROC_COMPLETE_VSEVT_CODE 0x0C10 659 #define ACI_GATT_CLT_ERROR_RESP_VSEVT_CODE 0x0C11 660 #define ACI_GATT_CLT_DISC_READ_CHAR_BY_UUID_RESP_VSEVT_CODE 0x0C12 661 #define ACI_GATT_TX_POOL_AVAILABLE_VSEVT_CODE 0x0C16 662 #define ACI_GATT_SRV_CONFIRMATION_VSEVT_CODE 0x0C17 663 #define ACI_GATT_SRV_READ_VSEVT_CODE 0x0C19 664 #define ACI_GATT_SRV_WRITE_VSEVT_CODE 0x0C1A 665 #define ACI_ATT_SRV_PREPARE_WRITE_REQ_VSEVT_CODE 0x0C1B 666 #define ACI_ATT_SRV_EXEC_WRITE_REQ_VSEVT_CODE 0x0C1C 667 #define ACI_ATT_CLT_READ_MULTIPLE_VAR_LEN_RESP_VSEVT_CODE 0x0C1E 668 669 /** 670 * @} 671 */ 672 673 /** @defgroup ACI_evt_structs Proprietary ACI event structures 674 * Types to be used to cast data field of hci_event_pckt type or 675 * hci_event_ext_pckt type. 676 * @{ 677 */ 678 typedef PACKED(struct) aci_hal_end_of_radio_activity_event_rp0_s { 679 uint8_t Last_State; 680 uint8_t Next_State; 681 uint32_t Next_State_SysTime; 682 } aci_hal_end_of_radio_activity_event_rp0; 683 684 typedef PACKED(struct) aci_hal_fw_error_event_rp0_s { 685 uint8_t FW_Error_Type; 686 uint8_t Data_Length; 687 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)]; 688 } aci_hal_fw_error_event_rp0; 689 690 typedef PACKED(struct) aci_hal_adv_scan_resp_data_update_event_rp0_s { 691 void * Old_Pointer; 692 void * New_Pointer; 693 } aci_hal_adv_scan_resp_data_update_event_rp0; 694 695 typedef PACKED(struct) aci_hal_pawr_data_free_event_rp0_s { 696 void * Buffer; 697 uint8_t Type; 698 } aci_hal_pawr_data_free_event_rp0; 699 700 typedef PACKED(struct) aci_gap_pairing_complete_event_rp0_s { 701 uint16_t Connection_Handle; 702 uint8_t Status; 703 uint8_t Reason; 704 } aci_gap_pairing_complete_event_rp0; 705 706 typedef PACKED(struct) aci_gap_passkey_req_event_rp0_s { 707 uint16_t Connection_Handle; 708 uint8_t Display_Input; 709 } aci_gap_passkey_req_event_rp0; 710 711 typedef PACKED(struct) aci_gap_proc_complete_event_rp0_s { 712 uint8_t Procedure_Code; 713 uint8_t Status; 714 uint8_t Data_Length; 715 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)]; 716 } aci_gap_proc_complete_event_rp0; 717 718 typedef PACKED(struct) aci_gap_addr_not_resolved_event_rp0_s { 719 uint16_t Connection_Handle; 720 } aci_gap_addr_not_resolved_event_rp0; 721 722 typedef PACKED(struct) aci_gap_numeric_comparison_value_event_rp0_s { 723 uint16_t Connection_Handle; 724 uint32_t Numeric_Value; 725 } aci_gap_numeric_comparison_value_event_rp0; 726 727 typedef PACKED(struct) aci_gap_keypress_notification_event_rp0_s { 728 uint16_t Connection_Handle; 729 uint8_t Notification_Type; 730 } aci_gap_keypress_notification_event_rp0; 731 732 typedef PACKED(struct) aci_gap_pairing_event_rp0_s { 733 uint16_t Connection_Handle; 734 uint8_t Bonded; 735 } aci_gap_pairing_event_rp0; 736 737 typedef PACKED(struct) aci_l2cap_connection_update_resp_event_rp0_s { 738 uint16_t Connection_Handle; 739 uint16_t Result; 740 } aci_l2cap_connection_update_resp_event_rp0; 741 742 typedef PACKED(struct) aci_l2cap_proc_timeout_event_rp0_s { 743 uint16_t Connection_Handle; 744 uint8_t Data_Length; 745 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)]; 746 } aci_l2cap_proc_timeout_event_rp0; 747 748 typedef PACKED(struct) aci_l2cap_connection_update_req_event_rp0_s { 749 uint16_t Connection_Handle; 750 uint8_t Identifier; 751 uint16_t L2CAP_Length; 752 uint16_t Connection_Interval_Min; 753 uint16_t Connection_Interval_Max; 754 uint16_t Max_Latency; 755 uint16_t Timeout_Multiplier; 756 } aci_l2cap_connection_update_req_event_rp0; 757 758 typedef PACKED(struct) aci_l2cap_cos_disconnection_complete_event_rp0_s { 759 uint16_t Connection_Handle; 760 uint16_t CID; 761 } aci_l2cap_cos_disconnection_complete_event_rp0; 762 763 typedef PACKED(struct) aci_l2cap_cos_flow_control_credit_event_rp0_s { 764 uint16_t Connection_Handle; 765 uint16_t CID; 766 uint16_t TX_Credits; 767 uint16_t TX_Credit_Balance; 768 } aci_l2cap_cos_flow_control_credit_event_rp0; 769 770 typedef PACKED(struct) aci_l2cap_cos_sdu_data_tx_event_rp0_s { 771 uint16_t Connection_Handle; 772 uint16_t CID; 773 uint16_t SDU_Length; 774 uint16_t TX_Credit_Balance; 775 } aci_l2cap_cos_sdu_data_tx_event_rp0; 776 777 typedef PACKED(struct) aci_l2cap_cos_reconfiguration_event_rp0_s { 778 uint16_t Connection_Handle; 779 uint8_t Event_Type; 780 uint16_t Result; 781 uint8_t Identifier; 782 uint16_t Peer_MTU; 783 uint16_t Peer_MPS; 784 uint8_t CID_Count; 785 uint16_t Local_CID[(HCI_MAX_PAYLOAD_SIZE - 11)/sizeof(uint16_t)]; 786 } aci_l2cap_cos_reconfiguration_event_rp0; 787 788 typedef PACKED(struct) aci_l2cap_command_reject_event_rp0_s { 789 uint16_t Connection_Handle; 790 uint8_t Identifier; 791 uint16_t Reason; 792 uint8_t Data_Length; 793 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)]; 794 } aci_l2cap_command_reject_event_rp0; 795 796 typedef PACKED(struct) aci_l2cap_cos_sdu_data_rx_event_rp0_s { 797 uint16_t Connection_Handle; 798 uint16_t CID; 799 uint16_t RX_Credit_Balance; 800 uint16_t SDU_Length; 801 } aci_l2cap_cos_sdu_data_rx_event_rp0; 802 803 typedef PACKED(struct) aci_l2cap_cos_connection_req_event_rp0_s { 804 uint16_t Connection_Handle; 805 uint8_t Channel_Type; 806 uint8_t Identifier; 807 uint16_t SPSM; 808 uint16_t Peer_MTU; 809 uint16_t Peer_MPS; 810 uint16_t Initial_Credits; 811 uint8_t CID_Count; 812 } aci_l2cap_cos_connection_req_event_rp0; 813 814 typedef PACKED(struct) aci_l2cap_cos_connection_resp_event_rp0_s { 815 uint16_t Connection_Handle; 816 uint8_t Channel_Type; 817 uint16_t Peer_MTU; 818 uint16_t Peer_MPS; 819 uint16_t Initial_Credits; 820 uint16_t Result; 821 uint8_t CID_Count; 822 uint16_t CID[(HCI_MAX_PAYLOAD_SIZE - 12)/sizeof(uint16_t)]; 823 } aci_l2cap_cos_connection_resp_event_rp0; 824 825 typedef PACKED(struct) aci_gatt_srv_attribute_modified_event_rp0_s { 826 uint16_t Connection_Handle; 827 uint16_t CID; 828 uint16_t Attr_Handle; 829 uint16_t Attr_Data_Length; 830 uint8_t Attr_Data[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)]; 831 } aci_gatt_srv_attribute_modified_event_rp0; 832 833 typedef PACKED(struct) aci_gatt_proc_timeout_event_rp0_s { 834 uint16_t Connection_Handle; 835 uint16_t CID; 836 } aci_gatt_proc_timeout_event_rp0; 837 838 typedef PACKED(struct) aci_att_exchange_mtu_resp_event_rp0_s { 839 uint16_t Connection_Handle; 840 uint16_t MTU; 841 } aci_att_exchange_mtu_resp_event_rp0; 842 843 typedef PACKED(struct) aci_att_clt_find_info_resp_event_rp0_s { 844 uint16_t Connection_Handle; 845 uint16_t CID; 846 uint8_t Format; 847 uint16_t Event_Data_Length; 848 uint8_t Handle_UUID_Pair[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)]; 849 } aci_att_clt_find_info_resp_event_rp0; 850 851 typedef PACKED(struct) aci_att_clt_find_by_type_value_resp_event_rp0_s { 852 uint16_t Connection_Handle; 853 uint16_t CID; 854 uint8_t Num_of_Handle_Pair; 855 packed_Attribute_Group_Handle_Pair_t Attribute_Group_Handle_Pair[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(packed_Attribute_Group_Handle_Pair_t)]; 856 } aci_att_clt_find_by_type_value_resp_event_rp0; 857 858 typedef PACKED(struct) aci_att_clt_read_by_type_resp_event_rp0_s { 859 uint16_t Connection_Handle; 860 uint16_t CID; 861 uint8_t Handle_Value_Pair_Length; 862 uint16_t Data_Length; 863 uint8_t Handle_Value_Pair_Data[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)]; 864 } aci_att_clt_read_by_type_resp_event_rp0; 865 866 typedef PACKED(struct) aci_att_clt_read_resp_event_rp0_s { 867 uint16_t Connection_Handle; 868 uint16_t CID; 869 uint16_t Event_Data_Length; 870 uint8_t Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)]; 871 } aci_att_clt_read_resp_event_rp0; 872 873 typedef PACKED(struct) aci_att_clt_read_blob_resp_event_rp0_s { 874 uint16_t Connection_Handle; 875 uint16_t CID; 876 uint16_t Event_Data_Length; 877 uint8_t Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)]; 878 } aci_att_clt_read_blob_resp_event_rp0; 879 880 typedef PACKED(struct) aci_att_clt_read_multiple_resp_event_rp0_s { 881 uint16_t Connection_Handle; 882 uint16_t CID; 883 uint16_t Event_Data_Length; 884 uint8_t Set_Of_Values[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)]; 885 } aci_att_clt_read_multiple_resp_event_rp0; 886 887 typedef PACKED(struct) aci_att_clt_read_by_group_type_resp_event_rp0_s { 888 uint16_t Connection_Handle; 889 uint16_t CID; 890 uint8_t Attribute_Data_Length; 891 uint16_t Data_Length; 892 uint8_t Attribute_Data_List[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)]; 893 } aci_att_clt_read_by_group_type_resp_event_rp0; 894 895 typedef PACKED(struct) aci_att_clt_prepare_write_resp_event_rp0_s { 896 uint16_t Connection_Handle; 897 uint16_t CID; 898 uint16_t Attribute_Handle; 899 uint16_t Offset; 900 uint16_t Part_Attribute_Value_Length; 901 uint8_t Part_Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)]; 902 } aci_att_clt_prepare_write_resp_event_rp0; 903 904 typedef PACKED(struct) aci_att_clt_exec_write_resp_event_rp0_s { 905 uint16_t Connection_Handle; 906 uint16_t CID; 907 } aci_att_clt_exec_write_resp_event_rp0; 908 909 typedef PACKED(struct) aci_gatt_clt_indication_event_rp0_s { 910 uint16_t Connection_Handle; 911 uint16_t CID; 912 uint16_t Attribute_Handle; 913 uint16_t Attribute_Value_Length; 914 uint8_t Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)]; 915 } aci_gatt_clt_indication_event_rp0; 916 917 typedef PACKED(struct) aci_gatt_clt_notification_event_rp0_s { 918 uint16_t Connection_Handle; 919 uint16_t CID; 920 uint16_t Attribute_Handle; 921 uint16_t Attribute_Value_Length; 922 uint8_t Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)]; 923 } aci_gatt_clt_notification_event_rp0; 924 925 typedef PACKED(struct) aci_gatt_clt_proc_complete_event_rp0_s { 926 uint16_t Connection_Handle; 927 uint16_t CID; 928 uint8_t Error_Code; 929 } aci_gatt_clt_proc_complete_event_rp0; 930 931 typedef PACKED(struct) aci_gatt_clt_error_resp_event_rp0_s { 932 uint16_t Connection_Handle; 933 uint16_t CID; 934 uint8_t Req_Opcode; 935 uint16_t Attribute_Handle; 936 uint8_t Error_Code; 937 } aci_gatt_clt_error_resp_event_rp0; 938 939 typedef PACKED(struct) aci_gatt_clt_disc_read_char_by_uuid_resp_event_rp0_s { 940 uint16_t Connection_Handle; 941 uint16_t CID; 942 uint16_t Attribute_Handle; 943 uint8_t Attribute_Value_Length; 944 uint8_t Attribute_Value[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)]; 945 } aci_gatt_clt_disc_read_char_by_uuid_resp_event_rp0; 946 947 typedef PACKED(struct) aci_gatt_tx_pool_available_event_rp0_s { 948 uint16_t Connection_Handle; 949 uint16_t Available_Buffers; 950 } aci_gatt_tx_pool_available_event_rp0; 951 952 typedef PACKED(struct) aci_gatt_srv_confirmation_event_rp0_s { 953 uint16_t Connection_Handle; 954 uint16_t CID; 955 } aci_gatt_srv_confirmation_event_rp0; 956 957 typedef PACKED(struct) aci_gatt_srv_read_event_rp0_s { 958 uint16_t Connection_Handle; 959 uint16_t CID; 960 uint16_t Attribute_Handle; 961 uint16_t Data_Offset; 962 } aci_gatt_srv_read_event_rp0; 963 964 typedef PACKED(struct) aci_gatt_srv_write_event_rp0_s { 965 uint16_t Connection_Handle; 966 uint16_t CID; 967 uint8_t Resp_Needed; 968 uint16_t Attribute_Handle; 969 uint16_t Data_Length; 970 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 9)/sizeof(uint8_t)]; 971 } aci_gatt_srv_write_event_rp0; 972 973 typedef PACKED(struct) aci_att_srv_prepare_write_req_event_rp0_s { 974 uint16_t Connection_Handle; 975 uint16_t CID; 976 uint16_t Attribute_Handle; 977 uint16_t Data_Offset; 978 uint16_t Data_Length; 979 uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)]; 980 } aci_att_srv_prepare_write_req_event_rp0; 981 982 typedef PACKED(struct) aci_att_srv_exec_write_req_event_rp0_s { 983 uint16_t Connection_Handle; 984 uint16_t CID; 985 uint8_t Flags; 986 } aci_att_srv_exec_write_req_event_rp0; 987 988 typedef PACKED(struct) aci_att_clt_read_multiple_var_len_resp_event_rp0_s { 989 uint16_t Connection_Handle; 990 uint16_t CID; 991 uint16_t Event_Data_Length; 992 uint8_t Set_Of_Values[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)]; 993 } aci_att_clt_read_multiple_var_len_resp_event_rp0; 994 995 /** 996 * @} 997 */ 998 999 #endif /* _BLE_EVENTS_H_ */ 1000