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