1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file    DTM_cmd_db.c
5   * @author  AMS - RF Application team
6   * @date    24 October 2023
7   * @brief   Autogenerated files, do not edit!!
8   ******************************************************************************
9   * @attention
10   *
11   * Copyright (c) 2024 STMicroelectronics.
12   * All rights reserved.
13   *
14   * This software is licensed under terms that can be found in the LICENSE file
15   * in the root directory of this software component.
16   * If no LICENSE file comes with this software, it is provided AS-IS.
17   *
18   ******************************************************************************
19   */
20 /* USER CODE END Header */
21 
22 #include <stdlib.h>
23 #include "stm32wb0x.h"
24 #include "compiler.h"
25 #include "app_common.h"
26 #include "ble_stack.h"
27 #include "osal.h"
28 #include "aci_gatt_nwk.h"
29 #include "aci_adv_nwk.h"
30 #include "aci_l2cap_nwk.h"
31 #ifndef __ZEPHYR__
32 #include "gatt_profile.h"
33 #include "gap_profile.h"
34 #endif /* __ZEPHYR__ */
35 #include "dtm_cmd_db.h"
36 #include "dtm_cmd_en.h"
37 #include "RADIO_utils.h"
38 #include "transport_layer.h"
39 
40 #include <stdint.h>
41 
42 /** Documentation for C struct Advertising_Set_Parameters_t */
43 typedef PACKED(struct) packed_Advertising_Set_Parameters_t_s {
44   /** It is used to identify an advertising set.
45    *  Values:
46    *  - 0x00 ... 0xEF
47    */
48   uint8_t Advertising_Handle;
49   /** The Duration[i] parameter indicates the duration for which that advertising set
50    *  is enabled. The duration begins at the start of the first advertising
51    *  event of this advertising set. The Controller should not start an extended
52    *  advertising event that it cannot complete within the duration. Time = N *
53    *  10 ms 0x00 means no advertising duration: advertising will continue until
54    *  the Host disables it.
55    *  Values:
56    *  - 0x0000 (0 ms) : No advertising duration
57    *  - 0x0001 (10 ms)  ... 0xFFFF (655350 ms)
58    */
59   uint16_t Duration;
60   /** The Max_Extended_Advertising_Events[i] parameter, if non-zero, indicates the
61    *  maximum number of extended advertising events that shall be sent prior to
62    *  disabling the extended advertising set even if the Duration[i] parameter
63    *  has not expired.
64    *  Values:
65    *  - 0x00: No maximum number of advertising events.
66    *  - 0x01 ... 0xFF: Maximum number of extended advertising events.
67    */
68   uint8_t Max_Extended_Advertising_Events;
69 } packed_Advertising_Set_Parameters_t;
70 
71 /** Documentation for C struct Extended_Scan_Parameters_t */
72 typedef PACKED(struct) packed_Extended_Scan_Parameters_t_s {
73   /** The Scan_Type parameter specifies the type of scan to perform. 0: Passive
74    *  Scanning. No scan request PDUs shall be sent. 1: Active Scanning. Scan
75    *  request PDUs may be sent.
76    *  Values:
77    *  - 0x00: Passive Scanning
78    *  - 0x01: Active Scanning
79    */
80   uint8_t Scan_Type;
81   /** Time interval from when the Controller started its last scan until it begins the
82    *  subsequent scan on the primary advertising channel.  Time = N * 0.625 ms
83    *  Values:
84    *  - 0x0004 (2.500 ms)  ... 0xFFFF (40959.375 ms)
85    */
86   uint16_t Scan_Interval;
87   /** Duration of the scan on the primary advertising channel.  Time = N * 0.625 ms
88    *  Values:
89    *  - 0x0004 (2.500 ms)  ... 0xFFFF (40959.375 ms)
90    */
91   uint16_t Scan_Window;
92 } packed_Extended_Scan_Parameters_t;
93 
94 /** Documentation for C struct Extended_Create_Connection_Parameters_t */
95 typedef PACKED(struct) packed_Extended_Create_Connection_Parameters_t_s {
96   /** Time interval from when the Controller started its last scan until it begins the
97    *  subsequent scan on the primary advertising channel. Time = N * 0.625 ms;
98    *  Time Range: 2.5 ms to 40.959375 s.
99    *  Values:
100    *  - 0x0004 (2.500 ms)  ... 0xFFFF (40959.375 ms)
101    */
102   uint16_t Scan_Interval;
103   /** Duration of the scan on the primary advertising channel. Time = N * 0.625 ms;
104    *  Time Range: 2.5 ms to 40.959375 s.
105    *  Values:
106    *  - 0x0004 (2.500 ms)  ... 0xFFFF (40959.375 ms)
107    */
108   uint16_t Scan_Window;
109   /** Minimum value for the connection interval. This shall be less than or equal to
110    *  Connection_Interval_Max[i]. Time = N * 1.25 ms; Time Range: 7.5 ms to 4 s.
111    *  Values:
112    *  - 0x0006 (7.50 ms)  ... 0x0C80 (4000.00 ms)
113    */
114   uint16_t Connection_Interval_Min;
115   /** Maximum value for the connection interval. This shall be less than or equal to
116    *  Connection_Interval_Max[i]. Time = N * 1.25 ms; Time Range: 7.5 ms to 4 s.
117    *  Values:
118    *  - 0x0006 (7.50 ms)  ... 0x0C80 (4000.00 ms)
119    */
120   uint16_t Connection_Interval_Max;
121   /** Peripheral latency for the connection in number of connection events
122    *  Values:
123    *  - 0x0000 ... 0x01F3
124    */
125   uint16_t Max_Latency;
126   /** Supervision timeout for the LE Link. (See [Vol 6] Part B, Section 4.5.2) Time =
127    *  N * 10 ms; Time Range: 100 ms to 32 s.
128    *  Values:
129    *  - 0x000A (100 ms)  ... 0x0C80 (32000 ms)
130    */
131   uint16_t Supervision_Timeout;
132   /** Informative parameter recommending the minimum length of connection event needed
133    *  for this LE connection. Time = N * 0.625 ms.
134    *  Values:
135    *  - 0x0000 (0.000 ms)  ... 0xFFFF (40959.375 ms)
136    */
137   uint16_t Min_CE_Length;
138   /** Informative parameter recommending the maximum length of connection event needed
139    *  for this LE connection. Time = N * 0.625 ms.
140    *  Values:
141    *  - 0x0000 (0.000 ms)  ... 0xFFFF (40959.375 ms)
142    */
143   uint16_t Max_CE_Length;
144 } packed_Extended_Create_Connection_Parameters_t;
145 
146 /** Documentation for C struct CIS_Param_t */
147 typedef PACKED(struct) packed_CIS_Param_t_s {
148   /** Used to identify a CIS.
149    *  Values:
150    *  - 0x00 ... 0xEF
151    */
152   uint8_t CIS_ID;
153   /** Maximum size, in octets, of the payload from the Central's Host.
154    *  Values:
155    *  - 0x0000 ... 0x0FFF
156    */
157   uint16_t Max_SDU_C_To_P;
158   /** Maximum size, in octets, of the payload from the Peripheral's Host.
159    *  Values:
160    *  - 0x0000 ... 0x0FFF
161    */
162   uint16_t Max_SDU_P_To_C;
163   /** PHY to use for transmission from the Central to the Peripheral.
164    *  Flags:
165    *  - 0x01: LE_1M_PHY_BIT
166    *  - 0x02: LE_2M_PHY_BIT
167    *  - 0x04: LE_CODED_PHY_BIT
168    */
169   uint8_t PHY_C_To_P;
170   /** PHY to use for transmission from the Peripheral to the Central.
171    *  Flags:
172    *  - 0x01: LE_1M_PHY_BIT
173    *  - 0x02: LE_2M_PHY_BIT
174    *  - 0x04: LE_CODED_PHY_BIT
175    */
176   uint8_t PHY_P_To_C;
177   /** Number of times every CIS Data PDU should be retransmitted from the Central to
178    *  the Peripheral.
179    */
180   uint8_t RTN_C_To_P;
181   /** Number of times every CIS Data PDU should be retransmitted from the Peripheral
182    *  to the Central.
183    */
184   uint8_t RTN_P_To_C;
185 } packed_CIS_Param_t;
186 
187 /** Documentation for C struct CIS_Param_Test_t */
188 typedef PACKED(struct) packed_CIS_Param_Test_t_s {
189   /** Used to identify a CIS.
190    *  Values:
191    *  - 0x00 ... 0xEF
192    */
193   uint8_t CIS_ID;
194   /** Maximum number of subevents in each CIS event.
195    *  Values:
196    *  - 0x01 ... 0x1F
197    */
198   uint8_t NSE;
199   /** Maximum size, in octets, of the payload from the Central's Host.
200    *  Values:
201    *  - 0x0000 ... 0x0FFF
202    */
203   uint16_t Max_SDU_C_To_P;
204   /** Maximum size, in octets, of the payload from the Peripheral's Host.
205    *  Values:
206    *  - 0x0000 ... 0x0FFF
207    */
208   uint16_t Max_SDU_P_To_C;
209   /** Maximum size, in octets, of the payload from the Central's Link Layer to the
210    *  Peripheral's Link Layer.
211    *  Values:
212    *  - 0x0000 ... 0x00FB
213    */
214   uint16_t Max_PDU_C_To_P;
215   /** Maximum size, in octets, of the payload from the Peripheral's Link Layer to the
216    *  Central's Link Layer.
217    *  Values:
218    *  - 0x0000 ... 0x00FB
219    */
220   uint16_t Max_PDU_P_To_C;
221   /** PHY to use for transmission from the Central to the Peripheral.
222    *  Flags:
223    *  - 0x01: LE_1M_PHY_BIT
224    *  - 0x02: LE_2M_PHY_BIT
225    *  - 0x04: LE_CODED_PHY_BIT
226    */
227   uint8_t PHY_C_To_P;
228   /** PHY to use for transmission from the Peripheral to the Central.
229    *  Flags:
230    *  - 0x01: LE_1M_PHY_BIT
231    *  - 0x02: LE_2M_PHY_BIT
232    *  - 0x04: LE_CODED_PHY_BIT
233    */
234   uint8_t PHY_P_To_C;
235   /** The burst number for Central to Peripheral.
236    *  Values:
237    *  - 0x00: No data
238    *  - 0x01 ... 0x0F
239    */
240   uint8_t BN_C_To_P;
241   /** The burst number for Peripheral to Central.
242    *  Values:
243    *  - 0x00: No data
244    *  - 0x01 ... 0x0F
245    */
246   uint8_t BN_P_To_C;
247 } packed_CIS_Param_Test_t;
248 
249 /** Documentation for C struct CIS_Handles_t */
250 typedef PACKED(struct) packed_CIS_Handles_t_s {
251   /** Connection handle of a CIS.
252    *  Values:
253    *  - 0x0000 ... 0x0EFF
254    */
255   uint16_t CIS_Connection_Handle;
256   /** Connection handle of an ACL connection.
257    *  Values:
258    *  - 0x0000 ... 0x0EFF
259    */
260   uint16_t ACL_Connection_Handle;
261 } packed_CIS_Handles_t;
262 
263 /** Documentation for C struct Subevent_Data_Parameters_t */
264 typedef PACKED(struct) packed_Subevent_Data_Parameters_t_s {
265   /** The subevent index of the data.
266    *  Values:
267    *  - 0x00 ... 0x7F
268    */
269   uint8_t Subevent;
270   /** The first response slots to be used in this subevent.
271    */
272   uint8_t Response_Slot_Start;
273   /** The number of response slots to be used.
274    */
275   uint8_t Response_Slot_Count;
276   /** The number of octets in the Subevent_Data parameter.
277    *  Values:
278    *  - 0x00 ... 0xFB
279    */
280   uint8_t Subevent_Data_Length;
281   /** Advertising data formatted as defined in [Vol 3] Part C, Section 11.
282    */
283   uint8_t Subevent_Data[1];
284 } packed_Subevent_Data_Parameters_t;
285 
286 /** Documentation for C struct Bonded_Device_Entry_t */
287 typedef PACKED(struct) packed_Bonded_Device_Entry_t_s {
288   /** Address type.
289    *  Values:
290    *  - 0x00: Public Device Address
291    *  - 0x01: Random Device Address
292    */
293   uint8_t Address_Type;
294   /** Identity Address (Public or Random) of the device.
295    */
296   uint8_t Address[6];
297 } packed_Bonded_Device_Entry_t;
298 
299 /** Documentation for C struct List_Entry_t */
300 typedef PACKED(struct) packed_List_Entry_t_s {
301   /** Address type.
302    *  Values:
303    *  - 0x00: Public Device Address
304    *  - 0x01: Random Device Address
305    */
306   uint8_t Peer_Address_Type;
307   /** Public Device Address or Random Device Address of the device to be added to the
308    *  list.
309    */
310   uint8_t Peer_Address[6];
311 } packed_List_Entry_t;
312 
313 /** Documentation for C union Service_UUID_t */
314 typedef PACKED(union) packed_Service_UUID_t_s {
315   /** 16-bit UUID
316    */
317   uint16_t Service_UUID_16;
318   /** 128-bit UUID
319    */
320   uint8_t Service_UUID_128[16];
321 } packed_Service_UUID_t;
322 
323 /** Documentation for C union Char_UUID_t */
324 typedef PACKED(union) packed_Char_UUID_t_s {
325   /** 16-bit UUID
326    */
327   uint16_t Char_UUID_16;
328   /** 128-bit UUID
329    */
330   uint8_t Char_UUID_128[16];
331 } packed_Char_UUID_t;
332 
333 /** Documentation for C union Char_Desc_Uuid_t */
334 typedef PACKED(union) packed_Char_Desc_Uuid_t_s {
335   /** 16-bit UUID
336    */
337   uint16_t Char_UUID_16;
338   /** 128-bit UUID
339    */
340   uint8_t Char_UUID_128[16];
341 } packed_Char_Desc_Uuid_t;
342 
343 /** Documentation for C union UUID_t */
344 typedef PACKED(union) packed_UUID_t_s {
345   /** 16-bit UUID
346    */
347   uint16_t UUID_16;
348   /** 128-bit UUID
349    */
350   uint8_t UUID_128[16];
351 } packed_UUID_t;
352 
353 /** Documentation for C struct Gatt_Srv_Notify_Attr_t */
354 typedef PACKED(struct) packed_Gatt_Srv_Notify_Attr_t_s {
355   /**
356    */
357   uint16_t Handle;
358   /**
359    */
360   uint16_t Val_Length;
361   /**
362    */
363   uint8_t Val[1];
364 } packed_Gatt_Srv_Notify_Attr_t;
365 
366 typedef PACKED(struct) hci_disconnect_cp0_s {
367   uint16_t Connection_Handle;
368   uint8_t Reason;
369 } hci_disconnect_cp0;
370 
371 typedef PACKED(struct) hci_disconnect_rp0_s {
372   uint8_t Status;
373 } hci_disconnect_rp0;
374 
375 typedef PACKED(struct) hci_read_remote_version_information_cp0_s {
376   uint16_t Connection_Handle;
377 } hci_read_remote_version_information_cp0;
378 
379 typedef PACKED(struct) hci_read_remote_version_information_rp0_s {
380   uint8_t Status;
381 } hci_read_remote_version_information_rp0;
382 
383 typedef PACKED(struct) hci_set_event_mask_cp0_s {
384   uint8_t Event_Mask[8];
385 } hci_set_event_mask_cp0;
386 
387 typedef PACKED(struct) hci_set_event_mask_rp0_s {
388   uint8_t Status;
389 } hci_set_event_mask_rp0;
390 
391 typedef PACKED(struct) hci_read_connection_accept_timeout_rp0_s {
392   uint8_t Status;
393   uint16_t Connection_Accept_Timeout;
394 } hci_read_connection_accept_timeout_rp0;
395 
396 typedef PACKED(struct) hci_write_connection_accept_timeout_cp0_s {
397   uint16_t Connection_Accept_Timeout;
398 } hci_write_connection_accept_timeout_cp0;
399 
400 typedef PACKED(struct) hci_write_connection_accept_timeout_rp0_s {
401   uint8_t Status;
402 } hci_write_connection_accept_timeout_rp0;
403 
404 typedef PACKED(struct) hci_read_transmit_power_level_cp0_s {
405   uint16_t Connection_Handle;
406   uint8_t Type;
407 } hci_read_transmit_power_level_cp0;
408 
409 typedef PACKED(struct) hci_read_transmit_power_level_rp0_s {
410   uint8_t Status;
411   uint16_t Connection_Handle;
412   int8_t Transmit_Power_Level;
413 } hci_read_transmit_power_level_rp0;
414 
415 typedef PACKED(struct) hci_read_afh_channel_assessment_mode_rp0_s {
416   uint8_t Status;
417   uint8_t AFH_Channel_Assessment_Mode;
418 } hci_read_afh_channel_assessment_mode_rp0;
419 
420 typedef PACKED(struct) hci_write_afh_channel_assessment_mode_cp0_s {
421   uint8_t AFH_Channel_Assessment_Mode;
422 } hci_write_afh_channel_assessment_mode_cp0;
423 
424 typedef PACKED(struct) hci_write_afh_channel_assessment_mode_rp0_s {
425   uint8_t Status;
426 } hci_write_afh_channel_assessment_mode_rp0;
427 
428 typedef PACKED(struct) hci_set_event_mask_page_2_cp0_s {
429   uint8_t Event_Mask_Page_2[8];
430 } hci_set_event_mask_page_2_cp0;
431 
432 typedef PACKED(struct) hci_set_event_mask_page_2_rp0_s {
433   uint8_t Status;
434 } hci_set_event_mask_page_2_rp0;
435 
436 typedef PACKED(struct) hci_read_authenticated_payload_timeout_cp0_s {
437   uint16_t Connection_Handle;
438 } hci_read_authenticated_payload_timeout_cp0;
439 
440 typedef PACKED(struct) hci_read_authenticated_payload_timeout_rp0_s {
441   uint8_t Status;
442   uint16_t Connection_Handle;
443   uint16_t Authenticated_Payload_Timeout;
444 } hci_read_authenticated_payload_timeout_rp0;
445 
446 typedef PACKED(struct) hci_write_authenticated_payload_timeout_cp0_s {
447   uint16_t Connection_Handle;
448   uint16_t Authenticated_Payload_Timeout;
449 } hci_write_authenticated_payload_timeout_cp0;
450 
451 typedef PACKED(struct) hci_write_authenticated_payload_timeout_rp0_s {
452   uint8_t Status;
453   uint16_t Connection_Handle;
454 } hci_write_authenticated_payload_timeout_rp0;
455 
456 typedef PACKED(struct) hci_read_local_version_information_rp0_s {
457   uint8_t Status;
458   uint8_t HCI_Version;
459   uint16_t HCI_Revision;
460   uint8_t LMP_PAL_Version;
461   uint16_t Manufacturer_Name;
462   uint16_t LMP_PAL_Subversion;
463 } hci_read_local_version_information_rp0;
464 
465 typedef PACKED(struct) hci_read_local_supported_commands_rp0_s {
466   uint8_t Status;
467   uint8_t Supported_Commands[64];
468 } hci_read_local_supported_commands_rp0;
469 
470 typedef PACKED(struct) hci_read_local_supported_features_rp0_s {
471   uint8_t Status;
472   uint8_t LMP_Features[8];
473 } hci_read_local_supported_features_rp0;
474 
475 typedef PACKED(struct) hci_read_bd_addr_rp0_s {
476   uint8_t Status;
477   uint8_t BD_ADDR[6];
478 } hci_read_bd_addr_rp0;
479 
480 typedef PACKED(struct) hci_read_rssi_cp0_s {
481   uint16_t Connection_Handle;
482 } hci_read_rssi_cp0;
483 
484 typedef PACKED(struct) hci_read_rssi_rp0_s {
485   uint8_t Status;
486   uint16_t Connection_Handle;
487   int8_t RSSI;
488 } hci_read_rssi_rp0;
489 
490 typedef PACKED(struct) hci_le_set_event_mask_cp0_s {
491   uint8_t LE_Event_Mask[8];
492 } hci_le_set_event_mask_cp0;
493 
494 typedef PACKED(struct) hci_le_set_event_mask_rp0_s {
495   uint8_t Status;
496 } hci_le_set_event_mask_rp0;
497 
498 typedef PACKED(struct) hci_le_read_buffer_size_rp0_s {
499   uint8_t Status;
500   uint16_t HC_LE_ACL_Data_Packet_Length;
501   uint8_t HC_Total_Num_LE_ACL_Data_Packets;
502 } hci_le_read_buffer_size_rp0;
503 
504 typedef PACKED(struct) hci_le_read_local_supported_features_rp0_s {
505   uint8_t Status;
506   uint8_t LE_Features[8];
507 } hci_le_read_local_supported_features_rp0;
508 
509 typedef PACKED(struct) hci_le_set_random_address_cp0_s {
510   uint8_t Random_Address[6];
511 } hci_le_set_random_address_cp0;
512 
513 typedef PACKED(struct) hci_le_set_random_address_rp0_s {
514   uint8_t Status;
515 } hci_le_set_random_address_rp0;
516 
517 typedef PACKED(struct) hci_le_set_advertising_parameters_cp0_s {
518   uint16_t Advertising_Interval_Min;
519   uint16_t Advertising_Interval_Max;
520   uint8_t Advertising_Type;
521   uint8_t Own_Address_Type;
522   uint8_t Peer_Address_Type;
523   uint8_t Peer_Address[6];
524   uint8_t Advertising_Channel_Map;
525   uint8_t Advertising_Filter_Policy;
526 } hci_le_set_advertising_parameters_cp0;
527 
528 typedef PACKED(struct) hci_le_set_advertising_parameters_rp0_s {
529   uint8_t Status;
530 } hci_le_set_advertising_parameters_rp0;
531 
532 typedef PACKED(struct) hci_le_read_advertising_physical_channel_tx_power_rp0_s {
533   uint8_t Status;
534   int8_t Transmit_Power_Level;
535 } hci_le_read_advertising_physical_channel_tx_power_rp0;
536 
537 typedef PACKED(struct) hci_le_set_advertising_data_cp0_s {
538   uint8_t Advertising_Data_Length;
539   uint8_t Advertising_Data[31];
540 } hci_le_set_advertising_data_cp0;
541 
542 typedef PACKED(struct) hci_le_set_advertising_data_rp0_s {
543   uint8_t Status;
544 } hci_le_set_advertising_data_rp0;
545 
546 typedef PACKED(struct) hci_le_set_scan_response_data_cp0_s {
547   uint8_t Scan_Response_Data_Length;
548   uint8_t Scan_Response_Data[31];
549 } hci_le_set_scan_response_data_cp0;
550 
551 typedef PACKED(struct) hci_le_set_scan_response_data_rp0_s {
552   uint8_t Status;
553 } hci_le_set_scan_response_data_rp0;
554 
555 typedef PACKED(struct) hci_le_set_advertising_enable_cp0_s {
556   uint8_t Advertising_Enable;
557 } hci_le_set_advertising_enable_cp0;
558 
559 typedef PACKED(struct) hci_le_set_advertising_enable_rp0_s {
560   uint8_t Status;
561 } hci_le_set_advertising_enable_rp0;
562 
563 typedef PACKED(struct) hci_le_set_scan_parameters_cp0_s {
564   uint8_t LE_Scan_Type;
565   uint16_t LE_Scan_Interval;
566   uint16_t LE_Scan_Window;
567   uint8_t Own_Address_Type;
568   uint8_t Scanning_Filter_Policy;
569 } hci_le_set_scan_parameters_cp0;
570 
571 typedef PACKED(struct) hci_le_set_scan_parameters_rp0_s {
572   uint8_t Status;
573 } hci_le_set_scan_parameters_rp0;
574 
575 typedef PACKED(struct) hci_le_set_scan_enable_cp0_s {
576   uint8_t LE_Scan_Enable;
577   uint8_t Filter_Duplicates;
578 } hci_le_set_scan_enable_cp0;
579 
580 typedef PACKED(struct) hci_le_set_scan_enable_rp0_s {
581   uint8_t Status;
582 } hci_le_set_scan_enable_rp0;
583 
584 typedef PACKED(struct) hci_le_create_connection_cp0_s {
585   uint16_t LE_Scan_Interval;
586   uint16_t LE_Scan_Window;
587   uint8_t Initiator_Filter_Policy;
588   uint8_t Peer_Address_Type;
589   uint8_t Peer_Address[6];
590   uint8_t Own_Address_Type;
591   uint16_t Connection_Interval_Min;
592   uint16_t Connection_Interval_Max;
593   uint16_t Max_Latency;
594   uint16_t Supervision_Timeout;
595   uint16_t Min_CE_Length;
596   uint16_t Max_CE_Length;
597 } hci_le_create_connection_cp0;
598 
599 typedef PACKED(struct) hci_le_create_connection_rp0_s {
600   uint8_t Status;
601 } hci_le_create_connection_rp0;
602 
603 typedef PACKED(struct) hci_le_create_connection_cancel_rp0_s {
604   uint8_t Status;
605 } hci_le_create_connection_cancel_rp0;
606 
607 typedef PACKED(struct) hci_le_read_filter_accept_list_size_rp0_s {
608   uint8_t Status;
609   uint8_t Filter_Accept_List_Size;
610 } hci_le_read_filter_accept_list_size_rp0;
611 
612 typedef PACKED(struct) hci_le_clear_filter_accept_list_rp0_s {
613   uint8_t Status;
614 } hci_le_clear_filter_accept_list_rp0;
615 
616 typedef PACKED(struct) hci_le_add_device_to_filter_accept_list_cp0_s {
617   uint8_t Address_Type;
618   uint8_t Address[6];
619 } hci_le_add_device_to_filter_accept_list_cp0;
620 
621 typedef PACKED(struct) hci_le_add_device_to_filter_accept_list_rp0_s {
622   uint8_t Status;
623 } hci_le_add_device_to_filter_accept_list_rp0;
624 
625 typedef PACKED(struct) hci_le_remove_device_from_filter_accept_list_cp0_s {
626   uint8_t Address_Type;
627   uint8_t Address[6];
628 } hci_le_remove_device_from_filter_accept_list_cp0;
629 
630 typedef PACKED(struct) hci_le_remove_device_from_filter_accept_list_rp0_s {
631   uint8_t Status;
632 } hci_le_remove_device_from_filter_accept_list_rp0;
633 
634 typedef PACKED(struct) hci_le_connection_update_cp0_s {
635   uint16_t Connection_Handle;
636   uint16_t Connection_Interval_Min;
637   uint16_t Connection_Interval_Max;
638   uint16_t Max_Latency;
639   uint16_t Supervision_Timeout;
640   uint16_t Min_CE_Length;
641   uint16_t Max_CE_Length;
642 } hci_le_connection_update_cp0;
643 
644 typedef PACKED(struct) hci_le_connection_update_rp0_s {
645   uint8_t Status;
646 } hci_le_connection_update_rp0;
647 
648 typedef PACKED(struct) hci_le_set_host_channel_classification_cp0_s {
649   uint8_t LE_Channel_Map[5];
650 } hci_le_set_host_channel_classification_cp0;
651 
652 typedef PACKED(struct) hci_le_set_host_channel_classification_rp0_s {
653   uint8_t Status;
654 } hci_le_set_host_channel_classification_rp0;
655 
656 typedef PACKED(struct) hci_le_read_channel_map_cp0_s {
657   uint16_t Connection_Handle;
658 } hci_le_read_channel_map_cp0;
659 
660 typedef PACKED(struct) hci_le_read_channel_map_rp0_s {
661   uint8_t Status;
662   uint16_t Connection_Handle;
663   uint8_t LE_Channel_Map[5];
664 } hci_le_read_channel_map_rp0;
665 
666 typedef PACKED(struct) hci_le_read_remote_features_cp0_s {
667   uint16_t Connection_Handle;
668 } hci_le_read_remote_features_cp0;
669 
670 typedef PACKED(struct) hci_le_read_remote_features_rp0_s {
671   uint8_t Status;
672 } hci_le_read_remote_features_rp0;
673 
674 typedef PACKED(struct) hci_le_encrypt_cp0_s {
675   uint8_t Key[16];
676   uint8_t Plaintext_Data[16];
677 } hci_le_encrypt_cp0;
678 
679 typedef PACKED(struct) hci_le_encrypt_rp0_s {
680   uint8_t Status;
681   uint8_t Encrypted_Data[16];
682 } hci_le_encrypt_rp0;
683 
684 typedef PACKED(struct) hci_le_rand_rp0_s {
685   uint8_t Status;
686   uint8_t Random_Number[8];
687 } hci_le_rand_rp0;
688 
689 typedef PACKED(struct) hci_le_enable_encryption_cp0_s {
690   uint16_t Connection_Handle;
691   uint8_t Random_Number[8];
692   uint16_t Encrypted_Diversifier;
693   uint8_t Long_Term_Key[16];
694 } hci_le_enable_encryption_cp0;
695 
696 typedef PACKED(struct) hci_le_enable_encryption_rp0_s {
697   uint8_t Status;
698 } hci_le_enable_encryption_rp0;
699 
700 typedef PACKED(struct) hci_le_long_term_key_request_reply_cp0_s {
701   uint16_t Connection_Handle;
702   uint8_t Long_Term_Key[16];
703 } hci_le_long_term_key_request_reply_cp0;
704 
705 typedef PACKED(struct) hci_le_long_term_key_request_reply_rp0_s {
706   uint8_t Status;
707   uint16_t Connection_Handle;
708 } hci_le_long_term_key_request_reply_rp0;
709 
710 typedef PACKED(struct) hci_le_long_term_key_request_negative_reply_cp0_s {
711   uint16_t Connection_Handle;
712 } hci_le_long_term_key_request_negative_reply_cp0;
713 
714 typedef PACKED(struct) hci_le_long_term_key_request_negative_reply_rp0_s {
715   uint8_t Status;
716   uint16_t Connection_Handle;
717 } hci_le_long_term_key_request_negative_reply_rp0;
718 
719 typedef PACKED(struct) hci_le_read_supported_states_rp0_s {
720   uint8_t Status;
721   uint8_t LE_States[8];
722 } hci_le_read_supported_states_rp0;
723 
724 typedef PACKED(struct) hci_le_receiver_test_cp0_s {
725   uint8_t RX_Frequency;
726 } hci_le_receiver_test_cp0;
727 
728 typedef PACKED(struct) hci_le_receiver_test_rp0_s {
729   uint8_t Status;
730 } hci_le_receiver_test_rp0;
731 
732 typedef PACKED(struct) hci_le_transmitter_test_cp0_s {
733   uint8_t TX_Frequency;
734   uint8_t Length_Of_Test_Data;
735   uint8_t Packet_Payload;
736 } hci_le_transmitter_test_cp0;
737 
738 typedef PACKED(struct) hci_le_transmitter_test_rp0_s {
739   uint8_t Status;
740 } hci_le_transmitter_test_rp0;
741 
742 typedef PACKED(struct) hci_le_test_end_rp0_s {
743   uint8_t Status;
744   uint16_t Number_Of_Packets;
745 } hci_le_test_end_rp0;
746 
747 typedef PACKED(struct) hci_le_set_data_length_cp0_s {
748   uint16_t Connection_Handle;
749   uint16_t TxOctets;
750   uint16_t TxTime;
751 } hci_le_set_data_length_cp0;
752 
753 typedef PACKED(struct) hci_le_set_data_length_rp0_s {
754   uint8_t Status;
755   uint16_t Connection_Handle;
756 } hci_le_set_data_length_rp0;
757 
758 typedef PACKED(struct) hci_le_read_suggested_default_data_length_rp0_s {
759   uint8_t Status;
760   uint16_t SuggestedMaxTxOctets;
761   uint16_t SuggestedMaxTxTime;
762 } hci_le_read_suggested_default_data_length_rp0;
763 
764 typedef PACKED(struct) hci_le_write_suggested_default_data_length_cp0_s {
765   uint16_t SuggestedMaxTxOctets;
766   uint16_t SuggestedMaxTxTime;
767 } hci_le_write_suggested_default_data_length_cp0;
768 
769 typedef PACKED(struct) hci_le_write_suggested_default_data_length_rp0_s {
770   uint8_t Status;
771 } hci_le_write_suggested_default_data_length_rp0;
772 
773 typedef PACKED(struct) hci_le_read_local_p256_public_key_rp0_s {
774   uint8_t Status;
775 } hci_le_read_local_p256_public_key_rp0;
776 
777 typedef PACKED(struct) hci_le_generate_dhkey_cp0_s {
778   uint8_t Remote_P256_Public_Key[64];
779 } hci_le_generate_dhkey_cp0;
780 
781 typedef PACKED(struct) hci_le_generate_dhkey_rp0_s {
782   uint8_t Status;
783 } hci_le_generate_dhkey_rp0;
784 
785 typedef PACKED(struct) hci_le_add_device_to_resolving_list_cp0_s {
786   uint8_t Peer_Identity_Address_Type;
787   uint8_t Peer_Identity_Address[6];
788   uint8_t Peer_IRK[16];
789   uint8_t Local_IRK[16];
790 } hci_le_add_device_to_resolving_list_cp0;
791 
792 typedef PACKED(struct) hci_le_add_device_to_resolving_list_rp0_s {
793   uint8_t Status;
794 } hci_le_add_device_to_resolving_list_rp0;
795 
796 typedef PACKED(struct) hci_le_remove_device_from_resolving_list_cp0_s {
797   uint8_t Peer_Identity_Address_Type;
798   uint8_t Peer_Identity_Address[6];
799 } hci_le_remove_device_from_resolving_list_cp0;
800 
801 typedef PACKED(struct) hci_le_remove_device_from_resolving_list_rp0_s {
802   uint8_t Status;
803 } hci_le_remove_device_from_resolving_list_rp0;
804 
805 typedef PACKED(struct) hci_le_clear_resolving_list_rp0_s {
806   uint8_t Status;
807 } hci_le_clear_resolving_list_rp0;
808 
809 typedef PACKED(struct) hci_le_read_resolving_list_size_rp0_s {
810   uint8_t Status;
811   uint8_t Resolving_List_Size;
812 } hci_le_read_resolving_list_size_rp0;
813 
814 typedef PACKED(struct) hci_le_read_peer_resolvable_address_cp0_s {
815   uint8_t Peer_Identity_Address_Type;
816   uint8_t Peer_Identity_Address[6];
817 } hci_le_read_peer_resolvable_address_cp0;
818 
819 typedef PACKED(struct) hci_le_read_peer_resolvable_address_rp0_s {
820   uint8_t Status;
821   uint8_t Peer_Resolvable_Address[6];
822 } hci_le_read_peer_resolvable_address_rp0;
823 
824 typedef PACKED(struct) hci_le_read_local_resolvable_address_cp0_s {
825   uint8_t Peer_Identity_Address_Type;
826   uint8_t Peer_Identity_Address[6];
827 } hci_le_read_local_resolvable_address_cp0;
828 
829 typedef PACKED(struct) hci_le_read_local_resolvable_address_rp0_s {
830   uint8_t Status;
831   uint8_t Local_Resolvable_Address[6];
832 } hci_le_read_local_resolvable_address_rp0;
833 
834 typedef PACKED(struct) hci_le_set_address_resolution_enable_cp0_s {
835   uint8_t Address_Resolution_Enable;
836 } hci_le_set_address_resolution_enable_cp0;
837 
838 typedef PACKED(struct) hci_le_set_address_resolution_enable_rp0_s {
839   uint8_t Status;
840 } hci_le_set_address_resolution_enable_rp0;
841 
842 typedef PACKED(struct) hci_le_set_resolvable_private_address_timeout_cp0_s {
843   uint16_t RPA_Timeout;
844 } hci_le_set_resolvable_private_address_timeout_cp0;
845 
846 typedef PACKED(struct) hci_le_set_resolvable_private_address_timeout_rp0_s {
847   uint8_t Status;
848 } hci_le_set_resolvable_private_address_timeout_rp0;
849 
850 typedef PACKED(struct) hci_le_read_maximum_data_length_rp0_s {
851   uint8_t Status;
852   uint16_t supportedMaxTxOctets;
853   uint16_t supportedMaxTxTime;
854   uint16_t supportedMaxRxOctets;
855   uint16_t supportedMaxRxTime;
856 } hci_le_read_maximum_data_length_rp0;
857 
858 typedef PACKED(struct) hci_le_read_phy_cp0_s {
859   uint16_t Connection_Handle;
860 } hci_le_read_phy_cp0;
861 
862 typedef PACKED(struct) hci_le_read_phy_rp0_s {
863   uint8_t Status;
864   uint16_t Connection_Handle;
865   uint8_t TX_PHY;
866   uint8_t RX_PHY;
867 } hci_le_read_phy_rp0;
868 
869 typedef PACKED(struct) hci_le_set_default_phy_cp0_s {
870   uint8_t ALL_PHYS;
871   uint8_t TX_PHYS;
872   uint8_t RX_PHYS;
873 } hci_le_set_default_phy_cp0;
874 
875 typedef PACKED(struct) hci_le_set_default_phy_rp0_s {
876   uint8_t Status;
877 } hci_le_set_default_phy_rp0;
878 
879 typedef PACKED(struct) hci_le_set_phy_cp0_s {
880   uint16_t Connection_Handle;
881   uint8_t ALL_PHYS;
882   uint8_t TX_PHYS;
883   uint8_t RX_PHYS;
884   uint16_t PHY_options;
885 } hci_le_set_phy_cp0;
886 
887 typedef PACKED(struct) hci_le_set_phy_rp0_s {
888   uint8_t Status;
889 } hci_le_set_phy_rp0;
890 
891 typedef PACKED(struct) hci_le_receiver_test_v2_cp0_s {
892   uint8_t RX_Channel;
893   uint8_t PHY;
894   uint8_t Modulation_index;
895 } hci_le_receiver_test_v2_cp0;
896 
897 typedef PACKED(struct) hci_le_receiver_test_v2_rp0_s {
898   uint8_t Status;
899 } hci_le_receiver_test_v2_rp0;
900 
901 typedef PACKED(struct) hci_le_transmitter_test_v2_cp0_s {
902   uint8_t TX_Channel;
903   uint8_t Length_Of_Test_Data;
904   uint8_t Packet_Payload;
905   uint8_t PHY;
906 } hci_le_transmitter_test_v2_cp0;
907 
908 typedef PACKED(struct) hci_le_transmitter_test_v2_rp0_s {
909   uint8_t Status;
910 } hci_le_transmitter_test_v2_rp0;
911 
912 typedef PACKED(struct) hci_le_set_advertising_set_random_address_cp0_s {
913   uint8_t Advertising_Handle;
914   uint8_t Advertising_Random_Address[6];
915 } hci_le_set_advertising_set_random_address_cp0;
916 
917 typedef PACKED(struct) hci_le_set_advertising_set_random_address_rp0_s {
918   uint8_t Status;
919 } hci_le_set_advertising_set_random_address_rp0;
920 
921 typedef PACKED(struct) hci_le_set_extended_advertising_parameters_cp0_s {
922   uint8_t Advertising_Handle;
923   uint16_t Advertising_Event_Properties;
924   uint8_t Primary_Advertising_Interval_Min[3];
925   uint8_t Primary_Advertising_Interval_Max[3];
926   uint8_t Primary_Advertising_Channel_Map;
927   uint8_t Own_Address_Type;
928   uint8_t Peer_Address_Type;
929   uint8_t Peer_Address[6];
930   uint8_t Advertising_Filter_Policy;
931   int8_t Advertising_Tx_Power;
932   uint8_t Primary_Advertising_PHY;
933   uint8_t Secondary_Advertising_Max_Skip;
934   uint8_t Secondary_Advertising_PHY;
935   uint8_t Advertising_SID;
936   uint8_t Scan_Request_Notification_Enable;
937 } hci_le_set_extended_advertising_parameters_cp0;
938 
939 typedef PACKED(struct) hci_le_set_extended_advertising_parameters_rp0_s {
940   uint8_t Status;
941   int8_t Selected_Tx_Power;
942 } hci_le_set_extended_advertising_parameters_rp0;
943 
944 typedef PACKED(struct) hci_le_set_extended_advertising_data_cp0_s {
945   uint8_t Advertising_Handle;
946   uint8_t Operation;
947   uint8_t Fragment_Preference;
948   uint8_t Advertising_Data_Length;
949   uint8_t Advertising_Data[(HCI_MAX_PAYLOAD_SIZE - 4)/sizeof(uint8_t)];
950 } hci_le_set_extended_advertising_data_cp0;
951 
952 typedef PACKED(struct) hci_le_set_extended_advertising_data_rp0_s {
953   uint8_t Status;
954 } hci_le_set_extended_advertising_data_rp0;
955 
956 typedef PACKED(struct) hci_le_set_extended_scan_response_data_cp0_s {
957   uint8_t Advertising_Handle;
958   uint8_t Operation;
959   uint8_t Fragment_Preference;
960   uint8_t Scan_Response_Data_Length;
961   uint8_t Scan_Response_Data[(HCI_MAX_PAYLOAD_SIZE - 4)/sizeof(uint8_t)];
962 } hci_le_set_extended_scan_response_data_cp0;
963 
964 typedef PACKED(struct) hci_le_set_extended_scan_response_data_rp0_s {
965   uint8_t Status;
966 } hci_le_set_extended_scan_response_data_rp0;
967 
968 typedef PACKED(struct) hci_le_set_extended_advertising_enable_cp0_s {
969   uint8_t Enable;
970   uint8_t Number_of_Sets;
971   packed_Advertising_Set_Parameters_t Advertising_Set_Parameters[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(packed_Advertising_Set_Parameters_t)];
972 } hci_le_set_extended_advertising_enable_cp0;
973 
974 typedef PACKED(struct) hci_le_set_extended_advertising_enable_rp0_s {
975   uint8_t Status;
976 } hci_le_set_extended_advertising_enable_rp0;
977 
978 typedef PACKED(struct) hci_le_read_maximum_advertising_data_length_rp0_s {
979   uint8_t Status;
980   uint16_t Maximum_Advertising_Data_Length;
981 } hci_le_read_maximum_advertising_data_length_rp0;
982 
983 typedef PACKED(struct) hci_le_read_number_of_supported_advertising_sets_rp0_s {
984   uint8_t Status;
985   uint8_t Num_Supported_Advertising_Sets;
986 } hci_le_read_number_of_supported_advertising_sets_rp0;
987 
988 typedef PACKED(struct) hci_le_remove_advertising_set_cp0_s {
989   uint8_t Advertising_Handle;
990 } hci_le_remove_advertising_set_cp0;
991 
992 typedef PACKED(struct) hci_le_remove_advertising_set_rp0_s {
993   uint8_t Status;
994 } hci_le_remove_advertising_set_rp0;
995 
996 typedef PACKED(struct) hci_le_clear_advertising_sets_rp0_s {
997   uint8_t Status;
998 } hci_le_clear_advertising_sets_rp0;
999 
1000 typedef PACKED(struct) hci_le_set_periodic_advertising_parameters_cp0_s {
1001   uint8_t Advertising_Handle;
1002   uint16_t Periodic_Advertising_Interval_Min;
1003   uint16_t Periodic_Advertising_Interval_Max;
1004   uint16_t Periodic_Advertising_Properties;
1005 } hci_le_set_periodic_advertising_parameters_cp0;
1006 
1007 typedef PACKED(struct) hci_le_set_periodic_advertising_parameters_rp0_s {
1008   uint8_t Status;
1009 } hci_le_set_periodic_advertising_parameters_rp0;
1010 
1011 typedef PACKED(struct) hci_le_set_periodic_advertising_data_cp0_s {
1012   uint8_t Advertising_Handle;
1013   uint8_t Operation;
1014   uint8_t Advertising_Data_Length;
1015   uint8_t Advertising_Data[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)];
1016 } hci_le_set_periodic_advertising_data_cp0;
1017 
1018 typedef PACKED(struct) hci_le_set_periodic_advertising_data_rp0_s {
1019   uint8_t Status;
1020 } hci_le_set_periodic_advertising_data_rp0;
1021 
1022 typedef PACKED(struct) hci_le_set_periodic_advertising_enable_cp0_s {
1023   uint8_t Enable;
1024   uint8_t Advertising_Handle;
1025 } hci_le_set_periodic_advertising_enable_cp0;
1026 
1027 typedef PACKED(struct) hci_le_set_periodic_advertising_enable_rp0_s {
1028   uint8_t Status;
1029 } hci_le_set_periodic_advertising_enable_rp0;
1030 
1031 typedef PACKED(struct) hci_le_set_extended_scan_parameters_cp0_s {
1032   uint8_t Own_Address_Type;
1033   uint8_t Scanning_Filter_Policy;
1034   uint8_t Scanning_PHYs;
1035   packed_Extended_Scan_Parameters_t Extended_Scan_Parameters[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(packed_Extended_Scan_Parameters_t)];
1036 } hci_le_set_extended_scan_parameters_cp0;
1037 
1038 typedef PACKED(struct) hci_le_set_extended_scan_parameters_rp0_s {
1039   uint8_t Status;
1040 } hci_le_set_extended_scan_parameters_rp0;
1041 
1042 typedef PACKED(struct) hci_le_set_extended_scan_enable_cp0_s {
1043   uint8_t Enable;
1044   uint8_t Filter_Duplicates;
1045   uint16_t Duration;
1046   uint16_t Period;
1047 } hci_le_set_extended_scan_enable_cp0;
1048 
1049 typedef PACKED(struct) hci_le_set_extended_scan_enable_rp0_s {
1050   uint8_t Status;
1051 } hci_le_set_extended_scan_enable_rp0;
1052 
1053 typedef PACKED(struct) hci_le_extended_create_connection_cp0_s {
1054   uint8_t Initiator_Filter_Policy;
1055   uint8_t Own_Address_Type;
1056   uint8_t Peer_Address_Type;
1057   uint8_t Peer_Address[6];
1058   uint8_t Initiating_PHYs;
1059   packed_Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(packed_Extended_Create_Connection_Parameters_t)];
1060 } hci_le_extended_create_connection_cp0;
1061 
1062 typedef PACKED(struct) hci_le_extended_create_connection_rp0_s {
1063   uint8_t Status;
1064 } hci_le_extended_create_connection_rp0;
1065 
1066 typedef PACKED(struct) hci_le_periodic_advertising_create_sync_cp0_s {
1067   uint8_t Options;
1068   uint8_t Advertising_SID;
1069   uint8_t Advertiser_Address_Type;
1070   uint8_t Advertiser_Address[6];
1071   uint16_t Skip;
1072   uint16_t Sync_Timeout;
1073   uint8_t Sync_CTE_Type;
1074 } hci_le_periodic_advertising_create_sync_cp0;
1075 
1076 typedef PACKED(struct) hci_le_periodic_advertising_create_sync_rp0_s {
1077   uint8_t Status;
1078 } hci_le_periodic_advertising_create_sync_rp0;
1079 
1080 typedef PACKED(struct) hci_le_periodic_advertising_create_sync_cancel_rp0_s {
1081   uint8_t Status;
1082 } hci_le_periodic_advertising_create_sync_cancel_rp0;
1083 
1084 typedef PACKED(struct) hci_le_periodic_advertising_terminate_sync_cp0_s {
1085   uint16_t Sync_Handle;
1086 } hci_le_periodic_advertising_terminate_sync_cp0;
1087 
1088 typedef PACKED(struct) hci_le_periodic_advertising_terminate_sync_rp0_s {
1089   uint8_t Status;
1090 } hci_le_periodic_advertising_terminate_sync_rp0;
1091 
1092 typedef PACKED(struct) hci_le_add_device_to_periodic_advertiser_list_cp0_s {
1093   uint8_t Advertiser_Address_Type;
1094   uint8_t Advertiser_Address[6];
1095   uint8_t Advertising_SID;
1096 } hci_le_add_device_to_periodic_advertiser_list_cp0;
1097 
1098 typedef PACKED(struct) hci_le_add_device_to_periodic_advertiser_list_rp0_s {
1099   uint8_t Status;
1100 } hci_le_add_device_to_periodic_advertiser_list_rp0;
1101 
1102 typedef PACKED(struct) hci_le_remove_device_from_periodic_advertiser_list_cp0_s {
1103   uint8_t Advertiser_Address_Type;
1104   uint8_t Advertiser_Address[6];
1105   uint8_t Advertising_SID;
1106 } hci_le_remove_device_from_periodic_advertiser_list_cp0;
1107 
1108 typedef PACKED(struct) hci_le_remove_device_from_periodic_advertiser_list_rp0_s {
1109   uint8_t Status;
1110 } hci_le_remove_device_from_periodic_advertiser_list_rp0;
1111 
1112 typedef PACKED(struct) hci_le_clear_periodic_advertiser_list_rp0_s {
1113   uint8_t Status;
1114 } hci_le_clear_periodic_advertiser_list_rp0;
1115 
1116 typedef PACKED(struct) hci_le_read_periodic_advertiser_list_size_rp0_s {
1117   uint8_t Status;
1118   uint8_t Periodic_Advertiser_List_Size;
1119 } hci_le_read_periodic_advertiser_list_size_rp0;
1120 
1121 typedef PACKED(struct) hci_le_read_transmit_power_rp0_s {
1122   uint8_t Status;
1123   int8_t Min_Tx_Power;
1124   int8_t Max_Tx_Power;
1125 } hci_le_read_transmit_power_rp0;
1126 
1127 typedef PACKED(struct) hci_le_read_rf_path_compensation_rp0_s {
1128   uint8_t Status;
1129   int16_t RF_TX_Path_Compensation_Value;
1130   int16_t RF_RX_Path_Compensation_Value;
1131 } hci_le_read_rf_path_compensation_rp0;
1132 
1133 typedef PACKED(struct) hci_le_write_rf_path_compensation_cp0_s {
1134   int16_t RF_TX_Path_Compensation_Value;
1135   int16_t RF_RX_Path_Compensation_Value;
1136 } hci_le_write_rf_path_compensation_cp0;
1137 
1138 typedef PACKED(struct) hci_le_write_rf_path_compensation_rp0_s {
1139   uint8_t Status;
1140 } hci_le_write_rf_path_compensation_rp0;
1141 
1142 typedef PACKED(struct) hci_le_set_privacy_mode_cp0_s {
1143   uint8_t Peer_Identity_Address_Type;
1144   uint8_t Peer_Identity_Address[6];
1145   uint8_t Privacy_Mode;
1146 } hci_le_set_privacy_mode_cp0;
1147 
1148 typedef PACKED(struct) hci_le_set_privacy_mode_rp0_s {
1149   uint8_t Status;
1150 } hci_le_set_privacy_mode_rp0;
1151 
1152 typedef PACKED(struct) hci_le_receiver_test_v3_cp0_s {
1153   uint8_t RX_Channel;
1154   uint8_t PHY;
1155   uint8_t Modulation_Index;
1156   uint8_t Expected_CTE_Length;
1157   uint8_t Expected_CTE_Type;
1158   uint8_t Slot_Durations;
1159   uint8_t Switching_Pattern_Length;
1160   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)];
1161 } hci_le_receiver_test_v3_cp0;
1162 
1163 typedef PACKED(struct) hci_le_receiver_test_v3_rp0_s {
1164   uint8_t Status;
1165 } hci_le_receiver_test_v3_rp0;
1166 
1167 typedef PACKED(struct) hci_le_transmitter_test_v3_cp0_s {
1168   uint8_t TX_Channel;
1169   uint8_t Test_Data_Length;
1170   uint8_t Packet_Payload;
1171   uint8_t PHY;
1172   uint8_t CTE_Length;
1173   uint8_t CTE_Type;
1174   uint8_t Switching_Pattern_Length;
1175   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)];
1176 } hci_le_transmitter_test_v3_cp0;
1177 
1178 typedef PACKED(struct) hci_le_transmitter_test_v3_rp0_s {
1179   uint8_t Status;
1180 } hci_le_transmitter_test_v3_rp0;
1181 
1182 typedef PACKED(struct) hci_le_set_connectionless_cte_transmit_parameters_cp0_s {
1183   uint8_t Advertising_Handle;
1184   uint8_t CTE_Length;
1185   uint8_t CTE_Type;
1186   uint8_t CTE_Count;
1187   uint8_t Switching_Pattern_Length;
1188   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint8_t)];
1189 } hci_le_set_connectionless_cte_transmit_parameters_cp0;
1190 
1191 typedef PACKED(struct) hci_le_set_connectionless_cte_transmit_parameters_rp0_s {
1192   uint8_t Status;
1193 } hci_le_set_connectionless_cte_transmit_parameters_rp0;
1194 
1195 typedef PACKED(struct) hci_le_set_connectionless_cte_transmit_enable_cp0_s {
1196   uint8_t Advertising_Handle;
1197   uint8_t CTE_Enable;
1198 } hci_le_set_connectionless_cte_transmit_enable_cp0;
1199 
1200 typedef PACKED(struct) hci_le_set_connectionless_cte_transmit_enable_rp0_s {
1201   uint8_t Status;
1202 } hci_le_set_connectionless_cte_transmit_enable_rp0;
1203 
1204 typedef PACKED(struct) hci_le_set_connectionless_iq_sampling_enable_cp0_s {
1205   uint16_t Sync_Handle;
1206   uint8_t Sampling_Enable;
1207   uint8_t Slot_Durations;
1208   uint8_t Max_Sampled_CTEs;
1209   uint8_t Switching_Pattern_Length;
1210   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)];
1211 } hci_le_set_connectionless_iq_sampling_enable_cp0;
1212 
1213 typedef PACKED(struct) hci_le_set_connectionless_iq_sampling_enable_rp0_s {
1214   uint8_t Status;
1215   uint16_t Sync_Handle;
1216 } hci_le_set_connectionless_iq_sampling_enable_rp0;
1217 
1218 typedef PACKED(struct) hci_le_set_connection_cte_receive_parameters_cp0_s {
1219   uint16_t Connection_Handle;
1220   uint8_t Sampling_Enable;
1221   uint8_t Slot_Durations;
1222   uint8_t Switching_Pattern_Length;
1223   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint8_t)];
1224 } hci_le_set_connection_cte_receive_parameters_cp0;
1225 
1226 typedef PACKED(struct) hci_le_set_connection_cte_receive_parameters_rp0_s {
1227   uint8_t Status;
1228   uint16_t Connection_Handle;
1229 } hci_le_set_connection_cte_receive_parameters_rp0;
1230 
1231 typedef PACKED(struct) hci_le_set_connection_cte_transmit_parameters_cp0_s {
1232   uint16_t Connection_Handle;
1233   uint8_t CTE_Type;
1234   uint8_t Switching_Pattern_Length;
1235   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 4)/sizeof(uint8_t)];
1236 } hci_le_set_connection_cte_transmit_parameters_cp0;
1237 
1238 typedef PACKED(struct) hci_le_set_connection_cte_transmit_parameters_rp0_s {
1239   uint8_t Status;
1240   uint16_t Connection_Handle;
1241 } hci_le_set_connection_cte_transmit_parameters_rp0;
1242 
1243 typedef PACKED(struct) hci_le_connection_cte_request_enable_cp0_s {
1244   uint16_t Connection_Handle;
1245   uint8_t Enable;
1246   uint16_t CTE_Request_Interval;
1247   uint8_t Requested_CTE_Length;
1248   uint8_t Requested_CTE_Type;
1249 } hci_le_connection_cte_request_enable_cp0;
1250 
1251 typedef PACKED(struct) hci_le_connection_cte_request_enable_rp0_s {
1252   uint8_t Status;
1253   uint16_t Connection_Handle;
1254 } hci_le_connection_cte_request_enable_rp0;
1255 
1256 typedef PACKED(struct) hci_le_connection_cte_response_enable_cp0_s {
1257   uint16_t Connection_Handle;
1258   uint8_t Enable;
1259 } hci_le_connection_cte_response_enable_cp0;
1260 
1261 typedef PACKED(struct) hci_le_connection_cte_response_enable_rp0_s {
1262   uint8_t Status;
1263   uint16_t Connection_Handle;
1264 } hci_le_connection_cte_response_enable_rp0;
1265 
1266 typedef PACKED(struct) hci_le_read_antenna_information_rp0_s {
1267   uint8_t Status;
1268   uint8_t Supported_Switching_Sampling_Rates;
1269   uint8_t Num_Antennae;
1270   uint8_t Max_Switching_Pattern_Length;
1271   uint8_t Max_CTE_Length;
1272 } hci_le_read_antenna_information_rp0;
1273 
1274 typedef PACKED(struct) hci_le_set_periodic_advertising_receive_enable_cp0_s {
1275   uint16_t Sync_Handle;
1276   uint8_t Enable;
1277 } hci_le_set_periodic_advertising_receive_enable_cp0;
1278 
1279 typedef PACKED(struct) hci_le_set_periodic_advertising_receive_enable_rp0_s {
1280   uint8_t Status;
1281 } hci_le_set_periodic_advertising_receive_enable_rp0;
1282 
1283 typedef PACKED(struct) hci_le_periodic_advertising_sync_transfer_cp0_s {
1284   uint16_t Connection_Handle;
1285   uint16_t Service_Data;
1286   uint16_t Sync_Handle;
1287 } hci_le_periodic_advertising_sync_transfer_cp0;
1288 
1289 typedef PACKED(struct) hci_le_periodic_advertising_sync_transfer_rp0_s {
1290   uint8_t Status;
1291   uint16_t Connection_Handle;
1292 } hci_le_periodic_advertising_sync_transfer_rp0;
1293 
1294 typedef PACKED(struct) hci_le_periodic_advertising_set_info_transfer_cp0_s {
1295   uint16_t Connection_Handle;
1296   uint16_t Service_Data;
1297   uint8_t Advertising_Handle;
1298 } hci_le_periodic_advertising_set_info_transfer_cp0;
1299 
1300 typedef PACKED(struct) hci_le_periodic_advertising_set_info_transfer_rp0_s {
1301   uint8_t Status;
1302   uint16_t Connection_Handle;
1303 } hci_le_periodic_advertising_set_info_transfer_rp0;
1304 
1305 typedef PACKED(struct) hci_le_set_periodic_advertising_sync_transfer_parameters_cp0_s {
1306   uint16_t Connection_Handle;
1307   uint8_t Mode;
1308   uint16_t Skip;
1309   uint16_t Sync_Timeout;
1310   uint8_t CTE_Type;
1311 } hci_le_set_periodic_advertising_sync_transfer_parameters_cp0;
1312 
1313 typedef PACKED(struct) hci_le_set_periodic_advertising_sync_transfer_parameters_rp0_s {
1314   uint8_t Status;
1315   uint16_t Connection_Handle;
1316 } hci_le_set_periodic_advertising_sync_transfer_parameters_rp0;
1317 
1318 typedef PACKED(struct) hci_le_set_default_periodic_advertising_sync_transfer_parameters_cp0_s {
1319   uint8_t Mode;
1320   uint16_t Skip;
1321   uint16_t Sync_Timeout;
1322   uint8_t CTE_Type;
1323 } hci_le_set_default_periodic_advertising_sync_transfer_parameters_cp0;
1324 
1325 typedef PACKED(struct) hci_le_set_default_periodic_advertising_sync_transfer_parameters_rp0_s {
1326   uint8_t Status;
1327 } hci_le_set_default_periodic_advertising_sync_transfer_parameters_rp0;
1328 
1329 typedef PACKED(struct) hci_le_read_buffer_size_v2_rp0_s {
1330   uint8_t Status;
1331   uint16_t HC_LE_ACL_Data_Packet_Length;
1332   uint8_t HC_Total_Num_LE_ACL_Data_Packets;
1333   uint16_t ISO_Data_Packet_Length;
1334   uint8_t Total_Num_ISO_Data_Packets;
1335 } hci_le_read_buffer_size_v2_rp0;
1336 
1337 typedef PACKED(struct) hci_le_read_iso_tx_sync_cp0_s {
1338   uint16_t Connection_Handle;
1339 } hci_le_read_iso_tx_sync_cp0;
1340 
1341 typedef PACKED(struct) hci_le_read_iso_tx_sync_rp0_s {
1342   uint8_t Status;
1343   uint16_t Connection_Handle;
1344   uint16_t Packet_Sequence_Number;
1345   uint32_t TX_Time_Stamp;
1346   uint8_t Time_Offset[3];
1347 } hci_le_read_iso_tx_sync_rp0;
1348 
1349 typedef PACKED(struct) hci_le_set_cig_parameters_cp0_s {
1350   uint8_t CIG_ID;
1351   uint8_t SDU_Interval_C_To_P[3];
1352   uint8_t SDU_Interval_P_To_C[3];
1353   uint8_t Worst_Case_SCA;
1354   uint8_t Packing;
1355   uint8_t Framing;
1356   uint16_t Max_Transport_Latency_C_To_P;
1357   uint16_t Max_Transport_Latency_P_To_C;
1358   uint8_t CIS_Count;
1359   packed_CIS_Param_t CIS_Param[(HCI_MAX_PAYLOAD_SIZE - 15)/sizeof(packed_CIS_Param_t)];
1360 } hci_le_set_cig_parameters_cp0;
1361 
1362 typedef PACKED(struct) hci_le_set_cig_parameters_rp0_s {
1363   uint8_t Status;
1364   uint8_t CIG_ID;
1365   uint8_t CIS_Count;
1366   uint16_t Connection_Handle[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint16_t)];
1367 } hci_le_set_cig_parameters_rp0;
1368 
1369 typedef PACKED(struct) hci_le_set_cig_parameters_test_cp0_s {
1370   uint8_t CIG_ID;
1371   uint8_t SDU_Interval_C_To_P[3];
1372   uint8_t SDU_Interval_P_To_C[3];
1373   uint8_t FT_C_To_P;
1374   uint8_t FT_P_To_C;
1375   uint16_t ISO_Interval;
1376   uint8_t Worst_Case_SCA;
1377   uint8_t Packing;
1378   uint8_t Framing;
1379   uint8_t CIS_Count;
1380   packed_CIS_Param_Test_t CIS_Param_Test[(HCI_MAX_PAYLOAD_SIZE - 15)/sizeof(packed_CIS_Param_Test_t)];
1381 } hci_le_set_cig_parameters_test_cp0;
1382 
1383 typedef PACKED(struct) hci_le_set_cig_parameters_test_rp0_s {
1384   uint8_t Status;
1385   uint8_t CIG_ID;
1386   uint8_t CIS_Count;
1387   uint16_t Connection_Handle[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint16_t)];
1388 } hci_le_set_cig_parameters_test_rp0;
1389 
1390 typedef PACKED(struct) hci_le_create_cis_cp0_s {
1391   uint8_t CIS_Count;
1392   packed_CIS_Handles_t CIS_Handles[(HCI_MAX_PAYLOAD_SIZE - 1)/sizeof(packed_CIS_Handles_t)];
1393 } hci_le_create_cis_cp0;
1394 
1395 typedef PACKED(struct) hci_le_create_cis_rp0_s {
1396   uint8_t Status;
1397 } hci_le_create_cis_rp0;
1398 
1399 typedef PACKED(struct) hci_le_remove_cig_cp0_s {
1400   uint8_t CIG_ID;
1401 } hci_le_remove_cig_cp0;
1402 
1403 typedef PACKED(struct) hci_le_remove_cig_rp0_s {
1404   uint8_t Status;
1405   uint8_t CIG_ID;
1406 } hci_le_remove_cig_rp0;
1407 
1408 typedef PACKED(struct) hci_le_accept_cis_request_cp0_s {
1409   uint16_t Connection_Handle;
1410 } hci_le_accept_cis_request_cp0;
1411 
1412 typedef PACKED(struct) hci_le_accept_cis_request_rp0_s {
1413   uint8_t Status;
1414 } hci_le_accept_cis_request_rp0;
1415 
1416 typedef PACKED(struct) hci_le_reject_cis_request_cp0_s {
1417   uint16_t Connection_Handle;
1418   uint8_t Reason;
1419 } hci_le_reject_cis_request_cp0;
1420 
1421 typedef PACKED(struct) hci_le_reject_cis_request_rp0_s {
1422   uint8_t Status;
1423   uint16_t Connection_Handle;
1424 } hci_le_reject_cis_request_rp0;
1425 
1426 typedef PACKED(struct) hci_le_create_big_cp0_s {
1427   uint8_t BIG_Handle;
1428   uint8_t Advertising_Handle;
1429   uint8_t Num_BIS;
1430   uint8_t SDU_Interval[3];
1431   uint16_t Max_SDU;
1432   uint16_t Max_Transport_Latency;
1433   uint8_t RTN;
1434   uint8_t PHY;
1435   uint8_t Packing;
1436   uint8_t Framing;
1437   uint8_t Encryption;
1438   uint8_t Broadcast_Code[16];
1439 } hci_le_create_big_cp0;
1440 
1441 typedef PACKED(struct) hci_le_create_big_rp0_s {
1442   uint8_t Status;
1443 } hci_le_create_big_rp0;
1444 
1445 typedef PACKED(struct) hci_le_create_big_test_cp0_s {
1446   uint8_t BIG_Handle;
1447   uint8_t Advertising_Handle;
1448   uint8_t Num_BIS;
1449   uint8_t SDU_Interval[3];
1450   uint16_t ISO_Interval;
1451   uint8_t NSE;
1452   uint16_t Max_SDU;
1453   uint16_t Max_PDU;
1454   uint8_t PHY;
1455   uint8_t Packing;
1456   uint8_t Framing;
1457   uint8_t BN;
1458   uint8_t IRC;
1459   uint8_t PTO;
1460   uint8_t Encryption;
1461   uint8_t Broadcast_Code[16];
1462 } hci_le_create_big_test_cp0;
1463 
1464 typedef PACKED(struct) hci_le_create_big_test_rp0_s {
1465   uint8_t Status;
1466 } hci_le_create_big_test_rp0;
1467 
1468 typedef PACKED(struct) hci_le_terminate_big_cp0_s {
1469   uint8_t BIG_Handle;
1470   uint8_t Reason;
1471 } hci_le_terminate_big_cp0;
1472 
1473 typedef PACKED(struct) hci_le_terminate_big_rp0_s {
1474   uint8_t Status;
1475 } hci_le_terminate_big_rp0;
1476 
1477 typedef PACKED(struct) hci_le_big_create_sync_cp0_s {
1478   uint8_t BIG_Handle;
1479   uint16_t Sync_Handle;
1480   uint8_t Encryption;
1481   uint8_t Broadcast_Code[16];
1482   uint8_t MSE;
1483   uint16_t BIG_Sync_Timeout;
1484   uint8_t Num_BIS;
1485   uint8_t BIS[(HCI_MAX_PAYLOAD_SIZE - 24)/sizeof(uint8_t)];
1486 } hci_le_big_create_sync_cp0;
1487 
1488 typedef PACKED(struct) hci_le_big_create_sync_rp0_s {
1489   uint8_t Status;
1490 } hci_le_big_create_sync_rp0;
1491 
1492 typedef PACKED(struct) hci_le_big_terminate_sync_cp0_s {
1493   uint8_t BIG_Handle;
1494 } hci_le_big_terminate_sync_cp0;
1495 
1496 typedef PACKED(struct) hci_le_big_terminate_sync_rp0_s {
1497   uint8_t Status;
1498   uint8_t BIG_Handle;
1499 } hci_le_big_terminate_sync_rp0;
1500 
1501 typedef PACKED(struct) hci_le_request_peer_sca_cp0_s {
1502   uint16_t Connection_Handle;
1503 } hci_le_request_peer_sca_cp0;
1504 
1505 typedef PACKED(struct) hci_le_request_peer_sca_rp0_s {
1506   uint8_t Status;
1507 } hci_le_request_peer_sca_rp0;
1508 
1509 typedef PACKED(struct) hci_le_setup_iso_data_path_cp0_s {
1510   uint16_t Connection_Handle;
1511   uint8_t Data_Path_Direction;
1512   uint8_t Data_Path_ID;
1513   uint8_t Codec_ID[5];
1514   uint8_t Controller_Delay[3];
1515   uint8_t Codec_Configuration_Length;
1516   uint8_t Codec_Configuration[(HCI_MAX_PAYLOAD_SIZE - 13)/sizeof(uint8_t)];
1517 } hci_le_setup_iso_data_path_cp0;
1518 
1519 typedef PACKED(struct) hci_le_setup_iso_data_path_rp0_s {
1520   uint8_t Status;
1521   uint16_t Connection_Handle;
1522 } hci_le_setup_iso_data_path_rp0;
1523 
1524 typedef PACKED(struct) hci_le_remove_iso_data_path_cp0_s {
1525   uint16_t Connection_Handle;
1526   uint8_t Data_Path_Direction;
1527 } hci_le_remove_iso_data_path_cp0;
1528 
1529 typedef PACKED(struct) hci_le_remove_iso_data_path_rp0_s {
1530   uint8_t Status;
1531   uint16_t Connection_Handle;
1532 } hci_le_remove_iso_data_path_rp0;
1533 
1534 typedef PACKED(struct) hci_le_iso_transmit_test_cp0_s {
1535   uint16_t Connection_Handle;
1536   uint8_t Payload_Type;
1537 } hci_le_iso_transmit_test_cp0;
1538 
1539 typedef PACKED(struct) hci_le_iso_transmit_test_rp0_s {
1540   uint8_t Status;
1541   uint16_t Connection_Handle;
1542 } hci_le_iso_transmit_test_rp0;
1543 
1544 typedef PACKED(struct) hci_le_iso_receive_test_cp0_s {
1545   uint16_t Connection_Handle;
1546   uint8_t Payload_Type;
1547 } hci_le_iso_receive_test_cp0;
1548 
1549 typedef PACKED(struct) hci_le_iso_receive_test_rp0_s {
1550   uint8_t Status;
1551   uint16_t Connection_Handle;
1552 } hci_le_iso_receive_test_rp0;
1553 
1554 typedef PACKED(struct) hci_le_iso_read_test_counters_cp0_s {
1555   uint16_t Connection_Handle;
1556 } hci_le_iso_read_test_counters_cp0;
1557 
1558 typedef PACKED(struct) hci_le_iso_read_test_counters_rp0_s {
1559   uint8_t Status;
1560   uint16_t Connection_Handle;
1561   uint32_t Received_Packet_Count;
1562   uint32_t Missed_Packet_Count;
1563   uint32_t Failed_Packet_Count;
1564 } hci_le_iso_read_test_counters_rp0;
1565 
1566 typedef PACKED(struct) hci_le_iso_test_end_cp0_s {
1567   uint16_t Connection_Handle;
1568 } hci_le_iso_test_end_cp0;
1569 
1570 typedef PACKED(struct) hci_le_iso_test_end_rp0_s {
1571   uint8_t Status;
1572   uint16_t Connection_Handle;
1573   uint32_t Received_Packet_Count;
1574   uint32_t Missed_Packet_Count;
1575   uint32_t Failed_Packet_Count;
1576 } hci_le_iso_test_end_rp0;
1577 
1578 typedef PACKED(struct) hci_le_set_host_feature_cp0_s {
1579   uint8_t Bit_Number;
1580   uint8_t Bit_Value;
1581 } hci_le_set_host_feature_cp0;
1582 
1583 typedef PACKED(struct) hci_le_set_host_feature_rp0_s {
1584   uint8_t Status;
1585 } hci_le_set_host_feature_rp0;
1586 
1587 typedef PACKED(struct) hci_le_read_iso_link_quality_cp0_s {
1588   uint16_t Connection_Handle;
1589 } hci_le_read_iso_link_quality_cp0;
1590 
1591 typedef PACKED(struct) hci_le_read_iso_link_quality_rp0_s {
1592   uint8_t Status;
1593   uint16_t Connection_Handle;
1594   uint32_t Tx_UnACKed_Packets;
1595   uint32_t Tx_Flushed_Packets;
1596   uint32_t Tx_Last_Subevent_Packets;
1597   uint32_t Retransmitted_Packets;
1598   uint32_t CRC_Error_Packets;
1599   uint32_t Rx_Unreceived_Packets;
1600   uint32_t Duplicate_Packets;
1601 } hci_le_read_iso_link_quality_rp0;
1602 
1603 typedef PACKED(struct) hci_le_enhanced_read_transmit_power_level_cp0_s {
1604   uint16_t Connection_Handle;
1605   uint8_t PHY;
1606 } hci_le_enhanced_read_transmit_power_level_cp0;
1607 
1608 typedef PACKED(struct) hci_le_enhanced_read_transmit_power_level_rp0_s {
1609   uint8_t Status;
1610   uint16_t Connection_Handle;
1611   uint8_t PHY;
1612   int8_t Current_Transmit_Power_Level;
1613   int8_t Max_Transmit_Power_Level;
1614 } hci_le_enhanced_read_transmit_power_level_rp0;
1615 
1616 typedef PACKED(struct) hci_le_read_remote_transmit_power_level_cp0_s {
1617   uint16_t Connection_Handle;
1618   uint8_t PHY;
1619 } hci_le_read_remote_transmit_power_level_cp0;
1620 
1621 typedef PACKED(struct) hci_le_read_remote_transmit_power_level_rp0_s {
1622   uint8_t Status;
1623 } hci_le_read_remote_transmit_power_level_rp0;
1624 
1625 typedef PACKED(struct) hci_le_set_path_loss_reporting_parameters_cp0_s {
1626   uint16_t Connection_Handle;
1627   uint8_t High_Threshold;
1628   uint8_t High_Hysteresis;
1629   uint8_t Low_Threshold;
1630   uint8_t Low_Hysteresis;
1631   uint16_t Min_Time_Spent;
1632 } hci_le_set_path_loss_reporting_parameters_cp0;
1633 
1634 typedef PACKED(struct) hci_le_set_path_loss_reporting_parameters_rp0_s {
1635   uint8_t Status;
1636   uint16_t Connection_Handle;
1637 } hci_le_set_path_loss_reporting_parameters_rp0;
1638 
1639 typedef PACKED(struct) hci_le_set_path_loss_reporting_enable_cp0_s {
1640   uint16_t Connection_Handle;
1641   uint8_t Enable;
1642 } hci_le_set_path_loss_reporting_enable_cp0;
1643 
1644 typedef PACKED(struct) hci_le_set_path_loss_reporting_enable_rp0_s {
1645   uint8_t Status;
1646   uint16_t Connection_Handle;
1647 } hci_le_set_path_loss_reporting_enable_rp0;
1648 
1649 typedef PACKED(struct) hci_le_set_transmit_power_reporting_enable_cp0_s {
1650   uint16_t Connection_Handle;
1651   uint8_t Local_Enable;
1652   uint8_t Remote_Enable;
1653 } hci_le_set_transmit_power_reporting_enable_cp0;
1654 
1655 typedef PACKED(struct) hci_le_set_transmit_power_reporting_enable_rp0_s {
1656   uint8_t Status;
1657   uint16_t Connection_Handle;
1658 } hci_le_set_transmit_power_reporting_enable_rp0;
1659 
1660 typedef PACKED(struct) hci_le_transmitter_test_v4_cp0_s {
1661   uint8_t TX_Channel;
1662   uint8_t Test_Data_Length;
1663   uint8_t Packet_Payload;
1664   uint8_t PHY;
1665   uint8_t CTE_Length;
1666   uint8_t CTE_Type;
1667   uint8_t Switching_Pattern_Length;
1668   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)];
1669 } hci_le_transmitter_test_v4_cp0;
1670 
1671 typedef PACKED(struct) hci_le_transmitter_test_v4_cp1_s {
1672   int8_t Transmit_Power_Level;
1673 } hci_le_transmitter_test_v4_cp1;
1674 
1675 typedef PACKED(struct) hci_le_transmitter_test_v4_rp0_s {
1676   uint8_t Status;
1677 } hci_le_transmitter_test_v4_rp0;
1678 
1679 typedef PACKED(struct) hci_le_set_data_related_address_changes_cp0_s {
1680   uint8_t Advertising_Handle;
1681   uint8_t Change_Reasons;
1682 } hci_le_set_data_related_address_changes_cp0;
1683 
1684 typedef PACKED(struct) hci_le_set_data_related_address_changes_rp0_s {
1685   uint8_t Status;
1686 } hci_le_set_data_related_address_changes_rp0;
1687 
1688 typedef PACKED(struct) hci_le_set_default_subrate_cp0_s {
1689   uint16_t Subrate_Min;
1690   uint16_t Subrate_Max;
1691   uint16_t Max_Latency;
1692   uint16_t Continuation_Number;
1693   uint16_t Supervision_Timeout;
1694 } hci_le_set_default_subrate_cp0;
1695 
1696 typedef PACKED(struct) hci_le_set_default_subrate_rp0_s {
1697   uint8_t Status;
1698 } hci_le_set_default_subrate_rp0;
1699 
1700 typedef PACKED(struct) hci_le_subrate_request_cp0_s {
1701   uint16_t Connection_Handle;
1702   uint16_t Subrate_Min;
1703   uint16_t Subrate_Max;
1704   uint16_t Max_Latency;
1705   uint16_t Continuation_Number;
1706   uint16_t Supervision_Timeout;
1707 } hci_le_subrate_request_cp0;
1708 
1709 typedef PACKED(struct) hci_le_subrate_request_rp0_s {
1710   uint8_t Status;
1711 } hci_le_subrate_request_rp0;
1712 
1713 typedef PACKED(struct) hci_le_set_extended_advertising_parameters_v2_cp0_s {
1714   uint8_t Advertising_Handle;
1715   uint16_t Advertising_Event_Properties;
1716   uint8_t Primary_Advertising_Interval_Min[3];
1717   uint8_t Primary_Advertising_Interval_Max[3];
1718   uint8_t Primary_Advertising_Channel_Map;
1719   uint8_t Own_Address_Type;
1720   uint8_t Peer_Address_Type;
1721   uint8_t Peer_Address[6];
1722   uint8_t Advertising_Filter_Policy;
1723   int8_t Advertising_Tx_Power;
1724   uint8_t Primary_Advertising_PHY;
1725   uint8_t Secondary_Advertising_Max_Skip;
1726   uint8_t Secondary_Advertising_PHY;
1727   uint8_t Advertising_SID;
1728   uint8_t Scan_Request_Notification_Enable;
1729   uint8_t Primary_Advertising_PHY_Options;
1730   uint8_t Secondary_Advertising_PHY_Options;
1731 } hci_le_set_extended_advertising_parameters_v2_cp0;
1732 
1733 typedef PACKED(struct) hci_le_set_extended_advertising_parameters_v2_rp0_s {
1734   uint8_t Status;
1735   int8_t Selected_Tx_Power;
1736 } hci_le_set_extended_advertising_parameters_v2_rp0;
1737 
1738 typedef PACKED(struct) hci_le_set_periodic_advertising_subevent_data_cp0_s {
1739   uint8_t Advertising_Handle;
1740   uint8_t Num_Subevents;
1741   packed_Subevent_Data_Parameters_t Subevent_Data_Parameters[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(packed_Subevent_Data_Parameters_t)];
1742 } hci_le_set_periodic_advertising_subevent_data_cp0;
1743 
1744 typedef PACKED(struct) hci_le_set_periodic_advertising_subevent_data_rp0_s {
1745   uint8_t Status;
1746   uint8_t Advertising_Handle;
1747 } hci_le_set_periodic_advertising_subevent_data_rp0;
1748 
1749 typedef PACKED(struct) hci_le_set_periodic_advertising_response_data_cp0_s {
1750   uint16_t Sync_Handle;
1751   uint16_t Request_Event;
1752   uint8_t Request_Subevent;
1753   uint8_t Response_Subevent;
1754   uint8_t Response_Slot;
1755   uint8_t Response_Data_Length;
1756   uint8_t Response_Data[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)];
1757 } hci_le_set_periodic_advertising_response_data_cp0;
1758 
1759 typedef PACKED(struct) hci_le_set_periodic_advertising_response_data_rp0_s {
1760   uint8_t Status;
1761   uint16_t Sync_Handle;
1762 } hci_le_set_periodic_advertising_response_data_rp0;
1763 
1764 typedef PACKED(struct) hci_le_set_periodic_sync_subevent_cp0_s {
1765   uint16_t Sync_Handle;
1766   uint16_t Periodic_Advertising_Properties;
1767   uint8_t Num_Subevents;
1768   uint8_t Subevent[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint8_t)];
1769 } hci_le_set_periodic_sync_subevent_cp0;
1770 
1771 typedef PACKED(struct) hci_le_set_periodic_sync_subevent_rp0_s {
1772   uint8_t Status;
1773   uint16_t Sync_Handle;
1774 } hci_le_set_periodic_sync_subevent_rp0;
1775 
1776 typedef PACKED(struct) hci_le_extended_create_connection_v2_cp0_s {
1777   uint8_t Advertising_Handle;
1778   uint8_t Subevent;
1779   uint8_t Initiator_Filter_Policy;
1780   uint8_t Own_Address_Type;
1781   uint8_t Peer_Address_Type;
1782   uint8_t Peer_Address[6];
1783   uint8_t Initiating_PHYs;
1784   packed_Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[(HCI_MAX_PAYLOAD_SIZE - 12)/sizeof(packed_Extended_Create_Connection_Parameters_t)];
1785 } hci_le_extended_create_connection_v2_cp0;
1786 
1787 typedef PACKED(struct) hci_le_extended_create_connection_v2_rp0_s {
1788   uint8_t Status;
1789 } hci_le_extended_create_connection_v2_rp0;
1790 
1791 typedef PACKED(struct) hci_le_set_periodic_advertising_parameters_v2_cp0_s {
1792   uint8_t Advertising_Handle;
1793   uint16_t Periodic_Advertising_Interval_Min;
1794   uint16_t Periodic_Advertising_Interval_Max;
1795   uint16_t Periodic_Advertising_Properties;
1796   uint8_t Num_Subevents;
1797   uint8_t Subevent_Interval;
1798   uint8_t Response_Slot_Delay;
1799   uint8_t Response_Slot_Spacing;
1800   uint8_t Num_Response_Slots;
1801 } hci_le_set_periodic_advertising_parameters_v2_cp0;
1802 
1803 typedef PACKED(struct) hci_le_set_periodic_advertising_parameters_v2_rp0_s {
1804   uint8_t Status;
1805   uint8_t Advertising_Handle;
1806 } hci_le_set_periodic_advertising_parameters_v2_rp0;
1807 
1808 typedef PACKED(struct) aci_hal_get_fw_build_number_rp0_s {
1809   uint8_t Status;
1810   uint16_t Build_Number;
1811 } aci_hal_get_fw_build_number_rp0;
1812 
1813 typedef PACKED(struct) aci_hal_get_firmware_details_rp0_s {
1814   uint8_t Status;
1815   uint8_t DTM_version_major;
1816   uint8_t DTM_version_minor;
1817   uint8_t DTM_version_patch;
1818   uint8_t DTM_variant;
1819   uint16_t DTM_Build_Number;
1820   uint8_t BTLE_Stack_version_major;
1821   uint8_t BTLE_Stack_version_minor;
1822   uint8_t BTLE_Stack_version_patch;
1823   uint8_t BTLE_Stack_development;
1824   uint16_t BTLE_Stack_variant;
1825   uint16_t BTLE_Stack_Build_Number;
1826 } aci_hal_get_firmware_details_rp0;
1827 
1828 typedef PACKED(struct) aci_hal_get_firmware_details_v2_rp0_s {
1829   uint8_t Status;
1830   uint8_t DTM_version_major;
1831   uint8_t DTM_version_minor;
1832   uint8_t DTM_version_patch;
1833   uint8_t DTM_variant;
1834   uint16_t DTM_Build_Number;
1835   uint8_t BTLE_Stack_version_major;
1836   uint8_t BTLE_Stack_version_minor;
1837   uint8_t BTLE_Stack_version_patch;
1838   uint8_t BTLE_Stack_development;
1839   uint32_t BTLE_Stack_variant;
1840   uint16_t BTLE_Stack_Build_Number;
1841 } aci_hal_get_firmware_details_v2_rp0;
1842 
1843 typedef PACKED(struct) aci_hal_write_config_data_cp0_s {
1844   uint8_t Offset;
1845   uint8_t Length;
1846   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)];
1847 } aci_hal_write_config_data_cp0;
1848 
1849 typedef PACKED(struct) aci_hal_write_config_data_rp0_s {
1850   uint8_t Status;
1851 } aci_hal_write_config_data_rp0;
1852 
1853 typedef PACKED(struct) aci_hal_read_config_data_cp0_s {
1854   uint8_t Offset;
1855 } aci_hal_read_config_data_cp0;
1856 
1857 typedef PACKED(struct) aci_hal_read_config_data_rp0_s {
1858   uint8_t Status;
1859   uint8_t Data_Length;
1860   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)];
1861 } aci_hal_read_config_data_rp0;
1862 
1863 typedef PACKED(struct) aci_hal_set_tx_power_level_cp0_s {
1864   uint8_t En_High_Power;
1865   uint8_t PA_Level;
1866 } aci_hal_set_tx_power_level_cp0;
1867 
1868 typedef PACKED(struct) aci_hal_set_tx_power_level_rp0_s {
1869   uint8_t Status;
1870 } aci_hal_set_tx_power_level_rp0;
1871 
1872 typedef PACKED(struct) aci_hal_le_tx_test_packet_number_rp0_s {
1873   uint8_t Status;
1874   uint32_t Number_Of_Packets;
1875 } aci_hal_le_tx_test_packet_number_rp0;
1876 
1877 typedef PACKED(struct) aci_hal_tone_start_cp0_s {
1878   uint8_t RF_Channel;
1879   uint8_t Offset;
1880 } aci_hal_tone_start_cp0;
1881 
1882 typedef PACKED(struct) aci_hal_tone_start_rp0_s {
1883   uint8_t Status;
1884 } aci_hal_tone_start_rp0;
1885 
1886 typedef PACKED(struct) aci_hal_tone_stop_rp0_s {
1887   uint8_t Status;
1888 } aci_hal_tone_stop_rp0;
1889 
1890 typedef PACKED(struct) aci_hal_get_link_status_cp0_s {
1891   uint8_t Bank_index;
1892 } aci_hal_get_link_status_cp0;
1893 
1894 typedef PACKED(struct) aci_hal_get_link_status_rp0_s {
1895   uint8_t Status;
1896   uint8_t Link_Status[8];
1897   uint16_t Link_Connection_Handle[16 / 2];
1898 } aci_hal_get_link_status_rp0;
1899 
1900 typedef PACKED(struct) aci_hal_set_radio_activity_mask_cp0_s {
1901   uint16_t Radio_Activity_Mask;
1902 } aci_hal_set_radio_activity_mask_cp0;
1903 
1904 typedef PACKED(struct) aci_hal_set_radio_activity_mask_rp0_s {
1905   uint8_t Status;
1906 } aci_hal_set_radio_activity_mask_rp0;
1907 
1908 typedef PACKED(struct) aci_hal_set_le_power_control_cp0_s {
1909   uint8_t Enable;
1910   uint8_t PHY;
1911   int8_t RSSI_Target;
1912   uint8_t RSSI_Hysteresis;
1913   int8_t Initial_TX_Power;
1914   uint8_t RSSI_Filtering_Coefficient;
1915 } aci_hal_set_le_power_control_cp0;
1916 
1917 typedef PACKED(struct) aci_hal_set_le_power_control_rp0_s {
1918   uint8_t Status;
1919 } aci_hal_set_le_power_control_rp0;
1920 
1921 typedef PACKED(struct) aci_hal_transmitter_test_packets_cp0_s {
1922   uint8_t TX_Frequency;
1923   uint8_t Length_Of_Test_Data;
1924   uint8_t Packet_Payload;
1925   uint16_t Number_Of_Packets;
1926   uint8_t PHY;
1927 } aci_hal_transmitter_test_packets_cp0;
1928 
1929 typedef PACKED(struct) aci_hal_transmitter_test_packets_rp0_s {
1930   uint8_t Status;
1931 } aci_hal_transmitter_test_packets_rp0;
1932 
1933 typedef PACKED(struct) aci_hal_transmitter_test_packets_v2_cp0_s {
1934   uint8_t TX_Channel;
1935   uint8_t Test_Data_Length;
1936   uint8_t Packet_Payload;
1937   uint16_t Number_Of_Packets;
1938   uint8_t PHY;
1939   uint8_t CTE_Length;
1940   uint8_t CTE_Type;
1941   uint8_t Switching_Pattern_Length;
1942   uint8_t Antenna_IDs[(HCI_MAX_PAYLOAD_SIZE - 9)/sizeof(uint8_t)];
1943 } aci_hal_transmitter_test_packets_v2_cp0;
1944 
1945 typedef PACKED(struct) aci_hal_transmitter_test_packets_v2_rp0_s {
1946   uint8_t Status;
1947 } aci_hal_transmitter_test_packets_v2_rp0;
1948 
1949 typedef PACKED(struct) aci_hal_write_radio_reg_cp0_s {
1950   uint32_t Start_Address;
1951   uint8_t Num_Bytes;
1952   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint8_t)];
1953 } aci_hal_write_radio_reg_cp0;
1954 
1955 typedef PACKED(struct) aci_hal_write_radio_reg_rp0_s {
1956   uint8_t Status;
1957 } aci_hal_write_radio_reg_rp0;
1958 
1959 typedef PACKED(struct) aci_hal_read_radio_reg_cp0_s {
1960   uint32_t Start_Address;
1961   uint8_t Num_Bytes;
1962 } aci_hal_read_radio_reg_cp0;
1963 
1964 typedef PACKED(struct) aci_hal_read_radio_reg_rp0_s {
1965   uint8_t Status;
1966   uint8_t Data_Length;
1967   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)];
1968 } aci_hal_read_radio_reg_rp0;
1969 
1970 typedef PACKED(struct) aci_hal_set_antenna_switch_parameters_cp0_s {
1971   uint8_t Antenna_IDs;
1972   uint8_t Antenna_ID_Shift;
1973   uint8_t Default_Antenna_ID;
1974   uint8_t RF_Activity_Enable;
1975 } aci_hal_set_antenna_switch_parameters_cp0;
1976 
1977 typedef PACKED(struct) aci_hal_set_antenna_switch_parameters_rp0_s {
1978   uint8_t Status;
1979 } aci_hal_set_antenna_switch_parameters_rp0;
1980 
1981 typedef PACKED(struct) aci_hal_peripheral_latency_enable_cp0_s {
1982   uint16_t Connection_Handle;
1983   uint8_t Enable;
1984 } aci_hal_peripheral_latency_enable_cp0;
1985 
1986 typedef PACKED(struct) aci_hal_peripheral_latency_enable_rp0_s {
1987   uint8_t Status;
1988 } aci_hal_peripheral_latency_enable_rp0;
1989 
1990 typedef PACKED(struct) aci_hal_get_evt_fifo_max_level_rp0_s {
1991   uint8_t Status;
1992   uint16_t ISR0_FIFO_Max_Level;
1993   uint16_t ISR1_FIFO_Max_Level;
1994   uint16_t User_FIFO_Max_Level;
1995 } aci_hal_get_evt_fifo_max_level_rp0;
1996 
1997 typedef PACKED(struct) aci_gap_init_cp0_s {
1998   uint8_t Privacy_Type;
1999   uint8_t Identity_Address_Type;
2000 } aci_gap_init_cp0;
2001 
2002 typedef PACKED(struct) aci_gap_init_rp0_s {
2003   uint8_t Status;
2004 } aci_gap_init_rp0;
2005 
2006 typedef PACKED(struct) aci_gap_set_io_capability_cp0_s {
2007   uint8_t IO_Capability;
2008 } aci_gap_set_io_capability_cp0;
2009 
2010 typedef PACKED(struct) aci_gap_set_io_capability_rp0_s {
2011   uint8_t Status;
2012 } aci_gap_set_io_capability_rp0;
2013 
2014 typedef PACKED(struct) aci_gap_set_security_requirements_cp0_s {
2015   uint8_t Bonding_Mode;
2016   uint8_t MITM_Mode;
2017   uint8_t SC_Support;
2018   uint8_t KeyPress_Notification_Support;
2019   uint8_t Min_Encryption_Key_Size;
2020   uint8_t Max_Encryption_Key_Size;
2021   uint8_t Pairing_Response;
2022 } aci_gap_set_security_requirements_cp0;
2023 
2024 typedef PACKED(struct) aci_gap_set_security_requirements_rp0_s {
2025   uint8_t Status;
2026 } aci_gap_set_security_requirements_rp0;
2027 
2028 typedef PACKED(struct) aci_gap_passkey_resp_cp0_s {
2029   uint16_t Connection_Handle;
2030   uint32_t Passkey;
2031 } aci_gap_passkey_resp_cp0;
2032 
2033 typedef PACKED(struct) aci_gap_passkey_resp_rp0_s {
2034   uint8_t Status;
2035 } aci_gap_passkey_resp_rp0;
2036 
2037 typedef PACKED(struct) aci_gap_profile_init_cp0_s {
2038   uint8_t Role;
2039   uint8_t Privacy_Type;
2040 } aci_gap_profile_init_cp0;
2041 
2042 typedef PACKED(struct) aci_gap_profile_init_rp0_s {
2043   uint8_t Status;
2044   uint16_t Dev_Name_Char_Handle;
2045   uint16_t Appearance_Char_Handle;
2046   uint16_t Periph_Pref_Conn_Param_Char_Handle;
2047 } aci_gap_profile_init_rp0;
2048 
2049 typedef PACKED(struct) aci_gap_set_security_cp0_s {
2050   uint16_t Connection_Handle;
2051   uint8_t Security_Level;
2052   uint8_t Force_Pairing;
2053 } aci_gap_set_security_cp0;
2054 
2055 typedef PACKED(struct) aci_gap_set_security_rp0_s {
2056   uint8_t Status;
2057 } aci_gap_set_security_rp0;
2058 
2059 typedef PACKED(struct) aci_gap_get_security_level_cp0_s {
2060   uint16_t Connection_Handle;
2061 } aci_gap_get_security_level_cp0;
2062 
2063 typedef PACKED(struct) aci_gap_get_security_level_rp0_s {
2064   uint8_t Status;
2065   uint8_t Security_Mode;
2066   uint8_t Security_Level;
2067 } aci_gap_get_security_level_rp0;
2068 
2069 typedef PACKED(struct) aci_gap_set_le_event_mask_cp0_s {
2070   uint8_t LE_Event_Mask[8];
2071 } aci_gap_set_le_event_mask_cp0;
2072 
2073 typedef PACKED(struct) aci_gap_set_le_event_mask_rp0_s {
2074   uint8_t Status;
2075 } aci_gap_set_le_event_mask_rp0;
2076 
2077 typedef PACKED(struct) aci_gap_terminate_cp0_s {
2078   uint16_t Connection_Handle;
2079   uint8_t Reason;
2080 } aci_gap_terminate_cp0;
2081 
2082 typedef PACKED(struct) aci_gap_terminate_rp0_s {
2083   uint8_t Status;
2084 } aci_gap_terminate_rp0;
2085 
2086 typedef PACKED(struct) aci_gap_clear_security_db_rp0_s {
2087   uint8_t Status;
2088 } aci_gap_clear_security_db_rp0;
2089 
2090 typedef PACKED(struct) aci_gap_pairing_resp_cp0_s {
2091   uint16_t Connection_Handle;
2092   uint8_t Accept;
2093 } aci_gap_pairing_resp_cp0;
2094 
2095 typedef PACKED(struct) aci_gap_pairing_resp_rp0_s {
2096   uint8_t Status;
2097 } aci_gap_pairing_resp_rp0;
2098 
2099 typedef PACKED(struct) aci_gap_create_connection_cp0_s {
2100   uint8_t Initiating_PHY;
2101   uint8_t Peer_Address_Type;
2102   uint8_t Peer_Address[6];
2103 } aci_gap_create_connection_cp0;
2104 
2105 typedef PACKED(struct) aci_gap_create_connection_rp0_s {
2106   uint8_t Status;
2107 } aci_gap_create_connection_rp0;
2108 
2109 typedef PACKED(struct) aci_gap_terminate_proc_cp0_s {
2110   uint8_t Procedure_Code;
2111 } aci_gap_terminate_proc_cp0;
2112 
2113 typedef PACKED(struct) aci_gap_terminate_proc_rp0_s {
2114   uint8_t Status;
2115 } aci_gap_terminate_proc_rp0;
2116 
2117 typedef PACKED(struct) aci_gap_start_connection_update_cp0_s {
2118   uint16_t Connection_Handle;
2119   uint16_t Connection_Interval_Min;
2120   uint16_t Connection_Interval_Max;
2121   uint16_t Max_Latency;
2122   uint16_t Supervision_Timeout;
2123   uint16_t Min_CE_Length;
2124   uint16_t Max_CE_Length;
2125 } aci_gap_start_connection_update_cp0;
2126 
2127 typedef PACKED(struct) aci_gap_start_connection_update_rp0_s {
2128   uint8_t Status;
2129 } aci_gap_start_connection_update_rp0;
2130 
2131 typedef PACKED(struct) aci_gap_resolve_private_addr_cp0_s {
2132   uint8_t Address[6];
2133 } aci_gap_resolve_private_addr_cp0;
2134 
2135 typedef PACKED(struct) aci_gap_resolve_private_addr_rp0_s {
2136   uint8_t Status;
2137   uint8_t Actual_Address[6];
2138 } aci_gap_resolve_private_addr_rp0;
2139 
2140 typedef PACKED(struct) aci_gap_get_bonded_devices_cp0_s {
2141   uint8_t Offset;
2142   uint8_t Max_Num_Of_Addresses;
2143 } aci_gap_get_bonded_devices_cp0;
2144 
2145 typedef PACKED(struct) aci_gap_get_bonded_devices_rp0_s {
2146   uint8_t Status;
2147   uint8_t Num_of_Addresses;
2148   packed_Bonded_Device_Entry_t Bonded_Device_Entry[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(packed_Bonded_Device_Entry_t)];
2149 } aci_gap_get_bonded_devices_rp0;
2150 
2151 typedef PACKED(struct) aci_gap_is_device_bonded_cp0_s {
2152   uint8_t Peer_Address_Type;
2153   uint8_t Peer_Address[6];
2154 } aci_gap_is_device_bonded_cp0;
2155 
2156 typedef PACKED(struct) aci_gap_is_device_bonded_rp0_s {
2157   uint8_t Status;
2158 } aci_gap_is_device_bonded_rp0;
2159 
2160 typedef PACKED(struct) aci_gap_numeric_comparison_value_confirm_yesno_cp0_s {
2161   uint16_t Connection_Handle;
2162   uint8_t Confirm_Yes_No;
2163 } aci_gap_numeric_comparison_value_confirm_yesno_cp0;
2164 
2165 typedef PACKED(struct) aci_gap_numeric_comparison_value_confirm_yesno_rp0_s {
2166   uint8_t Status;
2167 } aci_gap_numeric_comparison_value_confirm_yesno_rp0;
2168 
2169 typedef PACKED(struct) aci_gap_passkey_input_cp0_s {
2170   uint16_t Connection_Handle;
2171   uint8_t Input_Type;
2172 } aci_gap_passkey_input_cp0;
2173 
2174 typedef PACKED(struct) aci_gap_passkey_input_rp0_s {
2175   uint8_t Status;
2176 } aci_gap_passkey_input_rp0;
2177 
2178 typedef PACKED(struct) aci_gap_get_oob_data_cp0_s {
2179   uint8_t OOB_Data_Type;
2180 } aci_gap_get_oob_data_cp0;
2181 
2182 typedef PACKED(struct) aci_gap_get_oob_data_rp0_s {
2183   uint8_t Status;
2184   uint8_t Address_Type;
2185   uint8_t Address[6];
2186   uint8_t OOB_Data_Type;
2187   uint8_t OOB_Data_Len;
2188   uint8_t OOB_Data[16];
2189 } aci_gap_get_oob_data_rp0;
2190 
2191 typedef PACKED(struct) aci_gap_set_oob_data_cp0_s {
2192   uint8_t Device_Type;
2193   uint8_t Address_Type;
2194   uint8_t Address[6];
2195   uint8_t OOB_Data_Type;
2196   uint8_t OOB_Data_Len;
2197   uint8_t OOB_Data[16];
2198 } aci_gap_set_oob_data_cp0;
2199 
2200 typedef PACKED(struct) aci_gap_set_oob_data_rp0_s {
2201   uint8_t Status;
2202 } aci_gap_set_oob_data_rp0;
2203 
2204 typedef PACKED(struct) aci_gap_remove_bonded_device_cp0_s {
2205   uint8_t Peer_Identity_Address_Type;
2206   uint8_t Peer_Identity_Address[6];
2207 } aci_gap_remove_bonded_device_cp0;
2208 
2209 typedef PACKED(struct) aci_gap_remove_bonded_device_rp0_s {
2210   uint8_t Status;
2211 } aci_gap_remove_bonded_device_rp0;
2212 
2213 typedef PACKED(struct) aci_gap_set_advertising_configuration_cp0_s {
2214   uint8_t Advertising_Handle;
2215   uint8_t Discoverable_Mode;
2216   uint16_t Advertising_Event_Properties;
2217   uint32_t Primary_Advertising_Interval_Min;
2218   uint32_t Primary_Advertising_Interval_Max;
2219   uint8_t Primary_Advertising_Channel_Map;
2220   uint8_t Peer_Address_Type;
2221   uint8_t Peer_Address[6];
2222   uint8_t Advertising_Filter_Policy;
2223   int8_t Advertising_Tx_Power;
2224   uint8_t Primary_Advertising_PHY;
2225   uint8_t Secondary_Advertising_Max_Skip;
2226   uint8_t Secondary_Advertising_PHY;
2227   uint8_t Advertising_SID;
2228   uint8_t Scan_Request_Notification_Enable;
2229 } aci_gap_set_advertising_configuration_cp0;
2230 
2231 typedef PACKED(struct) aci_gap_set_advertising_configuration_rp0_s {
2232   uint8_t Status;
2233 } aci_gap_set_advertising_configuration_rp0;
2234 
2235 typedef PACKED(struct) aci_gap_set_advertising_enable_cp0_s {
2236   uint8_t Enable;
2237   uint8_t Number_of_Sets;
2238   packed_Advertising_Set_Parameters_t Advertising_Set_Parameters[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(packed_Advertising_Set_Parameters_t)];
2239 } aci_gap_set_advertising_enable_cp0;
2240 
2241 typedef PACKED(struct) aci_gap_set_advertising_enable_rp0_s {
2242   uint8_t Status;
2243 } aci_gap_set_advertising_enable_rp0;
2244 
2245 typedef PACKED(struct) aci_gap_set_advertising_data_nwk_cp0_s {
2246   uint8_t Advertising_Handle;
2247   uint8_t Operation;
2248   uint8_t Advertising_Data_Length;
2249   uint8_t Advertising_Data[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)];
2250 } aci_gap_set_advertising_data_nwk_cp0;
2251 
2252 typedef PACKED(struct) aci_gap_set_advertising_data_nwk_rp0_s {
2253   uint8_t Status;
2254 } aci_gap_set_advertising_data_nwk_rp0;
2255 
2256 typedef PACKED(struct) aci_gap_set_scan_response_data_nwk_cp0_s {
2257   uint8_t Advertising_Handle;
2258   uint8_t Operation;
2259   uint8_t Scan_Response_Data_Length;
2260   uint8_t Scan_Response_Data[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)];
2261 } aci_gap_set_scan_response_data_nwk_cp0;
2262 
2263 typedef PACKED(struct) aci_gap_set_scan_response_data_nwk_rp0_s {
2264   uint8_t Status;
2265 } aci_gap_set_scan_response_data_nwk_rp0;
2266 
2267 typedef PACKED(struct) aci_gap_set_scan_configuration_cp0_s {
2268   uint8_t Filter_Duplicates;
2269   uint8_t Scanning_Filter_Policy;
2270   uint8_t Scanning_PHY;
2271   uint8_t Scan_Type;
2272   uint16_t Scan_Interval;
2273   uint16_t Scan_Window;
2274 } aci_gap_set_scan_configuration_cp0;
2275 
2276 typedef PACKED(struct) aci_gap_set_scan_configuration_rp0_s {
2277   uint8_t Status;
2278 } aci_gap_set_scan_configuration_rp0;
2279 
2280 typedef PACKED(struct) aci_gap_set_connection_configuration_cp0_s {
2281   uint8_t Initiating_PHY;
2282   uint16_t Connection_Interval_Min;
2283   uint16_t Connection_Interval_Max;
2284   uint16_t Max_Latency;
2285   uint16_t Supervision_Timeout;
2286   uint16_t Min_CE_Length;
2287   uint16_t Max_CE_Length;
2288 } aci_gap_set_connection_configuration_cp0;
2289 
2290 typedef PACKED(struct) aci_gap_set_connection_configuration_rp0_s {
2291   uint8_t Status;
2292 } aci_gap_set_connection_configuration_rp0;
2293 
2294 typedef PACKED(struct) aci_gap_start_procedure_cp0_s {
2295   uint8_t Procedure_Code;
2296   uint8_t PHYs;
2297   uint16_t Duration;
2298   uint16_t Period;
2299 } aci_gap_start_procedure_cp0;
2300 
2301 typedef PACKED(struct) aci_gap_start_procedure_rp0_s {
2302   uint8_t Status;
2303 } aci_gap_start_procedure_rp0;
2304 
2305 typedef PACKED(struct) aci_gap_discover_name_cp0_s {
2306   uint8_t PHYs;
2307   uint8_t Peer_Address_Type;
2308   uint8_t Peer_Address[6];
2309 } aci_gap_discover_name_cp0;
2310 
2311 typedef PACKED(struct) aci_gap_discover_name_rp0_s {
2312   uint8_t Status;
2313 } aci_gap_discover_name_rp0;
2314 
2315 typedef PACKED(struct) aci_gap_add_devices_to_filter_accept_and_resolving_list_cp0_s {
2316   uint8_t Lists;
2317   uint8_t Clear_Lists;
2318   uint8_t Num_of_List_Entries;
2319   packed_List_Entry_t List_Entry[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(packed_List_Entry_t)];
2320 } aci_gap_add_devices_to_filter_accept_and_resolving_list_cp0;
2321 
2322 typedef PACKED(struct) aci_gap_add_devices_to_filter_accept_and_resolving_list_rp0_s {
2323   uint8_t Status;
2324 } aci_gap_add_devices_to_filter_accept_and_resolving_list_rp0;
2325 
2326 typedef PACKED(struct) aci_gap_configure_filter_accept_and_resolving_list_cp0_s {
2327   uint8_t Lists;
2328 } aci_gap_configure_filter_accept_and_resolving_list_cp0;
2329 
2330 typedef PACKED(struct) aci_gap_configure_filter_accept_and_resolving_list_rp0_s {
2331   uint8_t Status;
2332 } aci_gap_configure_filter_accept_and_resolving_list_rp0;
2333 
2334 typedef PACKED(struct) aci_gap_remove_advertising_set_cp0_s {
2335   uint8_t Advertising_Handle;
2336 } aci_gap_remove_advertising_set_cp0;
2337 
2338 typedef PACKED(struct) aci_gap_remove_advertising_set_rp0_s {
2339   uint8_t Status;
2340 } aci_gap_remove_advertising_set_rp0;
2341 
2342 typedef PACKED(struct) aci_gap_clear_advertising_sets_rp0_s {
2343   uint8_t Status;
2344 } aci_gap_clear_advertising_sets_rp0;
2345 
2346 typedef PACKED(struct) aci_gap_create_periodic_advertising_connection_cp0_s {
2347   uint8_t Advertising_Handle;
2348   uint8_t Subevent;
2349   uint8_t Initiator_Filter_Policy;
2350   uint8_t Own_Address_Type;
2351   uint8_t Peer_Address_Type;
2352   uint8_t Peer_Address[6];
2353   uint16_t Connection_Interval_Min;
2354   uint16_t Connection_Interval_Max;
2355   uint16_t Max_Latency;
2356   uint16_t Supervision_Timeout;
2357   uint16_t Min_CE_Length;
2358   uint16_t Max_CE_Length;
2359 } aci_gap_create_periodic_advertising_connection_cp0;
2360 
2361 typedef PACKED(struct) aci_gap_create_periodic_advertising_connection_rp0_s {
2362   uint8_t Status;
2363 } aci_gap_create_periodic_advertising_connection_rp0;
2364 
2365 typedef PACKED(struct) aci_gap_encrypt_adv_data_nwk_cp0_s {
2366   uint8_t Session_Key[16];
2367   uint8_t IV[8];
2368   uint8_t Data_Length;
2369   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 25)/sizeof(uint8_t)];
2370 } aci_gap_encrypt_adv_data_nwk_cp0;
2371 
2372 typedef PACKED(struct) aci_gap_encrypt_adv_data_nwk_rp0_s {
2373   uint8_t Status;
2374   uint8_t Encrypted_Data_Length;
2375   uint8_t Encrypted_Data[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)];
2376 } aci_gap_encrypt_adv_data_nwk_rp0;
2377 
2378 typedef PACKED(struct) aci_gap_decrypt_adv_data_nwk_cp0_s {
2379   uint8_t Session_Key[16];
2380   uint8_t IV[8];
2381   uint8_t Encrypted_Data_Length;
2382   uint8_t Encrypted_Data[(HCI_MAX_PAYLOAD_SIZE - 25)/sizeof(uint8_t)];
2383 } aci_gap_decrypt_adv_data_nwk_cp0;
2384 
2385 typedef PACKED(struct) aci_gap_decrypt_adv_data_nwk_rp0_s {
2386   uint8_t Status;
2387   uint8_t Decrypted_Data_Length;
2388   uint8_t Decrypted_Data[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint8_t)];
2389 } aci_gap_decrypt_adv_data_nwk_rp0;
2390 
2391 typedef PACKED(struct) aci_gatt_srv_profile_init_cp0_s {
2392   uint8_t Characteristics;
2393 } aci_gatt_srv_profile_init_cp0;
2394 
2395 typedef PACKED(struct) aci_gatt_srv_profile_init_rp0_s {
2396   uint8_t Status;
2397   uint16_t Service_Changed_Handle;
2398 } aci_gatt_srv_profile_init_rp0;
2399 
2400 typedef PACKED(struct) aci_gatt_srv_add_service_nwk_cp0_s {
2401   uint8_t Service_UUID_Type;
2402   packed_Service_UUID_t Service_UUID;
2403 } aci_gatt_srv_add_service_nwk_cp0;
2404 
2405 typedef PACKED(struct) aci_gatt_srv_add_service_nwk_cp1_s {
2406   uint8_t Service_Type;
2407   uint8_t Max_Attribute_Records;
2408 } aci_gatt_srv_add_service_nwk_cp1;
2409 
2410 typedef PACKED(struct) aci_gatt_srv_add_service_nwk_rp0_s {
2411   uint8_t Status;
2412   uint16_t Service_Handle;
2413 } aci_gatt_srv_add_service_nwk_rp0;
2414 
2415 typedef PACKED(struct) aci_gatt_srv_include_service_nwk_cp0_s {
2416   uint16_t Service_Handle;
2417   uint16_t Included_Service_Handle;
2418 } aci_gatt_srv_include_service_nwk_cp0;
2419 
2420 typedef PACKED(struct) aci_gatt_srv_include_service_nwk_rp0_s {
2421   uint8_t Status;
2422   uint16_t Include_Handle;
2423 } aci_gatt_srv_include_service_nwk_rp0;
2424 
2425 typedef PACKED(struct) aci_gatt_srv_add_char_nwk_cp0_s {
2426   uint16_t Service_Handle;
2427   uint8_t Char_UUID_Type;
2428   packed_Char_UUID_t Char_UUID;
2429 } aci_gatt_srv_add_char_nwk_cp0;
2430 
2431 typedef PACKED(struct) aci_gatt_srv_add_char_nwk_cp1_s {
2432   uint16_t Char_Value_Length;
2433   uint8_t Char_Properties;
2434   uint8_t Security_Permissions;
2435   uint8_t GATT_Evt_Mask;
2436   uint8_t Enc_Key_Size;
2437   uint8_t Is_Variable;
2438 } aci_gatt_srv_add_char_nwk_cp1;
2439 
2440 typedef PACKED(struct) aci_gatt_srv_add_char_nwk_rp0_s {
2441   uint8_t Status;
2442   uint16_t Char_Handle;
2443 } aci_gatt_srv_add_char_nwk_rp0;
2444 
2445 typedef PACKED(struct) aci_gatt_srv_add_char_desc_nwk_cp0_s {
2446   uint16_t Char_Handle;
2447   uint8_t Char_Desc_Uuid_Type;
2448   packed_Char_Desc_Uuid_t Char_Desc_Uuid;
2449 } aci_gatt_srv_add_char_desc_nwk_cp0;
2450 
2451 typedef PACKED(struct) aci_gatt_srv_add_char_desc_nwk_cp1_s {
2452   uint16_t Char_Desc_Value_Max_Len;
2453   uint16_t Char_Desc_Value_Length;
2454   uint8_t Char_Desc_Value[(HCI_MAX_PAYLOAD_SIZE - 4)/sizeof(uint8_t)];
2455 } aci_gatt_srv_add_char_desc_nwk_cp1;
2456 
2457 typedef PACKED(struct) aci_gatt_srv_add_char_desc_nwk_cp2_s {
2458   uint8_t Security_Permissions;
2459   uint8_t Access_Permissions;
2460   uint8_t GATT_Evt_Mask;
2461   uint8_t Enc_Key_Size;
2462   uint8_t Is_Variable;
2463 } aci_gatt_srv_add_char_desc_nwk_cp2;
2464 
2465 typedef PACKED(struct) aci_gatt_srv_add_char_desc_nwk_rp0_s {
2466   uint8_t Status;
2467   uint16_t Char_Desc_Handle;
2468 } aci_gatt_srv_add_char_desc_nwk_rp0;
2469 
2470 typedef PACKED(struct) aci_gatt_srv_write_handle_value_nwk_cp0_s {
2471   uint16_t Attr_Handle;
2472   uint16_t Val_Offset;
2473   uint16_t Value_Length;
2474   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)];
2475 } aci_gatt_srv_write_handle_value_nwk_cp0;
2476 
2477 typedef PACKED(struct) aci_gatt_srv_write_handle_value_nwk_rp0_s {
2478   uint8_t Status;
2479 } aci_gatt_srv_write_handle_value_nwk_rp0;
2480 
2481 typedef PACKED(struct) aci_gatt_srv_rm_char_nwk_cp0_s {
2482   uint16_t Char_Handle;
2483 } aci_gatt_srv_rm_char_nwk_cp0;
2484 
2485 typedef PACKED(struct) aci_gatt_srv_rm_char_nwk_rp0_s {
2486   uint8_t Status;
2487 } aci_gatt_srv_rm_char_nwk_rp0;
2488 
2489 typedef PACKED(struct) aci_gatt_srv_rm_service_nwk_cp0_s {
2490   uint16_t Serv_Handle;
2491 } aci_gatt_srv_rm_service_nwk_cp0;
2492 
2493 typedef PACKED(struct) aci_gatt_srv_rm_service_nwk_rp0_s {
2494   uint8_t Status;
2495 } aci_gatt_srv_rm_service_nwk_rp0;
2496 
2497 typedef PACKED(struct) aci_gatt_srv_rm_include_service_nwk_cp0_s {
2498   uint16_t Include_Handle;
2499 } aci_gatt_srv_rm_include_service_nwk_cp0;
2500 
2501 typedef PACKED(struct) aci_gatt_srv_rm_include_service_nwk_rp0_s {
2502   uint8_t Status;
2503 } aci_gatt_srv_rm_include_service_nwk_rp0;
2504 
2505 typedef PACKED(struct) aci_gatt_set_event_mask_cp0_s {
2506   uint32_t GATT_Evt_Mask;
2507 } aci_gatt_set_event_mask_cp0;
2508 
2509 typedef PACKED(struct) aci_gatt_set_event_mask_rp0_s {
2510   uint8_t Status;
2511 } aci_gatt_set_event_mask_rp0;
2512 
2513 typedef PACKED(struct) aci_gatt_clt_exchange_config_cp0_s {
2514   uint16_t Connection_Handle;
2515 } aci_gatt_clt_exchange_config_cp0;
2516 
2517 typedef PACKED(struct) aci_gatt_clt_exchange_config_rp0_s {
2518   uint8_t Status;
2519 } aci_gatt_clt_exchange_config_rp0;
2520 
2521 typedef PACKED(struct) aci_gatt_clt_prepare_write_req_cp0_s {
2522   uint16_t Connection_Handle;
2523   uint16_t CID;
2524   uint16_t Attr_Handle;
2525   uint16_t Val_Offset;
2526   uint16_t Attribute_Val_Length;
2527   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)];
2528 } aci_gatt_clt_prepare_write_req_cp0;
2529 
2530 typedef PACKED(struct) aci_gatt_clt_prepare_write_req_rp0_s {
2531   uint8_t Status;
2532 } aci_gatt_clt_prepare_write_req_rp0;
2533 
2534 typedef PACKED(struct) aci_gatt_clt_execute_write_req_cp0_s {
2535   uint16_t Connection_Handle;
2536   uint16_t CID;
2537   uint8_t Execute;
2538 } aci_gatt_clt_execute_write_req_cp0;
2539 
2540 typedef PACKED(struct) aci_gatt_clt_execute_write_req_rp0_s {
2541   uint8_t Status;
2542 } aci_gatt_clt_execute_write_req_rp0;
2543 
2544 typedef PACKED(struct) aci_gatt_clt_disc_all_primary_services_cp0_s {
2545   uint16_t Connection_Handle;
2546   uint16_t CID;
2547 } aci_gatt_clt_disc_all_primary_services_cp0;
2548 
2549 typedef PACKED(struct) aci_gatt_clt_disc_all_primary_services_rp0_s {
2550   uint8_t Status;
2551 } aci_gatt_clt_disc_all_primary_services_rp0;
2552 
2553 typedef PACKED(struct) aci_gatt_clt_disc_primary_service_by_uuid_cp0_s {
2554   uint16_t Connection_Handle;
2555   uint16_t CID;
2556   uint8_t UUID_Type;
2557   packed_UUID_t UUID;
2558 } aci_gatt_clt_disc_primary_service_by_uuid_cp0;
2559 
2560 typedef PACKED(struct) aci_gatt_clt_disc_primary_service_by_uuid_rp0_s {
2561   uint8_t Status;
2562 } aci_gatt_clt_disc_primary_service_by_uuid_rp0;
2563 
2564 typedef PACKED(struct) aci_gatt_clt_find_included_services_cp0_s {
2565   uint16_t Connection_Handle;
2566   uint16_t CID;
2567   uint16_t Start_Handle;
2568   uint16_t End_Handle;
2569 } aci_gatt_clt_find_included_services_cp0;
2570 
2571 typedef PACKED(struct) aci_gatt_clt_find_included_services_rp0_s {
2572   uint8_t Status;
2573 } aci_gatt_clt_find_included_services_rp0;
2574 
2575 typedef PACKED(struct) aci_gatt_clt_disc_all_char_of_service_cp0_s {
2576   uint16_t Connection_Handle;
2577   uint16_t CID;
2578   uint16_t Start_Handle;
2579   uint16_t End_Handle;
2580 } aci_gatt_clt_disc_all_char_of_service_cp0;
2581 
2582 typedef PACKED(struct) aci_gatt_clt_disc_all_char_of_service_rp0_s {
2583   uint8_t Status;
2584 } aci_gatt_clt_disc_all_char_of_service_rp0;
2585 
2586 typedef PACKED(struct) aci_gatt_clt_disc_char_by_uuid_cp0_s {
2587   uint16_t Connection_Handle;
2588   uint16_t CID;
2589   uint16_t Start_Handle;
2590   uint16_t End_Handle;
2591   uint8_t UUID_Type;
2592   packed_UUID_t UUID;
2593 } aci_gatt_clt_disc_char_by_uuid_cp0;
2594 
2595 typedef PACKED(struct) aci_gatt_clt_disc_char_by_uuid_rp0_s {
2596   uint8_t Status;
2597 } aci_gatt_clt_disc_char_by_uuid_rp0;
2598 
2599 typedef PACKED(struct) aci_gatt_clt_disc_all_char_desc_cp0_s {
2600   uint16_t Connection_Handle;
2601   uint16_t CID;
2602   uint16_t Char_Handle;
2603   uint16_t End_Handle;
2604 } aci_gatt_clt_disc_all_char_desc_cp0;
2605 
2606 typedef PACKED(struct) aci_gatt_clt_disc_all_char_desc_rp0_s {
2607   uint8_t Status;
2608 } aci_gatt_clt_disc_all_char_desc_rp0;
2609 
2610 typedef PACKED(struct) aci_gatt_clt_read_cp0_s {
2611   uint16_t Connection_Handle;
2612   uint16_t CID;
2613   uint16_t Attr_Handle;
2614 } aci_gatt_clt_read_cp0;
2615 
2616 typedef PACKED(struct) aci_gatt_clt_read_rp0_s {
2617   uint8_t Status;
2618 } aci_gatt_clt_read_rp0;
2619 
2620 typedef PACKED(struct) aci_gatt_clt_read_using_char_uuid_cp0_s {
2621   uint16_t Connection_Handle;
2622   uint16_t CID;
2623   uint16_t Start_Handle;
2624   uint16_t End_Handle;
2625   uint8_t UUID_Type;
2626   packed_UUID_t UUID;
2627 } aci_gatt_clt_read_using_char_uuid_cp0;
2628 
2629 typedef PACKED(struct) aci_gatt_clt_read_using_char_uuid_rp0_s {
2630   uint8_t Status;
2631 } aci_gatt_clt_read_using_char_uuid_rp0;
2632 
2633 typedef PACKED(struct) aci_gatt_clt_read_long_cp0_s {
2634   uint16_t Connection_Handle;
2635   uint16_t CID;
2636   uint16_t Attr_Handle;
2637   uint16_t Val_Offset;
2638 } aci_gatt_clt_read_long_cp0;
2639 
2640 typedef PACKED(struct) aci_gatt_clt_read_long_rp0_s {
2641   uint8_t Status;
2642 } aci_gatt_clt_read_long_rp0;
2643 
2644 typedef PACKED(struct) aci_gatt_clt_read_multiple_char_value_cp0_s {
2645   uint16_t Connection_Handle;
2646   uint16_t CID;
2647   uint8_t Number_of_Handles;
2648   uint16_t Handle[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint16_t)];
2649 } aci_gatt_clt_read_multiple_char_value_cp0;
2650 
2651 typedef PACKED(struct) aci_gatt_clt_read_multiple_char_value_rp0_s {
2652   uint8_t Status;
2653 } aci_gatt_clt_read_multiple_char_value_rp0;
2654 
2655 typedef PACKED(struct) aci_gatt_clt_write_nwk_cp0_s {
2656   uint16_t Connection_Handle;
2657   uint16_t CID;
2658   uint16_t Attr_Handle;
2659   uint16_t Attribute_Val_Length;
2660   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)];
2661 } aci_gatt_clt_write_nwk_cp0;
2662 
2663 typedef PACKED(struct) aci_gatt_clt_write_nwk_rp0_s {
2664   uint8_t Status;
2665 } aci_gatt_clt_write_nwk_rp0;
2666 
2667 typedef PACKED(struct) aci_gatt_clt_write_long_nwk_cp0_s {
2668   uint16_t Connection_Handle;
2669   uint16_t CID;
2670   uint16_t Attr_Handle;
2671   uint16_t Val_Offset;
2672   uint16_t Attribute_Val_Length;
2673   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)];
2674 } aci_gatt_clt_write_long_nwk_cp0;
2675 
2676 typedef PACKED(struct) aci_gatt_clt_write_long_nwk_rp0_s {
2677   uint8_t Status;
2678 } aci_gatt_clt_write_long_nwk_rp0;
2679 
2680 typedef PACKED(struct) aci_gatt_clt_write_char_reliable_nwk_cp0_s {
2681   uint16_t Connection_Handle;
2682   uint16_t CID;
2683   uint16_t Attr_Handle;
2684   uint16_t Val_Offset;
2685   uint16_t Attribute_Val_Length;
2686   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)];
2687 } aci_gatt_clt_write_char_reliable_nwk_cp0;
2688 
2689 typedef PACKED(struct) aci_gatt_clt_write_char_reliable_nwk_rp0_s {
2690   uint8_t Status;
2691 } aci_gatt_clt_write_char_reliable_nwk_rp0;
2692 
2693 typedef PACKED(struct) aci_gatt_clt_write_without_resp_cp0_s {
2694   uint16_t Connection_Handle;
2695   uint16_t CID;
2696   uint16_t Attr_Handle;
2697   uint16_t Attribute_Val_Length;
2698   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)];
2699 } aci_gatt_clt_write_without_resp_cp0;
2700 
2701 typedef PACKED(struct) aci_gatt_clt_write_without_resp_rp0_s {
2702   uint8_t Status;
2703 } aci_gatt_clt_write_without_resp_rp0;
2704 
2705 typedef PACKED(struct) aci_gatt_clt_signed_write_without_resp_cp0_s {
2706   uint16_t Connection_Handle;
2707   uint16_t Attr_Handle;
2708   uint16_t Attribute_Val_Length;
2709   uint8_t Attribute_Val[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)];
2710 } aci_gatt_clt_signed_write_without_resp_cp0;
2711 
2712 typedef PACKED(struct) aci_gatt_clt_signed_write_without_resp_rp0_s {
2713   uint8_t Status;
2714 } aci_gatt_clt_signed_write_without_resp_rp0;
2715 
2716 typedef PACKED(struct) aci_gatt_clt_confirm_indication_cp0_s {
2717   uint16_t Connection_Handle;
2718   uint16_t CID;
2719 } aci_gatt_clt_confirm_indication_cp0;
2720 
2721 typedef PACKED(struct) aci_gatt_clt_confirm_indication_rp0_s {
2722   uint8_t Status;
2723 } aci_gatt_clt_confirm_indication_rp0;
2724 
2725 typedef PACKED(struct) aci_gatt_srv_set_security_permission_nwk_cp0_s {
2726   uint16_t Attr_Handle;
2727   uint8_t Security_Permissions;
2728 } aci_gatt_srv_set_security_permission_nwk_cp0;
2729 
2730 typedef PACKED(struct) aci_gatt_srv_set_security_permission_nwk_rp0_s {
2731   uint8_t Status;
2732 } aci_gatt_srv_set_security_permission_nwk_rp0;
2733 
2734 typedef PACKED(struct) aci_gatt_srv_read_handle_value_nwk_cp0_s {
2735   uint16_t Attr_Handle;
2736   uint16_t Offset;
2737   uint16_t Value_Length_Requested;
2738 } aci_gatt_srv_read_handle_value_nwk_cp0;
2739 
2740 typedef PACKED(struct) aci_gatt_srv_read_handle_value_nwk_rp0_s {
2741   uint8_t Status;
2742   uint16_t Length;
2743   uint16_t Value_Length;
2744   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint8_t)];
2745 } aci_gatt_srv_read_handle_value_nwk_rp0;
2746 
2747 typedef PACKED(struct) aci_gatt_srv_set_access_permission_nwk_cp0_s {
2748   uint16_t Attr_Handle;
2749   uint8_t Access_Permissions;
2750 } aci_gatt_srv_set_access_permission_nwk_cp0;
2751 
2752 typedef PACKED(struct) aci_gatt_srv_set_access_permission_nwk_rp0_s {
2753   uint8_t Status;
2754 } aci_gatt_srv_set_access_permission_nwk_rp0;
2755 
2756 typedef PACKED(struct) aci_gatt_srv_notify_cp0_s {
2757   uint16_t Connection_Handle;
2758   uint16_t CID;
2759   uint16_t Attr_Handle;
2760   uint8_t Flags;
2761   uint16_t Val_Length;
2762   uint8_t Val[(HCI_MAX_PAYLOAD_SIZE - 9)/sizeof(uint8_t)];
2763 } aci_gatt_srv_notify_cp0;
2764 
2765 typedef PACKED(struct) aci_gatt_srv_notify_rp0_s {
2766   uint8_t Status;
2767 } aci_gatt_srv_notify_rp0;
2768 
2769 typedef PACKED(struct) aci_gatt_srv_exec_write_resp_nwk_cp0_s {
2770   uint16_t Conn_Handle;
2771   uint16_t CID;
2772   uint8_t Exec;
2773 } aci_gatt_srv_exec_write_resp_nwk_cp0;
2774 
2775 typedef PACKED(struct) aci_gatt_srv_exec_write_resp_nwk_rp0_s {
2776   uint8_t Status;
2777 } aci_gatt_srv_exec_write_resp_nwk_rp0;
2778 
2779 typedef PACKED(struct) aci_gatt_srv_authorize_resp_nwk_cp0_s {
2780   uint16_t Conn_Handle;
2781   uint16_t CID;
2782   uint16_t Attr_Handle;
2783   uint8_t Operation_Type;
2784   uint8_t Error_Code;
2785   uint16_t Attr_Val_Offset;
2786   uint16_t Data_Length;
2787   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 12)/sizeof(uint8_t)];
2788 } aci_gatt_srv_authorize_resp_nwk_cp0;
2789 
2790 typedef PACKED(struct) aci_gatt_srv_authorize_resp_nwk_rp0_s {
2791   uint8_t Status;
2792 } aci_gatt_srv_authorize_resp_nwk_rp0;
2793 
2794 typedef PACKED(struct) aci_gatt_srv_read_prepare_queue_nwk_cp0_s {
2795   uint16_t Conn_Handle;
2796   uint8_t Item_Index;
2797 } aci_gatt_srv_read_prepare_queue_nwk_cp0;
2798 
2799 typedef PACKED(struct) aci_gatt_srv_read_prepare_queue_nwk_rp0_s {
2800   uint8_t Status;
2801   uint16_t Attr_Handle;
2802   uint16_t Value_Offset;
2803   uint16_t Value_Length;
2804   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint8_t)];
2805 } aci_gatt_srv_read_prepare_queue_nwk_rp0;
2806 
2807 typedef PACKED(struct) aci_gatt_srv_write_multiple_instance_handle_value_cp0_s {
2808   uint16_t Connection_Handle;
2809   uint16_t Attr_Handle;
2810   uint16_t Value_Length;
2811   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)];
2812 } aci_gatt_srv_write_multiple_instance_handle_value_cp0;
2813 
2814 typedef PACKED(struct) aci_gatt_srv_write_multiple_instance_handle_value_rp0_s {
2815   uint8_t Status;
2816 } aci_gatt_srv_write_multiple_instance_handle_value_rp0;
2817 
2818 typedef PACKED(struct) aci_gatt_srv_read_multiple_instance_handle_value_nwk_cp0_s {
2819   uint16_t Connection_Handle;
2820   uint16_t Attr_Handle;
2821 } aci_gatt_srv_read_multiple_instance_handle_value_nwk_cp0;
2822 
2823 typedef PACKED(struct) aci_gatt_srv_read_multiple_instance_handle_value_nwk_rp0_s {
2824   uint8_t Status;
2825   uint16_t Value_Length;
2826   uint8_t Value[(HCI_MAX_PAYLOAD_SIZE - 3)/sizeof(uint8_t)];
2827 } aci_gatt_srv_read_multiple_instance_handle_value_nwk_rp0;
2828 
2829 typedef PACKED(struct) aci_gatt_srv_multi_notify_cp0_s {
2830   uint16_t Connection_Handle;
2831   uint16_t CID;
2832   uint8_t Flags;
2833   uint8_t Num_Of_Attr;
2834   packed_Gatt_Srv_Notify_Attr_t Gatt_Srv_Notify_Attr[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(packed_Gatt_Srv_Notify_Attr_t)];
2835 } aci_gatt_srv_multi_notify_cp0;
2836 
2837 typedef PACKED(struct) aci_gatt_srv_multi_notify_rp0_s {
2838   uint8_t Status;
2839 } aci_gatt_srv_multi_notify_rp0;
2840 
2841 typedef PACKED(struct) aci_gatt_clt_read_multiple_var_len_char_value_cp0_s {
2842   uint16_t Connection_Handle;
2843   uint16_t CID;
2844   uint8_t Number_of_Handles;
2845   uint16_t Handle[(HCI_MAX_PAYLOAD_SIZE - 5)/sizeof(uint16_t)];
2846 } aci_gatt_clt_read_multiple_var_len_char_value_cp0;
2847 
2848 typedef PACKED(struct) aci_gatt_clt_read_multiple_var_len_char_value_rp0_s {
2849   uint8_t Status;
2850 } aci_gatt_clt_read_multiple_var_len_char_value_rp0;
2851 
2852 typedef PACKED(struct) aci_l2cap_connection_parameter_update_req_cp0_s {
2853   uint16_t Connection_Handle;
2854   uint16_t Connection_Interval_Min;
2855   uint16_t Connection_Interval_Max;
2856   uint16_t Peripheral_Latency;
2857   uint16_t Timeout_Multiplier;
2858 } aci_l2cap_connection_parameter_update_req_cp0;
2859 
2860 typedef PACKED(struct) aci_l2cap_connection_parameter_update_req_rp0_s {
2861   uint8_t Status;
2862 } aci_l2cap_connection_parameter_update_req_rp0;
2863 
2864 typedef PACKED(struct) aci_l2cap_connection_parameter_update_resp_cp0_s {
2865   uint16_t Connection_Handle;
2866   uint16_t Connection_Interval_Min;
2867   uint16_t Connection_Interval_Max;
2868   uint16_t Peripheral_Latency;
2869   uint16_t Timeout_Multiplier;
2870   uint16_t Min_CE_Length;
2871   uint16_t Max_CE_Length;
2872   uint8_t Identifier;
2873   uint8_t Accept;
2874 } aci_l2cap_connection_parameter_update_resp_cp0;
2875 
2876 typedef PACKED(struct) aci_l2cap_connection_parameter_update_resp_rp0_s {
2877   uint8_t Status;
2878 } aci_l2cap_connection_parameter_update_resp_rp0;
2879 
2880 typedef PACKED(struct) aci_l2cap_cos_connection_req_cp0_s {
2881   uint16_t Connection_Handle;
2882   uint16_t SPSM;
2883   uint16_t MTU;
2884   uint16_t MPS;
2885   uint8_t Channel_Type;
2886   uint8_t CID_Count;
2887 } aci_l2cap_cos_connection_req_cp0;
2888 
2889 typedef PACKED(struct) aci_l2cap_cos_connection_req_rp0_s {
2890   uint8_t Status;
2891 } aci_l2cap_cos_connection_req_rp0;
2892 
2893 typedef PACKED(struct) aci_l2cap_cos_connection_resp_cp0_s {
2894   uint16_t Connection_Handle;
2895   uint8_t Identifier;
2896   uint16_t MTU;
2897   uint16_t MPS;
2898   uint16_t Result;
2899   uint8_t CID_Count;
2900 } aci_l2cap_cos_connection_resp_cp0;
2901 
2902 typedef PACKED(struct) aci_l2cap_cos_connection_resp_rp0_s {
2903   uint8_t Status;
2904   uint8_t CID_Count;
2905   uint16_t CID[(HCI_MAX_PAYLOAD_SIZE - 2)/sizeof(uint16_t)];
2906 } aci_l2cap_cos_connection_resp_rp0;
2907 
2908 typedef PACKED(struct) aci_l2cap_cos_disconnect_req_cp0_s {
2909   uint16_t Connection_Handle;
2910   uint16_t CID;
2911 } aci_l2cap_cos_disconnect_req_cp0;
2912 
2913 typedef PACKED(struct) aci_l2cap_cos_disconnect_req_rp0_s {
2914   uint8_t Status;
2915 } aci_l2cap_cos_disconnect_req_rp0;
2916 
2917 typedef PACKED(struct) aci_l2cap_cos_sdu_data_transmit_cp0_s {
2918   uint16_t Connection_Handle;
2919   uint16_t CID;
2920   uint16_t SDU_Length;
2921   uint8_t SDU_Data[(HCI_MAX_PAYLOAD_SIZE - 6)/sizeof(uint8_t)];
2922 } aci_l2cap_cos_sdu_data_transmit_cp0;
2923 
2924 typedef PACKED(struct) aci_l2cap_cos_sdu_data_transmit_rp0_s {
2925   uint8_t Status;
2926 } aci_l2cap_cos_sdu_data_transmit_rp0;
2927 
2928 typedef PACKED(struct) aci_l2cap_cos_reconfigure_req_cp0_s {
2929   uint16_t Connection_Handle;
2930   uint16_t MTU;
2931   uint16_t MPS;
2932   uint8_t CID_Count;
2933   uint16_t CID[(HCI_MAX_PAYLOAD_SIZE - 7)/sizeof(uint16_t)];
2934 } aci_l2cap_cos_reconfigure_req_cp0;
2935 
2936 typedef PACKED(struct) aci_l2cap_cos_reconfigure_req_rp0_s {
2937   uint8_t Status;
2938 } aci_l2cap_cos_reconfigure_req_rp0;
2939 
2940 typedef PACKED(struct) aci_l2cap_cos_reconfigure_resp_cp0_s {
2941   uint16_t Connection_Handle;
2942   uint8_t Identifier;
2943   uint16_t Result;
2944 } aci_l2cap_cos_reconfigure_resp_cp0;
2945 
2946 typedef PACKED(struct) aci_l2cap_cos_reconfigure_resp_rp0_s {
2947   uint8_t Status;
2948 } aci_l2cap_cos_reconfigure_resp_rp0;
2949 
2950 typedef PACKED(struct) aci_test_tx_notification_start_cp0_s {
2951   uint16_t Connection_Handle;
2952   uint16_t Service_Handle;
2953   uint16_t Char_Handle;
2954   uint16_t Value_Length;
2955 } aci_test_tx_notification_start_cp0;
2956 
2957 typedef PACKED(struct) aci_test_tx_notification_start_rp0_s {
2958   uint8_t Status;
2959 } aci_test_tx_notification_start_rp0;
2960 
2961 typedef PACKED(struct) aci_test_tx_write_command_start_cp0_s {
2962   uint16_t Connection_Handle;
2963   uint16_t Attr_Handle;
2964   uint16_t Value_Length;
2965 } aci_test_tx_write_command_start_cp0;
2966 
2967 typedef PACKED(struct) aci_test_tx_write_command_start_rp0_s {
2968   uint8_t Status;
2969 } aci_test_tx_write_command_start_rp0;
2970 
2971 typedef PACKED(struct) aci_test_rx_start_cp0_s {
2972   uint16_t Connection_Handle;
2973   uint16_t Attr_Handle;
2974   uint8_t Notifications_WriteCmds;
2975 } aci_test_rx_start_cp0;
2976 
2977 typedef PACKED(struct) aci_test_rx_start_rp0_s {
2978   uint8_t Status;
2979 } aci_test_rx_start_rp0;
2980 
2981 typedef PACKED(struct) aci_test_stop_cp0_s {
2982   uint8_t TX_RX;
2983 } aci_test_stop_cp0;
2984 
2985 typedef PACKED(struct) aci_test_stop_rp0_s {
2986   uint8_t Status;
2987 } aci_test_stop_rp0;
2988 
2989 typedef PACKED(struct) aci_test_report_rp0_s {
2990   uint8_t Status;
2991   uint32_t TX_Packets;
2992   uint32_t RX_Packets;
2993   uint16_t RX_Data_Length;
2994   uint32_t RX_Sequence_Errors;
2995 } aci_test_report_rp0;
2996 
2997 typedef PACKED(struct) aci_blue_initialized_event_rp0_s {
2998   uint8_t Reason_Code;
2999 } aci_blue_initialized_event_rp0;
3000 
3001 typedef PACKED(struct) aci_blue_crash_info_event_rp0_s {
3002   uint8_t Crash_Type;
3003   uint32_t SP;
3004   uint32_t R0;
3005   uint32_t R1;
3006   uint32_t R2;
3007   uint32_t R3;
3008   uint32_t R12;
3009   uint32_t LR;
3010   uint32_t PC;
3011   uint32_t xPSR;
3012   uint8_t Debug_Data_Length;
3013   uint8_t Debug_Data[(HCI_MAX_PAYLOAD_SIZE - 38)/sizeof(uint8_t)];
3014 } aci_blue_crash_info_event_rp0;
3015 
3016 typedef PACKED(struct) aci_hal_le_test_end_event_rp0_s {
3017   uint16_t Number_Of_Packets;
3018 } aci_hal_le_test_end_event_rp0;
3019 
3020 typedef PACKED(struct) aci_l2cap_cos_sdu_data_rx_nwk_event_rp0_s {
3021   uint16_t Connection_Handle;
3022   uint16_t CID;
3023   uint16_t RX_Credit_Balance;
3024   uint16_t SDU_Length;
3025   uint8_t SDU_Data[(HCI_MAX_PAYLOAD_SIZE - 8)/sizeof(uint8_t)];
3026 } aci_l2cap_cos_sdu_data_rx_nwk_event_rp0;
3027 
3028 typedef PACKED(struct) aci_gatt_srv_authorize_nwk_event_rp0_s {
3029   uint16_t Conn_Handle;
3030   uint16_t CID;
3031   uint16_t Attr_Handle;
3032   uint8_t Operation_Type;
3033   uint16_t Attr_Val_Offset;
3034   uint8_t Data_Length;
3035   uint8_t Data[(HCI_MAX_PAYLOAD_SIZE - 10)/sizeof(uint8_t)];
3036 } aci_gatt_srv_authorize_nwk_event_rp0;
3037 
3038 uint16_t hci_disconnect_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3039 uint16_t hci_read_remote_version_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3040 uint16_t hci_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3041 uint16_t hci_read_connection_accept_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3042 uint16_t hci_write_connection_accept_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3043 uint16_t hci_read_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3044 uint16_t hci_read_afh_channel_assessment_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3045 uint16_t hci_write_afh_channel_assessment_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3046 uint16_t hci_set_event_mask_page_2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3047 uint16_t hci_read_authenticated_payload_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3048 uint16_t hci_write_authenticated_payload_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3049 uint16_t hci_read_local_version_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3050 uint16_t hci_read_local_supported_commands_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3051 uint16_t hci_read_local_supported_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3052 uint16_t hci_read_bd_addr_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3053 uint16_t hci_read_rssi_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3054 uint16_t hci_le_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3055 uint16_t hci_le_read_buffer_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3056 uint16_t hci_le_read_local_supported_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3057 uint16_t hci_le_set_random_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3058 uint16_t hci_le_set_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3059 uint16_t hci_le_read_advertising_physical_channel_tx_power_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3060 uint16_t hci_le_set_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3061 uint16_t hci_le_set_scan_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3062 uint16_t hci_le_set_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3063 uint16_t hci_le_set_scan_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3064 uint16_t hci_le_set_scan_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3065 uint16_t hci_le_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3066 uint16_t hci_le_create_connection_cancel_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3067 uint16_t hci_le_read_filter_accept_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3068 uint16_t hci_le_clear_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3069 uint16_t hci_le_add_device_to_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3070 uint16_t hci_le_remove_device_from_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3071 uint16_t hci_le_connection_update_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3072 uint16_t hci_le_set_host_channel_classification_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3073 uint16_t hci_le_read_channel_map_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3074 uint16_t hci_le_read_remote_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3075 uint16_t hci_le_encrypt_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3076 uint16_t hci_le_rand_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3077 uint16_t hci_le_enable_encryption_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3078 uint16_t hci_le_long_term_key_request_reply_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3079 uint16_t hci_le_long_term_key_request_negative_reply_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3080 uint16_t hci_le_read_supported_states_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3081 uint16_t hci_le_receiver_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3082 uint16_t hci_le_transmitter_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3083 uint16_t hci_le_test_end_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3084 uint16_t hci_le_set_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3085 uint16_t hci_le_read_suggested_default_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3086 uint16_t hci_le_write_suggested_default_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3087 uint16_t hci_le_read_local_p256_public_key_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3088 uint16_t hci_le_generate_dhkey_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3089 uint16_t hci_le_add_device_to_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3090 uint16_t hci_le_remove_device_from_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3091 uint16_t hci_le_clear_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3092 uint16_t hci_le_read_resolving_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3093 uint16_t hci_le_read_peer_resolvable_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3094 uint16_t hci_le_read_local_resolvable_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3095 uint16_t hci_le_set_address_resolution_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3096 uint16_t hci_le_set_resolvable_private_address_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3097 uint16_t hci_le_read_maximum_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3098 uint16_t hci_le_read_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3099 uint16_t hci_le_set_default_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3100 uint16_t hci_le_set_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3101 uint16_t hci_le_receiver_test_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3102 uint16_t hci_le_transmitter_test_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3103 uint16_t hci_le_set_advertising_set_random_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3104 uint16_t hci_le_set_extended_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3105 uint16_t hci_le_set_extended_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3106 uint16_t hci_le_set_extended_scan_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3107 uint16_t hci_le_set_extended_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3108 uint16_t hci_le_read_maximum_advertising_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3109 uint16_t hci_le_read_number_of_supported_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3110 uint16_t hci_le_remove_advertising_set_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3111 uint16_t hci_le_clear_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3112 uint16_t hci_le_set_periodic_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3113 uint16_t hci_le_set_periodic_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3114 uint16_t hci_le_set_periodic_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3115 uint16_t hci_le_set_extended_scan_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3116 uint16_t hci_le_set_extended_scan_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3117 uint16_t hci_le_extended_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3118 uint16_t hci_le_periodic_advertising_create_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3119 uint16_t hci_le_periodic_advertising_create_sync_cancel_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3120 uint16_t hci_le_periodic_advertising_terminate_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3121 uint16_t hci_le_add_device_to_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3122 uint16_t hci_le_remove_device_from_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3123 uint16_t hci_le_clear_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3124 uint16_t hci_le_read_periodic_advertiser_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3125 uint16_t hci_le_read_transmit_power_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3126 uint16_t hci_le_read_rf_path_compensation_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3127 uint16_t hci_le_write_rf_path_compensation_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3128 uint16_t hci_le_set_privacy_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3129 uint16_t hci_le_receiver_test_v3_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3130 uint16_t hci_le_transmitter_test_v3_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3131 uint16_t hci_le_set_connectionless_cte_transmit_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3132 uint16_t hci_le_set_connectionless_cte_transmit_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3133 uint16_t hci_le_set_connectionless_iq_sampling_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3134 uint16_t hci_le_set_connection_cte_receive_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3135 uint16_t hci_le_set_connection_cte_transmit_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3136 uint16_t hci_le_connection_cte_request_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3137 uint16_t hci_le_connection_cte_response_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3138 uint16_t hci_le_read_antenna_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3139 uint16_t hci_le_set_periodic_advertising_receive_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3140 uint16_t hci_le_periodic_advertising_sync_transfer_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3141 uint16_t hci_le_periodic_advertising_set_info_transfer_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3142 uint16_t hci_le_set_periodic_advertising_sync_transfer_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3143 uint16_t hci_le_set_default_periodic_advertising_sync_transfer_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3144 uint16_t hci_le_read_buffer_size_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3145 uint16_t hci_le_read_iso_tx_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3146 uint16_t hci_le_set_cig_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3147 uint16_t hci_le_set_cig_parameters_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3148 uint16_t hci_le_create_cis_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3149 uint16_t hci_le_remove_cig_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3150 uint16_t hci_le_accept_cis_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3151 uint16_t hci_le_reject_cis_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3152 uint16_t hci_le_create_big_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3153 uint16_t hci_le_create_big_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3154 uint16_t hci_le_terminate_big_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3155 uint16_t hci_le_big_create_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3156 uint16_t hci_le_big_terminate_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3157 uint16_t hci_le_request_peer_sca_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3158 uint16_t hci_le_setup_iso_data_path_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3159 uint16_t hci_le_remove_iso_data_path_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3160 uint16_t hci_le_iso_transmit_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3161 uint16_t hci_le_iso_receive_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3162 uint16_t hci_le_iso_read_test_counters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3163 uint16_t hci_le_iso_test_end_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3164 uint16_t hci_le_set_host_feature_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3165 uint16_t hci_le_read_iso_link_quality_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3166 uint16_t hci_le_enhanced_read_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3167 uint16_t hci_le_read_remote_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3168 uint16_t hci_le_set_path_loss_reporting_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3169 uint16_t hci_le_set_path_loss_reporting_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3170 uint16_t hci_le_set_transmit_power_reporting_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3171 uint16_t hci_le_transmitter_test_v4_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3172 uint16_t hci_le_set_data_related_address_changes_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3173 uint16_t hci_le_set_default_subrate_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3174 uint16_t hci_le_subrate_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3175 uint16_t hci_le_set_extended_advertising_parameters_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3176 uint16_t hci_le_set_periodic_advertising_subevent_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3177 uint16_t hci_le_set_periodic_advertising_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3178 uint16_t hci_le_set_periodic_sync_subevent_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3179 uint16_t hci_le_extended_create_connection_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3180 uint16_t hci_le_set_periodic_advertising_parameters_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3181 uint16_t aci_hal_get_fw_build_number_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3182 uint16_t aci_hal_get_firmware_details_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3183 uint16_t aci_hal_get_firmware_details_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3184 uint16_t aci_hal_write_config_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3185 uint16_t aci_hal_read_config_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3186 uint16_t aci_hal_set_tx_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3187 uint16_t aci_hal_le_tx_test_packet_number_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3188 uint16_t aci_hal_tone_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3189 uint16_t aci_hal_tone_stop_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3190 uint16_t aci_hal_get_link_status_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3191 uint16_t aci_hal_set_radio_activity_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3192 uint16_t aci_hal_set_le_power_control_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3193 uint16_t aci_hal_transmitter_test_packets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3194 uint16_t aci_hal_transmitter_test_packets_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3195 uint16_t aci_hal_write_radio_reg_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3196 uint16_t aci_hal_read_radio_reg_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3197 uint16_t aci_hal_set_antenna_switch_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3198 uint16_t aci_hal_peripheral_latency_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3199 uint16_t aci_hal_get_evt_fifo_max_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3200 uint16_t aci_gap_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3201 uint16_t aci_gap_set_io_capability_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3202 uint16_t aci_gap_set_security_requirements_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3203 uint16_t aci_gap_passkey_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3204 uint16_t aci_gap_profile_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3205 uint16_t aci_gap_set_security_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3206 uint16_t aci_gap_get_security_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3207 uint16_t aci_gap_set_le_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3208 uint16_t aci_gap_terminate_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3209 uint16_t aci_gap_clear_security_db_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3210 uint16_t aci_gap_pairing_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3211 uint16_t aci_gap_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3212 uint16_t aci_gap_terminate_proc_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3213 uint16_t aci_gap_start_connection_update_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3214 uint16_t aci_gap_resolve_private_addr_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3215 uint16_t aci_gap_get_bonded_devices_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3216 uint16_t aci_gap_is_device_bonded_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3217 uint16_t aci_gap_numeric_comparison_value_confirm_yesno_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3218 uint16_t aci_gap_passkey_input_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3219 uint16_t aci_gap_get_oob_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3220 uint16_t aci_gap_set_oob_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3221 uint16_t aci_gap_remove_bonded_device_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3222 uint16_t aci_gap_set_advertising_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3223 uint16_t aci_gap_set_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3224 uint16_t aci_gap_set_advertising_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3225 uint16_t aci_gap_set_scan_response_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3226 uint16_t aci_gap_set_scan_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3227 uint16_t aci_gap_set_connection_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3228 uint16_t aci_gap_start_procedure_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3229 uint16_t aci_gap_discover_name_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3230 uint16_t aci_gap_add_devices_to_filter_accept_and_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3231 uint16_t aci_gap_configure_filter_accept_and_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3232 uint16_t aci_gap_remove_advertising_set_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3233 uint16_t aci_gap_clear_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3234 uint16_t aci_gap_create_periodic_advertising_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3235 uint16_t aci_gap_encrypt_adv_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3236 uint16_t aci_gap_decrypt_adv_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3237 uint16_t aci_gatt_srv_profile_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3238 uint16_t aci_gatt_srv_add_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3239 uint16_t aci_gatt_srv_include_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3240 uint16_t aci_gatt_srv_add_char_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3241 uint16_t aci_gatt_srv_add_char_desc_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3242 uint16_t aci_gatt_srv_write_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3243 uint16_t aci_gatt_srv_rm_char_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3244 uint16_t aci_gatt_srv_rm_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3245 uint16_t aci_gatt_srv_rm_include_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3246 uint16_t aci_gatt_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3247 uint16_t aci_gatt_clt_exchange_config_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3248 uint16_t aci_gatt_clt_prepare_write_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3249 uint16_t aci_gatt_clt_execute_write_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3250 uint16_t aci_gatt_clt_disc_all_primary_services_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3251 uint16_t aci_gatt_clt_disc_primary_service_by_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3252 uint16_t aci_gatt_clt_find_included_services_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3253 uint16_t aci_gatt_clt_disc_all_char_of_service_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3254 uint16_t aci_gatt_clt_disc_char_by_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3255 uint16_t aci_gatt_clt_disc_all_char_desc_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3256 uint16_t aci_gatt_clt_read_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3257 uint16_t aci_gatt_clt_read_using_char_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3258 uint16_t aci_gatt_clt_read_long_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3259 uint16_t aci_gatt_clt_read_multiple_char_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3260 uint16_t aci_gatt_clt_write_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3261 uint16_t aci_gatt_clt_write_long_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3262 uint16_t aci_gatt_clt_write_char_reliable_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3263 uint16_t aci_gatt_clt_write_without_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3264 uint16_t aci_gatt_clt_signed_write_without_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3265 uint16_t aci_gatt_clt_confirm_indication_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3266 uint16_t aci_gatt_srv_set_security_permission_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3267 uint16_t aci_gatt_srv_read_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3268 uint16_t aci_gatt_srv_set_access_permission_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3269 uint16_t aci_gatt_srv_notify_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3270 uint16_t aci_gatt_srv_exec_write_resp_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3271 uint16_t aci_gatt_srv_authorize_resp_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3272 uint16_t aci_gatt_srv_read_prepare_queue_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3273 uint16_t aci_gatt_srv_write_multiple_instance_handle_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3274 uint16_t aci_gatt_srv_read_multiple_instance_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3275 uint16_t aci_gatt_srv_multi_notify_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3276 uint16_t aci_gatt_clt_read_multiple_var_len_char_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3277 uint16_t aci_l2cap_connection_parameter_update_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3278 uint16_t aci_l2cap_connection_parameter_update_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3279 uint16_t aci_l2cap_cos_connection_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3280 uint16_t aci_l2cap_cos_connection_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3281 uint16_t aci_l2cap_cos_disconnect_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3282 uint16_t aci_l2cap_cos_sdu_data_transmit_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3283 uint16_t aci_l2cap_cos_reconfigure_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3284 uint16_t aci_l2cap_cos_reconfigure_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3285 uint16_t aci_test_tx_notification_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3286 uint16_t aci_test_tx_write_command_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3287 uint16_t aci_test_rx_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3288 uint16_t aci_test_stop_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3289 uint16_t aci_test_report_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length);
3290 const hci_command_table_type hci_command_table[] = {
3291 #if (!defined(HCI_DISCONNECT_ENABLED) || HCI_DISCONNECT_ENABLED) && !HCI_DISCONNECT_FORCE_DISABLED
3292   /* hci_disconnect */
3293   {0x0406, hci_disconnect_process},
3294 #endif
3295 #if (!defined(HCI_READ_REMOTE_VERSION_INFORMATION_ENABLED) || HCI_READ_REMOTE_VERSION_INFORMATION_ENABLED) && !HCI_READ_REMOTE_VERSION_INFORMATION_FORCE_DISABLED
3296   /* hci_read_remote_version_information */
3297   {0x041d, hci_read_remote_version_information_process},
3298 #endif
3299 #if (!defined(HCI_SET_EVENT_MASK_ENABLED) || HCI_SET_EVENT_MASK_ENABLED) && !HCI_SET_EVENT_MASK_FORCE_DISABLED
3300   /* hci_set_event_mask */
3301   {0x0c01, hci_set_event_mask_process},
3302 #endif
3303 #if (!defined(HCI_READ_CONNECTION_ACCEPT_TIMEOUT_ENABLED) || HCI_READ_CONNECTION_ACCEPT_TIMEOUT_ENABLED) && !HCI_READ_CONNECTION_ACCEPT_TIMEOUT_FORCE_DISABLED
3304   /* hci_read_connection_accept_timeout */
3305   {0x0c15, hci_read_connection_accept_timeout_process},
3306 #endif
3307 #if (!defined(HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_ENABLED) || HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_ENABLED) && !HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_FORCE_DISABLED
3308   /* hci_write_connection_accept_timeout */
3309   {0x0c16, hci_write_connection_accept_timeout_process},
3310 #endif
3311 #if (!defined(HCI_READ_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_READ_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_READ_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
3312   /* hci_read_transmit_power_level */
3313   {0x0c2d, hci_read_transmit_power_level_process},
3314 #endif
3315 #if (!defined(HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) || HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) && !HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_FORCE_DISABLED
3316   /* hci_read_afh_channel_assessment_mode */
3317   {0x0c48, hci_read_afh_channel_assessment_mode_process},
3318 #endif
3319 #if (!defined(HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) || HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) && !HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_FORCE_DISABLED
3320   /* hci_write_afh_channel_assessment_mode */
3321   {0x0c49, hci_write_afh_channel_assessment_mode_process},
3322 #endif
3323 #if (!defined(HCI_SET_EVENT_MASK_PAGE_2_ENABLED) || HCI_SET_EVENT_MASK_PAGE_2_ENABLED) && !HCI_SET_EVENT_MASK_PAGE_2_FORCE_DISABLED
3324   /* hci_set_event_mask_page_2 */
3325   {0x0c63, hci_set_event_mask_page_2_process},
3326 #endif
3327 #if (!defined(HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) || HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) && !HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_FORCE_DISABLED
3328   /* hci_read_authenticated_payload_timeout */
3329   {0x0c7b, hci_read_authenticated_payload_timeout_process},
3330 #endif
3331 #if (!defined(HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) || HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) && !HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_FORCE_DISABLED
3332   /* hci_write_authenticated_payload_timeout */
3333   {0x0c7c, hci_write_authenticated_payload_timeout_process},
3334 #endif
3335 #if (!defined(HCI_READ_LOCAL_VERSION_INFORMATION_ENABLED) || HCI_READ_LOCAL_VERSION_INFORMATION_ENABLED) && !HCI_READ_LOCAL_VERSION_INFORMATION_FORCE_DISABLED
3336   /* hci_read_local_version_information */
3337   {0x1001, hci_read_local_version_information_process},
3338 #endif
3339 #if (!defined(HCI_READ_LOCAL_SUPPORTED_COMMANDS_ENABLED) || HCI_READ_LOCAL_SUPPORTED_COMMANDS_ENABLED) && !HCI_READ_LOCAL_SUPPORTED_COMMANDS_FORCE_DISABLED
3340   /* hci_read_local_supported_commands */
3341   {0x1002, hci_read_local_supported_commands_process},
3342 #endif
3343 #if (!defined(HCI_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) || HCI_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) && !HCI_READ_LOCAL_SUPPORTED_FEATURES_FORCE_DISABLED
3344   /* hci_read_local_supported_features */
3345   {0x1003, hci_read_local_supported_features_process},
3346 #endif
3347 #if (!defined(HCI_READ_BD_ADDR_ENABLED) || HCI_READ_BD_ADDR_ENABLED) && !HCI_READ_BD_ADDR_FORCE_DISABLED
3348   /* hci_read_bd_addr */
3349   {0x1009, hci_read_bd_addr_process},
3350 #endif
3351 #if (!defined(HCI_READ_RSSI_ENABLED) || HCI_READ_RSSI_ENABLED) && !HCI_READ_RSSI_FORCE_DISABLED
3352   /* hci_read_rssi */
3353   {0x1405, hci_read_rssi_process},
3354 #endif
3355 #if (!defined(HCI_LE_SET_EVENT_MASK_ENABLED) || HCI_LE_SET_EVENT_MASK_ENABLED) && !HCI_LE_SET_EVENT_MASK_FORCE_DISABLED
3356   /* hci_le_set_event_mask */
3357   {0x2001, hci_le_set_event_mask_process},
3358 #endif
3359 #if (!defined(HCI_LE_READ_BUFFER_SIZE_ENABLED) || HCI_LE_READ_BUFFER_SIZE_ENABLED) && !HCI_LE_READ_BUFFER_SIZE_FORCE_DISABLED
3360   /* hci_le_read_buffer_size */
3361   {0x2002, hci_le_read_buffer_size_process},
3362 #endif
3363 #if (!defined(HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) || HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) && !HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_FORCE_DISABLED
3364   /* hci_le_read_local_supported_features */
3365   {0x2003, hci_le_read_local_supported_features_process},
3366 #endif
3367 #if (!defined(HCI_LE_SET_RANDOM_ADDRESS_ENABLED) || HCI_LE_SET_RANDOM_ADDRESS_ENABLED) && !HCI_LE_SET_RANDOM_ADDRESS_FORCE_DISABLED
3368   /* hci_le_set_random_address */
3369   {0x2005, hci_le_set_random_address_process},
3370 #endif
3371 #if (!defined(HCI_LE_SET_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_ADVERTISING_PARAMETERS_FORCE_DISABLED
3372   /* hci_le_set_advertising_parameters */
3373   {0x2006, hci_le_set_advertising_parameters_process},
3374 #endif
3375 #if (!defined(HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_ENABLED) || HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_ENABLED) && !HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_FORCE_DISABLED
3376   /* hci_le_read_advertising_physical_channel_tx_power */
3377   {0x2007, hci_le_read_advertising_physical_channel_tx_power_process},
3378 #endif
3379 #if (!defined(HCI_LE_SET_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_ADVERTISING_DATA_FORCE_DISABLED
3380   /* hci_le_set_advertising_data */
3381   {0x2008, hci_le_set_advertising_data_process},
3382 #endif
3383 #if (!defined(HCI_LE_SET_SCAN_RESPONSE_DATA_ENABLED) || HCI_LE_SET_SCAN_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_SCAN_RESPONSE_DATA_FORCE_DISABLED
3384   /* hci_le_set_scan_response_data */
3385   {0x2009, hci_le_set_scan_response_data_process},
3386 #endif
3387 #if (!defined(HCI_LE_SET_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_ADVERTISING_ENABLE_FORCE_DISABLED
3388   /* hci_le_set_advertising_enable */
3389   {0x200a, hci_le_set_advertising_enable_process},
3390 #endif
3391 #if (!defined(HCI_LE_SET_SCAN_PARAMETERS_ENABLED) || HCI_LE_SET_SCAN_PARAMETERS_ENABLED) && !HCI_LE_SET_SCAN_PARAMETERS_FORCE_DISABLED
3392   /* hci_le_set_scan_parameters */
3393   {0x200b, hci_le_set_scan_parameters_process},
3394 #endif
3395 #if (!defined(HCI_LE_SET_SCAN_ENABLE_ENABLED) || HCI_LE_SET_SCAN_ENABLE_ENABLED) && !HCI_LE_SET_SCAN_ENABLE_FORCE_DISABLED
3396   /* hci_le_set_scan_enable */
3397   {0x200c, hci_le_set_scan_enable_process},
3398 #endif
3399 #if (!defined(HCI_LE_CREATE_CONNECTION_ENABLED) || HCI_LE_CREATE_CONNECTION_ENABLED) && !HCI_LE_CREATE_CONNECTION_FORCE_DISABLED
3400   /* hci_le_create_connection */
3401   {0x200d, hci_le_create_connection_process},
3402 #endif
3403 #if (!defined(HCI_LE_CREATE_CONNECTION_CANCEL_ENABLED) || HCI_LE_CREATE_CONNECTION_CANCEL_ENABLED) && !HCI_LE_CREATE_CONNECTION_CANCEL_FORCE_DISABLED
3404   /* hci_le_create_connection_cancel */
3405   {0x200e, hci_le_create_connection_cancel_process},
3406 #endif
3407 #if (!defined(HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_ENABLED) || HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_ENABLED) && !HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_FORCE_DISABLED
3408   /* hci_le_read_filter_accept_list_size */
3409   {0x200f, hci_le_read_filter_accept_list_size_process},
3410 #endif
3411 #if (!defined(HCI_LE_CLEAR_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_CLEAR_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_CLEAR_FILTER_ACCEPT_LIST_FORCE_DISABLED
3412   /* hci_le_clear_filter_accept_list */
3413   {0x2010, hci_le_clear_filter_accept_list_process},
3414 #endif
3415 #if (!defined(HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_FORCE_DISABLED
3416   /* hci_le_add_device_to_filter_accept_list */
3417   {0x2011, hci_le_add_device_to_filter_accept_list_process},
3418 #endif
3419 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_FORCE_DISABLED
3420   /* hci_le_remove_device_from_filter_accept_list */
3421   {0x2012, hci_le_remove_device_from_filter_accept_list_process},
3422 #endif
3423 #if (!defined(HCI_LE_CONNECTION_UPDATE_ENABLED) || HCI_LE_CONNECTION_UPDATE_ENABLED) && !HCI_LE_CONNECTION_UPDATE_FORCE_DISABLED
3424   /* hci_le_connection_update */
3425   {0x2013, hci_le_connection_update_process},
3426 #endif
3427 #if (!defined(HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_ENABLED) || HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_ENABLED) && !HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_FORCE_DISABLED
3428   /* hci_le_set_host_channel_classification */
3429   {0x2014, hci_le_set_host_channel_classification_process},
3430 #endif
3431 #if (!defined(HCI_LE_READ_CHANNEL_MAP_ENABLED) || HCI_LE_READ_CHANNEL_MAP_ENABLED) && !HCI_LE_READ_CHANNEL_MAP_FORCE_DISABLED
3432   /* hci_le_read_channel_map */
3433   {0x2015, hci_le_read_channel_map_process},
3434 #endif
3435 #if (!defined(HCI_LE_READ_REMOTE_FEATURES_ENABLED) || HCI_LE_READ_REMOTE_FEATURES_ENABLED) && !HCI_LE_READ_REMOTE_FEATURES_FORCE_DISABLED
3436   /* hci_le_read_remote_features */
3437   {0x2016, hci_le_read_remote_features_process},
3438 #endif
3439 #if (!defined(HCI_LE_ENCRYPT_ENABLED) || HCI_LE_ENCRYPT_ENABLED) && !HCI_LE_ENCRYPT_FORCE_DISABLED
3440   /* hci_le_encrypt */
3441   {0x2017, hci_le_encrypt_process},
3442 #endif
3443 #if (!defined(HCI_LE_RAND_ENABLED) || HCI_LE_RAND_ENABLED) && !HCI_LE_RAND_FORCE_DISABLED
3444   /* hci_le_rand */
3445   {0x2018, hci_le_rand_process},
3446 #endif
3447 #if (!defined(HCI_LE_ENABLE_ENCRYPTION_ENABLED) || HCI_LE_ENABLE_ENCRYPTION_ENABLED) && !HCI_LE_ENABLE_ENCRYPTION_FORCE_DISABLED
3448   /* hci_le_enable_encryption */
3449   {0x2019, hci_le_enable_encryption_process},
3450 #endif
3451 #if (!defined(HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_ENABLED) || HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_ENABLED) && !HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_FORCE_DISABLED
3452   /* hci_le_long_term_key_request_reply */
3453   {0x201a, hci_le_long_term_key_request_reply_process},
3454 #endif
3455 #if (!defined(HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_ENABLED) || HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_ENABLED) && !HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_FORCE_DISABLED
3456   /* hci_le_long_term_key_request_negative_reply */
3457   {0x201b, hci_le_long_term_key_request_negative_reply_process},
3458 #endif
3459 #if (!defined(HCI_LE_READ_SUPPORTED_STATES_ENABLED) || HCI_LE_READ_SUPPORTED_STATES_ENABLED) && !HCI_LE_READ_SUPPORTED_STATES_FORCE_DISABLED
3460   /* hci_le_read_supported_states */
3461   {0x201c, hci_le_read_supported_states_process},
3462 #endif
3463 #if (!defined(HCI_LE_RECEIVER_TEST_ENABLED) || HCI_LE_RECEIVER_TEST_ENABLED) && !HCI_LE_RECEIVER_TEST_FORCE_DISABLED
3464   /* hci_le_receiver_test */
3465   {0x201d, hci_le_receiver_test_process},
3466 #endif
3467 #if (!defined(HCI_LE_TRANSMITTER_TEST_ENABLED) || HCI_LE_TRANSMITTER_TEST_ENABLED) && !HCI_LE_TRANSMITTER_TEST_FORCE_DISABLED
3468   /* hci_le_transmitter_test */
3469   {0x201e, hci_le_transmitter_test_process},
3470 #endif
3471 #if (!defined(HCI_LE_TEST_END_ENABLED) || HCI_LE_TEST_END_ENABLED) && !HCI_LE_TEST_END_FORCE_DISABLED
3472   /* hci_le_test_end */
3473   {0x201f, hci_le_test_end_process},
3474 #endif
3475 #if (!defined(HCI_LE_SET_DATA_LENGTH_ENABLED) || HCI_LE_SET_DATA_LENGTH_ENABLED) && !HCI_LE_SET_DATA_LENGTH_FORCE_DISABLED
3476   /* hci_le_set_data_length */
3477   {0x2022, hci_le_set_data_length_process},
3478 #endif
3479 #if (!defined(HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) || HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) && !HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_FORCE_DISABLED
3480   /* hci_le_read_suggested_default_data_length */
3481   {0x2023, hci_le_read_suggested_default_data_length_process},
3482 #endif
3483 #if (!defined(HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) || HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) && !HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_FORCE_DISABLED
3484   /* hci_le_write_suggested_default_data_length */
3485   {0x2024, hci_le_write_suggested_default_data_length_process},
3486 #endif
3487 #if (!defined(HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_ENABLED) || HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_ENABLED) && !HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_FORCE_DISABLED
3488   /* hci_le_read_local_p256_public_key */
3489   {0x2025, hci_le_read_local_p256_public_key_process},
3490 #endif
3491 #if (!defined(HCI_LE_GENERATE_DHKEY_ENABLED) || HCI_LE_GENERATE_DHKEY_ENABLED) && !HCI_LE_GENERATE_DHKEY_FORCE_DISABLED
3492   /* hci_le_generate_dhkey */
3493   {0x2026, hci_le_generate_dhkey_process},
3494 #endif
3495 #if (!defined(HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_FORCE_DISABLED
3496   /* hci_le_add_device_to_resolving_list */
3497   {0x2027, hci_le_add_device_to_resolving_list_process},
3498 #endif
3499 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_FORCE_DISABLED
3500   /* hci_le_remove_device_from_resolving_list */
3501   {0x2028, hci_le_remove_device_from_resolving_list_process},
3502 #endif
3503 #if (!defined(HCI_LE_CLEAR_RESOLVING_LIST_ENABLED) || HCI_LE_CLEAR_RESOLVING_LIST_ENABLED) && !HCI_LE_CLEAR_RESOLVING_LIST_FORCE_DISABLED
3504   /* hci_le_clear_resolving_list */
3505   {0x2029, hci_le_clear_resolving_list_process},
3506 #endif
3507 #if (!defined(HCI_LE_READ_RESOLVING_LIST_SIZE_ENABLED) || HCI_LE_READ_RESOLVING_LIST_SIZE_ENABLED) && !HCI_LE_READ_RESOLVING_LIST_SIZE_FORCE_DISABLED
3508   /* hci_le_read_resolving_list_size */
3509   {0x202a, hci_le_read_resolving_list_size_process},
3510 #endif
3511 #if (!defined(HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_ENABLED) || HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_ENABLED) && !HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_FORCE_DISABLED
3512   /* hci_le_read_peer_resolvable_address */
3513   {0x202b, hci_le_read_peer_resolvable_address_process},
3514 #endif
3515 #if (!defined(HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_ENABLED) || HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_ENABLED) && !HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_FORCE_DISABLED
3516   /* hci_le_read_local_resolvable_address */
3517   {0x202c, hci_le_read_local_resolvable_address_process},
3518 #endif
3519 #if (!defined(HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_ENABLED) || HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_ENABLED) && !HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_FORCE_DISABLED
3520   /* hci_le_set_address_resolution_enable */
3521   {0x202d, hci_le_set_address_resolution_enable_process},
3522 #endif
3523 #if (!defined(HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_ENABLED) || HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_ENABLED) && !HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_FORCE_DISABLED
3524   /* hci_le_set_resolvable_private_address_timeout */
3525   {0x202e, hci_le_set_resolvable_private_address_timeout_process},
3526 #endif
3527 #if (!defined(HCI_LE_READ_MAXIMUM_DATA_LENGTH_ENABLED) || HCI_LE_READ_MAXIMUM_DATA_LENGTH_ENABLED) && !HCI_LE_READ_MAXIMUM_DATA_LENGTH_FORCE_DISABLED
3528   /* hci_le_read_maximum_data_length */
3529   {0x202f, hci_le_read_maximum_data_length_process},
3530 #endif
3531 #if (!defined(HCI_LE_READ_PHY_ENABLED) || HCI_LE_READ_PHY_ENABLED) && !HCI_LE_READ_PHY_FORCE_DISABLED
3532   /* hci_le_read_phy */
3533   {0x2030, hci_le_read_phy_process},
3534 #endif
3535 #if (!defined(HCI_LE_SET_DEFAULT_PHY_ENABLED) || HCI_LE_SET_DEFAULT_PHY_ENABLED) && !HCI_LE_SET_DEFAULT_PHY_FORCE_DISABLED
3536   /* hci_le_set_default_phy */
3537   {0x2031, hci_le_set_default_phy_process},
3538 #endif
3539 #if (!defined(HCI_LE_SET_PHY_ENABLED) || HCI_LE_SET_PHY_ENABLED) && !HCI_LE_SET_PHY_FORCE_DISABLED
3540   /* hci_le_set_phy */
3541   {0x2032, hci_le_set_phy_process},
3542 #endif
3543 #if (!defined(HCI_LE_RECEIVER_TEST_V2_ENABLED) || HCI_LE_RECEIVER_TEST_V2_ENABLED) && !HCI_LE_RECEIVER_TEST_V2_FORCE_DISABLED
3544   /* hci_le_receiver_test_v2 */
3545   {0x2033, hci_le_receiver_test_v2_process},
3546 #endif
3547 #if (!defined(HCI_LE_TRANSMITTER_TEST_V2_ENABLED) || HCI_LE_TRANSMITTER_TEST_V2_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V2_FORCE_DISABLED
3548   /* hci_le_transmitter_test_v2 */
3549   {0x2034, hci_le_transmitter_test_v2_process},
3550 #endif
3551 #if (!defined(HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_ENABLED) || HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_ENABLED) && !HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_FORCE_DISABLED
3552   /* hci_le_set_advertising_set_random_address */
3553   {0x2035, hci_le_set_advertising_set_random_address_process},
3554 #endif
3555 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_FORCE_DISABLED
3556   /* hci_le_set_extended_advertising_parameters */
3557   {0x2036, hci_le_set_extended_advertising_parameters_process},
3558 #endif
3559 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_DATA_FORCE_DISABLED
3560   /* hci_le_set_extended_advertising_data */
3561   {0x2037, hci_le_set_extended_advertising_data_process},
3562 #endif
3563 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_FORCE_DISABLED
3564   /* hci_le_set_extended_scan_response_data */
3565   {0x2038, hci_le_set_extended_scan_response_data_process},
3566 #endif
3567 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_FORCE_DISABLED
3568   /* hci_le_set_extended_advertising_enable */
3569   {0x2039, hci_le_set_extended_advertising_enable_process},
3570 #endif
3571 #if (!defined(HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_ENABLED) || HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_ENABLED) && !HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_FORCE_DISABLED
3572   /* hci_le_read_maximum_advertising_data_length */
3573   {0x203a, hci_le_read_maximum_advertising_data_length_process},
3574 #endif
3575 #if (!defined(HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_ENABLED) || HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_ENABLED) && !HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_FORCE_DISABLED
3576   /* hci_le_read_number_of_supported_advertising_sets */
3577   {0x203b, hci_le_read_number_of_supported_advertising_sets_process},
3578 #endif
3579 #if (!defined(HCI_LE_REMOVE_ADVERTISING_SET_ENABLED) || HCI_LE_REMOVE_ADVERTISING_SET_ENABLED) && !HCI_LE_REMOVE_ADVERTISING_SET_FORCE_DISABLED
3580   /* hci_le_remove_advertising_set */
3581   {0x203c, hci_le_remove_advertising_set_process},
3582 #endif
3583 #if (!defined(HCI_LE_CLEAR_ADVERTISING_SETS_ENABLED) || HCI_LE_CLEAR_ADVERTISING_SETS_ENABLED) && !HCI_LE_CLEAR_ADVERTISING_SETS_FORCE_DISABLED
3584   /* hci_le_clear_advertising_sets */
3585   {0x203d, hci_le_clear_advertising_sets_process},
3586 #endif
3587 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_FORCE_DISABLED
3588   /* hci_le_set_periodic_advertising_parameters */
3589   {0x203e, hci_le_set_periodic_advertising_parameters_process},
3590 #endif
3591 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_DATA_FORCE_DISABLED
3592   /* hci_le_set_periodic_advertising_data */
3593   {0x203f, hci_le_set_periodic_advertising_data_process},
3594 #endif
3595 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_FORCE_DISABLED
3596   /* hci_le_set_periodic_advertising_enable */
3597   {0x2040, hci_le_set_periodic_advertising_enable_process},
3598 #endif
3599 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_FORCE_DISABLED
3600   /* hci_le_set_extended_scan_parameters */
3601   {0x2041, hci_le_set_extended_scan_parameters_process},
3602 #endif
3603 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_ENABLE_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_ENABLE_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_ENABLE_FORCE_DISABLED
3604   /* hci_le_set_extended_scan_enable */
3605   {0x2042, hci_le_set_extended_scan_enable_process},
3606 #endif
3607 #if (!defined(HCI_LE_EXTENDED_CREATE_CONNECTION_ENABLED) || HCI_LE_EXTENDED_CREATE_CONNECTION_ENABLED) && !HCI_LE_EXTENDED_CREATE_CONNECTION_FORCE_DISABLED
3608   /* hci_le_extended_create_connection */
3609   {0x2043, hci_le_extended_create_connection_process},
3610 #endif
3611 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_FORCE_DISABLED
3612   /* hci_le_periodic_advertising_create_sync */
3613   {0x2044, hci_le_periodic_advertising_create_sync_process},
3614 #endif
3615 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_FORCE_DISABLED
3616   /* hci_le_periodic_advertising_create_sync_cancel */
3617   {0x2045, hci_le_periodic_advertising_create_sync_cancel_process},
3618 #endif
3619 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_FORCE_DISABLED
3620   /* hci_le_periodic_advertising_terminate_sync */
3621   {0x2046, hci_le_periodic_advertising_terminate_sync_process},
3622 #endif
3623 #if (!defined(HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
3624   /* hci_le_add_device_to_periodic_advertiser_list */
3625   {0x2047, hci_le_add_device_to_periodic_advertiser_list_process},
3626 #endif
3627 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
3628   /* hci_le_remove_device_from_periodic_advertiser_list */
3629   {0x2048, hci_le_remove_device_from_periodic_advertiser_list_process},
3630 #endif
3631 #if (!defined(HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
3632   /* hci_le_clear_periodic_advertiser_list */
3633   {0x2049, hci_le_clear_periodic_advertiser_list_process},
3634 #endif
3635 #if (!defined(HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_ENABLED) || HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_ENABLED) && !HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_FORCE_DISABLED
3636   /* hci_le_read_periodic_advertiser_list_size */
3637   {0x204a, hci_le_read_periodic_advertiser_list_size_process},
3638 #endif
3639 #if (!defined(HCI_LE_READ_TRANSMIT_POWER_ENABLED) || HCI_LE_READ_TRANSMIT_POWER_ENABLED) && !HCI_LE_READ_TRANSMIT_POWER_FORCE_DISABLED
3640   /* hci_le_read_transmit_power */
3641   {0x204b, hci_le_read_transmit_power_process},
3642 #endif
3643 #if (!defined(HCI_LE_READ_RF_PATH_COMPENSATION_ENABLED) || HCI_LE_READ_RF_PATH_COMPENSATION_ENABLED) && !HCI_LE_READ_RF_PATH_COMPENSATION_FORCE_DISABLED
3644   /* hci_le_read_rf_path_compensation */
3645   {0x204c, hci_le_read_rf_path_compensation_process},
3646 #endif
3647 #if (!defined(HCI_LE_WRITE_RF_PATH_COMPENSATION_ENABLED) || HCI_LE_WRITE_RF_PATH_COMPENSATION_ENABLED) && !HCI_LE_WRITE_RF_PATH_COMPENSATION_FORCE_DISABLED
3648   /* hci_le_write_rf_path_compensation */
3649   {0x204d, hci_le_write_rf_path_compensation_process},
3650 #endif
3651 #if (!defined(HCI_LE_SET_PRIVACY_MODE_ENABLED) || HCI_LE_SET_PRIVACY_MODE_ENABLED) && !HCI_LE_SET_PRIVACY_MODE_FORCE_DISABLED
3652   /* hci_le_set_privacy_mode */
3653   {0x204e, hci_le_set_privacy_mode_process},
3654 #endif
3655 #if (!defined(HCI_LE_RECEIVER_TEST_V3_ENABLED) || HCI_LE_RECEIVER_TEST_V3_ENABLED) && !HCI_LE_RECEIVER_TEST_V3_FORCE_DISABLED
3656   /* hci_le_receiver_test_v3 */
3657   {0x204f, hci_le_receiver_test_v3_process},
3658 #endif
3659 #if (!defined(HCI_LE_TRANSMITTER_TEST_V3_ENABLED) || HCI_LE_TRANSMITTER_TEST_V3_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V3_FORCE_DISABLED
3660   /* hci_le_transmitter_test_v3 */
3661   {0x2050, hci_le_transmitter_test_v3_process},
3662 #endif
3663 #if (!defined(HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_FORCE_DISABLED
3664   /* hci_le_set_connectionless_cte_transmit_parameters */
3665   {0x2051, hci_le_set_connectionless_cte_transmit_parameters_process},
3666 #endif
3667 #if (!defined(HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_ENABLED) || HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_FORCE_DISABLED
3668   /* hci_le_set_connectionless_cte_transmit_enable */
3669   {0x2052, hci_le_set_connectionless_cte_transmit_enable_process},
3670 #endif
3671 #if (!defined(HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_ENABLED) || HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_FORCE_DISABLED
3672   /* hci_le_set_connectionless_iq_sampling_enable */
3673   {0x2053, hci_le_set_connectionless_iq_sampling_enable_process},
3674 #endif
3675 #if (!defined(HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_FORCE_DISABLED
3676   /* hci_le_set_connection_cte_receive_parameters */
3677   {0x2054, hci_le_set_connection_cte_receive_parameters_process},
3678 #endif
3679 #if (!defined(HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_FORCE_DISABLED
3680   /* hci_le_set_connection_cte_transmit_parameters */
3681   {0x2055, hci_le_set_connection_cte_transmit_parameters_process},
3682 #endif
3683 #if (!defined(HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_ENABLED) || HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_ENABLED) && !HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_FORCE_DISABLED
3684   /* hci_le_connection_cte_request_enable */
3685   {0x2056, hci_le_connection_cte_request_enable_process},
3686 #endif
3687 #if (!defined(HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_ENABLED) || HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_ENABLED) && !HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_FORCE_DISABLED
3688   /* hci_le_connection_cte_response_enable */
3689   {0x2057, hci_le_connection_cte_response_enable_process},
3690 #endif
3691 #if (!defined(HCI_LE_READ_ANTENNA_INFORMATION_ENABLED) || HCI_LE_READ_ANTENNA_INFORMATION_ENABLED) && !HCI_LE_READ_ANTENNA_INFORMATION_FORCE_DISABLED
3692   /* hci_le_read_antenna_information */
3693   {0x2058, hci_le_read_antenna_information_process},
3694 #endif
3695 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_FORCE_DISABLED
3696   /* hci_le_set_periodic_advertising_receive_enable */
3697   {0x2059, hci_le_set_periodic_advertising_receive_enable_process},
3698 #endif
3699 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_FORCE_DISABLED
3700   /* hci_le_periodic_advertising_sync_transfer */
3701   {0x205a, hci_le_periodic_advertising_sync_transfer_process},
3702 #endif
3703 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_FORCE_DISABLED
3704   /* hci_le_periodic_advertising_set_info_transfer */
3705   {0x205b, hci_le_periodic_advertising_set_info_transfer_process},
3706 #endif
3707 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_FORCE_DISABLED
3708   /* hci_le_set_periodic_advertising_sync_transfer_parameters */
3709   {0x205c, hci_le_set_periodic_advertising_sync_transfer_parameters_process},
3710 #endif
3711 #if (!defined(HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) || HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) && !HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_FORCE_DISABLED
3712   /* hci_le_set_default_periodic_advertising_sync_transfer_parameters */
3713   {0x205d, hci_le_set_default_periodic_advertising_sync_transfer_parameters_process},
3714 #endif
3715 #if (!defined(HCI_LE_READ_BUFFER_SIZE_V2_ENABLED) || HCI_LE_READ_BUFFER_SIZE_V2_ENABLED) && !HCI_LE_READ_BUFFER_SIZE_V2_FORCE_DISABLED
3716   /* hci_le_read_buffer_size_v2 */
3717   {0x2060, hci_le_read_buffer_size_v2_process},
3718 #endif
3719 #if (!defined(HCI_LE_READ_ISO_TX_SYNC_ENABLED) || HCI_LE_READ_ISO_TX_SYNC_ENABLED) && !HCI_LE_READ_ISO_TX_SYNC_FORCE_DISABLED
3720   /* hci_le_read_iso_tx_sync */
3721   {0x2061, hci_le_read_iso_tx_sync_process},
3722 #endif
3723 #if (!defined(HCI_LE_SET_CIG_PARAMETERS_ENABLED) || HCI_LE_SET_CIG_PARAMETERS_ENABLED) && !HCI_LE_SET_CIG_PARAMETERS_FORCE_DISABLED
3724   /* hci_le_set_cig_parameters */
3725   {0x2062, hci_le_set_cig_parameters_process},
3726 #endif
3727 #if (!defined(HCI_LE_SET_CIG_PARAMETERS_TEST_ENABLED) || HCI_LE_SET_CIG_PARAMETERS_TEST_ENABLED) && !HCI_LE_SET_CIG_PARAMETERS_TEST_FORCE_DISABLED
3728   /* hci_le_set_cig_parameters_test */
3729   {0x2063, hci_le_set_cig_parameters_test_process},
3730 #endif
3731 #if (!defined(HCI_LE_CREATE_CIS_ENABLED) || HCI_LE_CREATE_CIS_ENABLED) && !HCI_LE_CREATE_CIS_FORCE_DISABLED
3732   /* hci_le_create_cis */
3733   {0x2064, hci_le_create_cis_process},
3734 #endif
3735 #if (!defined(HCI_LE_REMOVE_CIG_ENABLED) || HCI_LE_REMOVE_CIG_ENABLED) && !HCI_LE_REMOVE_CIG_FORCE_DISABLED
3736   /* hci_le_remove_cig */
3737   {0x2065, hci_le_remove_cig_process},
3738 #endif
3739 #if (!defined(HCI_LE_ACCEPT_CIS_REQUEST_ENABLED) || HCI_LE_ACCEPT_CIS_REQUEST_ENABLED) && !HCI_LE_ACCEPT_CIS_REQUEST_FORCE_DISABLED
3740   /* hci_le_accept_cis_request */
3741   {0x2066, hci_le_accept_cis_request_process},
3742 #endif
3743 #if (!defined(HCI_LE_REJECT_CIS_REQUEST_ENABLED) || HCI_LE_REJECT_CIS_REQUEST_ENABLED) && !HCI_LE_REJECT_CIS_REQUEST_FORCE_DISABLED
3744   /* hci_le_reject_cis_request */
3745   {0x2067, hci_le_reject_cis_request_process},
3746 #endif
3747 #if (!defined(HCI_LE_CREATE_BIG_ENABLED) || HCI_LE_CREATE_BIG_ENABLED) && !HCI_LE_CREATE_BIG_FORCE_DISABLED
3748   /* hci_le_create_big */
3749   {0x2068, hci_le_create_big_process},
3750 #endif
3751 #if (!defined(HCI_LE_CREATE_BIG_TEST_ENABLED) || HCI_LE_CREATE_BIG_TEST_ENABLED) && !HCI_LE_CREATE_BIG_TEST_FORCE_DISABLED
3752   /* hci_le_create_big_test */
3753   {0x2069, hci_le_create_big_test_process},
3754 #endif
3755 #if (!defined(HCI_LE_TERMINATE_BIG_ENABLED) || HCI_LE_TERMINATE_BIG_ENABLED) && !HCI_LE_TERMINATE_BIG_FORCE_DISABLED
3756   /* hci_le_terminate_big */
3757   {0x206a, hci_le_terminate_big_process},
3758 #endif
3759 #if (!defined(HCI_LE_BIG_CREATE_SYNC_ENABLED) || HCI_LE_BIG_CREATE_SYNC_ENABLED) && !HCI_LE_BIG_CREATE_SYNC_FORCE_DISABLED
3760   /* hci_le_big_create_sync */
3761   {0x206b, hci_le_big_create_sync_process},
3762 #endif
3763 #if (!defined(HCI_LE_BIG_TERMINATE_SYNC_ENABLED) || HCI_LE_BIG_TERMINATE_SYNC_ENABLED) && !HCI_LE_BIG_TERMINATE_SYNC_FORCE_DISABLED
3764   /* hci_le_big_terminate_sync */
3765   {0x206c, hci_le_big_terminate_sync_process},
3766 #endif
3767 #if (!defined(HCI_LE_REQUEST_PEER_SCA_ENABLED) || HCI_LE_REQUEST_PEER_SCA_ENABLED) && !HCI_LE_REQUEST_PEER_SCA_FORCE_DISABLED
3768   /* hci_le_request_peer_sca */
3769   {0x206d, hci_le_request_peer_sca_process},
3770 #endif
3771 #if (!defined(HCI_LE_SETUP_ISO_DATA_PATH_ENABLED) || HCI_LE_SETUP_ISO_DATA_PATH_ENABLED) && !HCI_LE_SETUP_ISO_DATA_PATH_FORCE_DISABLED
3772   /* hci_le_setup_iso_data_path */
3773   {0x206e, hci_le_setup_iso_data_path_process},
3774 #endif
3775 #if (!defined(HCI_LE_REMOVE_ISO_DATA_PATH_ENABLED) || HCI_LE_REMOVE_ISO_DATA_PATH_ENABLED) && !HCI_LE_REMOVE_ISO_DATA_PATH_FORCE_DISABLED
3776   /* hci_le_remove_iso_data_path */
3777   {0x206f, hci_le_remove_iso_data_path_process},
3778 #endif
3779 #if (!defined(HCI_LE_ISO_TRANSMIT_TEST_ENABLED) || HCI_LE_ISO_TRANSMIT_TEST_ENABLED) && !HCI_LE_ISO_TRANSMIT_TEST_FORCE_DISABLED
3780   /* hci_le_iso_transmit_test */
3781   {0x2070, hci_le_iso_transmit_test_process},
3782 #endif
3783 #if (!defined(HCI_LE_ISO_RECEIVE_TEST_ENABLED) || HCI_LE_ISO_RECEIVE_TEST_ENABLED) && !HCI_LE_ISO_RECEIVE_TEST_FORCE_DISABLED
3784   /* hci_le_iso_receive_test */
3785   {0x2071, hci_le_iso_receive_test_process},
3786 #endif
3787 #if (!defined(HCI_LE_ISO_READ_TEST_COUNTERS_ENABLED) || HCI_LE_ISO_READ_TEST_COUNTERS_ENABLED) && !HCI_LE_ISO_READ_TEST_COUNTERS_FORCE_DISABLED
3788   /* hci_le_iso_read_test_counters */
3789   {0x2072, hci_le_iso_read_test_counters_process},
3790 #endif
3791 #if (!defined(HCI_LE_ISO_TEST_END_ENABLED) || HCI_LE_ISO_TEST_END_ENABLED) && !HCI_LE_ISO_TEST_END_FORCE_DISABLED
3792   /* hci_le_iso_test_end */
3793   {0x2073, hci_le_iso_test_end_process},
3794 #endif
3795 #if (!defined(HCI_LE_SET_HOST_FEATURE_ENABLED) || HCI_LE_SET_HOST_FEATURE_ENABLED) && !HCI_LE_SET_HOST_FEATURE_FORCE_DISABLED
3796   /* hci_le_set_host_feature */
3797   {0x2074, hci_le_set_host_feature_process},
3798 #endif
3799 #if (!defined(HCI_LE_READ_ISO_LINK_QUALITY_ENABLED) || HCI_LE_READ_ISO_LINK_QUALITY_ENABLED) && !HCI_LE_READ_ISO_LINK_QUALITY_FORCE_DISABLED
3800   /* hci_le_read_iso_link_quality */
3801   {0x2075, hci_le_read_iso_link_quality_process},
3802 #endif
3803 #if (!defined(HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
3804   /* hci_le_enhanced_read_transmit_power_level */
3805   {0x2076, hci_le_enhanced_read_transmit_power_level_process},
3806 #endif
3807 #if (!defined(HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
3808   /* hci_le_read_remote_transmit_power_level */
3809   {0x2077, hci_le_read_remote_transmit_power_level_process},
3810 #endif
3811 #if (!defined(HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_ENABLED) || HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_ENABLED) && !HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_FORCE_DISABLED
3812   /* hci_le_set_path_loss_reporting_parameters */
3813   {0x2078, hci_le_set_path_loss_reporting_parameters_process},
3814 #endif
3815 #if (!defined(HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_ENABLED) || HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_ENABLED) && !HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_FORCE_DISABLED
3816   /* hci_le_set_path_loss_reporting_enable */
3817   {0x2079, hci_le_set_path_loss_reporting_enable_process},
3818 #endif
3819 #if (!defined(HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_ENABLED) || HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_ENABLED) && !HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_FORCE_DISABLED
3820   /* hci_le_set_transmit_power_reporting_enable */
3821   {0x207a, hci_le_set_transmit_power_reporting_enable_process},
3822 #endif
3823 #if (!defined(HCI_LE_TRANSMITTER_TEST_V4_ENABLED) || HCI_LE_TRANSMITTER_TEST_V4_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V4_FORCE_DISABLED
3824   /* hci_le_transmitter_test_v4 */
3825   {0x207b, hci_le_transmitter_test_v4_process},
3826 #endif
3827 #if (!defined(HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_ENABLED) || HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_ENABLED) && !HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_FORCE_DISABLED
3828   /* hci_le_set_data_related_address_changes */
3829   {0x207c, hci_le_set_data_related_address_changes_process},
3830 #endif
3831 #if (!defined(HCI_LE_SET_DEFAULT_SUBRATE_ENABLED) || HCI_LE_SET_DEFAULT_SUBRATE_ENABLED) && !HCI_LE_SET_DEFAULT_SUBRATE_FORCE_DISABLED
3832   /* hci_le_set_default_subrate */
3833   {0x207d, hci_le_set_default_subrate_process},
3834 #endif
3835 #if (!defined(HCI_LE_SUBRATE_REQUEST_ENABLED) || HCI_LE_SUBRATE_REQUEST_ENABLED) && !HCI_LE_SUBRATE_REQUEST_FORCE_DISABLED
3836   /* hci_le_subrate_request */
3837   {0x207e, hci_le_subrate_request_process},
3838 #endif
3839 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_FORCE_DISABLED
3840   /* hci_le_set_extended_advertising_parameters_v2 */
3841   {0x207f, hci_le_set_extended_advertising_parameters_v2_process},
3842 #endif
3843 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_FORCE_DISABLED
3844   /* hci_le_set_periodic_advertising_subevent_data */
3845   {0x2082, hci_le_set_periodic_advertising_subevent_data_process},
3846 #endif
3847 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_FORCE_DISABLED
3848   /* hci_le_set_periodic_advertising_response_data */
3849   {0x2083, hci_le_set_periodic_advertising_response_data_process},
3850 #endif
3851 #if (!defined(HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_ENABLED) || HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_ENABLED) && !HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_FORCE_DISABLED
3852   /* hci_le_set_periodic_sync_subevent */
3853   {0x2084, hci_le_set_periodic_sync_subevent_process},
3854 #endif
3855 #if (!defined(HCI_LE_EXTENDED_CREATE_CONNECTION_V2_ENABLED) || HCI_LE_EXTENDED_CREATE_CONNECTION_V2_ENABLED) && !HCI_LE_EXTENDED_CREATE_CONNECTION_V2_FORCE_DISABLED
3856   /* hci_le_extended_create_connection_v2 */
3857   {0x2085, hci_le_extended_create_connection_v2_process},
3858 #endif
3859 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_FORCE_DISABLED
3860   /* hci_le_set_periodic_advertising_parameters_v2 */
3861   {0x2086, hci_le_set_periodic_advertising_parameters_v2_process},
3862 #endif
3863 #if (!defined(ACI_HAL_GET_FW_BUILD_NUMBER_ENABLED) || ACI_HAL_GET_FW_BUILD_NUMBER_ENABLED) && !ACI_HAL_GET_FW_BUILD_NUMBER_FORCE_DISABLED
3864   /* aci_hal_get_fw_build_number */
3865   {0xfc00, aci_hal_get_fw_build_number_process},
3866 #endif
3867 #if (!defined(ACI_HAL_GET_FIRMWARE_DETAILS_ENABLED) || ACI_HAL_GET_FIRMWARE_DETAILS_ENABLED) && !ACI_HAL_GET_FIRMWARE_DETAILS_FORCE_DISABLED
3868   /* aci_hal_get_firmware_details */
3869   {0xfc01, aci_hal_get_firmware_details_process},
3870 #endif
3871 #if (!defined(ACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED) || ACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED) && !ACI_HAL_GET_FIRMWARE_DETAILS_V2_FORCE_DISABLED
3872   /* aci_hal_get_firmware_details_v2 */
3873   {0xfc02, aci_hal_get_firmware_details_v2_process},
3874 #endif
3875 #if (!defined(ACI_HAL_WRITE_CONFIG_DATA_ENABLED) || ACI_HAL_WRITE_CONFIG_DATA_ENABLED) && !ACI_HAL_WRITE_CONFIG_DATA_FORCE_DISABLED
3876   /* aci_hal_write_config_data */
3877   {0xfc0c, aci_hal_write_config_data_process},
3878 #endif
3879 #if (!defined(ACI_HAL_READ_CONFIG_DATA_ENABLED) || ACI_HAL_READ_CONFIG_DATA_ENABLED) && !ACI_HAL_READ_CONFIG_DATA_FORCE_DISABLED
3880   /* aci_hal_read_config_data */
3881   {0xfc0d, aci_hal_read_config_data_process},
3882 #endif
3883 #if (!defined(ACI_HAL_SET_TX_POWER_LEVEL_ENABLED) || ACI_HAL_SET_TX_POWER_LEVEL_ENABLED) && !ACI_HAL_SET_TX_POWER_LEVEL_FORCE_DISABLED
3884   /* aci_hal_set_tx_power_level */
3885   {0xfc0f, aci_hal_set_tx_power_level_process},
3886 #endif
3887 #if (!defined(ACI_HAL_LE_TX_TEST_PACKET_NUMBER_ENABLED) || ACI_HAL_LE_TX_TEST_PACKET_NUMBER_ENABLED) && !ACI_HAL_LE_TX_TEST_PACKET_NUMBER_FORCE_DISABLED
3888   /* aci_hal_le_tx_test_packet_number */
3889   {0xfc14, aci_hal_le_tx_test_packet_number_process},
3890 #endif
3891 #if (!defined(ACI_HAL_TONE_START_ENABLED) || ACI_HAL_TONE_START_ENABLED) && !ACI_HAL_TONE_START_FORCE_DISABLED
3892   /* aci_hal_tone_start */
3893   {0xfc15, aci_hal_tone_start_process},
3894 #endif
3895 #if (!defined(ACI_HAL_TONE_STOP_ENABLED) || ACI_HAL_TONE_STOP_ENABLED) && !ACI_HAL_TONE_STOP_FORCE_DISABLED
3896   /* aci_hal_tone_stop */
3897   {0xfc16, aci_hal_tone_stop_process},
3898 #endif
3899 #if (!defined(ACI_HAL_GET_LINK_STATUS_ENABLED) || ACI_HAL_GET_LINK_STATUS_ENABLED) && !ACI_HAL_GET_LINK_STATUS_FORCE_DISABLED
3900   /* aci_hal_get_link_status */
3901   {0xfc17, aci_hal_get_link_status_process},
3902 #endif
3903 #if (!defined(ACI_HAL_SET_RADIO_ACTIVITY_MASK_ENABLED) || ACI_HAL_SET_RADIO_ACTIVITY_MASK_ENABLED) && !ACI_HAL_SET_RADIO_ACTIVITY_MASK_FORCE_DISABLED
3904   /* aci_hal_set_radio_activity_mask */
3905   {0xfc18, aci_hal_set_radio_activity_mask_process},
3906 #endif
3907 #if (!defined(ACI_HAL_SET_LE_POWER_CONTROL_ENABLED) || ACI_HAL_SET_LE_POWER_CONTROL_ENABLED) && !ACI_HAL_SET_LE_POWER_CONTROL_FORCE_DISABLED
3908   /* aci_hal_set_le_power_control */
3909   {0xfc1c, aci_hal_set_le_power_control_process},
3910 #endif
3911 #if (!defined(ACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED) || ACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED) && !ACI_HAL_TRANSMITTER_TEST_PACKETS_FORCE_DISABLED
3912   /* aci_hal_transmitter_test_packets */
3913   {0xfc2b, aci_hal_transmitter_test_packets_process},
3914 #endif
3915 #if (!defined(ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED) || ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED) && !ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_FORCE_DISABLED
3916   /* aci_hal_transmitter_test_packets_v2 */
3917   {0xfc2c, aci_hal_transmitter_test_packets_v2_process},
3918 #endif
3919 #if (!defined(ACI_HAL_WRITE_RADIO_REG_ENABLED) || ACI_HAL_WRITE_RADIO_REG_ENABLED) && !ACI_HAL_WRITE_RADIO_REG_FORCE_DISABLED
3920   /* aci_hal_write_radio_reg */
3921   {0xfc35, aci_hal_write_radio_reg_process},
3922 #endif
3923 #if (!defined(ACI_HAL_READ_RADIO_REG_ENABLED) || ACI_HAL_READ_RADIO_REG_ENABLED) && !ACI_HAL_READ_RADIO_REG_FORCE_DISABLED
3924   /* aci_hal_read_radio_reg */
3925   {0xfc36, aci_hal_read_radio_reg_process},
3926 #endif
3927 #if (!defined(ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_ENABLED) || ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_ENABLED) && !ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_FORCE_DISABLED
3928   /* aci_hal_set_antenna_switch_parameters */
3929   {0xfc37, aci_hal_set_antenna_switch_parameters_process},
3930 #endif
3931 #if (!defined(ACI_HAL_PERIPHERAL_LATENCY_ENABLE_ENABLED) || ACI_HAL_PERIPHERAL_LATENCY_ENABLE_ENABLED) && !ACI_HAL_PERIPHERAL_LATENCY_ENABLE_FORCE_DISABLED
3932   /* aci_hal_peripheral_latency_enable */
3933   {0xfc38, aci_hal_peripheral_latency_enable_process},
3934 #endif
3935 #if (!defined(ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_ENABLED) || ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_ENABLED) && !ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_FORCE_DISABLED
3936   /* aci_hal_get_evt_fifo_max_level */
3937   {0xfc60, aci_hal_get_evt_fifo_max_level_process},
3938 #endif
3939 
3940 #if BLESTACK_CONTROLLER_ONLY==0
3941 
3942 #if (!defined(ACI_GAP_INIT_ENABLED) || ACI_GAP_INIT_ENABLED) && !ACI_GAP_INIT_FORCE_DISABLED
3943   /* aci_gap_init */
3944   {0xfc81, aci_gap_init_process},
3945 #endif
3946 #if (!defined(ACI_GAP_SET_IO_CAPABILITY_ENABLED) || ACI_GAP_SET_IO_CAPABILITY_ENABLED) && !ACI_GAP_SET_IO_CAPABILITY_FORCE_DISABLED
3947   /* aci_gap_set_io_capability */
3948   {0xfc85, aci_gap_set_io_capability_process},
3949 #endif
3950 #if (!defined(ACI_GAP_SET_SECURITY_REQUIREMENTS_ENABLED) || ACI_GAP_SET_SECURITY_REQUIREMENTS_ENABLED) && !ACI_GAP_SET_SECURITY_REQUIREMENTS_FORCE_DISABLED
3951   /* aci_gap_set_security_requirements */
3952   {0xfc86, aci_gap_set_security_requirements_process},
3953 #endif
3954 #if (!defined(ACI_GAP_PASSKEY_RESP_ENABLED) || ACI_GAP_PASSKEY_RESP_ENABLED) && !ACI_GAP_PASSKEY_RESP_FORCE_DISABLED
3955   /* aci_gap_passkey_resp */
3956   {0xfc88, aci_gap_passkey_resp_process},
3957 #endif
3958 #if (!defined(ACI_GAP_PROFILE_INIT_ENABLED) || ACI_GAP_PROFILE_INIT_ENABLED) && !ACI_GAP_PROFILE_INIT_FORCE_DISABLED
3959   /* aci_gap_profile_init */
3960   {0xfc8a, aci_gap_profile_init_process},
3961 #endif
3962 #if (!defined(ACI_GAP_SET_SECURITY_ENABLED) || ACI_GAP_SET_SECURITY_ENABLED) && !ACI_GAP_SET_SECURITY_FORCE_DISABLED
3963   /* aci_gap_set_security */
3964   {0xfc8d, aci_gap_set_security_process},
3965 #endif
3966 #if (!defined(ACI_GAP_GET_SECURITY_LEVEL_ENABLED) || ACI_GAP_GET_SECURITY_LEVEL_ENABLED) && !ACI_GAP_GET_SECURITY_LEVEL_FORCE_DISABLED
3967   /* aci_gap_get_security_level */
3968   {0xfc90, aci_gap_get_security_level_process},
3969 #endif
3970 #if (!defined(ACI_GAP_SET_LE_EVENT_MASK_ENABLED) || ACI_GAP_SET_LE_EVENT_MASK_ENABLED) && !ACI_GAP_SET_LE_EVENT_MASK_FORCE_DISABLED
3971   /* aci_gap_set_le_event_mask */
3972   {0xfc92, aci_gap_set_le_event_mask_process},
3973 #endif
3974 #if (!defined(ACI_GAP_TERMINATE_ENABLED) || ACI_GAP_TERMINATE_ENABLED) && !ACI_GAP_TERMINATE_FORCE_DISABLED
3975   /* aci_gap_terminate */
3976   {0xfc93, aci_gap_terminate_process},
3977 #endif
3978 #if (!defined(ACI_GAP_CLEAR_SECURITY_DB_ENABLED) || ACI_GAP_CLEAR_SECURITY_DB_ENABLED) && !ACI_GAP_CLEAR_SECURITY_DB_FORCE_DISABLED
3979   /* aci_gap_clear_security_db */
3980   {0xfc94, aci_gap_clear_security_db_process},
3981 #endif
3982 #if (!defined(ACI_GAP_PAIRING_RESP_ENABLED) || ACI_GAP_PAIRING_RESP_ENABLED) && !ACI_GAP_PAIRING_RESP_FORCE_DISABLED
3983   /* aci_gap_pairing_resp */
3984   {0xfc96, aci_gap_pairing_resp_process},
3985 #endif
3986 #if (!defined(ACI_GAP_CREATE_CONNECTION_ENABLED) || ACI_GAP_CREATE_CONNECTION_ENABLED) && !ACI_GAP_CREATE_CONNECTION_FORCE_DISABLED
3987   /* aci_gap_create_connection */
3988   {0xfc9c, aci_gap_create_connection_process},
3989 #endif
3990 #if (!defined(ACI_GAP_TERMINATE_PROC_ENABLED) || ACI_GAP_TERMINATE_PROC_ENABLED) && !ACI_GAP_TERMINATE_PROC_FORCE_DISABLED
3991   /* aci_gap_terminate_proc */
3992   {0xfc9d, aci_gap_terminate_proc_process},
3993 #endif
3994 #if (!defined(ACI_GAP_START_CONNECTION_UPDATE_ENABLED) || ACI_GAP_START_CONNECTION_UPDATE_ENABLED) && !ACI_GAP_START_CONNECTION_UPDATE_FORCE_DISABLED
3995   /* aci_gap_start_connection_update */
3996   {0xfc9e, aci_gap_start_connection_update_process},
3997 #endif
3998 #if (!defined(ACI_GAP_RESOLVE_PRIVATE_ADDR_ENABLED) || ACI_GAP_RESOLVE_PRIVATE_ADDR_ENABLED) && !ACI_GAP_RESOLVE_PRIVATE_ADDR_FORCE_DISABLED
3999   /* aci_gap_resolve_private_addr */
4000   {0xfca0, aci_gap_resolve_private_addr_process},
4001 #endif
4002 #if (!defined(ACI_GAP_GET_BONDED_DEVICES_ENABLED) || ACI_GAP_GET_BONDED_DEVICES_ENABLED) && !ACI_GAP_GET_BONDED_DEVICES_FORCE_DISABLED
4003   /* aci_gap_get_bonded_devices */
4004   {0xfca3, aci_gap_get_bonded_devices_process},
4005 #endif
4006 #if (!defined(ACI_GAP_IS_DEVICE_BONDED_ENABLED) || ACI_GAP_IS_DEVICE_BONDED_ENABLED) && !ACI_GAP_IS_DEVICE_BONDED_FORCE_DISABLED
4007   /* aci_gap_is_device_bonded */
4008   {0xfca4, aci_gap_is_device_bonded_process},
4009 #endif
4010 #if (!defined(ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_ENABLED) || ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_ENABLED) && !ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_FORCE_DISABLED
4011   /* aci_gap_numeric_comparison_value_confirm_yesno */
4012   {0xfca5, aci_gap_numeric_comparison_value_confirm_yesno_process},
4013 #endif
4014 #if (!defined(ACI_GAP_PASSKEY_INPUT_ENABLED) || ACI_GAP_PASSKEY_INPUT_ENABLED) && !ACI_GAP_PASSKEY_INPUT_FORCE_DISABLED
4015   /* aci_gap_passkey_input */
4016   {0xfca6, aci_gap_passkey_input_process},
4017 #endif
4018 #if (!defined(ACI_GAP_GET_OOB_DATA_ENABLED) || ACI_GAP_GET_OOB_DATA_ENABLED) && !ACI_GAP_GET_OOB_DATA_FORCE_DISABLED
4019   /* aci_gap_get_oob_data */
4020   {0xfca7, aci_gap_get_oob_data_process},
4021 #endif
4022 #if (!defined(ACI_GAP_SET_OOB_DATA_ENABLED) || ACI_GAP_SET_OOB_DATA_ENABLED) && !ACI_GAP_SET_OOB_DATA_FORCE_DISABLED
4023   /* aci_gap_set_oob_data */
4024   {0xfca8, aci_gap_set_oob_data_process},
4025 #endif
4026 #if (!defined(ACI_GAP_REMOVE_BONDED_DEVICE_ENABLED) || ACI_GAP_REMOVE_BONDED_DEVICE_ENABLED) && !ACI_GAP_REMOVE_BONDED_DEVICE_FORCE_DISABLED
4027   /* aci_gap_remove_bonded_device */
4028   {0xfcaa, aci_gap_remove_bonded_device_process},
4029 #endif
4030 #if (!defined(ACI_GAP_SET_ADVERTISING_CONFIGURATION_ENABLED) || ACI_GAP_SET_ADVERTISING_CONFIGURATION_ENABLED) && !ACI_GAP_SET_ADVERTISING_CONFIGURATION_FORCE_DISABLED
4031   /* aci_gap_set_advertising_configuration */
4032   {0xfcab, aci_gap_set_advertising_configuration_process},
4033 #endif
4034 #if (!defined(ACI_GAP_SET_ADVERTISING_ENABLE_ENABLED) || ACI_GAP_SET_ADVERTISING_ENABLE_ENABLED) && !ACI_GAP_SET_ADVERTISING_ENABLE_FORCE_DISABLED
4035   /* aci_gap_set_advertising_enable */
4036   {0xfcac, aci_gap_set_advertising_enable_process},
4037 #endif
4038 #if (!defined(ACI_GAP_SET_ADVERTISING_DATA_NWK_ENABLED) || ACI_GAP_SET_ADVERTISING_DATA_NWK_ENABLED) && !ACI_GAP_SET_ADVERTISING_DATA_NWK_FORCE_DISABLED
4039   /* aci_gap_set_advertising_data_nwk */
4040   {0xfcad, aci_gap_set_advertising_data_nwk_process},
4041 #endif
4042 #if (!defined(ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_ENABLED) || ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_ENABLED) && !ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_FORCE_DISABLED
4043   /* aci_gap_set_scan_response_data_nwk */
4044   {0xfcae, aci_gap_set_scan_response_data_nwk_process},
4045 #endif
4046 #if (!defined(ACI_GAP_SET_SCAN_CONFIGURATION_ENABLED) || ACI_GAP_SET_SCAN_CONFIGURATION_ENABLED) && !ACI_GAP_SET_SCAN_CONFIGURATION_FORCE_DISABLED
4047   /* aci_gap_set_scan_configuration */
4048   {0xfcaf, aci_gap_set_scan_configuration_process},
4049 #endif
4050 #if (!defined(ACI_GAP_SET_CONNECTION_CONFIGURATION_ENABLED) || ACI_GAP_SET_CONNECTION_CONFIGURATION_ENABLED) && !ACI_GAP_SET_CONNECTION_CONFIGURATION_FORCE_DISABLED
4051   /* aci_gap_set_connection_configuration */
4052   {0xfcb0, aci_gap_set_connection_configuration_process},
4053 #endif
4054 #if (!defined(ACI_GAP_START_PROCEDURE_ENABLED) || ACI_GAP_START_PROCEDURE_ENABLED) && !ACI_GAP_START_PROCEDURE_FORCE_DISABLED
4055   /* aci_gap_start_procedure */
4056   {0xfcb1, aci_gap_start_procedure_process},
4057 #endif
4058 #if (!defined(ACI_GAP_DISCOVER_NAME_ENABLED) || ACI_GAP_DISCOVER_NAME_ENABLED) && !ACI_GAP_DISCOVER_NAME_FORCE_DISABLED
4059   /* aci_gap_discover_name */
4060   {0xfcb2, aci_gap_discover_name_process},
4061 #endif
4062 #if (!defined(ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) || ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) && !ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_FORCE_DISABLED
4063   /* aci_gap_add_devices_to_filter_accept_and_resolving_list */
4064   {0xfcb3, aci_gap_add_devices_to_filter_accept_and_resolving_list_process},
4065 #endif
4066 #if (!defined(ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) || ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) && !ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_FORCE_DISABLED
4067   /* aci_gap_configure_filter_accept_and_resolving_list */
4068   {0xfcb4, aci_gap_configure_filter_accept_and_resolving_list_process},
4069 #endif
4070 #if (!defined(ACI_GAP_REMOVE_ADVERTISING_SET_ENABLED) || ACI_GAP_REMOVE_ADVERTISING_SET_ENABLED) && !ACI_GAP_REMOVE_ADVERTISING_SET_FORCE_DISABLED
4071   /* aci_gap_remove_advertising_set */
4072   {0xfcba, aci_gap_remove_advertising_set_process},
4073 #endif
4074 #if (!defined(ACI_GAP_CLEAR_ADVERTISING_SETS_ENABLED) || ACI_GAP_CLEAR_ADVERTISING_SETS_ENABLED) && !ACI_GAP_CLEAR_ADVERTISING_SETS_FORCE_DISABLED
4075   /* aci_gap_clear_advertising_sets */
4076   {0xfcbb, aci_gap_clear_advertising_sets_process},
4077 #endif
4078 #if (!defined(ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_ENABLED) || ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_ENABLED) && !ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_FORCE_DISABLED
4079   /* aci_gap_create_periodic_advertising_connection */
4080   {0xfcca, aci_gap_create_periodic_advertising_connection_process},
4081 #endif
4082 #if (!defined(ACI_GAP_ENCRYPT_ADV_DATA_NWK_ENABLED) || ACI_GAP_ENCRYPT_ADV_DATA_NWK_ENABLED) && !ACI_GAP_ENCRYPT_ADV_DATA_NWK_FORCE_DISABLED
4083   /* aci_gap_encrypt_adv_data_nwk */
4084   {0xfccb, aci_gap_encrypt_adv_data_nwk_process},
4085 #endif
4086 #if (!defined(ACI_GAP_DECRYPT_ADV_DATA_NWK_ENABLED) || ACI_GAP_DECRYPT_ADV_DATA_NWK_ENABLED) && !ACI_GAP_DECRYPT_ADV_DATA_NWK_FORCE_DISABLED
4087   /* aci_gap_decrypt_adv_data_nwk */
4088   {0xfccc, aci_gap_decrypt_adv_data_nwk_process},
4089 #endif
4090 #if (!defined(ACI_GATT_SRV_PROFILE_INIT_ENABLED) || ACI_GATT_SRV_PROFILE_INIT_ENABLED) && !ACI_GATT_SRV_PROFILE_INIT_FORCE_DISABLED
4091   /* aci_gatt_srv_profile_init */
4092   {0xfd01, aci_gatt_srv_profile_init_process},
4093 #endif
4094 #if (!defined(ACI_GATT_SRV_ADD_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_ADD_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_ADD_SERVICE_NWK_FORCE_DISABLED
4095   /* aci_gatt_srv_add_service_nwk */
4096   {0xfd02, aci_gatt_srv_add_service_nwk_process},
4097 #endif
4098 #if (!defined(ACI_GATT_SRV_INCLUDE_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_INCLUDE_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_INCLUDE_SERVICE_NWK_FORCE_DISABLED
4099   /* aci_gatt_srv_include_service_nwk */
4100   {0xfd03, aci_gatt_srv_include_service_nwk_process},
4101 #endif
4102 #if (!defined(ACI_GATT_SRV_ADD_CHAR_NWK_ENABLED) || ACI_GATT_SRV_ADD_CHAR_NWK_ENABLED) && !ACI_GATT_SRV_ADD_CHAR_NWK_FORCE_DISABLED
4103   /* aci_gatt_srv_add_char_nwk */
4104   {0xfd04, aci_gatt_srv_add_char_nwk_process},
4105 #endif
4106 #if (!defined(ACI_GATT_SRV_ADD_CHAR_DESC_NWK_ENABLED) || ACI_GATT_SRV_ADD_CHAR_DESC_NWK_ENABLED) && !ACI_GATT_SRV_ADD_CHAR_DESC_NWK_FORCE_DISABLED
4107   /* aci_gatt_srv_add_char_desc_nwk */
4108   {0xfd05, aci_gatt_srv_add_char_desc_nwk_process},
4109 #endif
4110 #if (!defined(ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_FORCE_DISABLED
4111   /* aci_gatt_srv_write_handle_value_nwk */
4112   {0xfd06, aci_gatt_srv_write_handle_value_nwk_process},
4113 #endif
4114 #if (!defined(ACI_GATT_SRV_RM_CHAR_NWK_ENABLED) || ACI_GATT_SRV_RM_CHAR_NWK_ENABLED) && !ACI_GATT_SRV_RM_CHAR_NWK_FORCE_DISABLED
4115   /* aci_gatt_srv_rm_char_nwk */
4116   {0xfd07, aci_gatt_srv_rm_char_nwk_process},
4117 #endif
4118 #if (!defined(ACI_GATT_SRV_RM_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_RM_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_RM_SERVICE_NWK_FORCE_DISABLED
4119   /* aci_gatt_srv_rm_service_nwk */
4120   {0xfd08, aci_gatt_srv_rm_service_nwk_process},
4121 #endif
4122 #if (!defined(ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_FORCE_DISABLED
4123   /* aci_gatt_srv_rm_include_service_nwk */
4124   {0xfd09, aci_gatt_srv_rm_include_service_nwk_process},
4125 #endif
4126 #if (!defined(ACI_GATT_SET_EVENT_MASK_ENABLED) || ACI_GATT_SET_EVENT_MASK_ENABLED) && !ACI_GATT_SET_EVENT_MASK_FORCE_DISABLED
4127   /* aci_gatt_set_event_mask */
4128   {0xfd0a, aci_gatt_set_event_mask_process},
4129 #endif
4130 #if (!defined(ACI_GATT_CLT_EXCHANGE_CONFIG_ENABLED) || ACI_GATT_CLT_EXCHANGE_CONFIG_ENABLED) && !ACI_GATT_CLT_EXCHANGE_CONFIG_FORCE_DISABLED
4131   /* aci_gatt_clt_exchange_config */
4132   {0xfd0b, aci_gatt_clt_exchange_config_process},
4133 #endif
4134 #if (!defined(ACI_GATT_CLT_PREPARE_WRITE_REQ_ENABLED) || ACI_GATT_CLT_PREPARE_WRITE_REQ_ENABLED) && !ACI_GATT_CLT_PREPARE_WRITE_REQ_FORCE_DISABLED
4135   /* aci_gatt_clt_prepare_write_req */
4136   {0xfd10, aci_gatt_clt_prepare_write_req_process},
4137 #endif
4138 #if (!defined(ACI_GATT_CLT_EXECUTE_WRITE_REQ_ENABLED) || ACI_GATT_CLT_EXECUTE_WRITE_REQ_ENABLED) && !ACI_GATT_CLT_EXECUTE_WRITE_REQ_FORCE_DISABLED
4139   /* aci_gatt_clt_execute_write_req */
4140   {0xfd11, aci_gatt_clt_execute_write_req_process},
4141 #endif
4142 #if (!defined(ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_ENABLED) || ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_ENABLED) && !ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_FORCE_DISABLED
4143   /* aci_gatt_clt_disc_all_primary_services */
4144   {0xfd12, aci_gatt_clt_disc_all_primary_services_process},
4145 #endif
4146 #if (!defined(ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_ENABLED) || ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_ENABLED) && !ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_FORCE_DISABLED
4147   /* aci_gatt_clt_disc_primary_service_by_uuid */
4148   {0xfd13, aci_gatt_clt_disc_primary_service_by_uuid_process},
4149 #endif
4150 #if (!defined(ACI_GATT_CLT_FIND_INCLUDED_SERVICES_ENABLED) || ACI_GATT_CLT_FIND_INCLUDED_SERVICES_ENABLED) && !ACI_GATT_CLT_FIND_INCLUDED_SERVICES_FORCE_DISABLED
4151   /* aci_gatt_clt_find_included_services */
4152   {0xfd14, aci_gatt_clt_find_included_services_process},
4153 #endif
4154 #if (!defined(ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_ENABLED) || ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_ENABLED) && !ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_FORCE_DISABLED
4155   /* aci_gatt_clt_disc_all_char_of_service */
4156   {0xfd15, aci_gatt_clt_disc_all_char_of_service_process},
4157 #endif
4158 #if (!defined(ACI_GATT_CLT_DISC_CHAR_BY_UUID_ENABLED) || ACI_GATT_CLT_DISC_CHAR_BY_UUID_ENABLED) && !ACI_GATT_CLT_DISC_CHAR_BY_UUID_FORCE_DISABLED
4159   /* aci_gatt_clt_disc_char_by_uuid */
4160   {0xfd16, aci_gatt_clt_disc_char_by_uuid_process},
4161 #endif
4162 #if (!defined(ACI_GATT_CLT_DISC_ALL_CHAR_DESC_ENABLED) || ACI_GATT_CLT_DISC_ALL_CHAR_DESC_ENABLED) && !ACI_GATT_CLT_DISC_ALL_CHAR_DESC_FORCE_DISABLED
4163   /* aci_gatt_clt_disc_all_char_desc */
4164   {0xfd17, aci_gatt_clt_disc_all_char_desc_process},
4165 #endif
4166 #if (!defined(ACI_GATT_CLT_READ_ENABLED) || ACI_GATT_CLT_READ_ENABLED) && !ACI_GATT_CLT_READ_FORCE_DISABLED
4167   /* aci_gatt_clt_read */
4168   {0xfd18, aci_gatt_clt_read_process},
4169 #endif
4170 #if (!defined(ACI_GATT_CLT_READ_USING_CHAR_UUID_ENABLED) || ACI_GATT_CLT_READ_USING_CHAR_UUID_ENABLED) && !ACI_GATT_CLT_READ_USING_CHAR_UUID_FORCE_DISABLED
4171   /* aci_gatt_clt_read_using_char_uuid */
4172   {0xfd19, aci_gatt_clt_read_using_char_uuid_process},
4173 #endif
4174 #if (!defined(ACI_GATT_CLT_READ_LONG_ENABLED) || ACI_GATT_CLT_READ_LONG_ENABLED) && !ACI_GATT_CLT_READ_LONG_FORCE_DISABLED
4175   /* aci_gatt_clt_read_long */
4176   {0xfd1a, aci_gatt_clt_read_long_process},
4177 #endif
4178 #if (!defined(ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_ENABLED) || ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_ENABLED) && !ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_FORCE_DISABLED
4179   /* aci_gatt_clt_read_multiple_char_value */
4180   {0xfd1b, aci_gatt_clt_read_multiple_char_value_process},
4181 #endif
4182 #if (!defined(ACI_GATT_CLT_WRITE_NWK_ENABLED) || ACI_GATT_CLT_WRITE_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_NWK_FORCE_DISABLED
4183   /* aci_gatt_clt_write_nwk */
4184   {0xfd1c, aci_gatt_clt_write_nwk_process},
4185 #endif
4186 #if (!defined(ACI_GATT_CLT_WRITE_LONG_NWK_ENABLED) || ACI_GATT_CLT_WRITE_LONG_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_LONG_NWK_FORCE_DISABLED
4187   /* aci_gatt_clt_write_long_nwk */
4188   {0xfd1d, aci_gatt_clt_write_long_nwk_process},
4189 #endif
4190 #if (!defined(ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_ENABLED) || ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_FORCE_DISABLED
4191   /* aci_gatt_clt_write_char_reliable_nwk */
4192   {0xfd1e, aci_gatt_clt_write_char_reliable_nwk_process},
4193 #endif
4194 #if (!defined(ACI_GATT_CLT_WRITE_WITHOUT_RESP_ENABLED) || ACI_GATT_CLT_WRITE_WITHOUT_RESP_ENABLED) && !ACI_GATT_CLT_WRITE_WITHOUT_RESP_FORCE_DISABLED
4195   /* aci_gatt_clt_write_without_resp */
4196   {0xfd23, aci_gatt_clt_write_without_resp_process},
4197 #endif
4198 #if (!defined(ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_ENABLED) || ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_ENABLED) && !ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_FORCE_DISABLED
4199   /* aci_gatt_clt_signed_write_without_resp */
4200   {0xfd24, aci_gatt_clt_signed_write_without_resp_process},
4201 #endif
4202 #if (!defined(ACI_GATT_CLT_CONFIRM_INDICATION_ENABLED) || ACI_GATT_CLT_CONFIRM_INDICATION_ENABLED) && !ACI_GATT_CLT_CONFIRM_INDICATION_FORCE_DISABLED
4203   /* aci_gatt_clt_confirm_indication */
4204   {0xfd25, aci_gatt_clt_confirm_indication_process},
4205 #endif
4206 #if (!defined(ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_ENABLED) || ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_ENABLED) && !ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_FORCE_DISABLED
4207   /* aci_gatt_srv_set_security_permission_nwk */
4208   {0xfd28, aci_gatt_srv_set_security_permission_nwk_process},
4209 #endif
4210 #if (!defined(ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_FORCE_DISABLED
4211   /* aci_gatt_srv_read_handle_value_nwk */
4212   {0xfd2a, aci_gatt_srv_read_handle_value_nwk_process},
4213 #endif
4214 #if (!defined(ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_ENABLED) || ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_ENABLED) && !ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_FORCE_DISABLED
4215   /* aci_gatt_srv_set_access_permission_nwk */
4216   {0xfd2e, aci_gatt_srv_set_access_permission_nwk_process},
4217 #endif
4218 #if (!defined(ACI_GATT_SRV_NOTIFY_ENABLED) || ACI_GATT_SRV_NOTIFY_ENABLED) && !ACI_GATT_SRV_NOTIFY_FORCE_DISABLED
4219   /* aci_gatt_srv_notify */
4220   {0xfd2f, aci_gatt_srv_notify_process},
4221 #endif
4222 #if (!defined(ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_ENABLED) || ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_ENABLED) && !ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_FORCE_DISABLED
4223   /* aci_gatt_srv_exec_write_resp_nwk */
4224   {0xfd31, aci_gatt_srv_exec_write_resp_nwk_process},
4225 #endif
4226 #if (!defined(ACI_GATT_SRV_AUTHORIZE_RESP_NWK_ENABLED) || ACI_GATT_SRV_AUTHORIZE_RESP_NWK_ENABLED) && !ACI_GATT_SRV_AUTHORIZE_RESP_NWK_FORCE_DISABLED
4227   /* aci_gatt_srv_authorize_resp_nwk */
4228   {0xfd33, aci_gatt_srv_authorize_resp_nwk_process},
4229 #endif
4230 #if (!defined(ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_ENABLED) || ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_FORCE_DISABLED
4231   /* aci_gatt_srv_read_prepare_queue_nwk */
4232   {0xfd35, aci_gatt_srv_read_prepare_queue_nwk_process},
4233 #endif
4234 #if (!defined(ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED) || ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED) && !ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_FORCE_DISABLED
4235   /* aci_gatt_srv_write_multiple_instance_handle_value */
4236   {0xfd36, aci_gatt_srv_write_multiple_instance_handle_value_process},
4237 #endif
4238 #if (!defined(ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_FORCE_DISABLED
4239   /* aci_gatt_srv_read_multiple_instance_handle_value_nwk */
4240   {0xfd37, aci_gatt_srv_read_multiple_instance_handle_value_nwk_process},
4241 #endif
4242 #if (!defined(ACI_GATT_SRV_MULTI_NOTIFY_ENABLED) || ACI_GATT_SRV_MULTI_NOTIFY_ENABLED) && !ACI_GATT_SRV_MULTI_NOTIFY_FORCE_DISABLED
4243   /* aci_gatt_srv_multi_notify */
4244   {0xfd38, aci_gatt_srv_multi_notify_process},
4245 #endif
4246 #if (!defined(ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_ENABLED) || ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_ENABLED) && !ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_FORCE_DISABLED
4247   /* aci_gatt_clt_read_multiple_var_len_char_value */
4248   {0xfd39, aci_gatt_clt_read_multiple_var_len_char_value_process},
4249 #endif
4250 #if (!defined(ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_ENABLED) || ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_ENABLED) && !ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_FORCE_DISABLED
4251   /* aci_l2cap_connection_parameter_update_req */
4252   {0xfd81, aci_l2cap_connection_parameter_update_req_process},
4253 #endif
4254 #if (!defined(ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_ENABLED) || ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_ENABLED) && !ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_FORCE_DISABLED
4255   /* aci_l2cap_connection_parameter_update_resp */
4256   {0xfd82, aci_l2cap_connection_parameter_update_resp_process},
4257 #endif
4258 #if (!defined(ACI_L2CAP_COS_CONNECTION_REQ_ENABLED) || ACI_L2CAP_COS_CONNECTION_REQ_ENABLED) && !ACI_L2CAP_COS_CONNECTION_REQ_FORCE_DISABLED
4259   /* aci_l2cap_cos_connection_req */
4260   {0xfd83, aci_l2cap_cos_connection_req_process},
4261 #endif
4262 #if (!defined(ACI_L2CAP_COS_CONNECTION_RESP_ENABLED) || ACI_L2CAP_COS_CONNECTION_RESP_ENABLED) && !ACI_L2CAP_COS_CONNECTION_RESP_FORCE_DISABLED
4263   /* aci_l2cap_cos_connection_resp */
4264   {0xfd84, aci_l2cap_cos_connection_resp_process},
4265 #endif
4266 #if (!defined(ACI_L2CAP_COS_DISCONNECT_REQ_ENABLED) || ACI_L2CAP_COS_DISCONNECT_REQ_ENABLED) && !ACI_L2CAP_COS_DISCONNECT_REQ_FORCE_DISABLED
4267   /* aci_l2cap_cos_disconnect_req */
4268   {0xfd86, aci_l2cap_cos_disconnect_req_process},
4269 #endif
4270 #if (!defined(ACI_L2CAP_COS_SDU_DATA_TRANSMIT_ENABLED) || ACI_L2CAP_COS_SDU_DATA_TRANSMIT_ENABLED) && !ACI_L2CAP_COS_SDU_DATA_TRANSMIT_FORCE_DISABLED
4271   /* aci_l2cap_cos_sdu_data_transmit */
4272   {0xfd87, aci_l2cap_cos_sdu_data_transmit_process},
4273 #endif
4274 #if (!defined(ACI_L2CAP_COS_RECONFIGURE_REQ_ENABLED) || ACI_L2CAP_COS_RECONFIGURE_REQ_ENABLED) && !ACI_L2CAP_COS_RECONFIGURE_REQ_FORCE_DISABLED
4275   /* aci_l2cap_cos_reconfigure_req */
4276   {0xfd8a, aci_l2cap_cos_reconfigure_req_process},
4277 #endif
4278 #if (!defined(ACI_L2CAP_COS_RECONFIGURE_RESP_ENABLED) || ACI_L2CAP_COS_RECONFIGURE_RESP_ENABLED) && !ACI_L2CAP_COS_RECONFIGURE_RESP_FORCE_DISABLED
4279   /* aci_l2cap_cos_reconfigure_resp */
4280   {0xfd8b, aci_l2cap_cos_reconfigure_resp_process},
4281 #endif
4282 #if (!defined(ACI_TEST_TX_NOTIFICATION_START_ENABLED) || ACI_TEST_TX_NOTIFICATION_START_ENABLED) && !ACI_TEST_TX_NOTIFICATION_START_FORCE_DISABLED
4283   /* aci_test_tx_notification_start */
4284   {0xfe00, aci_test_tx_notification_start_process},
4285 #endif
4286 #if (!defined(ACI_TEST_TX_WRITE_COMMAND_START_ENABLED) || ACI_TEST_TX_WRITE_COMMAND_START_ENABLED) && !ACI_TEST_TX_WRITE_COMMAND_START_FORCE_DISABLED
4287   /* aci_test_tx_write_command_start */
4288   {0xfe01, aci_test_tx_write_command_start_process},
4289 #endif
4290 #if (!defined(ACI_TEST_RX_START_ENABLED) || ACI_TEST_RX_START_ENABLED) && !ACI_TEST_RX_START_FORCE_DISABLED
4291   /* aci_test_rx_start */
4292   {0xfe02, aci_test_rx_start_process},
4293 #endif
4294 #if (!defined(ACI_TEST_STOP_ENABLED) || ACI_TEST_STOP_ENABLED) && !ACI_TEST_STOP_FORCE_DISABLED
4295   /* aci_test_stop */
4296   {0xfe03, aci_test_stop_process},
4297 #endif
4298 #if (!defined(ACI_TEST_REPORT_ENABLED) || ACI_TEST_REPORT_ENABLED) && !ACI_TEST_REPORT_FORCE_DISABLED
4299   /* aci_test_report */
4300   {0xfe04, aci_test_report_process},
4301 #endif
4302 
4303 #endif /* BLESTACK_CONTROLLER_ONLY==0 */
4304   {0, NULL}
4305 };
4306 
4307 #if (!defined(HCI_DISCONNECT_ENABLED) || HCI_DISCONNECT_ENABLED) && !HCI_DISCONNECT_FORCE_DISABLED
4308 /* tBleStatus hci_disconnect(uint16_t Connection_Handle,
4309                           uint8_t Reason);
4310  */
4311 /* Command len: 2 + 1 */
4312 /* Response len: 1 */
hci_disconnect_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4313 uint16_t hci_disconnect_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4314 {
4315   /* Input params */
4316   hci_disconnect_cp0 *cp0 = (hci_disconnect_cp0 *)(buffer_in + (0));
4317 
4318   int output_size = 1;
4319   /* Output params */
4320   uint8_t *status = (uint8_t *) (buffer_out + 3);
4321 
4322   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4323   if (buffer_out_max_length < (1 + 6)) { return 0; }
4324   if(buffer_in_length != 2 + 1)
4325   {
4326     goto fail;
4327   }
4328 
4329   *status = hci_disconnect(cp0->Connection_Handle /* 2 */,
4330                            cp0->Reason /* 1 */);
4331 fail:
4332   buffer_out[0] = 0x04;
4333   buffer_out[1] = 0x0F;
4334   buffer_out[2] = output_size + 3;
4335   buffer_out[4] = 0x01;
4336   buffer_out[5] = 0x06;
4337   buffer_out[6] = 0x04;
4338   return (output_size + 6);
4339 }
4340 #endif
4341 
4342 #if (!defined(HCI_READ_REMOTE_VERSION_INFORMATION_ENABLED) || HCI_READ_REMOTE_VERSION_INFORMATION_ENABLED) && !HCI_READ_REMOTE_VERSION_INFORMATION_FORCE_DISABLED
4343 /* tBleStatus hci_read_remote_version_information(uint16_t Connection_Handle);
4344  */
4345 /* Command len: 2 */
4346 /* Response len: 1 */
hci_read_remote_version_information_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4347 uint16_t hci_read_remote_version_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4348 {
4349   /* Input params */
4350   hci_read_remote_version_information_cp0 *cp0 = (hci_read_remote_version_information_cp0 *)(buffer_in + (0));
4351 
4352   int output_size = 1;
4353   /* Output params */
4354   uint8_t *status = (uint8_t *) (buffer_out + 3);
4355 
4356   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4357   if (buffer_out_max_length < (1 + 6)) { return 0; }
4358   if(buffer_in_length != 2)
4359   {
4360     goto fail;
4361   }
4362 
4363   *status = hci_read_remote_version_information(cp0->Connection_Handle /* 2 */);
4364 fail:
4365   buffer_out[0] = 0x04;
4366   buffer_out[1] = 0x0F;
4367   buffer_out[2] = output_size + 3;
4368   buffer_out[4] = 0x01;
4369   buffer_out[5] = 0x1d;
4370   buffer_out[6] = 0x04;
4371   return (output_size + 6);
4372 }
4373 #endif
4374 
4375 #if (!defined(HCI_SET_EVENT_MASK_ENABLED) || HCI_SET_EVENT_MASK_ENABLED) && !HCI_SET_EVENT_MASK_FORCE_DISABLED
4376 /* tBleStatus hci_set_event_mask(uint8_t Event_Mask[8]);
4377  */
4378 /* Command len: 8 */
4379 /* Response len: 1 */
hci_set_event_mask_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4380 uint16_t hci_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4381 {
4382   /* Input params */
4383   hci_set_event_mask_cp0 *cp0 = (hci_set_event_mask_cp0 *)(buffer_in + (0));
4384 
4385   int output_size = 1;
4386   /* Output params */
4387   uint8_t *status = (uint8_t *) (buffer_out + 6);
4388 
4389   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4390   if (buffer_out_max_length < (1 + 6)) { return 0; }
4391   if(buffer_in_length != 8)
4392   {
4393     goto fail;
4394   }
4395 
4396   *status = hci_set_event_mask(cp0->Event_Mask /* 8 */);
4397 fail:
4398   buffer_out[0] = 0x04;
4399   buffer_out[1] = 0x0E;
4400   buffer_out[2] = output_size + 3;
4401   buffer_out[3] = 0x01;
4402   buffer_out[4] = 0x01;
4403   buffer_out[5] = 0x0c;
4404   return (output_size + 6);
4405 }
4406 #endif
4407 
4408 #if (!defined(HCI_READ_CONNECTION_ACCEPT_TIMEOUT_ENABLED) || HCI_READ_CONNECTION_ACCEPT_TIMEOUT_ENABLED) && !HCI_READ_CONNECTION_ACCEPT_TIMEOUT_FORCE_DISABLED
4409 /* tBleStatus hci_read_connection_accept_timeout(uint16_t *Connection_Accept_Timeout);
4410  */
4411 /* Command len: 0 */
4412 /* Response len: 1 + 2 */
hci_read_connection_accept_timeout_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4413 uint16_t hci_read_connection_accept_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4414 {
4415 
4416   int output_size = 1 + 2;
4417   /* Output params */
4418   hci_read_connection_accept_timeout_rp0 *rp0 = (hci_read_connection_accept_timeout_rp0 *) (buffer_out + 6);
4419   uint16_t Connection_Accept_Timeout = 0;
4420 
4421   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4422   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
4423   if(buffer_in_length != 0)
4424   {
4425     goto fail;
4426   }
4427 
4428   rp0->Status = hci_read_connection_accept_timeout(&Connection_Accept_Timeout);
4429 fail:
4430   rp0->Connection_Accept_Timeout = Connection_Accept_Timeout;
4431   buffer_out[0] = 0x04;
4432   buffer_out[1] = 0x0E;
4433   buffer_out[2] = output_size + 3;
4434   buffer_out[3] = 0x01;
4435   buffer_out[4] = 0x15;
4436   buffer_out[5] = 0x0c;
4437   return (output_size + 6);
4438 }
4439 #endif
4440 
4441 #if (!defined(HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_ENABLED) || HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_ENABLED) && !HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_FORCE_DISABLED
4442 /* tBleStatus hci_write_connection_accept_timeout(uint16_t Connection_Accept_Timeout);
4443  */
4444 /* Command len: 2 */
4445 /* Response len: 1 */
hci_write_connection_accept_timeout_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4446 uint16_t hci_write_connection_accept_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4447 {
4448   /* Input params */
4449   hci_write_connection_accept_timeout_cp0 *cp0 = (hci_write_connection_accept_timeout_cp0 *)(buffer_in + (0));
4450 
4451   int output_size = 1;
4452   /* Output params */
4453   uint8_t *status = (uint8_t *) (buffer_out + 6);
4454 
4455   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4456   if (buffer_out_max_length < (1 + 6)) { return 0; }
4457   if(buffer_in_length != 2)
4458   {
4459     goto fail;
4460   }
4461 
4462   *status = hci_write_connection_accept_timeout(cp0->Connection_Accept_Timeout /* 2 */);
4463 fail:
4464   buffer_out[0] = 0x04;
4465   buffer_out[1] = 0x0E;
4466   buffer_out[2] = output_size + 3;
4467   buffer_out[3] = 0x01;
4468   buffer_out[4] = 0x16;
4469   buffer_out[5] = 0x0c;
4470   return (output_size + 6);
4471 }
4472 #endif
4473 
4474 #if (!defined(HCI_READ_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_READ_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_READ_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
4475 /* tBleStatus hci_read_transmit_power_level(uint16_t Connection_Handle,
4476                                          uint8_t Type,
4477                                          int8_t *Transmit_Power_Level);
4478  */
4479 /* Command len: 2 + 1 */
4480 /* Response len: 1 + 2 + 1 */
hci_read_transmit_power_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4481 uint16_t hci_read_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4482 {
4483   /* Input params */
4484   hci_read_transmit_power_level_cp0 *cp0 = (hci_read_transmit_power_level_cp0 *)(buffer_in + (0));
4485 
4486   int output_size = 1 + 2 + 1;
4487   /* Output params */
4488   hci_read_transmit_power_level_rp0 *rp0 = (hci_read_transmit_power_level_rp0 *) (buffer_out + 6);
4489   int8_t Transmit_Power_Level = 0;
4490 
4491   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4492   if (buffer_out_max_length < (1 + 2 + 1 + 6)) { return 0; }
4493   if(buffer_in_length != 2 + 1)
4494   {
4495     goto fail;
4496   }
4497 
4498   rp0->Status = hci_read_transmit_power_level(cp0->Connection_Handle /* 2 */,
4499                                               cp0->Type /* 1 */,
4500                                               &Transmit_Power_Level);
4501 fail:
4502   rp0->Connection_Handle = cp0->Connection_Handle;
4503   rp0->Transmit_Power_Level = Transmit_Power_Level;
4504   buffer_out[0] = 0x04;
4505   buffer_out[1] = 0x0E;
4506   buffer_out[2] = output_size + 3;
4507   buffer_out[3] = 0x01;
4508   buffer_out[4] = 0x2d;
4509   buffer_out[5] = 0x0c;
4510   return (output_size + 6);
4511 }
4512 #endif
4513 
4514 #if (!defined(HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) || HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) && !HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_FORCE_DISABLED
4515 /* tBleStatus hci_read_afh_channel_assessment_mode(uint8_t *AFH_Channel_Assessment_Mode);
4516  */
4517 /* Command len: 0 */
4518 /* Response len: 1 + 1 */
hci_read_afh_channel_assessment_mode_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4519 uint16_t hci_read_afh_channel_assessment_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4520 {
4521 
4522   int output_size = 1 + 1;
4523   /* Output params */
4524   hci_read_afh_channel_assessment_mode_rp0 *rp0 = (hci_read_afh_channel_assessment_mode_rp0 *) (buffer_out + 6);
4525   uint8_t AFH_Channel_Assessment_Mode = 0;
4526 
4527   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4528   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
4529   if(buffer_in_length != 0)
4530   {
4531     goto fail;
4532   }
4533 
4534   rp0->Status = hci_read_afh_channel_assessment_mode(&AFH_Channel_Assessment_Mode);
4535 fail:
4536   rp0->AFH_Channel_Assessment_Mode = AFH_Channel_Assessment_Mode;
4537   buffer_out[0] = 0x04;
4538   buffer_out[1] = 0x0E;
4539   buffer_out[2] = output_size + 3;
4540   buffer_out[3] = 0x01;
4541   buffer_out[4] = 0x48;
4542   buffer_out[5] = 0x0c;
4543   return (output_size + 6);
4544 }
4545 #endif
4546 
4547 #if (!defined(HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) || HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED) && !HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_FORCE_DISABLED
4548 /* tBleStatus hci_write_afh_channel_assessment_mode(uint8_t AFH_Channel_Assessment_Mode);
4549  */
4550 /* Command len: 1 */
4551 /* Response len: 1 */
hci_write_afh_channel_assessment_mode_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4552 uint16_t hci_write_afh_channel_assessment_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4553 {
4554   /* Input params */
4555   hci_write_afh_channel_assessment_mode_cp0 *cp0 = (hci_write_afh_channel_assessment_mode_cp0 *)(buffer_in + (0));
4556 
4557   int output_size = 1;
4558   /* Output params */
4559   uint8_t *status = (uint8_t *) (buffer_out + 6);
4560 
4561   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4562   if (buffer_out_max_length < (1 + 6)) { return 0; }
4563   if(buffer_in_length != 1)
4564   {
4565     goto fail;
4566   }
4567 
4568   *status = hci_write_afh_channel_assessment_mode(cp0->AFH_Channel_Assessment_Mode /* 1 */);
4569 fail:
4570   buffer_out[0] = 0x04;
4571   buffer_out[1] = 0x0E;
4572   buffer_out[2] = output_size + 3;
4573   buffer_out[3] = 0x01;
4574   buffer_out[4] = 0x49;
4575   buffer_out[5] = 0x0c;
4576   return (output_size + 6);
4577 }
4578 #endif
4579 
4580 #if (!defined(HCI_SET_EVENT_MASK_PAGE_2_ENABLED) || HCI_SET_EVENT_MASK_PAGE_2_ENABLED) && !HCI_SET_EVENT_MASK_PAGE_2_FORCE_DISABLED
4581 /* tBleStatus hci_set_event_mask_page_2(uint8_t Event_Mask_Page_2[8]);
4582  */
4583 /* Command len: 8 */
4584 /* Response len: 1 */
hci_set_event_mask_page_2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4585 uint16_t hci_set_event_mask_page_2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4586 {
4587   /* Input params */
4588   hci_set_event_mask_page_2_cp0 *cp0 = (hci_set_event_mask_page_2_cp0 *)(buffer_in + (0));
4589 
4590   int output_size = 1;
4591   /* Output params */
4592   uint8_t *status = (uint8_t *) (buffer_out + 6);
4593 
4594   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4595   if (buffer_out_max_length < (1 + 6)) { return 0; }
4596   if(buffer_in_length != 8)
4597   {
4598     goto fail;
4599   }
4600 
4601   *status = hci_set_event_mask_page_2(cp0->Event_Mask_Page_2 /* 8 */);
4602 fail:
4603   buffer_out[0] = 0x04;
4604   buffer_out[1] = 0x0E;
4605   buffer_out[2] = output_size + 3;
4606   buffer_out[3] = 0x01;
4607   buffer_out[4] = 0x63;
4608   buffer_out[5] = 0x0c;
4609   return (output_size + 6);
4610 }
4611 #endif
4612 
4613 #if (!defined(HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) || HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) && !HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_FORCE_DISABLED
4614 /* tBleStatus hci_read_authenticated_payload_timeout(uint16_t Connection_Handle,
4615                                                   uint16_t *Authenticated_Payload_Timeout);
4616  */
4617 /* Command len: 2 */
4618 /* Response len: 1 + 2 + 2 */
hci_read_authenticated_payload_timeout_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4619 uint16_t hci_read_authenticated_payload_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4620 {
4621   /* Input params */
4622   hci_read_authenticated_payload_timeout_cp0 *cp0 = (hci_read_authenticated_payload_timeout_cp0 *)(buffer_in + (0));
4623 
4624   int output_size = 1 + 2 + 2;
4625   /* Output params */
4626   hci_read_authenticated_payload_timeout_rp0 *rp0 = (hci_read_authenticated_payload_timeout_rp0 *) (buffer_out + 6);
4627   uint16_t Authenticated_Payload_Timeout = 0;
4628 
4629   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4630   if (buffer_out_max_length < (1 + 2 + 2 + 6)) { return 0; }
4631   if(buffer_in_length != 2)
4632   {
4633     goto fail;
4634   }
4635 
4636   rp0->Status = hci_read_authenticated_payload_timeout(cp0->Connection_Handle /* 2 */,
4637                                                        &Authenticated_Payload_Timeout);
4638 fail:
4639   rp0->Connection_Handle = cp0->Connection_Handle;
4640   rp0->Authenticated_Payload_Timeout = Authenticated_Payload_Timeout;
4641   buffer_out[0] = 0x04;
4642   buffer_out[1] = 0x0E;
4643   buffer_out[2] = output_size + 3;
4644   buffer_out[3] = 0x01;
4645   buffer_out[4] = 0x7b;
4646   buffer_out[5] = 0x0c;
4647   return (output_size + 6);
4648 }
4649 #endif
4650 
4651 #if (!defined(HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) || HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED) && !HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_FORCE_DISABLED
4652 /* tBleStatus hci_write_authenticated_payload_timeout(uint16_t Connection_Handle,
4653                                                    uint16_t Authenticated_Payload_Timeout);
4654  */
4655 /* Command len: 2 + 2 */
4656 /* Response len: 1 + 2 */
hci_write_authenticated_payload_timeout_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4657 uint16_t hci_write_authenticated_payload_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4658 {
4659   /* Input params */
4660   hci_write_authenticated_payload_timeout_cp0 *cp0 = (hci_write_authenticated_payload_timeout_cp0 *)(buffer_in + (0));
4661 
4662   int output_size = 1 + 2;
4663   /* Output params */
4664   hci_write_authenticated_payload_timeout_rp0 *rp0 = (hci_write_authenticated_payload_timeout_rp0 *) (buffer_out + 6);
4665 
4666   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4667   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
4668   if(buffer_in_length != 2 + 2)
4669   {
4670     goto fail;
4671   }
4672 
4673   rp0->Status = hci_write_authenticated_payload_timeout(cp0->Connection_Handle /* 2 */,
4674                                                         cp0->Authenticated_Payload_Timeout /* 2 */);
4675 fail:
4676   rp0->Connection_Handle = cp0->Connection_Handle;
4677   buffer_out[0] = 0x04;
4678   buffer_out[1] = 0x0E;
4679   buffer_out[2] = output_size + 3;
4680   buffer_out[3] = 0x01;
4681   buffer_out[4] = 0x7c;
4682   buffer_out[5] = 0x0c;
4683   return (output_size + 6);
4684 }
4685 #endif
4686 
4687 #if (!defined(HCI_READ_LOCAL_VERSION_INFORMATION_ENABLED) || HCI_READ_LOCAL_VERSION_INFORMATION_ENABLED) && !HCI_READ_LOCAL_VERSION_INFORMATION_FORCE_DISABLED
4688 /* tBleStatus hci_read_local_version_information(uint8_t *HCI_Version,
4689                                               uint16_t *HCI_Revision,
4690                                               uint8_t *LMP_PAL_Version,
4691                                               uint16_t *Manufacturer_Name,
4692                                               uint16_t *LMP_PAL_Subversion);
4693  */
4694 /* Command len: 0 */
4695 /* Response len: 1 + 1 + 2 + 1 + 2 + 2 */
hci_read_local_version_information_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4696 uint16_t hci_read_local_version_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4697 {
4698 
4699   int output_size = 1 + 1 + 2 + 1 + 2 + 2;
4700   /* Output params */
4701   hci_read_local_version_information_rp0 *rp0 = (hci_read_local_version_information_rp0 *) (buffer_out + 6);
4702   uint8_t HCI_Version = 0;
4703   uint16_t HCI_Revision = 0;
4704   uint8_t LMP_PAL_Version = 0;
4705   uint16_t Manufacturer_Name = 0;
4706   uint16_t LMP_PAL_Subversion = 0;
4707 
4708   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4709   if (buffer_out_max_length < (1 + 1 + 2 + 1 + 2 + 2 + 6)) { return 0; }
4710   if(buffer_in_length != 0)
4711   {
4712     goto fail;
4713   }
4714 
4715   rp0->Status = hci_read_local_version_information(&HCI_Version,
4716                                                    &HCI_Revision,
4717                                                    &LMP_PAL_Version,
4718                                                    &Manufacturer_Name,
4719                                                    &LMP_PAL_Subversion);
4720 fail:
4721   rp0->HCI_Version = HCI_Version;
4722   rp0->HCI_Revision = HCI_Revision;
4723   rp0->LMP_PAL_Version = LMP_PAL_Version;
4724   rp0->Manufacturer_Name = Manufacturer_Name;
4725   rp0->LMP_PAL_Subversion = LMP_PAL_Subversion;
4726   buffer_out[0] = 0x04;
4727   buffer_out[1] = 0x0E;
4728   buffer_out[2] = output_size + 3;
4729   buffer_out[3] = 0x01;
4730   buffer_out[4] = 0x01;
4731   buffer_out[5] = 0x10;
4732   return (output_size + 6);
4733 }
4734 #endif
4735 
4736 #if (!defined(HCI_READ_LOCAL_SUPPORTED_COMMANDS_ENABLED) || HCI_READ_LOCAL_SUPPORTED_COMMANDS_ENABLED) && !HCI_READ_LOCAL_SUPPORTED_COMMANDS_FORCE_DISABLED
4737 /* tBleStatus hci_read_local_supported_commands(uint8_t Supported_Commands[64]);
4738  */
4739 /* Command len: 0 */
4740 /* Response len: 1 + 64 */
hci_read_local_supported_commands_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4741 uint16_t hci_read_local_supported_commands_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4742 {
4743 
4744   int output_size = 1 + 64;
4745   /* Output params */
4746   hci_read_local_supported_commands_rp0 *rp0 = (hci_read_local_supported_commands_rp0 *) (buffer_out + 6);
4747   uint8_t Supported_Commands[64] = {0};
4748 
4749   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4750   if (buffer_out_max_length < (1 + 64 + 6)) { return 0; }
4751   if(buffer_in_length != 0)
4752   {
4753     goto fail;
4754   }
4755 
4756   rp0->Status = hci_read_local_supported_commands(Supported_Commands);
4757 fail:
4758   Osal_MemCpy((void *) rp0->Supported_Commands,(const void *) Supported_Commands, 64);
4759   buffer_out[0] = 0x04;
4760   buffer_out[1] = 0x0E;
4761   buffer_out[2] = output_size + 3;
4762   buffer_out[3] = 0x01;
4763   buffer_out[4] = 0x02;
4764   buffer_out[5] = 0x10;
4765   return (output_size + 6);
4766 }
4767 #endif
4768 
4769 #if (!defined(HCI_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) || HCI_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) && !HCI_READ_LOCAL_SUPPORTED_FEATURES_FORCE_DISABLED
4770 /* tBleStatus hci_read_local_supported_features(uint8_t LMP_Features[8]);
4771  */
4772 /* Command len: 0 */
4773 /* Response len: 1 + 8 */
hci_read_local_supported_features_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4774 uint16_t hci_read_local_supported_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4775 {
4776 
4777   int output_size = 1 + 8;
4778   /* Output params */
4779   hci_read_local_supported_features_rp0 *rp0 = (hci_read_local_supported_features_rp0 *) (buffer_out + 6);
4780   uint8_t LMP_Features[8] = {0};
4781 
4782   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4783   if (buffer_out_max_length < (1 + 8 + 6)) { return 0; }
4784   if(buffer_in_length != 0)
4785   {
4786     goto fail;
4787   }
4788 
4789   rp0->Status = hci_read_local_supported_features(LMP_Features);
4790 fail:
4791   Osal_MemCpy((void *) rp0->LMP_Features,(const void *) LMP_Features, 8);
4792   buffer_out[0] = 0x04;
4793   buffer_out[1] = 0x0E;
4794   buffer_out[2] = output_size + 3;
4795   buffer_out[3] = 0x01;
4796   buffer_out[4] = 0x03;
4797   buffer_out[5] = 0x10;
4798   return (output_size + 6);
4799 }
4800 #endif
4801 
4802 #if (!defined(HCI_READ_BD_ADDR_ENABLED) || HCI_READ_BD_ADDR_ENABLED) && !HCI_READ_BD_ADDR_FORCE_DISABLED
4803 /* tBleStatus hci_read_bd_addr(uint8_t BD_ADDR[6]);
4804  */
4805 /* Command len: 0 */
4806 /* Response len: 1 + 6 */
hci_read_bd_addr_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4807 uint16_t hci_read_bd_addr_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4808 {
4809 
4810   int output_size = 1 + 6;
4811   /* Output params */
4812   hci_read_bd_addr_rp0 *rp0 = (hci_read_bd_addr_rp0 *) (buffer_out + 6);
4813   uint8_t BD_ADDR[6] = {0};
4814 
4815   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4816   if (buffer_out_max_length < (1 + 6 + 6)) { return 0; }
4817   if(buffer_in_length != 0)
4818   {
4819     goto fail;
4820   }
4821 
4822   rp0->Status = hci_read_bd_addr(BD_ADDR);
4823 fail:
4824   Osal_MemCpy((void *) rp0->BD_ADDR,(const void *) BD_ADDR, 6);
4825   buffer_out[0] = 0x04;
4826   buffer_out[1] = 0x0E;
4827   buffer_out[2] = output_size + 3;
4828   buffer_out[3] = 0x01;
4829   buffer_out[4] = 0x09;
4830   buffer_out[5] = 0x10;
4831   return (output_size + 6);
4832 }
4833 #endif
4834 
4835 #if (!defined(HCI_READ_RSSI_ENABLED) || HCI_READ_RSSI_ENABLED) && !HCI_READ_RSSI_FORCE_DISABLED
4836 /* tBleStatus hci_read_rssi(uint16_t Connection_Handle,
4837                          int8_t *RSSI);
4838  */
4839 /* Command len: 2 */
4840 /* Response len: 1 + 2 + 1 */
hci_read_rssi_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4841 uint16_t hci_read_rssi_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4842 {
4843   /* Input params */
4844   hci_read_rssi_cp0 *cp0 = (hci_read_rssi_cp0 *)(buffer_in + (0));
4845 
4846   int output_size = 1 + 2 + 1;
4847   /* Output params */
4848   hci_read_rssi_rp0 *rp0 = (hci_read_rssi_rp0 *) (buffer_out + 6);
4849   int8_t RSSI = 0;
4850 
4851   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4852   if (buffer_out_max_length < (1 + 2 + 1 + 6)) { return 0; }
4853   if(buffer_in_length != 2)
4854   {
4855     goto fail;
4856   }
4857 
4858   rp0->Status = hci_read_rssi(cp0->Connection_Handle /* 2 */,
4859                               &RSSI);
4860 fail:
4861   rp0->Connection_Handle = cp0->Connection_Handle;
4862   rp0->RSSI = RSSI;
4863   buffer_out[0] = 0x04;
4864   buffer_out[1] = 0x0E;
4865   buffer_out[2] = output_size + 3;
4866   buffer_out[3] = 0x01;
4867   buffer_out[4] = 0x05;
4868   buffer_out[5] = 0x14;
4869   return (output_size + 6);
4870 }
4871 #endif
4872 
4873 #if (!defined(HCI_LE_SET_EVENT_MASK_ENABLED) || HCI_LE_SET_EVENT_MASK_ENABLED) && !HCI_LE_SET_EVENT_MASK_FORCE_DISABLED
4874 /* tBleStatus hci_le_set_event_mask(uint8_t LE_Event_Mask[8]);
4875  */
4876 /* Command len: 8 */
4877 /* Response len: 1 */
hci_le_set_event_mask_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4878 uint16_t hci_le_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4879 {
4880   /* Input params */
4881   hci_le_set_event_mask_cp0 *cp0 = (hci_le_set_event_mask_cp0 *)(buffer_in + (0));
4882 
4883   int output_size = 1;
4884   /* Output params */
4885   uint8_t *status = (uint8_t *) (buffer_out + 6);
4886 
4887   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4888   if (buffer_out_max_length < (1 + 6)) { return 0; }
4889   if(buffer_in_length != 8)
4890   {
4891     goto fail;
4892   }
4893 
4894   *status = hci_le_set_event_mask(cp0->LE_Event_Mask /* 8 */);
4895 fail:
4896   buffer_out[0] = 0x04;
4897   buffer_out[1] = 0x0E;
4898   buffer_out[2] = output_size + 3;
4899   buffer_out[3] = 0x01;
4900   buffer_out[4] = 0x01;
4901   buffer_out[5] = 0x20;
4902   return (output_size + 6);
4903 }
4904 #endif
4905 
4906 #if (!defined(HCI_LE_READ_BUFFER_SIZE_ENABLED) || HCI_LE_READ_BUFFER_SIZE_ENABLED) && !HCI_LE_READ_BUFFER_SIZE_FORCE_DISABLED
4907 /* tBleStatus hci_le_read_buffer_size(uint16_t *HC_LE_ACL_Data_Packet_Length,
4908                                    uint8_t *HC_Total_Num_LE_ACL_Data_Packets);
4909  */
4910 /* Command len: 0 */
4911 /* Response len: 1 + 2 + 1 */
hci_le_read_buffer_size_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4912 uint16_t hci_le_read_buffer_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4913 {
4914 
4915   int output_size = 1 + 2 + 1;
4916   /* Output params */
4917   hci_le_read_buffer_size_rp0 *rp0 = (hci_le_read_buffer_size_rp0 *) (buffer_out + 6);
4918   uint16_t HC_LE_ACL_Data_Packet_Length = 0;
4919   uint8_t HC_Total_Num_LE_ACL_Data_Packets = 0;
4920 
4921   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4922   if (buffer_out_max_length < (1 + 2 + 1 + 6)) { return 0; }
4923   if(buffer_in_length != 0)
4924   {
4925     goto fail;
4926   }
4927 
4928   rp0->Status = hci_le_read_buffer_size(&HC_LE_ACL_Data_Packet_Length,
4929                                         &HC_Total_Num_LE_ACL_Data_Packets);
4930 fail:
4931   rp0->HC_LE_ACL_Data_Packet_Length = HC_LE_ACL_Data_Packet_Length;
4932   rp0->HC_Total_Num_LE_ACL_Data_Packets = HC_Total_Num_LE_ACL_Data_Packets;
4933   buffer_out[0] = 0x04;
4934   buffer_out[1] = 0x0E;
4935   buffer_out[2] = output_size + 3;
4936   buffer_out[3] = 0x01;
4937   buffer_out[4] = 0x02;
4938   buffer_out[5] = 0x20;
4939   return (output_size + 6);
4940 }
4941 #endif
4942 
4943 #if (!defined(HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) || HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_ENABLED) && !HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_FORCE_DISABLED
4944 /* tBleStatus hci_le_read_local_supported_features(uint8_t LE_Features[8]);
4945  */
4946 /* Command len: 0 */
4947 /* Response len: 1 + 8 */
hci_le_read_local_supported_features_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4948 uint16_t hci_le_read_local_supported_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4949 {
4950 
4951   int output_size = 1 + 8;
4952   /* Output params */
4953   hci_le_read_local_supported_features_rp0 *rp0 = (hci_le_read_local_supported_features_rp0 *) (buffer_out + 6);
4954   uint8_t LE_Features[8] = {0};
4955 
4956   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4957   if (buffer_out_max_length < (1 + 8 + 6)) { return 0; }
4958   if(buffer_in_length != 0)
4959   {
4960     goto fail;
4961   }
4962 
4963   rp0->Status = hci_le_read_local_supported_features(LE_Features);
4964 fail:
4965   Osal_MemCpy((void *) rp0->LE_Features,(const void *) LE_Features, 8);
4966   buffer_out[0] = 0x04;
4967   buffer_out[1] = 0x0E;
4968   buffer_out[2] = output_size + 3;
4969   buffer_out[3] = 0x01;
4970   buffer_out[4] = 0x03;
4971   buffer_out[5] = 0x20;
4972   return (output_size + 6);
4973 }
4974 #endif
4975 
4976 #if (!defined(HCI_LE_SET_RANDOM_ADDRESS_ENABLED) || HCI_LE_SET_RANDOM_ADDRESS_ENABLED) && !HCI_LE_SET_RANDOM_ADDRESS_FORCE_DISABLED
4977 /* tBleStatus hci_le_set_random_address(uint8_t Random_Address[6]);
4978  */
4979 /* Command len: 6 */
4980 /* Response len: 1 */
hci_le_set_random_address_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)4981 uint16_t hci_le_set_random_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
4982 {
4983   /* Input params */
4984   hci_le_set_random_address_cp0 *cp0 = (hci_le_set_random_address_cp0 *)(buffer_in + (0));
4985 
4986   int output_size = 1;
4987   /* Output params */
4988   uint8_t *status = (uint8_t *) (buffer_out + 6);
4989 
4990   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
4991   if (buffer_out_max_length < (1 + 6)) { return 0; }
4992   if(buffer_in_length != 6)
4993   {
4994     goto fail;
4995   }
4996 
4997   *status = hci_le_set_random_address(cp0->Random_Address /* 6 */);
4998 fail:
4999   buffer_out[0] = 0x04;
5000   buffer_out[1] = 0x0E;
5001   buffer_out[2] = output_size + 3;
5002   buffer_out[3] = 0x01;
5003   buffer_out[4] = 0x05;
5004   buffer_out[5] = 0x20;
5005   return (output_size + 6);
5006 }
5007 #endif
5008 
5009 #if (!defined(HCI_LE_SET_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_ADVERTISING_PARAMETERS_FORCE_DISABLED
5010 /* tBleStatus hci_le_set_advertising_parameters(uint16_t Advertising_Interval_Min,
5011                                              uint16_t Advertising_Interval_Max,
5012                                              uint8_t Advertising_Type,
5013                                              uint8_t Own_Address_Type,
5014                                              uint8_t Peer_Address_Type,
5015                                              uint8_t Peer_Address[6],
5016                                              uint8_t Advertising_Channel_Map,
5017                                              uint8_t Advertising_Filter_Policy);
5018  */
5019 /* Command len: 2 + 2 + 1 + 1 + 1 + 6 + 1 + 1 */
5020 /* Response len: 1 */
hci_le_set_advertising_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5021 uint16_t hci_le_set_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5022 {
5023   /* Input params */
5024   hci_le_set_advertising_parameters_cp0 *cp0 = (hci_le_set_advertising_parameters_cp0 *)(buffer_in + (0));
5025 
5026   int output_size = 1;
5027   /* Output params */
5028   uint8_t *status = (uint8_t *) (buffer_out + 6);
5029 
5030   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5031   if (buffer_out_max_length < (1 + 6)) { return 0; }
5032   if(buffer_in_length != 2 + 2 + 1 + 1 + 1 + 6 + 1 + 1)
5033   {
5034     goto fail;
5035   }
5036 
5037   *status = hci_le_set_advertising_parameters(cp0->Advertising_Interval_Min /* 2 */,
5038                                               cp0->Advertising_Interval_Max /* 2 */,
5039                                               cp0->Advertising_Type /* 1 */,
5040                                               cp0->Own_Address_Type /* 1 */,
5041                                               cp0->Peer_Address_Type /* 1 */,
5042                                               cp0->Peer_Address /* 6 */,
5043                                               cp0->Advertising_Channel_Map /* 1 */,
5044                                               cp0->Advertising_Filter_Policy /* 1 */);
5045 fail:
5046   buffer_out[0] = 0x04;
5047   buffer_out[1] = 0x0E;
5048   buffer_out[2] = output_size + 3;
5049   buffer_out[3] = 0x01;
5050   buffer_out[4] = 0x06;
5051   buffer_out[5] = 0x20;
5052   return (output_size + 6);
5053 }
5054 #endif
5055 
5056 #if (!defined(HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_ENABLED) || HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_ENABLED) && !HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_FORCE_DISABLED
5057 /* tBleStatus hci_le_read_advertising_physical_channel_tx_power(int8_t *Transmit_Power_Level);
5058  */
5059 /* Command len: 0 */
5060 /* Response len: 1 + 1 */
hci_le_read_advertising_physical_channel_tx_power_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5061 uint16_t hci_le_read_advertising_physical_channel_tx_power_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5062 {
5063 
5064   int output_size = 1 + 1;
5065   /* Output params */
5066   hci_le_read_advertising_physical_channel_tx_power_rp0 *rp0 = (hci_le_read_advertising_physical_channel_tx_power_rp0 *) (buffer_out + 6);
5067   int8_t Transmit_Power_Level = 0;
5068 
5069   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5070   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
5071   if(buffer_in_length != 0)
5072   {
5073     goto fail;
5074   }
5075 
5076   rp0->Status = hci_le_read_advertising_physical_channel_tx_power(&Transmit_Power_Level);
5077 fail:
5078   rp0->Transmit_Power_Level = Transmit_Power_Level;
5079   buffer_out[0] = 0x04;
5080   buffer_out[1] = 0x0E;
5081   buffer_out[2] = output_size + 3;
5082   buffer_out[3] = 0x01;
5083   buffer_out[4] = 0x07;
5084   buffer_out[5] = 0x20;
5085   return (output_size + 6);
5086 }
5087 #endif
5088 
5089 #if (!defined(HCI_LE_SET_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_ADVERTISING_DATA_FORCE_DISABLED
5090 /* tBleStatus hci_le_set_advertising_data(uint8_t Advertising_Data_Length,
5091                                        uint8_t Advertising_Data[31]);
5092  */
5093 /* Command len: 1 + 31 */
5094 /* Response len: 1 */
hci_le_set_advertising_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5095 uint16_t hci_le_set_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5096 {
5097   /* Input params */
5098   hci_le_set_advertising_data_cp0 *cp0 = (hci_le_set_advertising_data_cp0 *)(buffer_in + (0));
5099 
5100   int output_size = 1;
5101   /* Output params */
5102   uint8_t *status = (uint8_t *) (buffer_out + 6);
5103 
5104   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5105   if (buffer_out_max_length < (1 + 6)) { return 0; }
5106   if(buffer_in_length != 1 + 31)
5107   {
5108     goto fail;
5109   }
5110 
5111   *status = hci_le_set_advertising_data(cp0->Advertising_Data_Length /* 1 */,
5112                                         cp0->Advertising_Data /* 31 */);
5113 fail:
5114   buffer_out[0] = 0x04;
5115   buffer_out[1] = 0x0E;
5116   buffer_out[2] = output_size + 3;
5117   buffer_out[3] = 0x01;
5118   buffer_out[4] = 0x08;
5119   buffer_out[5] = 0x20;
5120   return (output_size + 6);
5121 }
5122 #endif
5123 
5124 #if (!defined(HCI_LE_SET_SCAN_RESPONSE_DATA_ENABLED) || HCI_LE_SET_SCAN_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_SCAN_RESPONSE_DATA_FORCE_DISABLED
5125 /* tBleStatus hci_le_set_scan_response_data(uint8_t Scan_Response_Data_Length,
5126                                          uint8_t Scan_Response_Data[31]);
5127  */
5128 /* Command len: 1 + 31 */
5129 /* Response len: 1 */
hci_le_set_scan_response_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5130 uint16_t hci_le_set_scan_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5131 {
5132   /* Input params */
5133   hci_le_set_scan_response_data_cp0 *cp0 = (hci_le_set_scan_response_data_cp0 *)(buffer_in + (0));
5134 
5135   int output_size = 1;
5136   /* Output params */
5137   uint8_t *status = (uint8_t *) (buffer_out + 6);
5138 
5139   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5140   if (buffer_out_max_length < (1 + 6)) { return 0; }
5141   if(buffer_in_length != 1 + 31)
5142   {
5143     goto fail;
5144   }
5145 
5146   *status = hci_le_set_scan_response_data(cp0->Scan_Response_Data_Length /* 1 */,
5147                                           cp0->Scan_Response_Data /* 31 */);
5148 fail:
5149   buffer_out[0] = 0x04;
5150   buffer_out[1] = 0x0E;
5151   buffer_out[2] = output_size + 3;
5152   buffer_out[3] = 0x01;
5153   buffer_out[4] = 0x09;
5154   buffer_out[5] = 0x20;
5155   return (output_size + 6);
5156 }
5157 #endif
5158 
5159 #if (!defined(HCI_LE_SET_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_ADVERTISING_ENABLE_FORCE_DISABLED
5160 /* tBleStatus hci_le_set_advertising_enable(uint8_t Advertising_Enable);
5161  */
5162 /* Command len: 1 */
5163 /* Response len: 1 */
hci_le_set_advertising_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5164 uint16_t hci_le_set_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5165 {
5166   /* Input params */
5167   hci_le_set_advertising_enable_cp0 *cp0 = (hci_le_set_advertising_enable_cp0 *)(buffer_in + (0));
5168 
5169   int output_size = 1;
5170   /* Output params */
5171   uint8_t *status = (uint8_t *) (buffer_out + 6);
5172 
5173   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5174   if (buffer_out_max_length < (1 + 6)) { return 0; }
5175   if(buffer_in_length != 1)
5176   {
5177     goto fail;
5178   }
5179 
5180   *status = hci_le_set_advertising_enable(cp0->Advertising_Enable /* 1 */);
5181 fail:
5182   buffer_out[0] = 0x04;
5183   buffer_out[1] = 0x0E;
5184   buffer_out[2] = output_size + 3;
5185   buffer_out[3] = 0x01;
5186   buffer_out[4] = 0x0a;
5187   buffer_out[5] = 0x20;
5188   return (output_size + 6);
5189 }
5190 #endif
5191 
5192 #if (!defined(HCI_LE_SET_SCAN_PARAMETERS_ENABLED) || HCI_LE_SET_SCAN_PARAMETERS_ENABLED) && !HCI_LE_SET_SCAN_PARAMETERS_FORCE_DISABLED
5193 /* tBleStatus hci_le_set_scan_parameters(uint8_t LE_Scan_Type,
5194                                       uint16_t LE_Scan_Interval,
5195                                       uint16_t LE_Scan_Window,
5196                                       uint8_t Own_Address_Type,
5197                                       uint8_t Scanning_Filter_Policy);
5198  */
5199 /* Command len: 1 + 2 + 2 + 1 + 1 */
5200 /* Response len: 1 */
hci_le_set_scan_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5201 uint16_t hci_le_set_scan_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5202 {
5203   /* Input params */
5204   hci_le_set_scan_parameters_cp0 *cp0 = (hci_le_set_scan_parameters_cp0 *)(buffer_in + (0));
5205 
5206   int output_size = 1;
5207   /* Output params */
5208   uint8_t *status = (uint8_t *) (buffer_out + 6);
5209 
5210   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5211   if (buffer_out_max_length < (1 + 6)) { return 0; }
5212   if(buffer_in_length != 1 + 2 + 2 + 1 + 1)
5213   {
5214     goto fail;
5215   }
5216 
5217   *status = hci_le_set_scan_parameters(cp0->LE_Scan_Type /* 1 */,
5218                                        cp0->LE_Scan_Interval /* 2 */,
5219                                        cp0->LE_Scan_Window /* 2 */,
5220                                        cp0->Own_Address_Type /* 1 */,
5221                                        cp0->Scanning_Filter_Policy /* 1 */);
5222 fail:
5223   buffer_out[0] = 0x04;
5224   buffer_out[1] = 0x0E;
5225   buffer_out[2] = output_size + 3;
5226   buffer_out[3] = 0x01;
5227   buffer_out[4] = 0x0b;
5228   buffer_out[5] = 0x20;
5229   return (output_size + 6);
5230 }
5231 #endif
5232 
5233 #if (!defined(HCI_LE_SET_SCAN_ENABLE_ENABLED) || HCI_LE_SET_SCAN_ENABLE_ENABLED) && !HCI_LE_SET_SCAN_ENABLE_FORCE_DISABLED
5234 /* tBleStatus hci_le_set_scan_enable(uint8_t LE_Scan_Enable,
5235                                   uint8_t Filter_Duplicates);
5236  */
5237 /* Command len: 1 + 1 */
5238 /* Response len: 1 */
hci_le_set_scan_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5239 uint16_t hci_le_set_scan_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5240 {
5241   /* Input params */
5242   hci_le_set_scan_enable_cp0 *cp0 = (hci_le_set_scan_enable_cp0 *)(buffer_in + (0));
5243 
5244   int output_size = 1;
5245   /* Output params */
5246   uint8_t *status = (uint8_t *) (buffer_out + 6);
5247 
5248   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5249   if (buffer_out_max_length < (1 + 6)) { return 0; }
5250   if(buffer_in_length != 1 + 1)
5251   {
5252     goto fail;
5253   }
5254 
5255   *status = hci_le_set_scan_enable(cp0->LE_Scan_Enable /* 1 */,
5256                                    cp0->Filter_Duplicates /* 1 */);
5257 fail:
5258   buffer_out[0] = 0x04;
5259   buffer_out[1] = 0x0E;
5260   buffer_out[2] = output_size + 3;
5261   buffer_out[3] = 0x01;
5262   buffer_out[4] = 0x0c;
5263   buffer_out[5] = 0x20;
5264   return (output_size + 6);
5265 }
5266 #endif
5267 
5268 #if (!defined(HCI_LE_CREATE_CONNECTION_ENABLED) || HCI_LE_CREATE_CONNECTION_ENABLED) && !HCI_LE_CREATE_CONNECTION_FORCE_DISABLED
5269 /* tBleStatus hci_le_create_connection(uint16_t LE_Scan_Interval,
5270                                     uint16_t LE_Scan_Window,
5271                                     uint8_t Initiator_Filter_Policy,
5272                                     uint8_t Peer_Address_Type,
5273                                     uint8_t Peer_Address[6],
5274                                     uint8_t Own_Address_Type,
5275                                     uint16_t Connection_Interval_Min,
5276                                     uint16_t Connection_Interval_Max,
5277                                     uint16_t Max_Latency,
5278                                     uint16_t Supervision_Timeout,
5279                                     uint16_t Min_CE_Length,
5280                                     uint16_t Max_CE_Length);
5281  */
5282 /* Command len: 2 + 2 + 1 + 1 + 6 + 1 + 2 + 2 + 2 + 2 + 2 + 2 */
5283 /* Response len: 1 */
hci_le_create_connection_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5284 uint16_t hci_le_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5285 {
5286   /* Input params */
5287   hci_le_create_connection_cp0 *cp0 = (hci_le_create_connection_cp0 *)(buffer_in + (0));
5288 
5289   int output_size = 1;
5290   /* Output params */
5291   uint8_t *status = (uint8_t *) (buffer_out + 3);
5292 
5293   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5294   if (buffer_out_max_length < (1 + 6)) { return 0; }
5295   if(buffer_in_length != 2 + 2 + 1 + 1 + 6 + 1 + 2 + 2 + 2 + 2 + 2 + 2)
5296   {
5297     goto fail;
5298   }
5299 
5300   *status = hci_le_create_connection(cp0->LE_Scan_Interval /* 2 */,
5301                                      cp0->LE_Scan_Window /* 2 */,
5302                                      cp0->Initiator_Filter_Policy /* 1 */,
5303                                      cp0->Peer_Address_Type /* 1 */,
5304                                      cp0->Peer_Address /* 6 */,
5305                                      cp0->Own_Address_Type /* 1 */,
5306                                      cp0->Connection_Interval_Min /* 2 */,
5307                                      cp0->Connection_Interval_Max /* 2 */,
5308                                      cp0->Max_Latency /* 2 */,
5309                                      cp0->Supervision_Timeout /* 2 */,
5310                                      cp0->Min_CE_Length /* 2 */,
5311                                      cp0->Max_CE_Length /* 2 */);
5312 fail:
5313   buffer_out[0] = 0x04;
5314   buffer_out[1] = 0x0F;
5315   buffer_out[2] = output_size + 3;
5316   buffer_out[4] = 0x01;
5317   buffer_out[5] = 0x0d;
5318   buffer_out[6] = 0x20;
5319   return (output_size + 6);
5320 }
5321 #endif
5322 
5323 #if (!defined(HCI_LE_CREATE_CONNECTION_CANCEL_ENABLED) || HCI_LE_CREATE_CONNECTION_CANCEL_ENABLED) && !HCI_LE_CREATE_CONNECTION_CANCEL_FORCE_DISABLED
5324 /* tBleStatus hci_le_create_connection_cancel(void);
5325  */
5326 /* Command len: 0 */
5327 /* Response len: 1 */
hci_le_create_connection_cancel_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5328 uint16_t hci_le_create_connection_cancel_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5329 {
5330 
5331   int output_size = 1;
5332   /* Output params */
5333   uint8_t *status = (uint8_t *) (buffer_out + 6);
5334 
5335   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5336   if (buffer_out_max_length < (1 + 6)) { return 0; }
5337   if(buffer_in_length != 0)
5338   {
5339     goto fail;
5340   }
5341 
5342   *status = hci_le_create_connection_cancel();
5343 fail:
5344   buffer_out[0] = 0x04;
5345   buffer_out[1] = 0x0E;
5346   buffer_out[2] = output_size + 3;
5347   buffer_out[3] = 0x01;
5348   buffer_out[4] = 0x0e;
5349   buffer_out[5] = 0x20;
5350   return (output_size + 6);
5351 }
5352 #endif
5353 
5354 #if (!defined(HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_ENABLED) || HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_ENABLED) && !HCI_LE_READ_FILTER_ACCEPT_LIST_SIZE_FORCE_DISABLED
5355 /* tBleStatus hci_le_read_filter_accept_list_size(uint8_t *Filter_Accept_List_Size);
5356  */
5357 /* Command len: 0 */
5358 /* Response len: 1 + 1 */
hci_le_read_filter_accept_list_size_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5359 uint16_t hci_le_read_filter_accept_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5360 {
5361 
5362   int output_size = 1 + 1;
5363   /* Output params */
5364   hci_le_read_filter_accept_list_size_rp0 *rp0 = (hci_le_read_filter_accept_list_size_rp0 *) (buffer_out + 6);
5365   uint8_t Filter_Accept_List_Size = 0;
5366 
5367   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5368   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
5369   if(buffer_in_length != 0)
5370   {
5371     goto fail;
5372   }
5373 
5374   rp0->Status = hci_le_read_filter_accept_list_size(&Filter_Accept_List_Size);
5375 fail:
5376   rp0->Filter_Accept_List_Size = Filter_Accept_List_Size;
5377   buffer_out[0] = 0x04;
5378   buffer_out[1] = 0x0E;
5379   buffer_out[2] = output_size + 3;
5380   buffer_out[3] = 0x01;
5381   buffer_out[4] = 0x0f;
5382   buffer_out[5] = 0x20;
5383   return (output_size + 6);
5384 }
5385 #endif
5386 
5387 #if (!defined(HCI_LE_CLEAR_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_CLEAR_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_CLEAR_FILTER_ACCEPT_LIST_FORCE_DISABLED
5388 /* tBleStatus hci_le_clear_filter_accept_list(void);
5389  */
5390 /* Command len: 0 */
5391 /* Response len: 1 */
hci_le_clear_filter_accept_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5392 uint16_t hci_le_clear_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5393 {
5394 
5395   int output_size = 1;
5396   /* Output params */
5397   uint8_t *status = (uint8_t *) (buffer_out + 6);
5398 
5399   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5400   if (buffer_out_max_length < (1 + 6)) { return 0; }
5401   if(buffer_in_length != 0)
5402   {
5403     goto fail;
5404   }
5405 
5406   *status = hci_le_clear_filter_accept_list();
5407 fail:
5408   buffer_out[0] = 0x04;
5409   buffer_out[1] = 0x0E;
5410   buffer_out[2] = output_size + 3;
5411   buffer_out[3] = 0x01;
5412   buffer_out[4] = 0x10;
5413   buffer_out[5] = 0x20;
5414   return (output_size + 6);
5415 }
5416 #endif
5417 
5418 #if (!defined(HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST_FORCE_DISABLED
5419 /* tBleStatus hci_le_add_device_to_filter_accept_list(uint8_t Address_Type,
5420                                                    uint8_t Address[6]);
5421  */
5422 /* Command len: 1 + 6 */
5423 /* Response len: 1 */
hci_le_add_device_to_filter_accept_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5424 uint16_t hci_le_add_device_to_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5425 {
5426   /* Input params */
5427   hci_le_add_device_to_filter_accept_list_cp0 *cp0 = (hci_le_add_device_to_filter_accept_list_cp0 *)(buffer_in + (0));
5428 
5429   int output_size = 1;
5430   /* Output params */
5431   uint8_t *status = (uint8_t *) (buffer_out + 6);
5432 
5433   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5434   if (buffer_out_max_length < (1 + 6)) { return 0; }
5435   if(buffer_in_length != 1 + 6)
5436   {
5437     goto fail;
5438   }
5439 
5440   *status = hci_le_add_device_to_filter_accept_list(cp0->Address_Type /* 1 */,
5441                                                     cp0->Address /* 6 */);
5442 fail:
5443   buffer_out[0] = 0x04;
5444   buffer_out[1] = 0x0E;
5445   buffer_out[2] = output_size + 3;
5446   buffer_out[3] = 0x01;
5447   buffer_out[4] = 0x11;
5448   buffer_out[5] = 0x20;
5449   return (output_size + 6);
5450 }
5451 #endif
5452 
5453 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST_FORCE_DISABLED
5454 /* tBleStatus hci_le_remove_device_from_filter_accept_list(uint8_t Address_Type,
5455                                                         uint8_t Address[6]);
5456  */
5457 /* Command len: 1 + 6 */
5458 /* Response len: 1 */
hci_le_remove_device_from_filter_accept_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5459 uint16_t hci_le_remove_device_from_filter_accept_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5460 {
5461   /* Input params */
5462   hci_le_remove_device_from_filter_accept_list_cp0 *cp0 = (hci_le_remove_device_from_filter_accept_list_cp0 *)(buffer_in + (0));
5463 
5464   int output_size = 1;
5465   /* Output params */
5466   uint8_t *status = (uint8_t *) (buffer_out + 6);
5467 
5468   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5469   if (buffer_out_max_length < (1 + 6)) { return 0; }
5470   if(buffer_in_length != 1 + 6)
5471   {
5472     goto fail;
5473   }
5474 
5475   *status = hci_le_remove_device_from_filter_accept_list(cp0->Address_Type /* 1 */,
5476                                                          cp0->Address /* 6 */);
5477 fail:
5478   buffer_out[0] = 0x04;
5479   buffer_out[1] = 0x0E;
5480   buffer_out[2] = output_size + 3;
5481   buffer_out[3] = 0x01;
5482   buffer_out[4] = 0x12;
5483   buffer_out[5] = 0x20;
5484   return (output_size + 6);
5485 }
5486 #endif
5487 
5488 #if (!defined(HCI_LE_CONNECTION_UPDATE_ENABLED) || HCI_LE_CONNECTION_UPDATE_ENABLED) && !HCI_LE_CONNECTION_UPDATE_FORCE_DISABLED
5489 /* tBleStatus hci_le_connection_update(uint16_t Connection_Handle,
5490                                     uint16_t Connection_Interval_Min,
5491                                     uint16_t Connection_Interval_Max,
5492                                     uint16_t Max_Latency,
5493                                     uint16_t Supervision_Timeout,
5494                                     uint16_t Min_CE_Length,
5495                                     uint16_t Max_CE_Length);
5496  */
5497 /* Command len: 2 + 2 + 2 + 2 + 2 + 2 + 2 */
5498 /* Response len: 1 */
hci_le_connection_update_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5499 uint16_t hci_le_connection_update_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5500 {
5501   /* Input params */
5502   hci_le_connection_update_cp0 *cp0 = (hci_le_connection_update_cp0 *)(buffer_in + (0));
5503 
5504   int output_size = 1;
5505   /* Output params */
5506   uint8_t *status = (uint8_t *) (buffer_out + 3);
5507 
5508   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5509   if (buffer_out_max_length < (1 + 6)) { return 0; }
5510   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + 2 + 2)
5511   {
5512     goto fail;
5513   }
5514 
5515   *status = hci_le_connection_update(cp0->Connection_Handle /* 2 */,
5516                                      cp0->Connection_Interval_Min /* 2 */,
5517                                      cp0->Connection_Interval_Max /* 2 */,
5518                                      cp0->Max_Latency /* 2 */,
5519                                      cp0->Supervision_Timeout /* 2 */,
5520                                      cp0->Min_CE_Length /* 2 */,
5521                                      cp0->Max_CE_Length /* 2 */);
5522 fail:
5523   buffer_out[0] = 0x04;
5524   buffer_out[1] = 0x0F;
5525   buffer_out[2] = output_size + 3;
5526   buffer_out[4] = 0x01;
5527   buffer_out[5] = 0x13;
5528   buffer_out[6] = 0x20;
5529   return (output_size + 6);
5530 }
5531 #endif
5532 
5533 #if (!defined(HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_ENABLED) || HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_ENABLED) && !HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_FORCE_DISABLED
5534 /* tBleStatus hci_le_set_host_channel_classification(uint8_t LE_Channel_Map[5]);
5535  */
5536 /* Command len: 5 */
5537 /* Response len: 1 */
hci_le_set_host_channel_classification_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5538 uint16_t hci_le_set_host_channel_classification_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5539 {
5540   /* Input params */
5541   hci_le_set_host_channel_classification_cp0 *cp0 = (hci_le_set_host_channel_classification_cp0 *)(buffer_in + (0));
5542 
5543   int output_size = 1;
5544   /* Output params */
5545   uint8_t *status = (uint8_t *) (buffer_out + 6);
5546 
5547   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5548   if (buffer_out_max_length < (1 + 6)) { return 0; }
5549   if(buffer_in_length != 5)
5550   {
5551     goto fail;
5552   }
5553 
5554   *status = hci_le_set_host_channel_classification(cp0->LE_Channel_Map /* 5 */);
5555 fail:
5556   buffer_out[0] = 0x04;
5557   buffer_out[1] = 0x0E;
5558   buffer_out[2] = output_size + 3;
5559   buffer_out[3] = 0x01;
5560   buffer_out[4] = 0x14;
5561   buffer_out[5] = 0x20;
5562   return (output_size + 6);
5563 }
5564 #endif
5565 
5566 #if (!defined(HCI_LE_READ_CHANNEL_MAP_ENABLED) || HCI_LE_READ_CHANNEL_MAP_ENABLED) && !HCI_LE_READ_CHANNEL_MAP_FORCE_DISABLED
5567 /* tBleStatus hci_le_read_channel_map(uint16_t Connection_Handle,
5568                                    uint8_t LE_Channel_Map[5]);
5569  */
5570 /* Command len: 2 */
5571 /* Response len: 1 + 2 + 5 */
hci_le_read_channel_map_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5572 uint16_t hci_le_read_channel_map_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5573 {
5574   /* Input params */
5575   hci_le_read_channel_map_cp0 *cp0 = (hci_le_read_channel_map_cp0 *)(buffer_in + (0));
5576 
5577   int output_size = 1 + 2 + 5;
5578   /* Output params */
5579   hci_le_read_channel_map_rp0 *rp0 = (hci_le_read_channel_map_rp0 *) (buffer_out + 6);
5580   uint8_t LE_Channel_Map[5] = {0};
5581 
5582   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5583   if (buffer_out_max_length < (1 + 2 + 5 + 6)) { return 0; }
5584   if(buffer_in_length != 2)
5585   {
5586     goto fail;
5587   }
5588 
5589   rp0->Status = hci_le_read_channel_map(cp0->Connection_Handle /* 2 */,
5590                                         LE_Channel_Map);
5591 fail:
5592   rp0->Connection_Handle = cp0->Connection_Handle;
5593   Osal_MemCpy((void *) rp0->LE_Channel_Map,(const void *) LE_Channel_Map, 5);
5594   buffer_out[0] = 0x04;
5595   buffer_out[1] = 0x0E;
5596   buffer_out[2] = output_size + 3;
5597   buffer_out[3] = 0x01;
5598   buffer_out[4] = 0x15;
5599   buffer_out[5] = 0x20;
5600   return (output_size + 6);
5601 }
5602 #endif
5603 
5604 #if (!defined(HCI_LE_READ_REMOTE_FEATURES_ENABLED) || HCI_LE_READ_REMOTE_FEATURES_ENABLED) && !HCI_LE_READ_REMOTE_FEATURES_FORCE_DISABLED
5605 /* tBleStatus hci_le_read_remote_features(uint16_t Connection_Handle);
5606  */
5607 /* Command len: 2 */
5608 /* Response len: 1 */
hci_le_read_remote_features_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5609 uint16_t hci_le_read_remote_features_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5610 {
5611   /* Input params */
5612   hci_le_read_remote_features_cp0 *cp0 = (hci_le_read_remote_features_cp0 *)(buffer_in + (0));
5613 
5614   int output_size = 1;
5615   /* Output params */
5616   uint8_t *status = (uint8_t *) (buffer_out + 3);
5617 
5618   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5619   if (buffer_out_max_length < (1 + 6)) { return 0; }
5620   if(buffer_in_length != 2)
5621   {
5622     goto fail;
5623   }
5624 
5625   *status = hci_le_read_remote_features(cp0->Connection_Handle /* 2 */);
5626 fail:
5627   buffer_out[0] = 0x04;
5628   buffer_out[1] = 0x0F;
5629   buffer_out[2] = output_size + 3;
5630   buffer_out[4] = 0x01;
5631   buffer_out[5] = 0x16;
5632   buffer_out[6] = 0x20;
5633   return (output_size + 6);
5634 }
5635 #endif
5636 
5637 #if (!defined(HCI_LE_ENCRYPT_ENABLED) || HCI_LE_ENCRYPT_ENABLED) && !HCI_LE_ENCRYPT_FORCE_DISABLED
5638 /* tBleStatus hci_le_encrypt(uint8_t Key[16],
5639                           uint8_t Plaintext_Data[16],
5640                           uint8_t Encrypted_Data[16]);
5641  */
5642 /* Command len: 16 + 16 */
5643 /* Response len: 1 + 16 */
hci_le_encrypt_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5644 uint16_t hci_le_encrypt_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5645 {
5646   /* Input params */
5647   hci_le_encrypt_cp0 *cp0 = (hci_le_encrypt_cp0 *)(buffer_in + (0));
5648 
5649   int output_size = 1 + 16;
5650   /* Output params */
5651   hci_le_encrypt_rp0 *rp0 = (hci_le_encrypt_rp0 *) (buffer_out + 6);
5652   uint8_t Encrypted_Data[16] = {0};
5653 
5654   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5655   if (buffer_out_max_length < (1 + 16 + 6)) { return 0; }
5656   if(buffer_in_length != 16 + 16)
5657   {
5658     goto fail;
5659   }
5660 
5661   rp0->Status = hci_le_encrypt(cp0->Key /* 16 */,
5662                                cp0->Plaintext_Data /* 16 */,
5663                                Encrypted_Data);
5664 fail:
5665   Osal_MemCpy((void *) rp0->Encrypted_Data,(const void *) Encrypted_Data, 16);
5666   buffer_out[0] = 0x04;
5667   buffer_out[1] = 0x0E;
5668   buffer_out[2] = output_size + 3;
5669   buffer_out[3] = 0x01;
5670   buffer_out[4] = 0x17;
5671   buffer_out[5] = 0x20;
5672   return (output_size + 6);
5673 }
5674 #endif
5675 
5676 #if (!defined(HCI_LE_RAND_ENABLED) || HCI_LE_RAND_ENABLED) && !HCI_LE_RAND_FORCE_DISABLED
5677 /* tBleStatus hci_le_rand(uint8_t Random_Number[8]);
5678  */
5679 /* Command len: 0 */
5680 /* Response len: 1 + 8 */
hci_le_rand_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5681 uint16_t hci_le_rand_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5682 {
5683 
5684   int output_size = 1 + 8;
5685   /* Output params */
5686   hci_le_rand_rp0 *rp0 = (hci_le_rand_rp0 *) (buffer_out + 6);
5687   uint8_t Random_Number[8] = {0};
5688 
5689   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5690   if (buffer_out_max_length < (1 + 8 + 6)) { return 0; }
5691   if(buffer_in_length != 0)
5692   {
5693     goto fail;
5694   }
5695 
5696   rp0->Status = hci_le_rand(Random_Number);
5697 fail:
5698   Osal_MemCpy((void *) rp0->Random_Number,(const void *) Random_Number, 8);
5699   buffer_out[0] = 0x04;
5700   buffer_out[1] = 0x0E;
5701   buffer_out[2] = output_size + 3;
5702   buffer_out[3] = 0x01;
5703   buffer_out[4] = 0x18;
5704   buffer_out[5] = 0x20;
5705   return (output_size + 6);
5706 }
5707 #endif
5708 
5709 #if (!defined(HCI_LE_ENABLE_ENCRYPTION_ENABLED) || HCI_LE_ENABLE_ENCRYPTION_ENABLED) && !HCI_LE_ENABLE_ENCRYPTION_FORCE_DISABLED
5710 /* tBleStatus hci_le_enable_encryption(uint16_t Connection_Handle,
5711                                     uint8_t Random_Number[8],
5712                                     uint16_t Encrypted_Diversifier,
5713                                     uint8_t Long_Term_Key[16]);
5714  */
5715 /* Command len: 2 + 8 + 2 + 16 */
5716 /* Response len: 1 */
hci_le_enable_encryption_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5717 uint16_t hci_le_enable_encryption_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5718 {
5719   /* Input params */
5720   hci_le_enable_encryption_cp0 *cp0 = (hci_le_enable_encryption_cp0 *)(buffer_in + (0));
5721 
5722   int output_size = 1;
5723   /* Output params */
5724   uint8_t *status = (uint8_t *) (buffer_out + 3);
5725 
5726   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5727   if (buffer_out_max_length < (1 + 6)) { return 0; }
5728   if(buffer_in_length != 2 + 8 + 2 + 16)
5729   {
5730     goto fail;
5731   }
5732 
5733   *status = hci_le_enable_encryption(cp0->Connection_Handle /* 2 */,
5734                                      cp0->Random_Number /* 8 */,
5735                                      cp0->Encrypted_Diversifier /* 2 */,
5736                                      cp0->Long_Term_Key /* 16 */);
5737 fail:
5738   buffer_out[0] = 0x04;
5739   buffer_out[1] = 0x0F;
5740   buffer_out[2] = output_size + 3;
5741   buffer_out[4] = 0x01;
5742   buffer_out[5] = 0x19;
5743   buffer_out[6] = 0x20;
5744   return (output_size + 6);
5745 }
5746 #endif
5747 
5748 #if (!defined(HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_ENABLED) || HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_ENABLED) && !HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_FORCE_DISABLED
5749 /* tBleStatus hci_le_long_term_key_request_reply(uint16_t Connection_Handle,
5750                                               uint8_t Long_Term_Key[16]);
5751  */
5752 /* Command len: 2 + 16 */
5753 /* Response len: 1 + 2 */
hci_le_long_term_key_request_reply_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5754 uint16_t hci_le_long_term_key_request_reply_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5755 {
5756   /* Input params */
5757   hci_le_long_term_key_request_reply_cp0 *cp0 = (hci_le_long_term_key_request_reply_cp0 *)(buffer_in + (0));
5758 
5759   int output_size = 1 + 2;
5760   /* Output params */
5761   hci_le_long_term_key_request_reply_rp0 *rp0 = (hci_le_long_term_key_request_reply_rp0 *) (buffer_out + 6);
5762 
5763   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5764   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
5765   if(buffer_in_length != 2 + 16)
5766   {
5767     goto fail;
5768   }
5769 
5770   rp0->Status = hci_le_long_term_key_request_reply(cp0->Connection_Handle /* 2 */,
5771                                                    cp0->Long_Term_Key /* 16 */);
5772 fail:
5773   rp0->Connection_Handle = cp0->Connection_Handle;
5774   buffer_out[0] = 0x04;
5775   buffer_out[1] = 0x0E;
5776   buffer_out[2] = output_size + 3;
5777   buffer_out[3] = 0x01;
5778   buffer_out[4] = 0x1a;
5779   buffer_out[5] = 0x20;
5780   return (output_size + 6);
5781 }
5782 #endif
5783 
5784 #if (!defined(HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_ENABLED) || HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_ENABLED) && !HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_FORCE_DISABLED
5785 /* tBleStatus hci_le_long_term_key_request_negative_reply(uint16_t Connection_Handle);
5786  */
5787 /* Command len: 2 */
5788 /* Response len: 1 + 2 */
hci_le_long_term_key_request_negative_reply_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5789 uint16_t hci_le_long_term_key_request_negative_reply_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5790 {
5791   /* Input params */
5792   hci_le_long_term_key_request_negative_reply_cp0 *cp0 = (hci_le_long_term_key_request_negative_reply_cp0 *)(buffer_in + (0));
5793 
5794   int output_size = 1 + 2;
5795   /* Output params */
5796   hci_le_long_term_key_request_negative_reply_rp0 *rp0 = (hci_le_long_term_key_request_negative_reply_rp0 *) (buffer_out + 6);
5797 
5798   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5799   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
5800   if(buffer_in_length != 2)
5801   {
5802     goto fail;
5803   }
5804 
5805   rp0->Status = hci_le_long_term_key_request_negative_reply(cp0->Connection_Handle /* 2 */);
5806 fail:
5807   rp0->Connection_Handle = cp0->Connection_Handle;
5808   buffer_out[0] = 0x04;
5809   buffer_out[1] = 0x0E;
5810   buffer_out[2] = output_size + 3;
5811   buffer_out[3] = 0x01;
5812   buffer_out[4] = 0x1b;
5813   buffer_out[5] = 0x20;
5814   return (output_size + 6);
5815 }
5816 #endif
5817 
5818 #if (!defined(HCI_LE_READ_SUPPORTED_STATES_ENABLED) || HCI_LE_READ_SUPPORTED_STATES_ENABLED) && !HCI_LE_READ_SUPPORTED_STATES_FORCE_DISABLED
5819 /* tBleStatus hci_le_read_supported_states(uint8_t LE_States[8]);
5820  */
5821 /* Command len: 0 */
5822 /* Response len: 1 + 8 */
hci_le_read_supported_states_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5823 uint16_t hci_le_read_supported_states_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5824 {
5825 
5826   int output_size = 1 + 8;
5827   /* Output params */
5828   hci_le_read_supported_states_rp0 *rp0 = (hci_le_read_supported_states_rp0 *) (buffer_out + 6);
5829   uint8_t LE_States[8] = {0};
5830 
5831   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5832   if (buffer_out_max_length < (1 + 8 + 6)) { return 0; }
5833   if(buffer_in_length != 0)
5834   {
5835     goto fail;
5836   }
5837 
5838   rp0->Status = hci_le_read_supported_states(LE_States);
5839 fail:
5840   Osal_MemCpy((void *) rp0->LE_States,(const void *) LE_States, 8);
5841   buffer_out[0] = 0x04;
5842   buffer_out[1] = 0x0E;
5843   buffer_out[2] = output_size + 3;
5844   buffer_out[3] = 0x01;
5845   buffer_out[4] = 0x1c;
5846   buffer_out[5] = 0x20;
5847   return (output_size + 6);
5848 }
5849 #endif
5850 
5851 #if (!defined(HCI_LE_RECEIVER_TEST_ENABLED) || HCI_LE_RECEIVER_TEST_ENABLED) && !HCI_LE_RECEIVER_TEST_FORCE_DISABLED
5852 /* tBleStatus hci_le_receiver_test(uint8_t RX_Frequency);
5853  */
5854 /* Command len: 1 */
5855 /* Response len: 1 */
hci_le_receiver_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5856 uint16_t hci_le_receiver_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5857 {
5858   /* Input params */
5859   hci_le_receiver_test_cp0 *cp0 = (hci_le_receiver_test_cp0 *)(buffer_in + (0));
5860 
5861   int output_size = 1;
5862   /* Output params */
5863   uint8_t *status = (uint8_t *) (buffer_out + 6);
5864 
5865   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5866   if (buffer_out_max_length < (1 + 6)) { return 0; }
5867   if(buffer_in_length != 1)
5868   {
5869     goto fail;
5870   }
5871 
5872   *status = hci_le_receiver_test(cp0->RX_Frequency /* 1 */);
5873 fail:
5874   buffer_out[0] = 0x04;
5875   buffer_out[1] = 0x0E;
5876   buffer_out[2] = output_size + 3;
5877   buffer_out[3] = 0x01;
5878   buffer_out[4] = 0x1d;
5879   buffer_out[5] = 0x20;
5880   return (output_size + 6);
5881 }
5882 #endif
5883 
5884 #if (!defined(HCI_LE_TRANSMITTER_TEST_ENABLED) || HCI_LE_TRANSMITTER_TEST_ENABLED) && !HCI_LE_TRANSMITTER_TEST_FORCE_DISABLED
5885 /* tBleStatus hci_le_transmitter_test(uint8_t TX_Frequency,
5886                                    uint8_t Length_Of_Test_Data,
5887                                    uint8_t Packet_Payload);
5888  */
5889 /* Command len: 1 + 1 + 1 */
5890 /* Response len: 1 */
hci_le_transmitter_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5891 uint16_t hci_le_transmitter_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5892 {
5893   /* Input params */
5894   hci_le_transmitter_test_cp0 *cp0 = (hci_le_transmitter_test_cp0 *)(buffer_in + (0));
5895 
5896   int output_size = 1;
5897   /* Output params */
5898   uint8_t *status = (uint8_t *) (buffer_out + 6);
5899 
5900   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5901   if (buffer_out_max_length < (1 + 6)) { return 0; }
5902   if(buffer_in_length != 1 + 1 + 1)
5903   {
5904     goto fail;
5905   }
5906 
5907   *status = hci_le_transmitter_test(cp0->TX_Frequency /* 1 */,
5908                                     cp0->Length_Of_Test_Data /* 1 */,
5909                                     cp0->Packet_Payload /* 1 */);
5910 fail:
5911   buffer_out[0] = 0x04;
5912   buffer_out[1] = 0x0E;
5913   buffer_out[2] = output_size + 3;
5914   buffer_out[3] = 0x01;
5915   buffer_out[4] = 0x1e;
5916   buffer_out[5] = 0x20;
5917   return (output_size + 6);
5918 }
5919 #endif
5920 
5921 #if (!defined(HCI_LE_TEST_END_ENABLED) || HCI_LE_TEST_END_ENABLED) && !HCI_LE_TEST_END_FORCE_DISABLED
5922 /* tBleStatus hci_le_test_end(uint16_t *Number_Of_Packets);
5923  */
5924 /* Command len: 0 */
5925 /* Response len: 1 + 2 */
hci_le_test_end_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5926 uint16_t hci_le_test_end_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5927 {
5928 
5929   int output_size = 1 + 2;
5930   /* Output params */
5931   hci_le_test_end_rp0 *rp0 = (hci_le_test_end_rp0 *) (buffer_out + 6);
5932   uint16_t Number_Of_Packets = 0;
5933 
5934   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5935   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
5936   if(buffer_in_length != 0)
5937   {
5938     goto fail;
5939   }
5940 
5941   rp0->Status = hci_le_test_end(&Number_Of_Packets);
5942 fail:
5943   rp0->Number_Of_Packets = Number_Of_Packets;
5944   buffer_out[0] = 0x04;
5945   buffer_out[1] = 0x0E;
5946   buffer_out[2] = output_size + 3;
5947   buffer_out[3] = 0x01;
5948   buffer_out[4] = 0x1f;
5949   buffer_out[5] = 0x20;
5950   return (output_size + 6);
5951 }
5952 #endif
5953 
5954 #if (!defined(HCI_LE_SET_DATA_LENGTH_ENABLED) || HCI_LE_SET_DATA_LENGTH_ENABLED) && !HCI_LE_SET_DATA_LENGTH_FORCE_DISABLED
5955 /* tBleStatus hci_le_set_data_length(uint16_t Connection_Handle,
5956                                   uint16_t TxOctets,
5957                                   uint16_t TxTime);
5958  */
5959 /* Command len: 2 + 2 + 2 */
5960 /* Response len: 1 + 2 */
hci_le_set_data_length_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5961 uint16_t hci_le_set_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5962 {
5963   /* Input params */
5964   hci_le_set_data_length_cp0 *cp0 = (hci_le_set_data_length_cp0 *)(buffer_in + (0));
5965 
5966   int output_size = 1 + 2;
5967   /* Output params */
5968   hci_le_set_data_length_rp0 *rp0 = (hci_le_set_data_length_rp0 *) (buffer_out + 6);
5969 
5970   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
5971   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
5972   if(buffer_in_length != 2 + 2 + 2)
5973   {
5974     goto fail;
5975   }
5976 
5977   rp0->Status = hci_le_set_data_length(cp0->Connection_Handle /* 2 */,
5978                                        cp0->TxOctets /* 2 */,
5979                                        cp0->TxTime /* 2 */);
5980 fail:
5981   rp0->Connection_Handle = cp0->Connection_Handle;
5982   buffer_out[0] = 0x04;
5983   buffer_out[1] = 0x0E;
5984   buffer_out[2] = output_size + 3;
5985   buffer_out[3] = 0x01;
5986   buffer_out[4] = 0x22;
5987   buffer_out[5] = 0x20;
5988   return (output_size + 6);
5989 }
5990 #endif
5991 
5992 #if (!defined(HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) || HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) && !HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_FORCE_DISABLED
5993 /* tBleStatus hci_le_read_suggested_default_data_length(uint16_t *SuggestedMaxTxOctets,
5994                                                      uint16_t *SuggestedMaxTxTime);
5995  */
5996 /* Command len: 0 */
5997 /* Response len: 1 + 2 + 2 */
hci_le_read_suggested_default_data_length_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)5998 uint16_t hci_le_read_suggested_default_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
5999 {
6000 
6001   int output_size = 1 + 2 + 2;
6002   /* Output params */
6003   hci_le_read_suggested_default_data_length_rp0 *rp0 = (hci_le_read_suggested_default_data_length_rp0 *) (buffer_out + 6);
6004   uint16_t SuggestedMaxTxOctets = 0;
6005   uint16_t SuggestedMaxTxTime = 0;
6006 
6007   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6008   if (buffer_out_max_length < (1 + 2 + 2 + 6)) { return 0; }
6009   if(buffer_in_length != 0)
6010   {
6011     goto fail;
6012   }
6013 
6014   rp0->Status = hci_le_read_suggested_default_data_length(&SuggestedMaxTxOctets,
6015                                                           &SuggestedMaxTxTime);
6016 fail:
6017   rp0->SuggestedMaxTxOctets = SuggestedMaxTxOctets;
6018   rp0->SuggestedMaxTxTime = SuggestedMaxTxTime;
6019   buffer_out[0] = 0x04;
6020   buffer_out[1] = 0x0E;
6021   buffer_out[2] = output_size + 3;
6022   buffer_out[3] = 0x01;
6023   buffer_out[4] = 0x23;
6024   buffer_out[5] = 0x20;
6025   return (output_size + 6);
6026 }
6027 #endif
6028 
6029 #if (!defined(HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) || HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED) && !HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_FORCE_DISABLED
6030 /* tBleStatus hci_le_write_suggested_default_data_length(uint16_t SuggestedMaxTxOctets,
6031                                                       uint16_t SuggestedMaxTxTime);
6032  */
6033 /* Command len: 2 + 2 */
6034 /* Response len: 1 */
hci_le_write_suggested_default_data_length_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6035 uint16_t hci_le_write_suggested_default_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6036 {
6037   /* Input params */
6038   hci_le_write_suggested_default_data_length_cp0 *cp0 = (hci_le_write_suggested_default_data_length_cp0 *)(buffer_in + (0));
6039 
6040   int output_size = 1;
6041   /* Output params */
6042   uint8_t *status = (uint8_t *) (buffer_out + 6);
6043 
6044   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6045   if (buffer_out_max_length < (1 + 6)) { return 0; }
6046   if(buffer_in_length != 2 + 2)
6047   {
6048     goto fail;
6049   }
6050 
6051   *status = hci_le_write_suggested_default_data_length(cp0->SuggestedMaxTxOctets /* 2 */,
6052                                                        cp0->SuggestedMaxTxTime /* 2 */);
6053 fail:
6054   buffer_out[0] = 0x04;
6055   buffer_out[1] = 0x0E;
6056   buffer_out[2] = output_size + 3;
6057   buffer_out[3] = 0x01;
6058   buffer_out[4] = 0x24;
6059   buffer_out[5] = 0x20;
6060   return (output_size + 6);
6061 }
6062 #endif
6063 
6064 #if (!defined(HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_ENABLED) || HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_ENABLED) && !HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_FORCE_DISABLED
6065 /* tBleStatus hci_le_read_local_p256_public_key(void);
6066  */
6067 /* Command len: 0 */
6068 /* Response len: 1 */
hci_le_read_local_p256_public_key_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6069 uint16_t hci_le_read_local_p256_public_key_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6070 {
6071 
6072   int output_size = 1;
6073   /* Output params */
6074   uint8_t *status = (uint8_t *) (buffer_out + 3);
6075 
6076   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6077   if (buffer_out_max_length < (1 + 6)) { return 0; }
6078   if(buffer_in_length != 0)
6079   {
6080     goto fail;
6081   }
6082 
6083   *status = hci_le_read_local_p256_public_key();
6084 fail:
6085   buffer_out[0] = 0x04;
6086   buffer_out[1] = 0x0F;
6087   buffer_out[2] = output_size + 3;
6088   buffer_out[4] = 0x01;
6089   buffer_out[5] = 0x25;
6090   buffer_out[6] = 0x20;
6091   return (output_size + 6);
6092 }
6093 #endif
6094 
6095 #if (!defined(HCI_LE_GENERATE_DHKEY_ENABLED) || HCI_LE_GENERATE_DHKEY_ENABLED) && !HCI_LE_GENERATE_DHKEY_FORCE_DISABLED
6096 /* tBleStatus hci_le_generate_dhkey(uint8_t Remote_P256_Public_Key[64]);
6097  */
6098 /* Command len: 64 */
6099 /* Response len: 1 */
hci_le_generate_dhkey_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6100 uint16_t hci_le_generate_dhkey_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6101 {
6102   /* Input params */
6103   hci_le_generate_dhkey_cp0 *cp0 = (hci_le_generate_dhkey_cp0 *)(buffer_in + (0));
6104 
6105   int output_size = 1;
6106   /* Output params */
6107   uint8_t *status = (uint8_t *) (buffer_out + 3);
6108 
6109   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6110   if (buffer_out_max_length < (1 + 6)) { return 0; }
6111   if(buffer_in_length != 64)
6112   {
6113     goto fail;
6114   }
6115 
6116   *status = hci_le_generate_dhkey(cp0->Remote_P256_Public_Key /* 64 */);
6117 fail:
6118   buffer_out[0] = 0x04;
6119   buffer_out[1] = 0x0F;
6120   buffer_out[2] = output_size + 3;
6121   buffer_out[4] = 0x01;
6122   buffer_out[5] = 0x26;
6123   buffer_out[6] = 0x20;
6124   return (output_size + 6);
6125 }
6126 #endif
6127 
6128 #if (!defined(HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_FORCE_DISABLED
6129 /* tBleStatus hci_le_add_device_to_resolving_list(uint8_t Peer_Identity_Address_Type,
6130                                                uint8_t Peer_Identity_Address[6],
6131                                                uint8_t Peer_IRK[16],
6132                                                uint8_t Local_IRK[16]);
6133  */
6134 /* Command len: 1 + 6 + 16 + 16 */
6135 /* Response len: 1 */
hci_le_add_device_to_resolving_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6136 uint16_t hci_le_add_device_to_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6137 {
6138   /* Input params */
6139   hci_le_add_device_to_resolving_list_cp0 *cp0 = (hci_le_add_device_to_resolving_list_cp0 *)(buffer_in + (0));
6140 
6141   int output_size = 1;
6142   /* Output params */
6143   uint8_t *status = (uint8_t *) (buffer_out + 6);
6144 
6145   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6146   if (buffer_out_max_length < (1 + 6)) { return 0; }
6147   if(buffer_in_length != 1 + 6 + 16 + 16)
6148   {
6149     goto fail;
6150   }
6151 
6152   *status = hci_le_add_device_to_resolving_list(cp0->Peer_Identity_Address_Type /* 1 */,
6153                                                 cp0->Peer_Identity_Address /* 6 */,
6154                                                 cp0->Peer_IRK /* 16 */,
6155                                                 cp0->Local_IRK /* 16 */);
6156 fail:
6157   buffer_out[0] = 0x04;
6158   buffer_out[1] = 0x0E;
6159   buffer_out[2] = output_size + 3;
6160   buffer_out[3] = 0x01;
6161   buffer_out[4] = 0x27;
6162   buffer_out[5] = 0x20;
6163   return (output_size + 6);
6164 }
6165 #endif
6166 
6167 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_FORCE_DISABLED
6168 /* tBleStatus hci_le_remove_device_from_resolving_list(uint8_t Peer_Identity_Address_Type,
6169                                                     uint8_t Peer_Identity_Address[6]);
6170  */
6171 /* Command len: 1 + 6 */
6172 /* Response len: 1 */
hci_le_remove_device_from_resolving_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6173 uint16_t hci_le_remove_device_from_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6174 {
6175   /* Input params */
6176   hci_le_remove_device_from_resolving_list_cp0 *cp0 = (hci_le_remove_device_from_resolving_list_cp0 *)(buffer_in + (0));
6177 
6178   int output_size = 1;
6179   /* Output params */
6180   uint8_t *status = (uint8_t *) (buffer_out + 6);
6181 
6182   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6183   if (buffer_out_max_length < (1 + 6)) { return 0; }
6184   if(buffer_in_length != 1 + 6)
6185   {
6186     goto fail;
6187   }
6188 
6189   *status = hci_le_remove_device_from_resolving_list(cp0->Peer_Identity_Address_Type /* 1 */,
6190                                                      cp0->Peer_Identity_Address /* 6 */);
6191 fail:
6192   buffer_out[0] = 0x04;
6193   buffer_out[1] = 0x0E;
6194   buffer_out[2] = output_size + 3;
6195   buffer_out[3] = 0x01;
6196   buffer_out[4] = 0x28;
6197   buffer_out[5] = 0x20;
6198   return (output_size + 6);
6199 }
6200 #endif
6201 
6202 #if (!defined(HCI_LE_CLEAR_RESOLVING_LIST_ENABLED) || HCI_LE_CLEAR_RESOLVING_LIST_ENABLED) && !HCI_LE_CLEAR_RESOLVING_LIST_FORCE_DISABLED
6203 /* tBleStatus hci_le_clear_resolving_list(void);
6204  */
6205 /* Command len: 0 */
6206 /* Response len: 1 */
hci_le_clear_resolving_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6207 uint16_t hci_le_clear_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6208 {
6209 
6210   int output_size = 1;
6211   /* Output params */
6212   uint8_t *status = (uint8_t *) (buffer_out + 6);
6213 
6214   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6215   if (buffer_out_max_length < (1 + 6)) { return 0; }
6216   if(buffer_in_length != 0)
6217   {
6218     goto fail;
6219   }
6220 
6221   *status = hci_le_clear_resolving_list();
6222 fail:
6223   buffer_out[0] = 0x04;
6224   buffer_out[1] = 0x0E;
6225   buffer_out[2] = output_size + 3;
6226   buffer_out[3] = 0x01;
6227   buffer_out[4] = 0x29;
6228   buffer_out[5] = 0x20;
6229   return (output_size + 6);
6230 }
6231 #endif
6232 
6233 #if (!defined(HCI_LE_READ_RESOLVING_LIST_SIZE_ENABLED) || HCI_LE_READ_RESOLVING_LIST_SIZE_ENABLED) && !HCI_LE_READ_RESOLVING_LIST_SIZE_FORCE_DISABLED
6234 /* tBleStatus hci_le_read_resolving_list_size(uint8_t *Resolving_List_Size);
6235  */
6236 /* Command len: 0 */
6237 /* Response len: 1 + 1 */
hci_le_read_resolving_list_size_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6238 uint16_t hci_le_read_resolving_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6239 {
6240 
6241   int output_size = 1 + 1;
6242   /* Output params */
6243   hci_le_read_resolving_list_size_rp0 *rp0 = (hci_le_read_resolving_list_size_rp0 *) (buffer_out + 6);
6244   uint8_t Resolving_List_Size = 0;
6245 
6246   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6247   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
6248   if(buffer_in_length != 0)
6249   {
6250     goto fail;
6251   }
6252 
6253   rp0->Status = hci_le_read_resolving_list_size(&Resolving_List_Size);
6254 fail:
6255   rp0->Resolving_List_Size = Resolving_List_Size;
6256   buffer_out[0] = 0x04;
6257   buffer_out[1] = 0x0E;
6258   buffer_out[2] = output_size + 3;
6259   buffer_out[3] = 0x01;
6260   buffer_out[4] = 0x2a;
6261   buffer_out[5] = 0x20;
6262   return (output_size + 6);
6263 }
6264 #endif
6265 
6266 #if (!defined(HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_ENABLED) || HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_ENABLED) && !HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_FORCE_DISABLED
6267 /* tBleStatus hci_le_read_peer_resolvable_address(uint8_t Peer_Identity_Address_Type,
6268                                                uint8_t Peer_Identity_Address[6],
6269                                                uint8_t Peer_Resolvable_Address[6]);
6270  */
6271 /* Command len: 1 + 6 */
6272 /* Response len: 1 + 6 */
hci_le_read_peer_resolvable_address_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6273 uint16_t hci_le_read_peer_resolvable_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6274 {
6275   /* Input params */
6276   hci_le_read_peer_resolvable_address_cp0 *cp0 = (hci_le_read_peer_resolvable_address_cp0 *)(buffer_in + (0));
6277 
6278   int output_size = 1 + 6;
6279   /* Output params */
6280   hci_le_read_peer_resolvable_address_rp0 *rp0 = (hci_le_read_peer_resolvable_address_rp0 *) (buffer_out + 6);
6281   uint8_t Peer_Resolvable_Address[6] = {0};
6282 
6283   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6284   if (buffer_out_max_length < (1 + 6 + 6)) { return 0; }
6285   if(buffer_in_length != 1 + 6)
6286   {
6287     goto fail;
6288   }
6289 
6290   rp0->Status = hci_le_read_peer_resolvable_address(cp0->Peer_Identity_Address_Type /* 1 */,
6291                                                     cp0->Peer_Identity_Address /* 6 */,
6292                                                     Peer_Resolvable_Address);
6293 fail:
6294   Osal_MemCpy((void *) rp0->Peer_Resolvable_Address,(const void *) Peer_Resolvable_Address, 6);
6295   buffer_out[0] = 0x04;
6296   buffer_out[1] = 0x0E;
6297   buffer_out[2] = output_size + 3;
6298   buffer_out[3] = 0x01;
6299   buffer_out[4] = 0x2b;
6300   buffer_out[5] = 0x20;
6301   return (output_size + 6);
6302 }
6303 #endif
6304 
6305 #if (!defined(HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_ENABLED) || HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_ENABLED) && !HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_FORCE_DISABLED
6306 /* tBleStatus hci_le_read_local_resolvable_address(uint8_t Peer_Identity_Address_Type,
6307                                                 uint8_t Peer_Identity_Address[6],
6308                                                 uint8_t Local_Resolvable_Address[6]);
6309  */
6310 /* Command len: 1 + 6 */
6311 /* Response len: 1 + 6 */
hci_le_read_local_resolvable_address_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6312 uint16_t hci_le_read_local_resolvable_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6313 {
6314   /* Input params */
6315   hci_le_read_local_resolvable_address_cp0 *cp0 = (hci_le_read_local_resolvable_address_cp0 *)(buffer_in + (0));
6316 
6317   int output_size = 1 + 6;
6318   /* Output params */
6319   hci_le_read_local_resolvable_address_rp0 *rp0 = (hci_le_read_local_resolvable_address_rp0 *) (buffer_out + 6);
6320   uint8_t Local_Resolvable_Address[6] = {0};
6321 
6322   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6323   if (buffer_out_max_length < (1 + 6 + 6)) { return 0; }
6324   if(buffer_in_length != 1 + 6)
6325   {
6326     goto fail;
6327   }
6328 
6329   rp0->Status = hci_le_read_local_resolvable_address(cp0->Peer_Identity_Address_Type /* 1 */,
6330                                                      cp0->Peer_Identity_Address /* 6 */,
6331                                                      Local_Resolvable_Address);
6332 fail:
6333   Osal_MemCpy((void *) rp0->Local_Resolvable_Address,(const void *) Local_Resolvable_Address, 6);
6334   buffer_out[0] = 0x04;
6335   buffer_out[1] = 0x0E;
6336   buffer_out[2] = output_size + 3;
6337   buffer_out[3] = 0x01;
6338   buffer_out[4] = 0x2c;
6339   buffer_out[5] = 0x20;
6340   return (output_size + 6);
6341 }
6342 #endif
6343 
6344 #if (!defined(HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_ENABLED) || HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_ENABLED) && !HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_FORCE_DISABLED
6345 /* tBleStatus hci_le_set_address_resolution_enable(uint8_t Address_Resolution_Enable);
6346  */
6347 /* Command len: 1 */
6348 /* Response len: 1 */
hci_le_set_address_resolution_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6349 uint16_t hci_le_set_address_resolution_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6350 {
6351   /* Input params */
6352   hci_le_set_address_resolution_enable_cp0 *cp0 = (hci_le_set_address_resolution_enable_cp0 *)(buffer_in + (0));
6353 
6354   int output_size = 1;
6355   /* Output params */
6356   uint8_t *status = (uint8_t *) (buffer_out + 6);
6357 
6358   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6359   if (buffer_out_max_length < (1 + 6)) { return 0; }
6360   if(buffer_in_length != 1)
6361   {
6362     goto fail;
6363   }
6364 
6365   *status = hci_le_set_address_resolution_enable(cp0->Address_Resolution_Enable /* 1 */);
6366 fail:
6367   buffer_out[0] = 0x04;
6368   buffer_out[1] = 0x0E;
6369   buffer_out[2] = output_size + 3;
6370   buffer_out[3] = 0x01;
6371   buffer_out[4] = 0x2d;
6372   buffer_out[5] = 0x20;
6373   return (output_size + 6);
6374 }
6375 #endif
6376 
6377 #if (!defined(HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_ENABLED) || HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_ENABLED) && !HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_FORCE_DISABLED
6378 /* tBleStatus hci_le_set_resolvable_private_address_timeout(uint16_t RPA_Timeout);
6379  */
6380 /* Command len: 2 */
6381 /* Response len: 1 */
hci_le_set_resolvable_private_address_timeout_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6382 uint16_t hci_le_set_resolvable_private_address_timeout_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6383 {
6384   /* Input params */
6385   hci_le_set_resolvable_private_address_timeout_cp0 *cp0 = (hci_le_set_resolvable_private_address_timeout_cp0 *)(buffer_in + (0));
6386 
6387   int output_size = 1;
6388   /* Output params */
6389   uint8_t *status = (uint8_t *) (buffer_out + 6);
6390 
6391   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6392   if (buffer_out_max_length < (1 + 6)) { return 0; }
6393   if(buffer_in_length != 2)
6394   {
6395     goto fail;
6396   }
6397 
6398   *status = hci_le_set_resolvable_private_address_timeout(cp0->RPA_Timeout /* 2 */);
6399 fail:
6400   buffer_out[0] = 0x04;
6401   buffer_out[1] = 0x0E;
6402   buffer_out[2] = output_size + 3;
6403   buffer_out[3] = 0x01;
6404   buffer_out[4] = 0x2e;
6405   buffer_out[5] = 0x20;
6406   return (output_size + 6);
6407 }
6408 #endif
6409 
6410 #if (!defined(HCI_LE_READ_MAXIMUM_DATA_LENGTH_ENABLED) || HCI_LE_READ_MAXIMUM_DATA_LENGTH_ENABLED) && !HCI_LE_READ_MAXIMUM_DATA_LENGTH_FORCE_DISABLED
6411 /* tBleStatus hci_le_read_maximum_data_length(uint16_t *supportedMaxTxOctets,
6412                                            uint16_t *supportedMaxTxTime,
6413                                            uint16_t *supportedMaxRxOctets,
6414                                            uint16_t *supportedMaxRxTime);
6415  */
6416 /* Command len: 0 */
6417 /* Response len: 1 + 2 + 2 + 2 + 2 */
hci_le_read_maximum_data_length_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6418 uint16_t hci_le_read_maximum_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6419 {
6420 
6421   int output_size = 1 + 2 + 2 + 2 + 2;
6422   /* Output params */
6423   hci_le_read_maximum_data_length_rp0 *rp0 = (hci_le_read_maximum_data_length_rp0 *) (buffer_out + 6);
6424   uint16_t supportedMaxTxOctets = 0;
6425   uint16_t supportedMaxTxTime = 0;
6426   uint16_t supportedMaxRxOctets = 0;
6427   uint16_t supportedMaxRxTime = 0;
6428 
6429   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6430   if (buffer_out_max_length < (1 + 2 + 2 + 2 + 2 + 6)) { return 0; }
6431   if(buffer_in_length != 0)
6432   {
6433     goto fail;
6434   }
6435 
6436   rp0->Status = hci_le_read_maximum_data_length(&supportedMaxTxOctets,
6437                                                 &supportedMaxTxTime,
6438                                                 &supportedMaxRxOctets,
6439                                                 &supportedMaxRxTime);
6440 fail:
6441   rp0->supportedMaxTxOctets = supportedMaxTxOctets;
6442   rp0->supportedMaxTxTime = supportedMaxTxTime;
6443   rp0->supportedMaxRxOctets = supportedMaxRxOctets;
6444   rp0->supportedMaxRxTime = supportedMaxRxTime;
6445   buffer_out[0] = 0x04;
6446   buffer_out[1] = 0x0E;
6447   buffer_out[2] = output_size + 3;
6448   buffer_out[3] = 0x01;
6449   buffer_out[4] = 0x2f;
6450   buffer_out[5] = 0x20;
6451   return (output_size + 6);
6452 }
6453 #endif
6454 
6455 #if (!defined(HCI_LE_READ_PHY_ENABLED) || HCI_LE_READ_PHY_ENABLED) && !HCI_LE_READ_PHY_FORCE_DISABLED
6456 /* tBleStatus hci_le_read_phy(uint16_t Connection_Handle,
6457                            uint8_t *TX_PHY,
6458                            uint8_t *RX_PHY);
6459  */
6460 /* Command len: 2 */
6461 /* Response len: 1 + 2 + 1 + 1 */
hci_le_read_phy_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6462 uint16_t hci_le_read_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6463 {
6464   /* Input params */
6465   hci_le_read_phy_cp0 *cp0 = (hci_le_read_phy_cp0 *)(buffer_in + (0));
6466 
6467   int output_size = 1 + 2 + 1 + 1;
6468   /* Output params */
6469   hci_le_read_phy_rp0 *rp0 = (hci_le_read_phy_rp0 *) (buffer_out + 6);
6470   uint8_t TX_PHY = 0;
6471   uint8_t RX_PHY = 0;
6472 
6473   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6474   if (buffer_out_max_length < (1 + 2 + 1 + 1 + 6)) { return 0; }
6475   if(buffer_in_length != 2)
6476   {
6477     goto fail;
6478   }
6479 
6480   rp0->Status = hci_le_read_phy(cp0->Connection_Handle /* 2 */,
6481                                 &TX_PHY,
6482                                 &RX_PHY);
6483 fail:
6484   rp0->Connection_Handle = cp0->Connection_Handle;
6485   rp0->TX_PHY = TX_PHY;
6486   rp0->RX_PHY = RX_PHY;
6487   buffer_out[0] = 0x04;
6488   buffer_out[1] = 0x0E;
6489   buffer_out[2] = output_size + 3;
6490   buffer_out[3] = 0x01;
6491   buffer_out[4] = 0x30;
6492   buffer_out[5] = 0x20;
6493   return (output_size + 6);
6494 }
6495 #endif
6496 
6497 #if (!defined(HCI_LE_SET_DEFAULT_PHY_ENABLED) || HCI_LE_SET_DEFAULT_PHY_ENABLED) && !HCI_LE_SET_DEFAULT_PHY_FORCE_DISABLED
6498 /* tBleStatus hci_le_set_default_phy(uint8_t ALL_PHYS,
6499                                   uint8_t TX_PHYS,
6500                                   uint8_t RX_PHYS);
6501  */
6502 /* Command len: 1 + 1 + 1 */
6503 /* Response len: 1 */
hci_le_set_default_phy_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6504 uint16_t hci_le_set_default_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6505 {
6506   /* Input params */
6507   hci_le_set_default_phy_cp0 *cp0 = (hci_le_set_default_phy_cp0 *)(buffer_in + (0));
6508 
6509   int output_size = 1;
6510   /* Output params */
6511   uint8_t *status = (uint8_t *) (buffer_out + 6);
6512 
6513   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6514   if (buffer_out_max_length < (1 + 6)) { return 0; }
6515   if(buffer_in_length != 1 + 1 + 1)
6516   {
6517     goto fail;
6518   }
6519 
6520   *status = hci_le_set_default_phy(cp0->ALL_PHYS /* 1 */,
6521                                    cp0->TX_PHYS /* 1 */,
6522                                    cp0->RX_PHYS /* 1 */);
6523 fail:
6524   buffer_out[0] = 0x04;
6525   buffer_out[1] = 0x0E;
6526   buffer_out[2] = output_size + 3;
6527   buffer_out[3] = 0x01;
6528   buffer_out[4] = 0x31;
6529   buffer_out[5] = 0x20;
6530   return (output_size + 6);
6531 }
6532 #endif
6533 
6534 #if (!defined(HCI_LE_SET_PHY_ENABLED) || HCI_LE_SET_PHY_ENABLED) && !HCI_LE_SET_PHY_FORCE_DISABLED
6535 /* tBleStatus hci_le_set_phy(uint16_t Connection_Handle,
6536                           uint8_t ALL_PHYS,
6537                           uint8_t TX_PHYS,
6538                           uint8_t RX_PHYS,
6539                           uint16_t PHY_options);
6540  */
6541 /* Command len: 2 + 1 + 1 + 1 + 2 */
6542 /* Response len: 1 */
hci_le_set_phy_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6543 uint16_t hci_le_set_phy_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6544 {
6545   /* Input params */
6546   hci_le_set_phy_cp0 *cp0 = (hci_le_set_phy_cp0 *)(buffer_in + (0));
6547 
6548   int output_size = 1;
6549   /* Output params */
6550   uint8_t *status = (uint8_t *) (buffer_out + 3);
6551 
6552   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6553   if (buffer_out_max_length < (1 + 6)) { return 0; }
6554   if(buffer_in_length != 2 + 1 + 1 + 1 + 2)
6555   {
6556     goto fail;
6557   }
6558 
6559   *status = hci_le_set_phy(cp0->Connection_Handle /* 2 */,
6560                            cp0->ALL_PHYS /* 1 */,
6561                            cp0->TX_PHYS /* 1 */,
6562                            cp0->RX_PHYS /* 1 */,
6563                            cp0->PHY_options /* 2 */);
6564 fail:
6565   buffer_out[0] = 0x04;
6566   buffer_out[1] = 0x0F;
6567   buffer_out[2] = output_size + 3;
6568   buffer_out[4] = 0x01;
6569   buffer_out[5] = 0x32;
6570   buffer_out[6] = 0x20;
6571   return (output_size + 6);
6572 }
6573 #endif
6574 
6575 #if (!defined(HCI_LE_RECEIVER_TEST_V2_ENABLED) || HCI_LE_RECEIVER_TEST_V2_ENABLED) && !HCI_LE_RECEIVER_TEST_V2_FORCE_DISABLED
6576 /* tBleStatus hci_le_receiver_test_v2(uint8_t RX_Channel,
6577                                    uint8_t PHY,
6578                                    uint8_t Modulation_index);
6579  */
6580 /* Command len: 1 + 1 + 1 */
6581 /* Response len: 1 */
hci_le_receiver_test_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6582 uint16_t hci_le_receiver_test_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6583 {
6584   /* Input params */
6585   hci_le_receiver_test_v2_cp0 *cp0 = (hci_le_receiver_test_v2_cp0 *)(buffer_in + (0));
6586 
6587   int output_size = 1;
6588   /* Output params */
6589   uint8_t *status = (uint8_t *) (buffer_out + 6);
6590 
6591   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6592   if (buffer_out_max_length < (1 + 6)) { return 0; }
6593   if(buffer_in_length != 1 + 1 + 1)
6594   {
6595     goto fail;
6596   }
6597 
6598   *status = hci_le_receiver_test_v2(cp0->RX_Channel /* 1 */,
6599                                     cp0->PHY /* 1 */,
6600                                     cp0->Modulation_index /* 1 */);
6601 fail:
6602   buffer_out[0] = 0x04;
6603   buffer_out[1] = 0x0E;
6604   buffer_out[2] = output_size + 3;
6605   buffer_out[3] = 0x01;
6606   buffer_out[4] = 0x33;
6607   buffer_out[5] = 0x20;
6608   return (output_size + 6);
6609 }
6610 #endif
6611 
6612 #if (!defined(HCI_LE_TRANSMITTER_TEST_V2_ENABLED) || HCI_LE_TRANSMITTER_TEST_V2_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V2_FORCE_DISABLED
6613 /* tBleStatus hci_le_transmitter_test_v2(uint8_t TX_Channel,
6614                                       uint8_t Length_Of_Test_Data,
6615                                       uint8_t Packet_Payload,
6616                                       uint8_t PHY);
6617  */
6618 /* Command len: 1 + 1 + 1 + 1 */
6619 /* Response len: 1 */
hci_le_transmitter_test_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6620 uint16_t hci_le_transmitter_test_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6621 {
6622   /* Input params */
6623   hci_le_transmitter_test_v2_cp0 *cp0 = (hci_le_transmitter_test_v2_cp0 *)(buffer_in + (0));
6624 
6625   int output_size = 1;
6626   /* Output params */
6627   uint8_t *status = (uint8_t *) (buffer_out + 6);
6628 
6629   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6630   if (buffer_out_max_length < (1 + 6)) { return 0; }
6631   if(buffer_in_length != 1 + 1 + 1 + 1)
6632   {
6633     goto fail;
6634   }
6635 
6636   *status = hci_le_transmitter_test_v2(cp0->TX_Channel /* 1 */,
6637                                        cp0->Length_Of_Test_Data /* 1 */,
6638                                        cp0->Packet_Payload /* 1 */,
6639                                        cp0->PHY /* 1 */);
6640 fail:
6641   buffer_out[0] = 0x04;
6642   buffer_out[1] = 0x0E;
6643   buffer_out[2] = output_size + 3;
6644   buffer_out[3] = 0x01;
6645   buffer_out[4] = 0x34;
6646   buffer_out[5] = 0x20;
6647   return (output_size + 6);
6648 }
6649 #endif
6650 
6651 #if (!defined(HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_ENABLED) || HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_ENABLED) && !HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_FORCE_DISABLED
6652 /* tBleStatus hci_le_set_advertising_set_random_address(uint8_t Advertising_Handle,
6653                                                      uint8_t Advertising_Random_Address[6]);
6654  */
6655 /* Command len: 1 + 6 */
6656 /* Response len: 1 */
hci_le_set_advertising_set_random_address_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6657 uint16_t hci_le_set_advertising_set_random_address_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6658 {
6659   /* Input params */
6660   hci_le_set_advertising_set_random_address_cp0 *cp0 = (hci_le_set_advertising_set_random_address_cp0 *)(buffer_in + (0));
6661 
6662   int output_size = 1;
6663   /* Output params */
6664   uint8_t *status = (uint8_t *) (buffer_out + 6);
6665 
6666   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6667   if (buffer_out_max_length < (1 + 6)) { return 0; }
6668   if(buffer_in_length != 1 + 6)
6669   {
6670     goto fail;
6671   }
6672 
6673   *status = hci_le_set_advertising_set_random_address(cp0->Advertising_Handle /* 1 */,
6674                                                       cp0->Advertising_Random_Address /* 6 */);
6675 fail:
6676   buffer_out[0] = 0x04;
6677   buffer_out[1] = 0x0E;
6678   buffer_out[2] = output_size + 3;
6679   buffer_out[3] = 0x01;
6680   buffer_out[4] = 0x35;
6681   buffer_out[5] = 0x20;
6682   return (output_size + 6);
6683 }
6684 #endif
6685 
6686 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_FORCE_DISABLED
6687 /* tBleStatus hci_le_set_extended_advertising_parameters(uint8_t Advertising_Handle,
6688                                                       uint16_t Advertising_Event_Properties,
6689                                                       uint8_t Primary_Advertising_Interval_Min[3],
6690                                                       uint8_t Primary_Advertising_Interval_Max[3],
6691                                                       uint8_t Primary_Advertising_Channel_Map,
6692                                                       uint8_t Own_Address_Type,
6693                                                       uint8_t Peer_Address_Type,
6694                                                       uint8_t Peer_Address[6],
6695                                                       uint8_t Advertising_Filter_Policy,
6696                                                       int8_t Advertising_Tx_Power,
6697                                                       uint8_t Primary_Advertising_PHY,
6698                                                       uint8_t Secondary_Advertising_Max_Skip,
6699                                                       uint8_t Secondary_Advertising_PHY,
6700                                                       uint8_t Advertising_SID,
6701                                                       uint8_t Scan_Request_Notification_Enable,
6702                                                       int8_t *Selected_Tx_Power);
6703  */
6704 /* Command len: 1 + 2 + 3 + 3 + 1 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 */
6705 /* Response len: 1 + 1 */
hci_le_set_extended_advertising_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6706 uint16_t hci_le_set_extended_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6707 {
6708   /* Input params */
6709   hci_le_set_extended_advertising_parameters_cp0 *cp0 = (hci_le_set_extended_advertising_parameters_cp0 *)(buffer_in + (0));
6710 
6711   int output_size = 1 + 1;
6712   /* Output params */
6713   hci_le_set_extended_advertising_parameters_rp0 *rp0 = (hci_le_set_extended_advertising_parameters_rp0 *) (buffer_out + 6);
6714   int8_t Selected_Tx_Power = 0;
6715 
6716   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6717   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
6718   if(buffer_in_length != 1 + 2 + 3 + 3 + 1 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1)
6719   {
6720     goto fail;
6721   }
6722 
6723   rp0->Status = hci_le_set_extended_advertising_parameters(cp0->Advertising_Handle /* 1 */,
6724                                                            cp0->Advertising_Event_Properties /* 2 */,
6725                                                            cp0->Primary_Advertising_Interval_Min /* 3 */,
6726                                                            cp0->Primary_Advertising_Interval_Max /* 3 */,
6727                                                            cp0->Primary_Advertising_Channel_Map /* 1 */,
6728                                                            cp0->Own_Address_Type /* 1 */,
6729                                                            cp0->Peer_Address_Type /* 1 */,
6730                                                            cp0->Peer_Address /* 6 */,
6731                                                            cp0->Advertising_Filter_Policy /* 1 */,
6732                                                            cp0->Advertising_Tx_Power /* 1 */,
6733                                                            cp0->Primary_Advertising_PHY /* 1 */,
6734                                                            cp0->Secondary_Advertising_Max_Skip /* 1 */,
6735                                                            cp0->Secondary_Advertising_PHY /* 1 */,
6736                                                            cp0->Advertising_SID /* 1 */,
6737                                                            cp0->Scan_Request_Notification_Enable /* 1 */,
6738                                                            &Selected_Tx_Power);
6739 fail:
6740   rp0->Selected_Tx_Power = Selected_Tx_Power;
6741   buffer_out[0] = 0x04;
6742   buffer_out[1] = 0x0E;
6743   buffer_out[2] = output_size + 3;
6744   buffer_out[3] = 0x01;
6745   buffer_out[4] = 0x36;
6746   buffer_out[5] = 0x20;
6747   return (output_size + 6);
6748 }
6749 #endif
6750 
6751 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_DATA_FORCE_DISABLED
6752 /* tBleStatus hci_le_set_extended_advertising_data(uint8_t Advertising_Handle,
6753                                                 uint8_t Operation,
6754                                                 uint8_t Fragment_Preference,
6755                                                 uint8_t Advertising_Data_Length,
6756                                                 uint8_t Advertising_Data[]);
6757  */
6758 /* Command len: 1 + 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)) */
6759 /* Response len: 1 */
hci_le_set_extended_advertising_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6760 uint16_t hci_le_set_extended_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6761 {
6762   /* Input params */
6763   hci_le_set_extended_advertising_data_cp0 *cp0 = (hci_le_set_extended_advertising_data_cp0 *)(buffer_in + (0));
6764 
6765   int output_size = 1;
6766   /* Output params */
6767   uint8_t *status = (uint8_t *) (buffer_out + 6);
6768 
6769   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6770   if (buffer_out_max_length < (1 + 6)) { return 0; }
6771   if(buffer_in_length != 1 + 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)))
6772   {
6773     goto fail;
6774   }
6775 
6776   *status = hci_le_set_extended_advertising_data(cp0->Advertising_Handle /* 1 */,
6777                                                  cp0->Operation /* 1 */,
6778                                                  cp0->Fragment_Preference /* 1 */,
6779                                                  cp0->Advertising_Data_Length /* 1 */,
6780                                                  cp0->Advertising_Data /* cp0->Advertising_Data_Length * (sizeof(uint8_t)) */);
6781 fail:
6782   buffer_out[0] = 0x04;
6783   buffer_out[1] = 0x0E;
6784   buffer_out[2] = output_size + 3;
6785   buffer_out[3] = 0x01;
6786   buffer_out[4] = 0x37;
6787   buffer_out[5] = 0x20;
6788   return (output_size + 6);
6789 }
6790 #endif
6791 
6792 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA_FORCE_DISABLED
6793 /* tBleStatus hci_le_set_extended_scan_response_data(uint8_t Advertising_Handle,
6794                                                   uint8_t Operation,
6795                                                   uint8_t Fragment_Preference,
6796                                                   uint8_t Scan_Response_Data_Length,
6797                                                   uint8_t Scan_Response_Data[]);
6798  */
6799 /* Command len: 1 + 1 + 1 + 1 + cp0->Scan_Response_Data_Length * (sizeof(uint8_t)) */
6800 /* Response len: 1 */
hci_le_set_extended_scan_response_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6801 uint16_t hci_le_set_extended_scan_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6802 {
6803   /* Input params */
6804   hci_le_set_extended_scan_response_data_cp0 *cp0 = (hci_le_set_extended_scan_response_data_cp0 *)(buffer_in + (0));
6805 
6806   int output_size = 1;
6807   /* Output params */
6808   uint8_t *status = (uint8_t *) (buffer_out + 6);
6809 
6810   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6811   if (buffer_out_max_length < (1 + 6)) { return 0; }
6812   if(buffer_in_length != 1 + 1 + 1 + 1 + cp0->Scan_Response_Data_Length * (sizeof(uint8_t)))
6813   {
6814     goto fail;
6815   }
6816 
6817   *status = hci_le_set_extended_scan_response_data(cp0->Advertising_Handle /* 1 */,
6818                                                    cp0->Operation /* 1 */,
6819                                                    cp0->Fragment_Preference /* 1 */,
6820                                                    cp0->Scan_Response_Data_Length /* 1 */,
6821                                                    cp0->Scan_Response_Data /* cp0->Scan_Response_Data_Length * (sizeof(uint8_t)) */);
6822 fail:
6823   buffer_out[0] = 0x04;
6824   buffer_out[1] = 0x0E;
6825   buffer_out[2] = output_size + 3;
6826   buffer_out[3] = 0x01;
6827   buffer_out[4] = 0x38;
6828   buffer_out[5] = 0x20;
6829   return (output_size + 6);
6830 }
6831 #endif
6832 
6833 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_FORCE_DISABLED
6834 tBleStatus hci_le_set_extended_advertising_enable_preprocess(uint8_t Enable,
6835                                                              uint8_t Number_of_Sets,
6836                                                              Advertising_Set_Parameters_t Advertising_Set_Parameters[]);
6837 /* tBleStatus hci_le_set_extended_advertising_enable(uint8_t Enable,
6838                                                   uint8_t Number_of_Sets,
6839                                                   Advertising_Set_Parameters_t Advertising_Set_Parameters[]);
6840  */
6841 /* Command len: 1 + 1 + struct_length */
6842 /* Response len: 1 */
hci_le_set_extended_advertising_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6843 uint16_t hci_le_set_extended_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6844 {
6845   /* Input params */
6846   hci_le_set_extended_advertising_enable_cp0 *cp0 = (hci_le_set_extended_advertising_enable_cp0 *)(buffer_in + (0));
6847   Advertising_Set_Parameters_t Advertising_Set_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Advertising_Set_Parameters_t)];
6848 
6849   int output_size = 1;
6850   /* Output params */
6851   uint8_t *status = (uint8_t *) (buffer_out + 6);
6852 
6853   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6854   if (buffer_out_max_length < (1 + 6)) { return 0; }
6855   int i;
6856   int struct_length = 0;
6857   if(cp0->Number_of_Sets > HCI_MAX_PAYLOAD_SIZE/sizeof(Advertising_Set_Parameters_t))
6858   {
6859     cp0->Number_of_Sets = 0;
6860     goto fail;
6861   }
6862   for (i = 0; i < cp0->Number_of_Sets; i++) {
6863     packed_Advertising_Set_Parameters_t *Advertising_Set_Parameters_tmp = (packed_Advertising_Set_Parameters_t *)(((uint8_t *)cp0->Advertising_Set_Parameters) + struct_length);
6864     Advertising_Set_Parameters[i].Advertising_Handle = Advertising_Set_Parameters_tmp->Advertising_Handle;
6865     struct_length += 1;
6866     Advertising_Set_Parameters[i].Duration = Advertising_Set_Parameters_tmp->Duration;
6867     struct_length += 2;
6868     Advertising_Set_Parameters[i].Max_Extended_Advertising_Events = Advertising_Set_Parameters_tmp->Max_Extended_Advertising_Events;
6869     struct_length += 1;
6870   }
6871   if(buffer_in_length != 1 + 1 + struct_length)
6872   {
6873     goto fail;
6874   }
6875 
6876   *status = hci_le_set_extended_advertising_enable_preprocess(cp0->Enable /* 1 */,
6877                                                               cp0->Number_of_Sets /* 1 */,
6878                                                               Advertising_Set_Parameters /* struct_length */);
6879   if(*status)
6880     goto fail;
6881 
6882   *status = hci_le_set_extended_advertising_enable(cp0->Enable /* 1 */,
6883                                                    cp0->Number_of_Sets /* 1 */,
6884                                                    Advertising_Set_Parameters /* struct_length */);
6885 fail:
6886   buffer_out[0] = 0x04;
6887   buffer_out[1] = 0x0E;
6888   buffer_out[2] = output_size + 3;
6889   buffer_out[3] = 0x01;
6890   buffer_out[4] = 0x39;
6891   buffer_out[5] = 0x20;
6892   return (output_size + 6);
6893 }
6894 #endif
6895 
6896 #if (!defined(HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_ENABLED) || HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_ENABLED) && !HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_FORCE_DISABLED
6897 /* tBleStatus hci_le_read_maximum_advertising_data_length(uint16_t *Maximum_Advertising_Data_Length);
6898  */
6899 /* Command len: 0 */
6900 /* Response len: 1 + 2 */
hci_le_read_maximum_advertising_data_length_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6901 uint16_t hci_le_read_maximum_advertising_data_length_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6902 {
6903 
6904   int output_size = 1 + 2;
6905   /* Output params */
6906   hci_le_read_maximum_advertising_data_length_rp0 *rp0 = (hci_le_read_maximum_advertising_data_length_rp0 *) (buffer_out + 6);
6907   uint16_t Maximum_Advertising_Data_Length = 0;
6908 
6909   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6910   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
6911   if(buffer_in_length != 0)
6912   {
6913     goto fail;
6914   }
6915 
6916   rp0->Status = hci_le_read_maximum_advertising_data_length(&Maximum_Advertising_Data_Length);
6917 fail:
6918   rp0->Maximum_Advertising_Data_Length = Maximum_Advertising_Data_Length;
6919   buffer_out[0] = 0x04;
6920   buffer_out[1] = 0x0E;
6921   buffer_out[2] = output_size + 3;
6922   buffer_out[3] = 0x01;
6923   buffer_out[4] = 0x3a;
6924   buffer_out[5] = 0x20;
6925   return (output_size + 6);
6926 }
6927 #endif
6928 
6929 #if (!defined(HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_ENABLED) || HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_ENABLED) && !HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_FORCE_DISABLED
6930 /* tBleStatus hci_le_read_number_of_supported_advertising_sets(uint8_t *Num_Supported_Advertising_Sets);
6931  */
6932 /* Command len: 0 */
6933 /* Response len: 1 + 1 */
hci_le_read_number_of_supported_advertising_sets_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6934 uint16_t hci_le_read_number_of_supported_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6935 {
6936 
6937   int output_size = 1 + 1;
6938   /* Output params */
6939   hci_le_read_number_of_supported_advertising_sets_rp0 *rp0 = (hci_le_read_number_of_supported_advertising_sets_rp0 *) (buffer_out + 6);
6940   uint8_t Num_Supported_Advertising_Sets = 0;
6941 
6942   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6943   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
6944   if(buffer_in_length != 0)
6945   {
6946     goto fail;
6947   }
6948 
6949   rp0->Status = hci_le_read_number_of_supported_advertising_sets(&Num_Supported_Advertising_Sets);
6950 fail:
6951   rp0->Num_Supported_Advertising_Sets = Num_Supported_Advertising_Sets;
6952   buffer_out[0] = 0x04;
6953   buffer_out[1] = 0x0E;
6954   buffer_out[2] = output_size + 3;
6955   buffer_out[3] = 0x01;
6956   buffer_out[4] = 0x3b;
6957   buffer_out[5] = 0x20;
6958   return (output_size + 6);
6959 }
6960 #endif
6961 
6962 #if (!defined(HCI_LE_REMOVE_ADVERTISING_SET_ENABLED) || HCI_LE_REMOVE_ADVERTISING_SET_ENABLED) && !HCI_LE_REMOVE_ADVERTISING_SET_FORCE_DISABLED
6963 /* tBleStatus hci_le_remove_advertising_set(uint8_t Advertising_Handle);
6964  */
6965 /* Command len: 1 */
6966 /* Response len: 1 */
hci_le_remove_advertising_set_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)6967 uint16_t hci_le_remove_advertising_set_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
6968 {
6969   /* Input params */
6970   hci_le_remove_advertising_set_cp0 *cp0 = (hci_le_remove_advertising_set_cp0 *)(buffer_in + (0));
6971 
6972   int output_size = 1;
6973   /* Output params */
6974   uint8_t *status = (uint8_t *) (buffer_out + 6);
6975 
6976   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
6977   if (buffer_out_max_length < (1 + 6)) { return 0; }
6978   if(buffer_in_length != 1)
6979   {
6980     goto fail;
6981   }
6982 
6983   *status = hci_le_remove_advertising_set(cp0->Advertising_Handle /* 1 */);
6984 fail:
6985   buffer_out[0] = 0x04;
6986   buffer_out[1] = 0x0E;
6987   buffer_out[2] = output_size + 3;
6988   buffer_out[3] = 0x01;
6989   buffer_out[4] = 0x3c;
6990   buffer_out[5] = 0x20;
6991   return (output_size + 6);
6992 }
6993 #endif
6994 
6995 #if (!defined(HCI_LE_CLEAR_ADVERTISING_SETS_ENABLED) || HCI_LE_CLEAR_ADVERTISING_SETS_ENABLED) && !HCI_LE_CLEAR_ADVERTISING_SETS_FORCE_DISABLED
6996 /* tBleStatus hci_le_clear_advertising_sets(void);
6997  */
6998 /* Command len: 0 */
6999 /* Response len: 1 */
hci_le_clear_advertising_sets_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7000 uint16_t hci_le_clear_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7001 {
7002 
7003   int output_size = 1;
7004   /* Output params */
7005   uint8_t *status = (uint8_t *) (buffer_out + 6);
7006 
7007   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7008   if (buffer_out_max_length < (1 + 6)) { return 0; }
7009   if(buffer_in_length != 0)
7010   {
7011     goto fail;
7012   }
7013 
7014   *status = hci_le_clear_advertising_sets();
7015 fail:
7016   buffer_out[0] = 0x04;
7017   buffer_out[1] = 0x0E;
7018   buffer_out[2] = output_size + 3;
7019   buffer_out[3] = 0x01;
7020   buffer_out[4] = 0x3d;
7021   buffer_out[5] = 0x20;
7022   return (output_size + 6);
7023 }
7024 #endif
7025 
7026 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_FORCE_DISABLED
7027 /* tBleStatus hci_le_set_periodic_advertising_parameters(uint8_t Advertising_Handle,
7028                                                       uint16_t Periodic_Advertising_Interval_Min,
7029                                                       uint16_t Periodic_Advertising_Interval_Max,
7030                                                       uint16_t Periodic_Advertising_Properties);
7031  */
7032 /* Command len: 1 + 2 + 2 + 2 */
7033 /* Response len: 1 */
hci_le_set_periodic_advertising_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7034 uint16_t hci_le_set_periodic_advertising_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7035 {
7036   /* Input params */
7037   hci_le_set_periodic_advertising_parameters_cp0 *cp0 = (hci_le_set_periodic_advertising_parameters_cp0 *)(buffer_in + (0));
7038 
7039   int output_size = 1;
7040   /* Output params */
7041   uint8_t *status = (uint8_t *) (buffer_out + 6);
7042 
7043   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7044   if (buffer_out_max_length < (1 + 6)) { return 0; }
7045   if(buffer_in_length != 1 + 2 + 2 + 2)
7046   {
7047     goto fail;
7048   }
7049 
7050   *status = hci_le_set_periodic_advertising_parameters(cp0->Advertising_Handle /* 1 */,
7051                                                        cp0->Periodic_Advertising_Interval_Min /* 2 */,
7052                                                        cp0->Periodic_Advertising_Interval_Max /* 2 */,
7053                                                        cp0->Periodic_Advertising_Properties /* 2 */);
7054 fail:
7055   buffer_out[0] = 0x04;
7056   buffer_out[1] = 0x0E;
7057   buffer_out[2] = output_size + 3;
7058   buffer_out[3] = 0x01;
7059   buffer_out[4] = 0x3e;
7060   buffer_out[5] = 0x20;
7061   return (output_size + 6);
7062 }
7063 #endif
7064 
7065 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_DATA_FORCE_DISABLED
7066 /* tBleStatus hci_le_set_periodic_advertising_data(uint8_t Advertising_Handle,
7067                                                 uint8_t Operation,
7068                                                 uint8_t Advertising_Data_Length,
7069                                                 uint8_t Advertising_Data[]);
7070  */
7071 /* Command len: 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)) */
7072 /* Response len: 1 */
hci_le_set_periodic_advertising_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7073 uint16_t hci_le_set_periodic_advertising_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7074 {
7075   /* Input params */
7076   hci_le_set_periodic_advertising_data_cp0 *cp0 = (hci_le_set_periodic_advertising_data_cp0 *)(buffer_in + (0));
7077 
7078   int output_size = 1;
7079   /* Output params */
7080   uint8_t *status = (uint8_t *) (buffer_out + 6);
7081 
7082   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7083   if (buffer_out_max_length < (1 + 6)) { return 0; }
7084   if(buffer_in_length != 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)))
7085   {
7086     goto fail;
7087   }
7088 
7089   *status = hci_le_set_periodic_advertising_data(cp0->Advertising_Handle /* 1 */,
7090                                                  cp0->Operation /* 1 */,
7091                                                  cp0->Advertising_Data_Length /* 1 */,
7092                                                  cp0->Advertising_Data /* cp0->Advertising_Data_Length * (sizeof(uint8_t)) */);
7093 fail:
7094   buffer_out[0] = 0x04;
7095   buffer_out[1] = 0x0E;
7096   buffer_out[2] = output_size + 3;
7097   buffer_out[3] = 0x01;
7098   buffer_out[4] = 0x3f;
7099   buffer_out[5] = 0x20;
7100   return (output_size + 6);
7101 }
7102 #endif
7103 
7104 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_FORCE_DISABLED
7105 tBleStatus hci_le_set_periodic_advertising_enable_preprocess(uint8_t Enable,
7106                                                              uint8_t Advertising_Handle);
7107 /* tBleStatus hci_le_set_periodic_advertising_enable(uint8_t Enable,
7108                                                   uint8_t Advertising_Handle);
7109  */
7110 /* Command len: 1 + 1 */
7111 /* Response len: 1 */
hci_le_set_periodic_advertising_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7112 uint16_t hci_le_set_periodic_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7113 {
7114   /* Input params */
7115   hci_le_set_periodic_advertising_enable_cp0 *cp0 = (hci_le_set_periodic_advertising_enable_cp0 *)(buffer_in + (0));
7116 
7117   int output_size = 1;
7118   /* Output params */
7119   uint8_t *status = (uint8_t *) (buffer_out + 6);
7120 
7121   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7122   if (buffer_out_max_length < (1 + 6)) { return 0; }
7123   if(buffer_in_length != 1 + 1)
7124   {
7125     goto fail;
7126   }
7127 
7128   *status = hci_le_set_periodic_advertising_enable_preprocess(cp0->Enable /* 1 */,
7129                                                               cp0->Advertising_Handle /* 1 */);
7130   if(*status)
7131     goto fail;
7132 
7133   *status = hci_le_set_periodic_advertising_enable(cp0->Enable /* 1 */,
7134                                                    cp0->Advertising_Handle /* 1 */);
7135 fail:
7136   buffer_out[0] = 0x04;
7137   buffer_out[1] = 0x0E;
7138   buffer_out[2] = output_size + 3;
7139   buffer_out[3] = 0x01;
7140   buffer_out[4] = 0x40;
7141   buffer_out[5] = 0x20;
7142   return (output_size + 6);
7143 }
7144 #endif
7145 
7146 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_FORCE_DISABLED
7147 /* tBleStatus hci_le_set_extended_scan_parameters(uint8_t Own_Address_Type,
7148                                                uint8_t Scanning_Filter_Policy,
7149                                                uint8_t Scanning_PHYs,
7150                                                Extended_Scan_Parameters_t Extended_Scan_Parameters[]);
7151  */
7152 /* Command len: 1 + 1 + 1 + struct_length */
7153 /* Response len: 1 */
hci_le_set_extended_scan_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7154 uint16_t hci_le_set_extended_scan_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7155 {
7156   /* Input params */
7157   hci_le_set_extended_scan_parameters_cp0 *cp0 = (hci_le_set_extended_scan_parameters_cp0 *)(buffer_in + (0));
7158   Extended_Scan_Parameters_t Extended_Scan_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Scan_Parameters_t)];
7159 
7160   int output_size = 1;
7161   /* Output params */
7162   uint8_t *status = (uint8_t *) (buffer_out + 6);
7163 
7164   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7165   if (buffer_out_max_length < (1 + 6)) { return 0; }
7166   int i;
7167   int struct_length = 0;
7168   int len = 0;
7169 
7170   for (i = 0; i < sizeof( cp0->Scanning_PHYs)*8; i++) {
7171     if((cp0->Scanning_PHYs >> i) & 0x01){
7172       len++;
7173     }
7174   }
7175   if(len > HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Scan_Parameters_t))
7176   {
7177     len = 0;
7178     goto fail;
7179   }
7180   for (i = 0; i < len; i++) {
7181     packed_Extended_Scan_Parameters_t *Extended_Scan_Parameters_tmp = (packed_Extended_Scan_Parameters_t *)(((uint8_t *)cp0->Extended_Scan_Parameters) + struct_length);
7182     Extended_Scan_Parameters[i].Scan_Type = Extended_Scan_Parameters_tmp->Scan_Type;
7183     struct_length += 1;
7184     Extended_Scan_Parameters[i].Scan_Interval = Extended_Scan_Parameters_tmp->Scan_Interval;
7185     struct_length += 2;
7186     Extended_Scan_Parameters[i].Scan_Window = Extended_Scan_Parameters_tmp->Scan_Window;
7187     struct_length += 2;
7188   }
7189   if(buffer_in_length != 1 + 1 + 1 + struct_length)
7190   {
7191     goto fail;
7192   }
7193 
7194   *status = hci_le_set_extended_scan_parameters(cp0->Own_Address_Type /* 1 */,
7195                                                 cp0->Scanning_Filter_Policy /* 1 */,
7196                                                 cp0->Scanning_PHYs /* 1 */,
7197                                                 Extended_Scan_Parameters /* struct_length */);
7198 fail:
7199   buffer_out[0] = 0x04;
7200   buffer_out[1] = 0x0E;
7201   buffer_out[2] = output_size + 3;
7202   buffer_out[3] = 0x01;
7203   buffer_out[4] = 0x41;
7204   buffer_out[5] = 0x20;
7205   return (output_size + 6);
7206 }
7207 #endif
7208 
7209 #if (!defined(HCI_LE_SET_EXTENDED_SCAN_ENABLE_ENABLED) || HCI_LE_SET_EXTENDED_SCAN_ENABLE_ENABLED) && !HCI_LE_SET_EXTENDED_SCAN_ENABLE_FORCE_DISABLED
7210 /* tBleStatus hci_le_set_extended_scan_enable(uint8_t Enable,
7211                                            uint8_t Filter_Duplicates,
7212                                            uint16_t Duration,
7213                                            uint16_t Period);
7214  */
7215 /* Command len: 1 + 1 + 2 + 2 */
7216 /* Response len: 1 */
hci_le_set_extended_scan_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7217 uint16_t hci_le_set_extended_scan_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7218 {
7219   /* Input params */
7220   hci_le_set_extended_scan_enable_cp0 *cp0 = (hci_le_set_extended_scan_enable_cp0 *)(buffer_in + (0));
7221 
7222   int output_size = 1;
7223   /* Output params */
7224   uint8_t *status = (uint8_t *) (buffer_out + 6);
7225 
7226   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7227   if (buffer_out_max_length < (1 + 6)) { return 0; }
7228   if(buffer_in_length != 1 + 1 + 2 + 2)
7229   {
7230     goto fail;
7231   }
7232 
7233   *status = hci_le_set_extended_scan_enable(cp0->Enable /* 1 */,
7234                                             cp0->Filter_Duplicates /* 1 */,
7235                                             cp0->Duration /* 2 */,
7236                                             cp0->Period /* 2 */);
7237 fail:
7238   buffer_out[0] = 0x04;
7239   buffer_out[1] = 0x0E;
7240   buffer_out[2] = output_size + 3;
7241   buffer_out[3] = 0x01;
7242   buffer_out[4] = 0x42;
7243   buffer_out[5] = 0x20;
7244   return (output_size + 6);
7245 }
7246 #endif
7247 
7248 #if (!defined(HCI_LE_EXTENDED_CREATE_CONNECTION_ENABLED) || HCI_LE_EXTENDED_CREATE_CONNECTION_ENABLED) && !HCI_LE_EXTENDED_CREATE_CONNECTION_FORCE_DISABLED
7249 /* tBleStatus hci_le_extended_create_connection(uint8_t Initiator_Filter_Policy,
7250                                                 uint8_t Own_Address_Type,
7251                                                 uint8_t Peer_Address_Type,
7252                                                 uint8_t Peer_Address[6],
7253                                                 uint8_t Initiating_PHYs,
7254                                                 Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[]);
7255  */
7256 /* Command len: 1 + 1 + 1 + 6 + 1 + struct_length */
7257 /* Response len: 1 */
hci_le_extended_create_connection_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7258 uint16_t hci_le_extended_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7259 {
7260   /* Input params */
7261   hci_le_extended_create_connection_cp0 *cp0 = (hci_le_extended_create_connection_cp0 *)(buffer_in + (0));
7262   Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Create_Connection_Parameters_t)];
7263 
7264   int output_size = 1;
7265   /* Output params */
7266   uint8_t *status = (uint8_t *) (buffer_out + 3);
7267 
7268   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7269   if (buffer_out_max_length < (1 + 6)) { return 0; }
7270   int i;
7271   int struct_length = 0;
7272   int len = 0;
7273 
7274   for (i = 0; i < sizeof( cp0->Initiating_PHYs)*8; i++) {
7275     if((cp0->Initiating_PHYs >> i) & 0x01){
7276       len++;
7277     }
7278   }
7279   if(len > HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Create_Connection_Parameters_t))
7280   {
7281     len = 0;
7282     goto fail;
7283   }
7284   for (i = 0; i < len; i++) {
7285     packed_Extended_Create_Connection_Parameters_t *Extended_Create_Connection_Parameters_tmp = (packed_Extended_Create_Connection_Parameters_t *)(((uint8_t *)cp0->Extended_Create_Connection_Parameters) + struct_length);
7286     Extended_Create_Connection_Parameters[i].Scan_Interval = Extended_Create_Connection_Parameters_tmp->Scan_Interval;
7287     struct_length += 2;
7288     Extended_Create_Connection_Parameters[i].Scan_Window = Extended_Create_Connection_Parameters_tmp->Scan_Window;
7289     struct_length += 2;
7290     Extended_Create_Connection_Parameters[i].Connection_Interval_Min = Extended_Create_Connection_Parameters_tmp->Connection_Interval_Min;
7291     struct_length += 2;
7292     Extended_Create_Connection_Parameters[i].Connection_Interval_Max = Extended_Create_Connection_Parameters_tmp->Connection_Interval_Max;
7293     struct_length += 2;
7294     Extended_Create_Connection_Parameters[i].Max_Latency = Extended_Create_Connection_Parameters_tmp->Max_Latency;
7295     struct_length += 2;
7296     Extended_Create_Connection_Parameters[i].Supervision_Timeout = Extended_Create_Connection_Parameters_tmp->Supervision_Timeout;
7297     struct_length += 2;
7298     Extended_Create_Connection_Parameters[i].Min_CE_Length = Extended_Create_Connection_Parameters_tmp->Min_CE_Length;
7299     struct_length += 2;
7300     Extended_Create_Connection_Parameters[i].Max_CE_Length = Extended_Create_Connection_Parameters_tmp->Max_CE_Length;
7301     struct_length += 2;
7302   }
7303   if(buffer_in_length != 1 + 1 + 1 + 6 + 1 + struct_length)
7304   {
7305     goto fail;
7306   }
7307 
7308   *status = hci_le_extended_create_connection(cp0->Initiator_Filter_Policy /* 1 */,
7309                                               cp0->Own_Address_Type /* 1 */,
7310                                               cp0->Peer_Address_Type /* 1 */,
7311                                               cp0->Peer_Address /* 6 */,
7312                                               cp0->Initiating_PHYs /* 1 */,
7313                                               Extended_Create_Connection_Parameters /* struct_length */);
7314 fail:
7315   buffer_out[0] = 0x04;
7316   buffer_out[1] = 0x0F;
7317   buffer_out[2] = output_size + 3;
7318   buffer_out[4] = 0x01;
7319   buffer_out[5] = 0x43;
7320   buffer_out[6] = 0x20;
7321   return (output_size + 6);
7322 }
7323 #endif
7324 
7325 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_FORCE_DISABLED
7326 /* tBleStatus hci_le_periodic_advertising_create_sync(uint8_t Options,
7327                                                    uint8_t Advertising_SID,
7328                                                    uint8_t Advertiser_Address_Type,
7329                                                    uint8_t Advertiser_Address[6],
7330                                                    uint16_t Skip,
7331                                                    uint16_t Sync_Timeout,
7332                                                    uint8_t Sync_CTE_Type);
7333  */
7334 /* Command len: 1 + 1 + 1 + 6 + 2 + 2 + 1 */
7335 /* Response len: 1 */
hci_le_periodic_advertising_create_sync_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7336 uint16_t hci_le_periodic_advertising_create_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7337 {
7338   /* Input params */
7339   hci_le_periodic_advertising_create_sync_cp0 *cp0 = (hci_le_periodic_advertising_create_sync_cp0 *)(buffer_in + (0));
7340 
7341   int output_size = 1;
7342   /* Output params */
7343   uint8_t *status = (uint8_t *) (buffer_out + 3);
7344 
7345   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7346   if (buffer_out_max_length < (1 + 6)) { return 0; }
7347   if(buffer_in_length != 1 + 1 + 1 + 6 + 2 + 2 + 1)
7348   {
7349     goto fail;
7350   }
7351 
7352   *status = hci_le_periodic_advertising_create_sync(cp0->Options /* 1 */,
7353                                                     cp0->Advertising_SID /* 1 */,
7354                                                     cp0->Advertiser_Address_Type /* 1 */,
7355                                                     cp0->Advertiser_Address /* 6 */,
7356                                                     cp0->Skip /* 2 */,
7357                                                     cp0->Sync_Timeout /* 2 */,
7358                                                     cp0->Sync_CTE_Type /* 1 */);
7359 fail:
7360   buffer_out[0] = 0x04;
7361   buffer_out[1] = 0x0F;
7362   buffer_out[2] = output_size + 3;
7363   buffer_out[4] = 0x01;
7364   buffer_out[5] = 0x44;
7365   buffer_out[6] = 0x20;
7366   return (output_size + 6);
7367 }
7368 #endif
7369 
7370 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_FORCE_DISABLED
7371 /* tBleStatus hci_le_periodic_advertising_create_sync_cancel(void);
7372  */
7373 /* Command len: 0 */
7374 /* Response len: 1 */
hci_le_periodic_advertising_create_sync_cancel_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7375 uint16_t hci_le_periodic_advertising_create_sync_cancel_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7376 {
7377 
7378   int output_size = 1;
7379   /* Output params */
7380   uint8_t *status = (uint8_t *) (buffer_out + 6);
7381 
7382   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7383   if (buffer_out_max_length < (1 + 6)) { return 0; }
7384   if(buffer_in_length != 0)
7385   {
7386     goto fail;
7387   }
7388 
7389   *status = hci_le_periodic_advertising_create_sync_cancel();
7390 fail:
7391   buffer_out[0] = 0x04;
7392   buffer_out[1] = 0x0E;
7393   buffer_out[2] = output_size + 3;
7394   buffer_out[3] = 0x01;
7395   buffer_out[4] = 0x45;
7396   buffer_out[5] = 0x20;
7397   return (output_size + 6);
7398 }
7399 #endif
7400 
7401 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_FORCE_DISABLED
7402 /* tBleStatus hci_le_periodic_advertising_terminate_sync(uint16_t Sync_Handle);
7403  */
7404 /* Command len: 2 */
7405 /* Response len: 1 */
hci_le_periodic_advertising_terminate_sync_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7406 uint16_t hci_le_periodic_advertising_terminate_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7407 {
7408   /* Input params */
7409   hci_le_periodic_advertising_terminate_sync_cp0 *cp0 = (hci_le_periodic_advertising_terminate_sync_cp0 *)(buffer_in + (0));
7410 
7411   int output_size = 1;
7412   /* Output params */
7413   uint8_t *status = (uint8_t *) (buffer_out + 6);
7414 
7415   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7416   if (buffer_out_max_length < (1 + 6)) { return 0; }
7417   if(buffer_in_length != 2)
7418   {
7419     goto fail;
7420   }
7421 
7422   *status = hci_le_periodic_advertising_terminate_sync(cp0->Sync_Handle /* 2 */);
7423 fail:
7424   buffer_out[0] = 0x04;
7425   buffer_out[1] = 0x0E;
7426   buffer_out[2] = output_size + 3;
7427   buffer_out[3] = 0x01;
7428   buffer_out[4] = 0x46;
7429   buffer_out[5] = 0x20;
7430   return (output_size + 6);
7431 }
7432 #endif
7433 
7434 #if (!defined(HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
7435 /* tBleStatus hci_le_add_device_to_periodic_advertiser_list(uint8_t Advertiser_Address_Type,
7436                                                          uint8_t Advertiser_Address[6],
7437                                                          uint8_t Advertising_SID);
7438  */
7439 /* Command len: 1 + 6 + 1 */
7440 /* Response len: 1 */
hci_le_add_device_to_periodic_advertiser_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7441 uint16_t hci_le_add_device_to_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7442 {
7443   /* Input params */
7444   hci_le_add_device_to_periodic_advertiser_list_cp0 *cp0 = (hci_le_add_device_to_periodic_advertiser_list_cp0 *)(buffer_in + (0));
7445 
7446   int output_size = 1;
7447   /* Output params */
7448   uint8_t *status = (uint8_t *) (buffer_out + 6);
7449 
7450   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7451   if (buffer_out_max_length < (1 + 6)) { return 0; }
7452   if(buffer_in_length != 1 + 6 + 1)
7453   {
7454     goto fail;
7455   }
7456 
7457   *status = hci_le_add_device_to_periodic_advertiser_list(cp0->Advertiser_Address_Type /* 1 */,
7458                                                           cp0->Advertiser_Address /* 6 */,
7459                                                           cp0->Advertising_SID /* 1 */);
7460 fail:
7461   buffer_out[0] = 0x04;
7462   buffer_out[1] = 0x0E;
7463   buffer_out[2] = output_size + 3;
7464   buffer_out[3] = 0x01;
7465   buffer_out[4] = 0x47;
7466   buffer_out[5] = 0x20;
7467   return (output_size + 6);
7468 }
7469 #endif
7470 
7471 #if (!defined(HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
7472 /* tBleStatus hci_le_remove_device_from_periodic_advertiser_list(uint8_t Advertiser_Address_Type,
7473                                                               uint8_t Advertiser_Address[6],
7474                                                               uint8_t Advertising_SID);
7475  */
7476 /* Command len: 1 + 6 + 1 */
7477 /* Response len: 1 */
hci_le_remove_device_from_periodic_advertiser_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7478 uint16_t hci_le_remove_device_from_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7479 {
7480   /* Input params */
7481   hci_le_remove_device_from_periodic_advertiser_list_cp0 *cp0 = (hci_le_remove_device_from_periodic_advertiser_list_cp0 *)(buffer_in + (0));
7482 
7483   int output_size = 1;
7484   /* Output params */
7485   uint8_t *status = (uint8_t *) (buffer_out + 6);
7486 
7487   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7488   if (buffer_out_max_length < (1 + 6)) { return 0; }
7489   if(buffer_in_length != 1 + 6 + 1)
7490   {
7491     goto fail;
7492   }
7493 
7494   *status = hci_le_remove_device_from_periodic_advertiser_list(cp0->Advertiser_Address_Type /* 1 */,
7495                                                                cp0->Advertiser_Address /* 6 */,
7496                                                                cp0->Advertising_SID /* 1 */);
7497 fail:
7498   buffer_out[0] = 0x04;
7499   buffer_out[1] = 0x0E;
7500   buffer_out[2] = output_size + 3;
7501   buffer_out[3] = 0x01;
7502   buffer_out[4] = 0x48;
7503   buffer_out[5] = 0x20;
7504   return (output_size + 6);
7505 }
7506 #endif
7507 
7508 #if (!defined(HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_ENABLED) || HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_ENABLED) && !HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_FORCE_DISABLED
7509 /* tBleStatus hci_le_clear_periodic_advertiser_list(void);
7510  */
7511 /* Command len: 0 */
7512 /* Response len: 1 */
hci_le_clear_periodic_advertiser_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7513 uint16_t hci_le_clear_periodic_advertiser_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7514 {
7515 
7516   int output_size = 1;
7517   /* Output params */
7518   uint8_t *status = (uint8_t *) (buffer_out + 6);
7519 
7520   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7521   if (buffer_out_max_length < (1 + 6)) { return 0; }
7522   if(buffer_in_length != 0)
7523   {
7524     goto fail;
7525   }
7526 
7527   *status = hci_le_clear_periodic_advertiser_list();
7528 fail:
7529   buffer_out[0] = 0x04;
7530   buffer_out[1] = 0x0E;
7531   buffer_out[2] = output_size + 3;
7532   buffer_out[3] = 0x01;
7533   buffer_out[4] = 0x49;
7534   buffer_out[5] = 0x20;
7535   return (output_size + 6);
7536 }
7537 #endif
7538 
7539 #if (!defined(HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_ENABLED) || HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_ENABLED) && !HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_FORCE_DISABLED
7540 /* tBleStatus hci_le_read_periodic_advertiser_list_size(uint8_t *Periodic_Advertiser_List_Size);
7541  */
7542 /* Command len: 0 */
7543 /* Response len: 1 + 1 */
hci_le_read_periodic_advertiser_list_size_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7544 uint16_t hci_le_read_periodic_advertiser_list_size_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7545 {
7546 
7547   int output_size = 1 + 1;
7548   /* Output params */
7549   hci_le_read_periodic_advertiser_list_size_rp0 *rp0 = (hci_le_read_periodic_advertiser_list_size_rp0 *) (buffer_out + 6);
7550   uint8_t Periodic_Advertiser_List_Size = 0;
7551 
7552   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7553   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
7554   if(buffer_in_length != 0)
7555   {
7556     goto fail;
7557   }
7558 
7559   rp0->Status = hci_le_read_periodic_advertiser_list_size(&Periodic_Advertiser_List_Size);
7560 fail:
7561   rp0->Periodic_Advertiser_List_Size = Periodic_Advertiser_List_Size;
7562   buffer_out[0] = 0x04;
7563   buffer_out[1] = 0x0E;
7564   buffer_out[2] = output_size + 3;
7565   buffer_out[3] = 0x01;
7566   buffer_out[4] = 0x4a;
7567   buffer_out[5] = 0x20;
7568   return (output_size + 6);
7569 }
7570 #endif
7571 
7572 #if (!defined(HCI_LE_READ_TRANSMIT_POWER_ENABLED) || HCI_LE_READ_TRANSMIT_POWER_ENABLED) && !HCI_LE_READ_TRANSMIT_POWER_FORCE_DISABLED
7573 /* tBleStatus hci_le_read_transmit_power(int8_t *Min_Tx_Power,
7574                                       int8_t *Max_Tx_Power);
7575  */
7576 /* Command len: 0 */
7577 /* Response len: 1 + 1 + 1 */
hci_le_read_transmit_power_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7578 uint16_t hci_le_read_transmit_power_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7579 {
7580 
7581   int output_size = 1 + 1 + 1;
7582   /* Output params */
7583   hci_le_read_transmit_power_rp0 *rp0 = (hci_le_read_transmit_power_rp0 *) (buffer_out + 6);
7584   int8_t Min_Tx_Power = 0;
7585   int8_t Max_Tx_Power = 0;
7586 
7587   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7588   if (buffer_out_max_length < (1 + 1 + 1 + 6)) { return 0; }
7589   if(buffer_in_length != 0)
7590   {
7591     goto fail;
7592   }
7593 
7594   rp0->Status = hci_le_read_transmit_power(&Min_Tx_Power,
7595                                            &Max_Tx_Power);
7596 fail:
7597   rp0->Min_Tx_Power = Min_Tx_Power;
7598   rp0->Max_Tx_Power = Max_Tx_Power;
7599   buffer_out[0] = 0x04;
7600   buffer_out[1] = 0x0E;
7601   buffer_out[2] = output_size + 3;
7602   buffer_out[3] = 0x01;
7603   buffer_out[4] = 0x4b;
7604   buffer_out[5] = 0x20;
7605   return (output_size + 6);
7606 }
7607 #endif
7608 
7609 #if (!defined(HCI_LE_READ_RF_PATH_COMPENSATION_ENABLED) || HCI_LE_READ_RF_PATH_COMPENSATION_ENABLED) && !HCI_LE_READ_RF_PATH_COMPENSATION_FORCE_DISABLED
7610 /* tBleStatus hci_le_read_rf_path_compensation(int16_t *RF_TX_Path_Compensation_Value,
7611                                             int16_t *RF_RX_Path_Compensation_Value);
7612  */
7613 /* Command len: 0 */
7614 /* Response len: 1 + 2 + 2 */
hci_le_read_rf_path_compensation_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7615 uint16_t hci_le_read_rf_path_compensation_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7616 {
7617 
7618   int output_size = 1 + 2 + 2;
7619   /* Output params */
7620   hci_le_read_rf_path_compensation_rp0 *rp0 = (hci_le_read_rf_path_compensation_rp0 *) (buffer_out + 6);
7621   int16_t RF_TX_Path_Compensation_Value = 0;
7622   int16_t RF_RX_Path_Compensation_Value = 0;
7623 
7624   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7625   if (buffer_out_max_length < (1 + 2 + 2 + 6)) { return 0; }
7626   if(buffer_in_length != 0)
7627   {
7628     goto fail;
7629   }
7630 
7631   rp0->Status = hci_le_read_rf_path_compensation(&RF_TX_Path_Compensation_Value,
7632                                                  &RF_RX_Path_Compensation_Value);
7633 fail:
7634   rp0->RF_TX_Path_Compensation_Value = RF_TX_Path_Compensation_Value;
7635   rp0->RF_RX_Path_Compensation_Value = RF_RX_Path_Compensation_Value;
7636   buffer_out[0] = 0x04;
7637   buffer_out[1] = 0x0E;
7638   buffer_out[2] = output_size + 3;
7639   buffer_out[3] = 0x01;
7640   buffer_out[4] = 0x4c;
7641   buffer_out[5] = 0x20;
7642   return (output_size + 6);
7643 }
7644 #endif
7645 
7646 #if (!defined(HCI_LE_WRITE_RF_PATH_COMPENSATION_ENABLED) || HCI_LE_WRITE_RF_PATH_COMPENSATION_ENABLED) && !HCI_LE_WRITE_RF_PATH_COMPENSATION_FORCE_DISABLED
7647 /* tBleStatus hci_le_write_rf_path_compensation(int16_t RF_TX_Path_Compensation_Value,
7648                                              int16_t RF_RX_Path_Compensation_Value);
7649  */
7650 /* Command len: 2 + 2 */
7651 /* Response len: 1 */
hci_le_write_rf_path_compensation_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7652 uint16_t hci_le_write_rf_path_compensation_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7653 {
7654   /* Input params */
7655   hci_le_write_rf_path_compensation_cp0 *cp0 = (hci_le_write_rf_path_compensation_cp0 *)(buffer_in + (0));
7656 
7657   int output_size = 1;
7658   /* Output params */
7659   uint8_t *status = (uint8_t *) (buffer_out + 6);
7660 
7661   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7662   if (buffer_out_max_length < (1 + 6)) { return 0; }
7663   if(buffer_in_length != 2 + 2)
7664   {
7665     goto fail;
7666   }
7667 
7668   *status = hci_le_write_rf_path_compensation(cp0->RF_TX_Path_Compensation_Value /* 2 */,
7669                                               cp0->RF_RX_Path_Compensation_Value /* 2 */);
7670 fail:
7671   buffer_out[0] = 0x04;
7672   buffer_out[1] = 0x0E;
7673   buffer_out[2] = output_size + 3;
7674   buffer_out[3] = 0x01;
7675   buffer_out[4] = 0x4d;
7676   buffer_out[5] = 0x20;
7677   return (output_size + 6);
7678 }
7679 #endif
7680 
7681 #if (!defined(HCI_LE_SET_PRIVACY_MODE_ENABLED) || HCI_LE_SET_PRIVACY_MODE_ENABLED) && !HCI_LE_SET_PRIVACY_MODE_FORCE_DISABLED
7682 /* tBleStatus hci_le_set_privacy_mode(uint8_t Peer_Identity_Address_Type,
7683                                    uint8_t Peer_Identity_Address[6],
7684                                    uint8_t Privacy_Mode);
7685  */
7686 /* Command len: 1 + 6 + 1 */
7687 /* Response len: 1 */
hci_le_set_privacy_mode_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7688 uint16_t hci_le_set_privacy_mode_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7689 {
7690   /* Input params */
7691   hci_le_set_privacy_mode_cp0 *cp0 = (hci_le_set_privacy_mode_cp0 *)(buffer_in + (0));
7692 
7693   int output_size = 1;
7694   /* Output params */
7695   uint8_t *status = (uint8_t *) (buffer_out + 6);
7696 
7697   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7698   if (buffer_out_max_length < (1 + 6)) { return 0; }
7699   if(buffer_in_length != 1 + 6 + 1)
7700   {
7701     goto fail;
7702   }
7703 
7704   *status = hci_le_set_privacy_mode(cp0->Peer_Identity_Address_Type /* 1 */,
7705                                     cp0->Peer_Identity_Address /* 6 */,
7706                                     cp0->Privacy_Mode /* 1 */);
7707 fail:
7708   buffer_out[0] = 0x04;
7709   buffer_out[1] = 0x0E;
7710   buffer_out[2] = output_size + 3;
7711   buffer_out[3] = 0x01;
7712   buffer_out[4] = 0x4e;
7713   buffer_out[5] = 0x20;
7714   return (output_size + 6);
7715 }
7716 #endif
7717 
7718 #if (!defined(HCI_LE_RECEIVER_TEST_V3_ENABLED) || HCI_LE_RECEIVER_TEST_V3_ENABLED) && !HCI_LE_RECEIVER_TEST_V3_FORCE_DISABLED
7719 /* tBleStatus hci_le_receiver_test_v3(uint8_t RX_Channel,
7720                                    uint8_t PHY,
7721                                    uint8_t Modulation_Index,
7722                                    uint8_t Expected_CTE_Length,
7723                                    uint8_t Expected_CTE_Type,
7724                                    uint8_t Slot_Durations,
7725                                    uint8_t Switching_Pattern_Length,
7726                                    uint8_t Antenna_IDs[]);
7727  */
7728 /* Command len: 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7729 /* Response len: 1 */
hci_le_receiver_test_v3_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7730 uint16_t hci_le_receiver_test_v3_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7731 {
7732   /* Input params */
7733   hci_le_receiver_test_v3_cp0 *cp0 = (hci_le_receiver_test_v3_cp0 *)(buffer_in + (0));
7734 
7735   int output_size = 1;
7736   /* Output params */
7737   uint8_t *status = (uint8_t *) (buffer_out + 6);
7738 
7739   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7740   if (buffer_out_max_length < (1 + 6)) { return 0; }
7741   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7742   {
7743     goto fail;
7744   }
7745 
7746   *status = hci_le_receiver_test_v3(cp0->RX_Channel /* 1 */,
7747                                     cp0->PHY /* 1 */,
7748                                     cp0->Modulation_Index /* 1 */,
7749                                     cp0->Expected_CTE_Length /* 1 */,
7750                                     cp0->Expected_CTE_Type /* 1 */,
7751                                     cp0->Slot_Durations /* 1 */,
7752                                     cp0->Switching_Pattern_Length /* 1 */,
7753                                     cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
7754 fail:
7755   buffer_out[0] = 0x04;
7756   buffer_out[1] = 0x0E;
7757   buffer_out[2] = output_size + 3;
7758   buffer_out[3] = 0x01;
7759   buffer_out[4] = 0x4f;
7760   buffer_out[5] = 0x20;
7761   return (output_size + 6);
7762 }
7763 #endif
7764 
7765 #if (!defined(HCI_LE_TRANSMITTER_TEST_V3_ENABLED) || HCI_LE_TRANSMITTER_TEST_V3_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V3_FORCE_DISABLED
7766 /* tBleStatus hci_le_transmitter_test_v3(uint8_t TX_Channel,
7767                                       uint8_t Test_Data_Length,
7768                                       uint8_t Packet_Payload,
7769                                       uint8_t PHY,
7770                                       uint8_t CTE_Length,
7771                                       uint8_t CTE_Type,
7772                                       uint8_t Switching_Pattern_Length,
7773                                       uint8_t Antenna_IDs[]);
7774  */
7775 /* Command len: 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7776 /* Response len: 1 */
hci_le_transmitter_test_v3_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7777 uint16_t hci_le_transmitter_test_v3_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7778 {
7779   /* Input params */
7780   hci_le_transmitter_test_v3_cp0 *cp0 = (hci_le_transmitter_test_v3_cp0 *)(buffer_in + (0));
7781 
7782   int output_size = 1;
7783   /* Output params */
7784   uint8_t *status = (uint8_t *) (buffer_out + 6);
7785 
7786   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7787   if (buffer_out_max_length < (1 + 6)) { return 0; }
7788   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7789   {
7790     goto fail;
7791   }
7792 
7793   *status = hci_le_transmitter_test_v3(cp0->TX_Channel /* 1 */,
7794                                        cp0->Test_Data_Length /* 1 */,
7795                                        cp0->Packet_Payload /* 1 */,
7796                                        cp0->PHY /* 1 */,
7797                                        cp0->CTE_Length /* 1 */,
7798                                        cp0->CTE_Type /* 1 */,
7799                                        cp0->Switching_Pattern_Length /* 1 */,
7800                                        cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
7801 fail:
7802   buffer_out[0] = 0x04;
7803   buffer_out[1] = 0x0E;
7804   buffer_out[2] = output_size + 3;
7805   buffer_out[3] = 0x01;
7806   buffer_out[4] = 0x50;
7807   buffer_out[5] = 0x20;
7808   return (output_size + 6);
7809 }
7810 #endif
7811 
7812 #if (!defined(HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_FORCE_DISABLED
7813 /* tBleStatus hci_le_set_connectionless_cte_transmit_parameters(uint8_t Advertising_Handle,
7814                                                              uint8_t CTE_Length,
7815                                                              uint8_t CTE_Type,
7816                                                              uint8_t CTE_Count,
7817                                                              uint8_t Switching_Pattern_Length,
7818                                                              uint8_t Antenna_IDs[]);
7819  */
7820 /* Command len: 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7821 /* Response len: 1 */
hci_le_set_connectionless_cte_transmit_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7822 uint16_t hci_le_set_connectionless_cte_transmit_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7823 {
7824   /* Input params */
7825   hci_le_set_connectionless_cte_transmit_parameters_cp0 *cp0 = (hci_le_set_connectionless_cte_transmit_parameters_cp0 *)(buffer_in + (0));
7826 
7827   int output_size = 1;
7828   /* Output params */
7829   uint8_t *status = (uint8_t *) (buffer_out + 6);
7830 
7831   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7832   if (buffer_out_max_length < (1 + 6)) { return 0; }
7833   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7834   {
7835     goto fail;
7836   }
7837 
7838   *status = hci_le_set_connectionless_cte_transmit_parameters(cp0->Advertising_Handle /* 1 */,
7839                                                               cp0->CTE_Length /* 1 */,
7840                                                               cp0->CTE_Type /* 1 */,
7841                                                               cp0->CTE_Count /* 1 */,
7842                                                               cp0->Switching_Pattern_Length /* 1 */,
7843                                                               cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
7844 fail:
7845   buffer_out[0] = 0x04;
7846   buffer_out[1] = 0x0E;
7847   buffer_out[2] = output_size + 3;
7848   buffer_out[3] = 0x01;
7849   buffer_out[4] = 0x51;
7850   buffer_out[5] = 0x20;
7851   return (output_size + 6);
7852 }
7853 #endif
7854 
7855 #if (!defined(HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_ENABLED) || HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_FORCE_DISABLED
7856 /* tBleStatus hci_le_set_connectionless_cte_transmit_enable(uint8_t Advertising_Handle,
7857                                                          uint8_t CTE_Enable);
7858  */
7859 /* Command len: 1 + 1 */
7860 /* Response len: 1 */
hci_le_set_connectionless_cte_transmit_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7861 uint16_t hci_le_set_connectionless_cte_transmit_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7862 {
7863   /* Input params */
7864   hci_le_set_connectionless_cte_transmit_enable_cp0 *cp0 = (hci_le_set_connectionless_cte_transmit_enable_cp0 *)(buffer_in + (0));
7865 
7866   int output_size = 1;
7867   /* Output params */
7868   uint8_t *status = (uint8_t *) (buffer_out + 6);
7869 
7870   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7871   if (buffer_out_max_length < (1 + 6)) { return 0; }
7872   if(buffer_in_length != 1 + 1)
7873   {
7874     goto fail;
7875   }
7876 
7877   *status = hci_le_set_connectionless_cte_transmit_enable(cp0->Advertising_Handle /* 1 */,
7878                                                           cp0->CTE_Enable /* 1 */);
7879 fail:
7880   buffer_out[0] = 0x04;
7881   buffer_out[1] = 0x0E;
7882   buffer_out[2] = output_size + 3;
7883   buffer_out[3] = 0x01;
7884   buffer_out[4] = 0x52;
7885   buffer_out[5] = 0x20;
7886   return (output_size + 6);
7887 }
7888 #endif
7889 
7890 #if (!defined(HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_ENABLED) || HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_ENABLED) && !HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_FORCE_DISABLED
7891 /* tBleStatus hci_le_set_connectionless_iq_sampling_enable(uint16_t Sync_Handle,
7892                                                         uint8_t Sampling_Enable,
7893                                                         uint8_t Slot_Durations,
7894                                                         uint8_t Max_Sampled_CTEs,
7895                                                         uint8_t Switching_Pattern_Length,
7896                                                         uint8_t Antenna_IDs[]);
7897  */
7898 /* Command len: 2 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7899 /* Response len: 1 + 2 */
hci_le_set_connectionless_iq_sampling_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7900 uint16_t hci_le_set_connectionless_iq_sampling_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7901 {
7902   /* Input params */
7903   hci_le_set_connectionless_iq_sampling_enable_cp0 *cp0 = (hci_le_set_connectionless_iq_sampling_enable_cp0 *)(buffer_in + (0));
7904 
7905   int output_size = 1 + 2;
7906   /* Output params */
7907   hci_le_set_connectionless_iq_sampling_enable_rp0 *rp0 = (hci_le_set_connectionless_iq_sampling_enable_rp0 *) (buffer_out + 6);
7908 
7909   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7910   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
7911   if(buffer_in_length != 2 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7912   {
7913     goto fail;
7914   }
7915 
7916   rp0->Status = hci_le_set_connectionless_iq_sampling_enable(cp0->Sync_Handle /* 2 */,
7917                                                              cp0->Sampling_Enable /* 1 */,
7918                                                              cp0->Slot_Durations /* 1 */,
7919                                                              cp0->Max_Sampled_CTEs /* 1 */,
7920                                                              cp0->Switching_Pattern_Length /* 1 */,
7921                                                              cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
7922 fail:
7923   rp0->Sync_Handle = cp0->Sync_Handle;
7924   buffer_out[0] = 0x04;
7925   buffer_out[1] = 0x0E;
7926   buffer_out[2] = output_size + 3;
7927   buffer_out[3] = 0x01;
7928   buffer_out[4] = 0x53;
7929   buffer_out[5] = 0x20;
7930   return (output_size + 6);
7931 }
7932 #endif
7933 
7934 #if (!defined(HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_FORCE_DISABLED
7935 /* tBleStatus hci_le_set_connection_cte_receive_parameters(uint16_t Connection_Handle,
7936                                                         uint8_t Sampling_Enable,
7937                                                         uint8_t Slot_Durations,
7938                                                         uint8_t Switching_Pattern_Length,
7939                                                         uint8_t Antenna_IDs[]);
7940  */
7941 /* Command len: 2 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7942 /* Response len: 1 + 2 */
hci_le_set_connection_cte_receive_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7943 uint16_t hci_le_set_connection_cte_receive_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7944 {
7945   /* Input params */
7946   hci_le_set_connection_cte_receive_parameters_cp0 *cp0 = (hci_le_set_connection_cte_receive_parameters_cp0 *)(buffer_in + (0));
7947 
7948   int output_size = 1 + 2;
7949   /* Output params */
7950   hci_le_set_connection_cte_receive_parameters_rp0 *rp0 = (hci_le_set_connection_cte_receive_parameters_rp0 *) (buffer_out + 6);
7951 
7952   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7953   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
7954   if(buffer_in_length != 2 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7955   {
7956     goto fail;
7957   }
7958 
7959   rp0->Status = hci_le_set_connection_cte_receive_parameters(cp0->Connection_Handle /* 2 */,
7960                                                              cp0->Sampling_Enable /* 1 */,
7961                                                              cp0->Slot_Durations /* 1 */,
7962                                                              cp0->Switching_Pattern_Length /* 1 */,
7963                                                              cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
7964 fail:
7965   rp0->Connection_Handle = cp0->Connection_Handle;
7966   buffer_out[0] = 0x04;
7967   buffer_out[1] = 0x0E;
7968   buffer_out[2] = output_size + 3;
7969   buffer_out[3] = 0x01;
7970   buffer_out[4] = 0x54;
7971   buffer_out[5] = 0x20;
7972   return (output_size + 6);
7973 }
7974 #endif
7975 
7976 #if (!defined(HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_ENABLED) || HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_ENABLED) && !HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_FORCE_DISABLED
7977 /* tBleStatus hci_le_set_connection_cte_transmit_parameters(uint16_t Connection_Handle,
7978                                                          uint8_t CTE_Type,
7979                                                          uint8_t Switching_Pattern_Length,
7980                                                          uint8_t Antenna_IDs[]);
7981  */
7982 /* Command len: 2 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
7983 /* Response len: 1 + 2 */
hci_le_set_connection_cte_transmit_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)7984 uint16_t hci_le_set_connection_cte_transmit_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
7985 {
7986   /* Input params */
7987   hci_le_set_connection_cte_transmit_parameters_cp0 *cp0 = (hci_le_set_connection_cte_transmit_parameters_cp0 *)(buffer_in + (0));
7988 
7989   int output_size = 1 + 2;
7990   /* Output params */
7991   hci_le_set_connection_cte_transmit_parameters_rp0 *rp0 = (hci_le_set_connection_cte_transmit_parameters_rp0 *) (buffer_out + 6);
7992 
7993   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
7994   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
7995   if(buffer_in_length != 2 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
7996   {
7997     goto fail;
7998   }
7999 
8000   rp0->Status = hci_le_set_connection_cte_transmit_parameters(cp0->Connection_Handle /* 2 */,
8001                                                               cp0->CTE_Type /* 1 */,
8002                                                               cp0->Switching_Pattern_Length /* 1 */,
8003                                                               cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
8004 fail:
8005   rp0->Connection_Handle = cp0->Connection_Handle;
8006   buffer_out[0] = 0x04;
8007   buffer_out[1] = 0x0E;
8008   buffer_out[2] = output_size + 3;
8009   buffer_out[3] = 0x01;
8010   buffer_out[4] = 0x55;
8011   buffer_out[5] = 0x20;
8012   return (output_size + 6);
8013 }
8014 #endif
8015 
8016 #if (!defined(HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_ENABLED) || HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_ENABLED) && !HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_FORCE_DISABLED
8017 /* tBleStatus hci_le_connection_cte_request_enable(uint16_t Connection_Handle,
8018                                                 uint8_t Enable,
8019                                                 uint16_t CTE_Request_Interval,
8020                                                 uint8_t Requested_CTE_Length,
8021                                                 uint8_t Requested_CTE_Type);
8022  */
8023 /* Command len: 2 + 1 + 2 + 1 + 1 */
8024 /* Response len: 1 + 2 */
hci_le_connection_cte_request_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8025 uint16_t hci_le_connection_cte_request_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8026 {
8027   /* Input params */
8028   hci_le_connection_cte_request_enable_cp0 *cp0 = (hci_le_connection_cte_request_enable_cp0 *)(buffer_in + (0));
8029 
8030   int output_size = 1 + 2;
8031   /* Output params */
8032   hci_le_connection_cte_request_enable_rp0 *rp0 = (hci_le_connection_cte_request_enable_rp0 *) (buffer_out + 6);
8033 
8034   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8035   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8036   if(buffer_in_length != 2 + 1 + 2 + 1 + 1)
8037   {
8038     goto fail;
8039   }
8040 
8041   rp0->Status = hci_le_connection_cte_request_enable(cp0->Connection_Handle /* 2 */,
8042                                                      cp0->Enable /* 1 */,
8043                                                      cp0->CTE_Request_Interval /* 2 */,
8044                                                      cp0->Requested_CTE_Length /* 1 */,
8045                                                      cp0->Requested_CTE_Type /* 1 */);
8046 fail:
8047   rp0->Connection_Handle = cp0->Connection_Handle;
8048   buffer_out[0] = 0x04;
8049   buffer_out[1] = 0x0E;
8050   buffer_out[2] = output_size + 3;
8051   buffer_out[3] = 0x01;
8052   buffer_out[4] = 0x56;
8053   buffer_out[5] = 0x20;
8054   return (output_size + 6);
8055 }
8056 #endif
8057 
8058 #if (!defined(HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_ENABLED) || HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_ENABLED) && !HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_FORCE_DISABLED
8059 /* tBleStatus hci_le_connection_cte_response_enable(uint16_t Connection_Handle,
8060                                                  uint8_t Enable);
8061  */
8062 /* Command len: 2 + 1 */
8063 /* Response len: 1 + 2 */
hci_le_connection_cte_response_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8064 uint16_t hci_le_connection_cte_response_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8065 {
8066   /* Input params */
8067   hci_le_connection_cte_response_enable_cp0 *cp0 = (hci_le_connection_cte_response_enable_cp0 *)(buffer_in + (0));
8068 
8069   int output_size = 1 + 2;
8070   /* Output params */
8071   hci_le_connection_cte_response_enable_rp0 *rp0 = (hci_le_connection_cte_response_enable_rp0 *) (buffer_out + 6);
8072 
8073   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8074   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8075   if(buffer_in_length != 2 + 1)
8076   {
8077     goto fail;
8078   }
8079 
8080   rp0->Status = hci_le_connection_cte_response_enable(cp0->Connection_Handle /* 2 */,
8081                                                       cp0->Enable /* 1 */);
8082 fail:
8083   rp0->Connection_Handle = cp0->Connection_Handle;
8084   buffer_out[0] = 0x04;
8085   buffer_out[1] = 0x0E;
8086   buffer_out[2] = output_size + 3;
8087   buffer_out[3] = 0x01;
8088   buffer_out[4] = 0x57;
8089   buffer_out[5] = 0x20;
8090   return (output_size + 6);
8091 }
8092 #endif
8093 
8094 #if (!defined(HCI_LE_READ_ANTENNA_INFORMATION_ENABLED) || HCI_LE_READ_ANTENNA_INFORMATION_ENABLED) && !HCI_LE_READ_ANTENNA_INFORMATION_FORCE_DISABLED
8095 /* tBleStatus hci_le_read_antenna_information(uint8_t *Supported_Switching_Sampling_Rates,
8096                                            uint8_t *Num_Antennae,
8097                                            uint8_t *Max_Switching_Pattern_Length,
8098                                            uint8_t *Max_CTE_Length);
8099  */
8100 /* Command len: 0 */
8101 /* Response len: 1 + 1 + 1 + 1 + 1 */
hci_le_read_antenna_information_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8102 uint16_t hci_le_read_antenna_information_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8103 {
8104 
8105   int output_size = 1 + 1 + 1 + 1 + 1;
8106   /* Output params */
8107   hci_le_read_antenna_information_rp0 *rp0 = (hci_le_read_antenna_information_rp0 *) (buffer_out + 6);
8108   uint8_t Supported_Switching_Sampling_Rates = 0;
8109   uint8_t Num_Antennae = 0;
8110   uint8_t Max_Switching_Pattern_Length = 0;
8111   uint8_t Max_CTE_Length = 0;
8112 
8113   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8114   if (buffer_out_max_length < (1 + 1 + 1 + 1 + 1 + 6)) { return 0; }
8115   if(buffer_in_length != 0)
8116   {
8117     goto fail;
8118   }
8119 
8120   rp0->Status = hci_le_read_antenna_information(&Supported_Switching_Sampling_Rates,
8121                                                 &Num_Antennae,
8122                                                 &Max_Switching_Pattern_Length,
8123                                                 &Max_CTE_Length);
8124 fail:
8125   rp0->Supported_Switching_Sampling_Rates = Supported_Switching_Sampling_Rates;
8126   rp0->Num_Antennae = Num_Antennae;
8127   rp0->Max_Switching_Pattern_Length = Max_Switching_Pattern_Length;
8128   rp0->Max_CTE_Length = Max_CTE_Length;
8129   buffer_out[0] = 0x04;
8130   buffer_out[1] = 0x0E;
8131   buffer_out[2] = output_size + 3;
8132   buffer_out[3] = 0x01;
8133   buffer_out[4] = 0x58;
8134   buffer_out[5] = 0x20;
8135   return (output_size + 6);
8136 }
8137 #endif
8138 
8139 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_FORCE_DISABLED
8140 /* tBleStatus hci_le_set_periodic_advertising_receive_enable(uint16_t Sync_Handle,
8141                                                           uint8_t Enable);
8142  */
8143 /* Command len: 2 + 1 */
8144 /* Response len: 1 */
hci_le_set_periodic_advertising_receive_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8145 uint16_t hci_le_set_periodic_advertising_receive_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8146 {
8147   /* Input params */
8148   hci_le_set_periodic_advertising_receive_enable_cp0 *cp0 = (hci_le_set_periodic_advertising_receive_enable_cp0 *)(buffer_in + (0));
8149 
8150   int output_size = 1;
8151   /* Output params */
8152   uint8_t *status = (uint8_t *) (buffer_out + 6);
8153 
8154   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8155   if (buffer_out_max_length < (1 + 6)) { return 0; }
8156   if(buffer_in_length != 2 + 1)
8157   {
8158     goto fail;
8159   }
8160 
8161   *status = hci_le_set_periodic_advertising_receive_enable(cp0->Sync_Handle /* 2 */,
8162                                                            cp0->Enable /* 1 */);
8163 fail:
8164   buffer_out[0] = 0x04;
8165   buffer_out[1] = 0x0E;
8166   buffer_out[2] = output_size + 3;
8167   buffer_out[3] = 0x01;
8168   buffer_out[4] = 0x59;
8169   buffer_out[5] = 0x20;
8170   return (output_size + 6);
8171 }
8172 #endif
8173 
8174 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_FORCE_DISABLED
8175 /* tBleStatus hci_le_periodic_advertising_sync_transfer(uint16_t Connection_Handle,
8176                                                      uint16_t Service_Data,
8177                                                      uint16_t Sync_Handle);
8178  */
8179 /* Command len: 2 + 2 + 2 */
8180 /* Response len: 1 + 2 */
hci_le_periodic_advertising_sync_transfer_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8181 uint16_t hci_le_periodic_advertising_sync_transfer_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8182 {
8183   /* Input params */
8184   hci_le_periodic_advertising_sync_transfer_cp0 *cp0 = (hci_le_periodic_advertising_sync_transfer_cp0 *)(buffer_in + (0));
8185 
8186   int output_size = 1 + 2;
8187   /* Output params */
8188   hci_le_periodic_advertising_sync_transfer_rp0 *rp0 = (hci_le_periodic_advertising_sync_transfer_rp0 *) (buffer_out + 6);
8189 
8190   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8191   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8192   if(buffer_in_length != 2 + 2 + 2)
8193   {
8194     goto fail;
8195   }
8196 
8197   rp0->Status = hci_le_periodic_advertising_sync_transfer(cp0->Connection_Handle /* 2 */,
8198                                                           cp0->Service_Data /* 2 */,
8199                                                           cp0->Sync_Handle /* 2 */);
8200 fail:
8201   rp0->Connection_Handle = cp0->Connection_Handle;
8202   buffer_out[0] = 0x04;
8203   buffer_out[1] = 0x0E;
8204   buffer_out[2] = output_size + 3;
8205   buffer_out[3] = 0x01;
8206   buffer_out[4] = 0x5a;
8207   buffer_out[5] = 0x20;
8208   return (output_size + 6);
8209 }
8210 #endif
8211 
8212 #if (!defined(HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_ENABLED) || HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_ENABLED) && !HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_FORCE_DISABLED
8213 /* tBleStatus hci_le_periodic_advertising_set_info_transfer(uint16_t Connection_Handle,
8214                                                          uint16_t Service_Data,
8215                                                          uint8_t Advertising_Handle);
8216  */
8217 /* Command len: 2 + 2 + 1 */
8218 /* Response len: 1 + 2 */
hci_le_periodic_advertising_set_info_transfer_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8219 uint16_t hci_le_periodic_advertising_set_info_transfer_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8220 {
8221   /* Input params */
8222   hci_le_periodic_advertising_set_info_transfer_cp0 *cp0 = (hci_le_periodic_advertising_set_info_transfer_cp0 *)(buffer_in + (0));
8223 
8224   int output_size = 1 + 2;
8225   /* Output params */
8226   hci_le_periodic_advertising_set_info_transfer_rp0 *rp0 = (hci_le_periodic_advertising_set_info_transfer_rp0 *) (buffer_out + 6);
8227 
8228   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8229   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8230   if(buffer_in_length != 2 + 2 + 1)
8231   {
8232     goto fail;
8233   }
8234 
8235   rp0->Status = hci_le_periodic_advertising_set_info_transfer(cp0->Connection_Handle /* 2 */,
8236                                                               cp0->Service_Data /* 2 */,
8237                                                               cp0->Advertising_Handle /* 1 */);
8238 fail:
8239   rp0->Connection_Handle = cp0->Connection_Handle;
8240   buffer_out[0] = 0x04;
8241   buffer_out[1] = 0x0E;
8242   buffer_out[2] = output_size + 3;
8243   buffer_out[3] = 0x01;
8244   buffer_out[4] = 0x5b;
8245   buffer_out[5] = 0x20;
8246   return (output_size + 6);
8247 }
8248 #endif
8249 
8250 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_FORCE_DISABLED
8251 /* tBleStatus hci_le_set_periodic_advertising_sync_transfer_parameters(uint16_t Connection_Handle,
8252                                                                     uint8_t Mode,
8253                                                                     uint16_t Skip,
8254                                                                     uint16_t Sync_Timeout,
8255                                                                     uint8_t CTE_Type);
8256  */
8257 /* Command len: 2 + 1 + 2 + 2 + 1 */
8258 /* Response len: 1 + 2 */
hci_le_set_periodic_advertising_sync_transfer_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8259 uint16_t hci_le_set_periodic_advertising_sync_transfer_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8260 {
8261   /* Input params */
8262   hci_le_set_periodic_advertising_sync_transfer_parameters_cp0 *cp0 = (hci_le_set_periodic_advertising_sync_transfer_parameters_cp0 *)(buffer_in + (0));
8263 
8264   int output_size = 1 + 2;
8265   /* Output params */
8266   hci_le_set_periodic_advertising_sync_transfer_parameters_rp0 *rp0 = (hci_le_set_periodic_advertising_sync_transfer_parameters_rp0 *) (buffer_out + 6);
8267 
8268   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8269   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8270   if(buffer_in_length != 2 + 1 + 2 + 2 + 1)
8271   {
8272     goto fail;
8273   }
8274 
8275   rp0->Status = hci_le_set_periodic_advertising_sync_transfer_parameters(cp0->Connection_Handle /* 2 */,
8276                                                                          cp0->Mode /* 1 */,
8277                                                                          cp0->Skip /* 2 */,
8278                                                                          cp0->Sync_Timeout /* 2 */,
8279                                                                          cp0->CTE_Type /* 1 */);
8280 fail:
8281   rp0->Connection_Handle = cp0->Connection_Handle;
8282   buffer_out[0] = 0x04;
8283   buffer_out[1] = 0x0E;
8284   buffer_out[2] = output_size + 3;
8285   buffer_out[3] = 0x01;
8286   buffer_out[4] = 0x5c;
8287   buffer_out[5] = 0x20;
8288   return (output_size + 6);
8289 }
8290 #endif
8291 
8292 #if (!defined(HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) || HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED) && !HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_FORCE_DISABLED
8293 /* tBleStatus hci_le_set_default_periodic_advertising_sync_transfer_parameters(uint8_t Mode,
8294                                                                             uint16_t Skip,
8295                                                                             uint16_t Sync_Timeout,
8296                                                                             uint8_t CTE_Type);
8297  */
8298 /* Command len: 1 + 2 + 2 + 1 */
8299 /* Response len: 1 */
hci_le_set_default_periodic_advertising_sync_transfer_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8300 uint16_t hci_le_set_default_periodic_advertising_sync_transfer_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8301 {
8302   /* Input params */
8303   hci_le_set_default_periodic_advertising_sync_transfer_parameters_cp0 *cp0 = (hci_le_set_default_periodic_advertising_sync_transfer_parameters_cp0 *)(buffer_in + (0));
8304 
8305   int output_size = 1;
8306   /* Output params */
8307   uint8_t *status = (uint8_t *) (buffer_out + 6);
8308 
8309   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8310   if (buffer_out_max_length < (1 + 6)) { return 0; }
8311   if(buffer_in_length != 1 + 2 + 2 + 1)
8312   {
8313     goto fail;
8314   }
8315 
8316   *status = hci_le_set_default_periodic_advertising_sync_transfer_parameters(cp0->Mode /* 1 */,
8317                                                                              cp0->Skip /* 2 */,
8318                                                                              cp0->Sync_Timeout /* 2 */,
8319                                                                              cp0->CTE_Type /* 1 */);
8320 fail:
8321   buffer_out[0] = 0x04;
8322   buffer_out[1] = 0x0E;
8323   buffer_out[2] = output_size + 3;
8324   buffer_out[3] = 0x01;
8325   buffer_out[4] = 0x5d;
8326   buffer_out[5] = 0x20;
8327   return (output_size + 6);
8328 }
8329 #endif
8330 
8331 #if (!defined(HCI_LE_READ_BUFFER_SIZE_V2_ENABLED) || HCI_LE_READ_BUFFER_SIZE_V2_ENABLED) && !HCI_LE_READ_BUFFER_SIZE_V2_FORCE_DISABLED
8332 /* tBleStatus hci_le_read_buffer_size_v2(uint16_t *HC_LE_ACL_Data_Packet_Length,
8333                                       uint8_t *HC_Total_Num_LE_ACL_Data_Packets,
8334                                       uint16_t *ISO_Data_Packet_Length,
8335                                       uint8_t *Total_Num_ISO_Data_Packets);
8336  */
8337 /* Command len: 0 */
8338 /* Response len: 1 + 2 + 1 + 2 + 1 */
hci_le_read_buffer_size_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8339 uint16_t hci_le_read_buffer_size_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8340 {
8341 
8342   int output_size = 1 + 2 + 1 + 2 + 1;
8343   /* Output params */
8344   hci_le_read_buffer_size_v2_rp0 *rp0 = (hci_le_read_buffer_size_v2_rp0 *) (buffer_out + 6);
8345   uint16_t HC_LE_ACL_Data_Packet_Length = 0;
8346   uint8_t HC_Total_Num_LE_ACL_Data_Packets = 0;
8347   uint16_t ISO_Data_Packet_Length = 0;
8348   uint8_t Total_Num_ISO_Data_Packets = 0;
8349 
8350   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8351   if (buffer_out_max_length < (1 + 2 + 1 + 2 + 1 + 6)) { return 0; }
8352   if(buffer_in_length != 0)
8353   {
8354     goto fail;
8355   }
8356 
8357   rp0->Status = hci_le_read_buffer_size_v2(&HC_LE_ACL_Data_Packet_Length,
8358                                            &HC_Total_Num_LE_ACL_Data_Packets,
8359                                            &ISO_Data_Packet_Length,
8360                                            &Total_Num_ISO_Data_Packets);
8361 fail:
8362   rp0->HC_LE_ACL_Data_Packet_Length = HC_LE_ACL_Data_Packet_Length;
8363   rp0->HC_Total_Num_LE_ACL_Data_Packets = HC_Total_Num_LE_ACL_Data_Packets;
8364   rp0->ISO_Data_Packet_Length = ISO_Data_Packet_Length;
8365   rp0->Total_Num_ISO_Data_Packets = Total_Num_ISO_Data_Packets;
8366   buffer_out[0] = 0x04;
8367   buffer_out[1] = 0x0E;
8368   buffer_out[2] = output_size + 3;
8369   buffer_out[3] = 0x01;
8370   buffer_out[4] = 0x60;
8371   buffer_out[5] = 0x20;
8372   return (output_size + 6);
8373 }
8374 #endif
8375 
8376 #if (!defined(HCI_LE_READ_ISO_TX_SYNC_ENABLED) || HCI_LE_READ_ISO_TX_SYNC_ENABLED) && !HCI_LE_READ_ISO_TX_SYNC_FORCE_DISABLED
8377 /* tBleStatus hci_le_read_iso_tx_sync(uint16_t Connection_Handle,
8378                                    uint16_t *Packet_Sequence_Number,
8379                                    uint32_t *TX_Time_Stamp,
8380                                    uint8_t Time_Offset[3]);
8381  */
8382 /* Command len: 2 */
8383 /* Response len: 1 + 2 + 2 + 4 + 3 */
hci_le_read_iso_tx_sync_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8384 uint16_t hci_le_read_iso_tx_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8385 {
8386   /* Input params */
8387   hci_le_read_iso_tx_sync_cp0 *cp0 = (hci_le_read_iso_tx_sync_cp0 *)(buffer_in + (0));
8388 
8389   int output_size = 1 + 2 + 2 + 4 + 3;
8390   /* Output params */
8391   hci_le_read_iso_tx_sync_rp0 *rp0 = (hci_le_read_iso_tx_sync_rp0 *) (buffer_out + 6);
8392   uint16_t Packet_Sequence_Number = 0;
8393   uint32_t TX_Time_Stamp = 0;
8394   uint8_t Time_Offset[3] = {0};
8395 
8396   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8397   if (buffer_out_max_length < (1 + 2 + 2 + 4 + 3 + 6)) { return 0; }
8398   if(buffer_in_length != 2)
8399   {
8400     goto fail;
8401   }
8402 
8403   rp0->Status = hci_le_read_iso_tx_sync(cp0->Connection_Handle /* 2 */,
8404                                         &Packet_Sequence_Number,
8405                                         &TX_Time_Stamp,
8406                                         Time_Offset);
8407 fail:
8408   rp0->Connection_Handle = cp0->Connection_Handle;
8409   rp0->Packet_Sequence_Number = Packet_Sequence_Number;
8410   rp0->TX_Time_Stamp = TX_Time_Stamp;
8411   Osal_MemCpy((void *) rp0->Time_Offset,(const void *) Time_Offset, 3);
8412   buffer_out[0] = 0x04;
8413   buffer_out[1] = 0x0E;
8414   buffer_out[2] = output_size + 3;
8415   buffer_out[3] = 0x01;
8416   buffer_out[4] = 0x61;
8417   buffer_out[5] = 0x20;
8418   return (output_size + 6);
8419 }
8420 #endif
8421 
8422 #if (!defined(HCI_LE_SET_CIG_PARAMETERS_ENABLED) || HCI_LE_SET_CIG_PARAMETERS_ENABLED) && !HCI_LE_SET_CIG_PARAMETERS_FORCE_DISABLED
8423 /* tBleStatus hci_le_set_cig_parameters(uint8_t CIG_ID,
8424                                      uint8_t SDU_Interval_C_To_P[3],
8425                                      uint8_t SDU_Interval_P_To_C[3],
8426                                      uint8_t Worst_Case_SCA,
8427                                      uint8_t Packing,
8428                                      uint8_t Framing,
8429                                      uint16_t Max_Transport_Latency_C_To_P,
8430                                      uint16_t Max_Transport_Latency_P_To_C,
8431                                      uint8_t CIS_Count,
8432                                      CIS_Param_t CIS_Param[],
8433                                      uint16_t Connection_Handle[]);
8434  */
8435 /* Command len: 1 + 3 + 3 + 1 + 1 + 1 + 2 + 2 + 1 + struct_length */
8436 /* Response len: 1 + 1 + 1 + rp0->CIS_Count * (sizeof(uint16_t)) */
hci_le_set_cig_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8437 uint16_t hci_le_set_cig_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8438 {
8439   /* Input params */
8440   hci_le_set_cig_parameters_cp0 *cp0 = (hci_le_set_cig_parameters_cp0 *)(buffer_in + (0));
8441   CIS_Param_t CIS_Param[HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Param_t)];
8442 
8443   int output_size = 0;
8444   /* Output params */
8445   hci_le_set_cig_parameters_rp0 *rp0 = (hci_le_set_cig_parameters_rp0 *) (buffer_out + 6);
8446   uint16_t Connection_Handle[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)] = {0};
8447 
8448   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8449   int i;
8450   int struct_length = 0;
8451   if(cp0->CIS_Count > HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Param_t))
8452   {
8453     cp0->CIS_Count = 0;
8454     goto fail;
8455   }
8456   for (i = 0; i < cp0->CIS_Count; i++) {
8457     packed_CIS_Param_t *CIS_Param_tmp = (packed_CIS_Param_t *)(((uint8_t *)cp0->CIS_Param) + struct_length);
8458     CIS_Param[i].CIS_ID = CIS_Param_tmp->CIS_ID;
8459     struct_length += 1;
8460     CIS_Param[i].Max_SDU_C_To_P = CIS_Param_tmp->Max_SDU_C_To_P;
8461     struct_length += 2;
8462     CIS_Param[i].Max_SDU_P_To_C = CIS_Param_tmp->Max_SDU_P_To_C;
8463     struct_length += 2;
8464     CIS_Param[i].PHY_C_To_P = CIS_Param_tmp->PHY_C_To_P;
8465     struct_length += 1;
8466     CIS_Param[i].PHY_P_To_C = CIS_Param_tmp->PHY_P_To_C;
8467     struct_length += 1;
8468     CIS_Param[i].RTN_C_To_P = CIS_Param_tmp->RTN_C_To_P;
8469     struct_length += 1;
8470     CIS_Param[i].RTN_P_To_C = CIS_Param_tmp->RTN_P_To_C;
8471     struct_length += 1;
8472   }
8473   if (buffer_out_max_length < (1 + 6)) { return 0; }
8474   if(buffer_in_length != 1 + 3 + 3 + 1 + 1 + 1 + 2 + 2 + 1 + struct_length)
8475   {
8476     goto fail;
8477   }
8478 
8479   rp0->Status = hci_le_set_cig_parameters(cp0->CIG_ID /* 1 */,
8480                                           cp0->SDU_Interval_C_To_P /* 3 */,
8481                                           cp0->SDU_Interval_P_To_C /* 3 */,
8482                                           cp0->Worst_Case_SCA /* 1 */,
8483                                           cp0->Packing /* 1 */,
8484                                           cp0->Framing /* 1 */,
8485                                           cp0->Max_Transport_Latency_C_To_P /* 2 */,
8486                                           cp0->Max_Transport_Latency_P_To_C /* 2 */,
8487                                           cp0->CIS_Count /* 1 */,
8488                                           CIS_Param /* struct_length */,
8489                                           Connection_Handle);
8490 fail:
8491   output_size += 1;
8492   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
8493   rp0->CIG_ID = cp0->CIG_ID;
8494   output_size += 1;
8495   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
8496   rp0->CIS_Count = cp0->CIS_Count;
8497   output_size += 1;
8498   if (buffer_out_max_length < (output_size + (rp0->CIS_Count * (sizeof(uint16_t))) + 6)) { return 0; }
8499   Osal_MemCpy((void *) rp0->Connection_Handle,(const void *) Connection_Handle, rp0->CIS_Count * (sizeof(uint16_t)));
8500   output_size += rp0->CIS_Count * (sizeof(uint16_t));
8501   buffer_out[0] = 0x04;
8502   buffer_out[1] = 0x0E;
8503   buffer_out[2] = output_size + 3;
8504   buffer_out[3] = 0x01;
8505   buffer_out[4] = 0x62;
8506   buffer_out[5] = 0x20;
8507   return (output_size + 6);
8508 }
8509 #endif
8510 
8511 #if (!defined(HCI_LE_SET_CIG_PARAMETERS_TEST_ENABLED) || HCI_LE_SET_CIG_PARAMETERS_TEST_ENABLED) && !HCI_LE_SET_CIG_PARAMETERS_TEST_FORCE_DISABLED
8512 /* tBleStatus hci_le_set_cig_parameters_test(uint8_t CIG_ID,
8513                                           uint8_t SDU_Interval_C_To_P[3],
8514                                           uint8_t SDU_Interval_P_To_C[3],
8515                                           uint8_t FT_C_To_P,
8516                                           uint8_t FT_P_To_C,
8517                                           uint16_t ISO_Interval,
8518                                           uint8_t Worst_Case_SCA,
8519                                           uint8_t Packing,
8520                                           uint8_t Framing,
8521                                           uint8_t CIS_Count,
8522                                           CIS_Param_Test_t CIS_Param_Test[],
8523                                           uint16_t Connection_Handle[]);
8524  */
8525 /* Command len: 1 + 3 + 3 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + struct_length */
8526 /* Response len: 1 + 1 + 1 + rp0->CIS_Count * (sizeof(uint16_t)) */
hci_le_set_cig_parameters_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8527 uint16_t hci_le_set_cig_parameters_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8528 {
8529   /* Input params */
8530   hci_le_set_cig_parameters_test_cp0 *cp0 = (hci_le_set_cig_parameters_test_cp0 *)(buffer_in + (0));
8531   CIS_Param_Test_t CIS_Param_Test[HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Param_Test_t)];
8532 
8533   int output_size = 0;
8534   /* Output params */
8535   hci_le_set_cig_parameters_test_rp0 *rp0 = (hci_le_set_cig_parameters_test_rp0 *) (buffer_out + 6);
8536   uint16_t Connection_Handle[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)] = {0};
8537 
8538   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8539   int i;
8540   int struct_length = 0;
8541   if(cp0->CIS_Count > HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Param_Test_t))
8542   {
8543     cp0->CIS_Count = 0;
8544     goto fail;
8545   }
8546   for (i = 0; i < cp0->CIS_Count; i++) {
8547     packed_CIS_Param_Test_t *CIS_Param_Test_tmp = (packed_CIS_Param_Test_t *)(((uint8_t *)cp0->CIS_Param_Test) + struct_length);
8548     CIS_Param_Test[i].CIS_ID = CIS_Param_Test_tmp->CIS_ID;
8549     struct_length += 1;
8550     CIS_Param_Test[i].NSE = CIS_Param_Test_tmp->NSE;
8551     struct_length += 1;
8552     CIS_Param_Test[i].Max_SDU_C_To_P = CIS_Param_Test_tmp->Max_SDU_C_To_P;
8553     struct_length += 2;
8554     CIS_Param_Test[i].Max_SDU_P_To_C = CIS_Param_Test_tmp->Max_SDU_P_To_C;
8555     struct_length += 2;
8556     CIS_Param_Test[i].Max_PDU_C_To_P = CIS_Param_Test_tmp->Max_PDU_C_To_P;
8557     struct_length += 2;
8558     CIS_Param_Test[i].Max_PDU_P_To_C = CIS_Param_Test_tmp->Max_PDU_P_To_C;
8559     struct_length += 2;
8560     CIS_Param_Test[i].PHY_C_To_P = CIS_Param_Test_tmp->PHY_C_To_P;
8561     struct_length += 1;
8562     CIS_Param_Test[i].PHY_P_To_C = CIS_Param_Test_tmp->PHY_P_To_C;
8563     struct_length += 1;
8564     CIS_Param_Test[i].BN_C_To_P = CIS_Param_Test_tmp->BN_C_To_P;
8565     struct_length += 1;
8566     CIS_Param_Test[i].BN_P_To_C = CIS_Param_Test_tmp->BN_P_To_C;
8567     struct_length += 1;
8568   }
8569   if (buffer_out_max_length < (1 + 6)) { return 0; }
8570   if(buffer_in_length != 1 + 3 + 3 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + struct_length)
8571   {
8572     goto fail;
8573   }
8574 
8575   rp0->Status = hci_le_set_cig_parameters_test(cp0->CIG_ID /* 1 */,
8576                                                cp0->SDU_Interval_C_To_P /* 3 */,
8577                                                cp0->SDU_Interval_P_To_C /* 3 */,
8578                                                cp0->FT_C_To_P /* 1 */,
8579                                                cp0->FT_P_To_C /* 1 */,
8580                                                cp0->ISO_Interval /* 2 */,
8581                                                cp0->Worst_Case_SCA /* 1 */,
8582                                                cp0->Packing /* 1 */,
8583                                                cp0->Framing /* 1 */,
8584                                                cp0->CIS_Count /* 1 */,
8585                                                CIS_Param_Test /* struct_length */,
8586                                                Connection_Handle);
8587 fail:
8588   output_size += 1;
8589   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
8590   rp0->CIG_ID = cp0->CIG_ID;
8591   output_size += 1;
8592   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
8593   rp0->CIS_Count = cp0->CIS_Count;
8594   output_size += 1;
8595   if (buffer_out_max_length < (output_size + (rp0->CIS_Count * (sizeof(uint16_t))) + 6)) { return 0; }
8596   Osal_MemCpy((void *) rp0->Connection_Handle,(const void *) Connection_Handle, rp0->CIS_Count * (sizeof(uint16_t)));
8597   output_size += rp0->CIS_Count * (sizeof(uint16_t));
8598   buffer_out[0] = 0x04;
8599   buffer_out[1] = 0x0E;
8600   buffer_out[2] = output_size + 3;
8601   buffer_out[3] = 0x01;
8602   buffer_out[4] = 0x63;
8603   buffer_out[5] = 0x20;
8604   return (output_size + 6);
8605 }
8606 #endif
8607 
8608 #if (!defined(HCI_LE_CREATE_CIS_ENABLED) || HCI_LE_CREATE_CIS_ENABLED) && !HCI_LE_CREATE_CIS_FORCE_DISABLED
8609 /* tBleStatus hci_le_create_cis(uint8_t CIS_Count,
8610                              CIS_Handles_t CIS_Handles[]);
8611  */
8612 /* Command len: 1 + struct_length */
8613 /* Response len: 1 */
hci_le_create_cis_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8614 uint16_t hci_le_create_cis_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8615 {
8616   /* Input params */
8617   hci_le_create_cis_cp0 *cp0 = (hci_le_create_cis_cp0 *)(buffer_in + (0));
8618   CIS_Handles_t CIS_Handles[HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Handles_t)];
8619 
8620   int output_size = 1;
8621   /* Output params */
8622   uint8_t *status = (uint8_t *) (buffer_out + 3);
8623 
8624   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8625   if (buffer_out_max_length < (1 + 6)) { return 0; }
8626   int i;
8627   int struct_length = 0;
8628   if(cp0->CIS_Count > HCI_MAX_PAYLOAD_SIZE/sizeof(CIS_Handles_t))
8629   {
8630     cp0->CIS_Count = 0;
8631     goto fail;
8632   }
8633   for (i = 0; i < cp0->CIS_Count; i++) {
8634     packed_CIS_Handles_t *CIS_Handles_tmp = (packed_CIS_Handles_t *)(((uint8_t *)cp0->CIS_Handles) + struct_length);
8635     CIS_Handles[i].CIS_Connection_Handle = CIS_Handles_tmp->CIS_Connection_Handle;
8636     struct_length += 2;
8637     CIS_Handles[i].ACL_Connection_Handle = CIS_Handles_tmp->ACL_Connection_Handle;
8638     struct_length += 2;
8639   }
8640   if(buffer_in_length != 1 + struct_length)
8641   {
8642     goto fail;
8643   }
8644 
8645   *status = hci_le_create_cis(cp0->CIS_Count /* 1 */,
8646                               CIS_Handles /* struct_length */);
8647 fail:
8648   buffer_out[0] = 0x04;
8649   buffer_out[1] = 0x0F;
8650   buffer_out[2] = output_size + 3;
8651   buffer_out[4] = 0x01;
8652   buffer_out[5] = 0x64;
8653   buffer_out[6] = 0x20;
8654   return (output_size + 6);
8655 }
8656 #endif
8657 
8658 #if (!defined(HCI_LE_REMOVE_CIG_ENABLED) || HCI_LE_REMOVE_CIG_ENABLED) && !HCI_LE_REMOVE_CIG_FORCE_DISABLED
8659 /* tBleStatus hci_le_remove_cig(uint8_t CIG_ID);
8660  */
8661 /* Command len: 1 */
8662 /* Response len: 1 + 1 */
hci_le_remove_cig_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8663 uint16_t hci_le_remove_cig_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8664 {
8665   /* Input params */
8666   hci_le_remove_cig_cp0 *cp0 = (hci_le_remove_cig_cp0 *)(buffer_in + (0));
8667 
8668   int output_size = 1 + 1;
8669   /* Output params */
8670   hci_le_remove_cig_rp0 *rp0 = (hci_le_remove_cig_rp0 *) (buffer_out + 6);
8671 
8672   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8673   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
8674   if(buffer_in_length != 1)
8675   {
8676     goto fail;
8677   }
8678 
8679   rp0->Status = hci_le_remove_cig(cp0->CIG_ID /* 1 */);
8680 fail:
8681   rp0->CIG_ID = cp0->CIG_ID;
8682   buffer_out[0] = 0x04;
8683   buffer_out[1] = 0x0E;
8684   buffer_out[2] = output_size + 3;
8685   buffer_out[3] = 0x01;
8686   buffer_out[4] = 0x65;
8687   buffer_out[5] = 0x20;
8688   return (output_size + 6);
8689 }
8690 #endif
8691 
8692 #if (!defined(HCI_LE_ACCEPT_CIS_REQUEST_ENABLED) || HCI_LE_ACCEPT_CIS_REQUEST_ENABLED) && !HCI_LE_ACCEPT_CIS_REQUEST_FORCE_DISABLED
8693 /* tBleStatus hci_le_accept_cis_request(uint16_t Connection_Handle);
8694  */
8695 /* Command len: 2 */
8696 /* Response len: 1 */
hci_le_accept_cis_request_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8697 uint16_t hci_le_accept_cis_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8698 {
8699   /* Input params */
8700   hci_le_accept_cis_request_cp0 *cp0 = (hci_le_accept_cis_request_cp0 *)(buffer_in + (0));
8701 
8702   int output_size = 1;
8703   /* Output params */
8704   uint8_t *status = (uint8_t *) (buffer_out + 3);
8705 
8706   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8707   if (buffer_out_max_length < (1 + 6)) { return 0; }
8708   if(buffer_in_length != 2)
8709   {
8710     goto fail;
8711   }
8712 
8713   *status = hci_le_accept_cis_request(cp0->Connection_Handle /* 2 */);
8714 fail:
8715   buffer_out[0] = 0x04;
8716   buffer_out[1] = 0x0F;
8717   buffer_out[2] = output_size + 3;
8718   buffer_out[4] = 0x01;
8719   buffer_out[5] = 0x66;
8720   buffer_out[6] = 0x20;
8721   return (output_size + 6);
8722 }
8723 #endif
8724 
8725 #if (!defined(HCI_LE_REJECT_CIS_REQUEST_ENABLED) || HCI_LE_REJECT_CIS_REQUEST_ENABLED) && !HCI_LE_REJECT_CIS_REQUEST_FORCE_DISABLED
8726 /* tBleStatus hci_le_reject_cis_request(uint16_t Connection_Handle,
8727                                      uint8_t Reason);
8728  */
8729 /* Command len: 2 + 1 */
8730 /* Response len: 1 + 2 */
hci_le_reject_cis_request_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8731 uint16_t hci_le_reject_cis_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8732 {
8733   /* Input params */
8734   hci_le_reject_cis_request_cp0 *cp0 = (hci_le_reject_cis_request_cp0 *)(buffer_in + (0));
8735 
8736   int output_size = 1 + 2;
8737   /* Output params */
8738   hci_le_reject_cis_request_rp0 *rp0 = (hci_le_reject_cis_request_rp0 *) (buffer_out + 6);
8739 
8740   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8741   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
8742   if(buffer_in_length != 2 + 1)
8743   {
8744     goto fail;
8745   }
8746 
8747   rp0->Status = hci_le_reject_cis_request(cp0->Connection_Handle /* 2 */,
8748                                           cp0->Reason /* 1 */);
8749 fail:
8750   rp0->Connection_Handle = cp0->Connection_Handle;
8751   buffer_out[0] = 0x04;
8752   buffer_out[1] = 0x0E;
8753   buffer_out[2] = output_size + 3;
8754   buffer_out[3] = 0x01;
8755   buffer_out[4] = 0x67;
8756   buffer_out[5] = 0x20;
8757   return (output_size + 6);
8758 }
8759 #endif
8760 
8761 #if (!defined(HCI_LE_CREATE_BIG_ENABLED) || HCI_LE_CREATE_BIG_ENABLED) && !HCI_LE_CREATE_BIG_FORCE_DISABLED
8762 /* tBleStatus hci_le_create_big(uint8_t BIG_Handle,
8763                              uint8_t Advertising_Handle,
8764                              uint8_t Num_BIS,
8765                              uint8_t SDU_Interval[3],
8766                              uint16_t Max_SDU,
8767                              uint16_t Max_Transport_Latency,
8768                              uint8_t RTN,
8769                              uint8_t PHY,
8770                              uint8_t Packing,
8771                              uint8_t Framing,
8772                              uint8_t Encryption,
8773                              uint8_t Broadcast_Code[16]);
8774  */
8775 /* Command len: 1 + 1 + 1 + 3 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 16 */
8776 /* Response len: 1 */
hci_le_create_big_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8777 uint16_t hci_le_create_big_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8778 {
8779   /* Input params */
8780   hci_le_create_big_cp0 *cp0 = (hci_le_create_big_cp0 *)(buffer_in + (0));
8781 
8782   int output_size = 1;
8783   /* Output params */
8784   uint8_t *status = (uint8_t *) (buffer_out + 3);
8785 
8786   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8787   if (buffer_out_max_length < (1 + 6)) { return 0; }
8788   if(buffer_in_length != 1 + 1 + 1 + 3 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 16)
8789   {
8790     goto fail;
8791   }
8792 
8793   *status = hci_le_create_big(cp0->BIG_Handle /* 1 */,
8794                               cp0->Advertising_Handle /* 1 */,
8795                               cp0->Num_BIS /* 1 */,
8796                               cp0->SDU_Interval /* 3 */,
8797                               cp0->Max_SDU /* 2 */,
8798                               cp0->Max_Transport_Latency /* 2 */,
8799                               cp0->RTN /* 1 */,
8800                               cp0->PHY /* 1 */,
8801                               cp0->Packing /* 1 */,
8802                               cp0->Framing /* 1 */,
8803                               cp0->Encryption /* 1 */,
8804                               cp0->Broadcast_Code /* 16 */);
8805 fail:
8806   buffer_out[0] = 0x04;
8807   buffer_out[1] = 0x0F;
8808   buffer_out[2] = output_size + 3;
8809   buffer_out[4] = 0x01;
8810   buffer_out[5] = 0x68;
8811   buffer_out[6] = 0x20;
8812   return (output_size + 6);
8813 }
8814 #endif
8815 
8816 #if (!defined(HCI_LE_CREATE_BIG_TEST_ENABLED) || HCI_LE_CREATE_BIG_TEST_ENABLED) && !HCI_LE_CREATE_BIG_TEST_FORCE_DISABLED
8817 /* tBleStatus hci_le_create_big_test(uint8_t BIG_Handle,
8818                                   uint8_t Advertising_Handle,
8819                                   uint8_t Num_BIS,
8820                                   uint8_t SDU_Interval[3],
8821                                   uint16_t ISO_Interval,
8822                                   uint8_t NSE,
8823                                   uint16_t Max_SDU,
8824                                   uint16_t Max_PDU,
8825                                   uint8_t PHY,
8826                                   uint8_t Packing,
8827                                   uint8_t Framing,
8828                                   uint8_t BN,
8829                                   uint8_t IRC,
8830                                   uint8_t PTO,
8831                                   uint8_t Encryption,
8832                                   uint8_t Broadcast_Code[16]);
8833  */
8834 /* Command len: 1 + 1 + 1 + 3 + 2 + 1 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 16 */
8835 /* Response len: 1 */
hci_le_create_big_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8836 uint16_t hci_le_create_big_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8837 {
8838   /* Input params */
8839   hci_le_create_big_test_cp0 *cp0 = (hci_le_create_big_test_cp0 *)(buffer_in + (0));
8840 
8841   int output_size = 1;
8842   /* Output params */
8843   uint8_t *status = (uint8_t *) (buffer_out + 3);
8844 
8845   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8846   if (buffer_out_max_length < (1 + 6)) { return 0; }
8847   if(buffer_in_length != 1 + 1 + 1 + 3 + 2 + 1 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 16)
8848   {
8849     goto fail;
8850   }
8851 
8852   *status = hci_le_create_big_test(cp0->BIG_Handle /* 1 */,
8853                                    cp0->Advertising_Handle /* 1 */,
8854                                    cp0->Num_BIS /* 1 */,
8855                                    cp0->SDU_Interval /* 3 */,
8856                                    cp0->ISO_Interval /* 2 */,
8857                                    cp0->NSE /* 1 */,
8858                                    cp0->Max_SDU /* 2 */,
8859                                    cp0->Max_PDU /* 2 */,
8860                                    cp0->PHY /* 1 */,
8861                                    cp0->Packing /* 1 */,
8862                                    cp0->Framing /* 1 */,
8863                                    cp0->BN /* 1 */,
8864                                    cp0->IRC /* 1 */,
8865                                    cp0->PTO /* 1 */,
8866                                    cp0->Encryption /* 1 */,
8867                                    cp0->Broadcast_Code /* 16 */);
8868 fail:
8869   buffer_out[0] = 0x04;
8870   buffer_out[1] = 0x0F;
8871   buffer_out[2] = output_size + 3;
8872   buffer_out[4] = 0x01;
8873   buffer_out[5] = 0x69;
8874   buffer_out[6] = 0x20;
8875   return (output_size + 6);
8876 }
8877 #endif
8878 
8879 #if (!defined(HCI_LE_TERMINATE_BIG_ENABLED) || HCI_LE_TERMINATE_BIG_ENABLED) && !HCI_LE_TERMINATE_BIG_FORCE_DISABLED
8880 /* tBleStatus hci_le_terminate_big(uint8_t BIG_Handle,
8881                                 uint8_t Reason);
8882  */
8883 /* Command len: 1 + 1 */
8884 /* Response len: 1 */
hci_le_terminate_big_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8885 uint16_t hci_le_terminate_big_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8886 {
8887   /* Input params */
8888   hci_le_terminate_big_cp0 *cp0 = (hci_le_terminate_big_cp0 *)(buffer_in + (0));
8889 
8890   int output_size = 1;
8891   /* Output params */
8892   uint8_t *status = (uint8_t *) (buffer_out + 3);
8893 
8894   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8895   if (buffer_out_max_length < (1 + 6)) { return 0; }
8896   if(buffer_in_length != 1 + 1)
8897   {
8898     goto fail;
8899   }
8900 
8901   *status = hci_le_terminate_big(cp0->BIG_Handle /* 1 */,
8902                                  cp0->Reason /* 1 */);
8903 fail:
8904   buffer_out[0] = 0x04;
8905   buffer_out[1] = 0x0F;
8906   buffer_out[2] = output_size + 3;
8907   buffer_out[4] = 0x01;
8908   buffer_out[5] = 0x6a;
8909   buffer_out[6] = 0x20;
8910   return (output_size + 6);
8911 }
8912 #endif
8913 
8914 #if (!defined(HCI_LE_BIG_CREATE_SYNC_ENABLED) || HCI_LE_BIG_CREATE_SYNC_ENABLED) && !HCI_LE_BIG_CREATE_SYNC_FORCE_DISABLED
8915 /* tBleStatus hci_le_big_create_sync(uint8_t BIG_Handle,
8916                                   uint16_t Sync_Handle,
8917                                   uint8_t Encryption,
8918                                   uint8_t Broadcast_Code[16],
8919                                   uint8_t MSE,
8920                                   uint16_t BIG_Sync_Timeout,
8921                                   uint8_t Num_BIS,
8922                                   uint8_t BIS[]);
8923  */
8924 /* Command len: 1 + 2 + 1 + 16 + 1 + 2 + 1 + cp0->Num_BIS * (sizeof(uint8_t)) */
8925 /* Response len: 1 */
hci_le_big_create_sync_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8926 uint16_t hci_le_big_create_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8927 {
8928   /* Input params */
8929   hci_le_big_create_sync_cp0 *cp0 = (hci_le_big_create_sync_cp0 *)(buffer_in + (0));
8930 
8931   int output_size = 1;
8932   /* Output params */
8933   uint8_t *status = (uint8_t *) (buffer_out + 3);
8934 
8935   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8936   if (buffer_out_max_length < (1 + 6)) { return 0; }
8937   if(buffer_in_length != 1 + 2 + 1 + 16 + 1 + 2 + 1 + cp0->Num_BIS * (sizeof(uint8_t)))
8938   {
8939     goto fail;
8940   }
8941 
8942   *status = hci_le_big_create_sync(cp0->BIG_Handle /* 1 */,
8943                                    cp0->Sync_Handle /* 2 */,
8944                                    cp0->Encryption /* 1 */,
8945                                    cp0->Broadcast_Code /* 16 */,
8946                                    cp0->MSE /* 1 */,
8947                                    cp0->BIG_Sync_Timeout /* 2 */,
8948                                    cp0->Num_BIS /* 1 */,
8949                                    cp0->BIS /* cp0->Num_BIS * (sizeof(uint8_t)) */);
8950 fail:
8951   buffer_out[0] = 0x04;
8952   buffer_out[1] = 0x0F;
8953   buffer_out[2] = output_size + 3;
8954   buffer_out[4] = 0x01;
8955   buffer_out[5] = 0x6b;
8956   buffer_out[6] = 0x20;
8957   return (output_size + 6);
8958 }
8959 #endif
8960 
8961 #if (!defined(HCI_LE_BIG_TERMINATE_SYNC_ENABLED) || HCI_LE_BIG_TERMINATE_SYNC_ENABLED) && !HCI_LE_BIG_TERMINATE_SYNC_FORCE_DISABLED
8962 /* tBleStatus hci_le_big_terminate_sync(uint8_t BIG_Handle);
8963  */
8964 /* Command len: 1 */
8965 /* Response len: 1 + 1 */
hci_le_big_terminate_sync_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)8966 uint16_t hci_le_big_terminate_sync_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
8967 {
8968   /* Input params */
8969   hci_le_big_terminate_sync_cp0 *cp0 = (hci_le_big_terminate_sync_cp0 *)(buffer_in + (0));
8970 
8971   int output_size = 1 + 1;
8972   /* Output params */
8973   hci_le_big_terminate_sync_rp0 *rp0 = (hci_le_big_terminate_sync_rp0 *) (buffer_out + 6);
8974 
8975   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
8976   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
8977   if(buffer_in_length != 1)
8978   {
8979     goto fail;
8980   }
8981 
8982   rp0->Status = hci_le_big_terminate_sync(cp0->BIG_Handle /* 1 */);
8983 fail:
8984   rp0->BIG_Handle = cp0->BIG_Handle;
8985   buffer_out[0] = 0x04;
8986   buffer_out[1] = 0x0E;
8987   buffer_out[2] = output_size + 3;
8988   buffer_out[3] = 0x01;
8989   buffer_out[4] = 0x6c;
8990   buffer_out[5] = 0x20;
8991   return (output_size + 6);
8992 }
8993 #endif
8994 
8995 #if (!defined(HCI_LE_REQUEST_PEER_SCA_ENABLED) || HCI_LE_REQUEST_PEER_SCA_ENABLED) && !HCI_LE_REQUEST_PEER_SCA_FORCE_DISABLED
8996 /* tBleStatus hci_le_request_peer_sca(uint16_t Connection_Handle);
8997  */
8998 /* Command len: 2 */
8999 /* Response len: 1 */
hci_le_request_peer_sca_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9000 uint16_t hci_le_request_peer_sca_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9001 {
9002   /* Input params */
9003   hci_le_request_peer_sca_cp0 *cp0 = (hci_le_request_peer_sca_cp0 *)(buffer_in + (0));
9004 
9005   int output_size = 1;
9006   /* Output params */
9007   uint8_t *status = (uint8_t *) (buffer_out + 3);
9008 
9009   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9010   if (buffer_out_max_length < (1 + 6)) { return 0; }
9011   if(buffer_in_length != 2)
9012   {
9013     goto fail;
9014   }
9015 
9016   *status = hci_le_request_peer_sca(cp0->Connection_Handle /* 2 */);
9017 fail:
9018   buffer_out[0] = 0x04;
9019   buffer_out[1] = 0x0F;
9020   buffer_out[2] = output_size + 3;
9021   buffer_out[4] = 0x01;
9022   buffer_out[5] = 0x6d;
9023   buffer_out[6] = 0x20;
9024   return (output_size + 6);
9025 }
9026 #endif
9027 
9028 #if (!defined(HCI_LE_SETUP_ISO_DATA_PATH_ENABLED) || HCI_LE_SETUP_ISO_DATA_PATH_ENABLED) && !HCI_LE_SETUP_ISO_DATA_PATH_FORCE_DISABLED
9029 /* tBleStatus hci_le_setup_iso_data_path(uint16_t Connection_Handle,
9030                                       uint8_t Data_Path_Direction,
9031                                       uint8_t Data_Path_ID,
9032                                       uint8_t Codec_ID[5],
9033                                       uint8_t Controller_Delay[3],
9034                                       uint8_t Codec_Configuration_Length,
9035                                       uint8_t Codec_Configuration[]);
9036  */
9037 /* Command len: 2 + 1 + 1 + 5 + 3 + 1 + cp0->Codec_Configuration_Length * (sizeof(uint8_t)) */
9038 /* Response len: 1 + 2 */
hci_le_setup_iso_data_path_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9039 uint16_t hci_le_setup_iso_data_path_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9040 {
9041   /* Input params */
9042   hci_le_setup_iso_data_path_cp0 *cp0 = (hci_le_setup_iso_data_path_cp0 *)(buffer_in + (0));
9043 
9044   int output_size = 1 + 2;
9045   /* Output params */
9046   hci_le_setup_iso_data_path_rp0 *rp0 = (hci_le_setup_iso_data_path_rp0 *) (buffer_out + 6);
9047 
9048   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9049   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9050   if(buffer_in_length != 2 + 1 + 1 + 5 + 3 + 1 + cp0->Codec_Configuration_Length * (sizeof(uint8_t)))
9051   {
9052     goto fail;
9053   }
9054 
9055   rp0->Status = hci_le_setup_iso_data_path(cp0->Connection_Handle /* 2 */,
9056                                            cp0->Data_Path_Direction /* 1 */,
9057                                            cp0->Data_Path_ID /* 1 */,
9058                                            cp0->Codec_ID /* 5 */,
9059                                            cp0->Controller_Delay /* 3 */,
9060                                            cp0->Codec_Configuration_Length /* 1 */,
9061                                            cp0->Codec_Configuration /* cp0->Codec_Configuration_Length * (sizeof(uint8_t)) */);
9062 fail:
9063   rp0->Connection_Handle = cp0->Connection_Handle;
9064   buffer_out[0] = 0x04;
9065   buffer_out[1] = 0x0E;
9066   buffer_out[2] = output_size + 3;
9067   buffer_out[3] = 0x01;
9068   buffer_out[4] = 0x6e;
9069   buffer_out[5] = 0x20;
9070   return (output_size + 6);
9071 }
9072 #endif
9073 
9074 #if (!defined(HCI_LE_REMOVE_ISO_DATA_PATH_ENABLED) || HCI_LE_REMOVE_ISO_DATA_PATH_ENABLED) && !HCI_LE_REMOVE_ISO_DATA_PATH_FORCE_DISABLED
9075 /* tBleStatus hci_le_remove_iso_data_path(uint16_t Connection_Handle,
9076                                        uint8_t Data_Path_Direction);
9077  */
9078 /* Command len: 2 + 1 */
9079 /* Response len: 1 + 2 */
hci_le_remove_iso_data_path_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9080 uint16_t hci_le_remove_iso_data_path_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9081 {
9082   /* Input params */
9083   hci_le_remove_iso_data_path_cp0 *cp0 = (hci_le_remove_iso_data_path_cp0 *)(buffer_in + (0));
9084 
9085   int output_size = 1 + 2;
9086   /* Output params */
9087   hci_le_remove_iso_data_path_rp0 *rp0 = (hci_le_remove_iso_data_path_rp0 *) (buffer_out + 6);
9088 
9089   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9090   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9091   if(buffer_in_length != 2 + 1)
9092   {
9093     goto fail;
9094   }
9095 
9096   rp0->Status = hci_le_remove_iso_data_path(cp0->Connection_Handle /* 2 */,
9097                                             cp0->Data_Path_Direction /* 1 */);
9098 fail:
9099   rp0->Connection_Handle = cp0->Connection_Handle;
9100   buffer_out[0] = 0x04;
9101   buffer_out[1] = 0x0E;
9102   buffer_out[2] = output_size + 3;
9103   buffer_out[3] = 0x01;
9104   buffer_out[4] = 0x6f;
9105   buffer_out[5] = 0x20;
9106   return (output_size + 6);
9107 }
9108 #endif
9109 
9110 #if (!defined(HCI_LE_ISO_TRANSMIT_TEST_ENABLED) || HCI_LE_ISO_TRANSMIT_TEST_ENABLED) && !HCI_LE_ISO_TRANSMIT_TEST_FORCE_DISABLED
9111 /* tBleStatus hci_le_iso_transmit_test(uint16_t Connection_Handle,
9112                                     uint8_t Payload_Type);
9113  */
9114 /* Command len: 2 + 1 */
9115 /* Response len: 1 + 2 */
hci_le_iso_transmit_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9116 uint16_t hci_le_iso_transmit_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9117 {
9118   /* Input params */
9119   hci_le_iso_transmit_test_cp0 *cp0 = (hci_le_iso_transmit_test_cp0 *)(buffer_in + (0));
9120 
9121   int output_size = 1 + 2;
9122   /* Output params */
9123   hci_le_iso_transmit_test_rp0 *rp0 = (hci_le_iso_transmit_test_rp0 *) (buffer_out + 6);
9124 
9125   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9126   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9127   if(buffer_in_length != 2 + 1)
9128   {
9129     goto fail;
9130   }
9131 
9132   rp0->Status = hci_le_iso_transmit_test(cp0->Connection_Handle /* 2 */,
9133                                          cp0->Payload_Type /* 1 */);
9134 fail:
9135   rp0->Connection_Handle = cp0->Connection_Handle;
9136   buffer_out[0] = 0x04;
9137   buffer_out[1] = 0x0E;
9138   buffer_out[2] = output_size + 3;
9139   buffer_out[3] = 0x01;
9140   buffer_out[4] = 0x70;
9141   buffer_out[5] = 0x20;
9142   return (output_size + 6);
9143 }
9144 #endif
9145 
9146 #if (!defined(HCI_LE_ISO_RECEIVE_TEST_ENABLED) || HCI_LE_ISO_RECEIVE_TEST_ENABLED) && !HCI_LE_ISO_RECEIVE_TEST_FORCE_DISABLED
9147 /* tBleStatus hci_le_iso_receive_test(uint16_t Connection_Handle,
9148                                    uint8_t Payload_Type);
9149  */
9150 /* Command len: 2 + 1 */
9151 /* Response len: 1 + 2 */
hci_le_iso_receive_test_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9152 uint16_t hci_le_iso_receive_test_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9153 {
9154   /* Input params */
9155   hci_le_iso_receive_test_cp0 *cp0 = (hci_le_iso_receive_test_cp0 *)(buffer_in + (0));
9156 
9157   int output_size = 1 + 2;
9158   /* Output params */
9159   hci_le_iso_receive_test_rp0 *rp0 = (hci_le_iso_receive_test_rp0 *) (buffer_out + 6);
9160 
9161   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9162   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9163   if(buffer_in_length != 2 + 1)
9164   {
9165     goto fail;
9166   }
9167 
9168   rp0->Status = hci_le_iso_receive_test(cp0->Connection_Handle /* 2 */,
9169                                         cp0->Payload_Type /* 1 */);
9170 fail:
9171   rp0->Connection_Handle = cp0->Connection_Handle;
9172   buffer_out[0] = 0x04;
9173   buffer_out[1] = 0x0E;
9174   buffer_out[2] = output_size + 3;
9175   buffer_out[3] = 0x01;
9176   buffer_out[4] = 0x71;
9177   buffer_out[5] = 0x20;
9178   return (output_size + 6);
9179 }
9180 #endif
9181 
9182 #if (!defined(HCI_LE_ISO_READ_TEST_COUNTERS_ENABLED) || HCI_LE_ISO_READ_TEST_COUNTERS_ENABLED) && !HCI_LE_ISO_READ_TEST_COUNTERS_FORCE_DISABLED
9183 /* tBleStatus hci_le_iso_read_test_counters(uint16_t Connection_Handle,
9184                                          uint32_t *Received_Packet_Count,
9185                                          uint32_t *Missed_Packet_Count,
9186                                          uint32_t *Failed_Packet_Count);
9187  */
9188 /* Command len: 2 */
9189 /* Response len: 1 + 2 + 4 + 4 + 4 */
hci_le_iso_read_test_counters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9190 uint16_t hci_le_iso_read_test_counters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9191 {
9192   /* Input params */
9193   hci_le_iso_read_test_counters_cp0 *cp0 = (hci_le_iso_read_test_counters_cp0 *)(buffer_in + (0));
9194 
9195   int output_size = 1 + 2 + 4 + 4 + 4;
9196   /* Output params */
9197   hci_le_iso_read_test_counters_rp0 *rp0 = (hci_le_iso_read_test_counters_rp0 *) (buffer_out + 6);
9198   uint32_t Received_Packet_Count = 0;
9199   uint32_t Missed_Packet_Count = 0;
9200   uint32_t Failed_Packet_Count = 0;
9201 
9202   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9203   if (buffer_out_max_length < (1 + 2 + 4 + 4 + 4 + 6)) { return 0; }
9204   if(buffer_in_length != 2)
9205   {
9206     goto fail;
9207   }
9208 
9209   rp0->Status = hci_le_iso_read_test_counters(cp0->Connection_Handle /* 2 */,
9210                                               &Received_Packet_Count,
9211                                               &Missed_Packet_Count,
9212                                               &Failed_Packet_Count);
9213 fail:
9214   rp0->Connection_Handle = cp0->Connection_Handle;
9215   rp0->Received_Packet_Count = Received_Packet_Count;
9216   rp0->Missed_Packet_Count = Missed_Packet_Count;
9217   rp0->Failed_Packet_Count = Failed_Packet_Count;
9218   buffer_out[0] = 0x04;
9219   buffer_out[1] = 0x0E;
9220   buffer_out[2] = output_size + 3;
9221   buffer_out[3] = 0x01;
9222   buffer_out[4] = 0x72;
9223   buffer_out[5] = 0x20;
9224   return (output_size + 6);
9225 }
9226 #endif
9227 
9228 #if (!defined(HCI_LE_ISO_TEST_END_ENABLED) || HCI_LE_ISO_TEST_END_ENABLED) && !HCI_LE_ISO_TEST_END_FORCE_DISABLED
9229 /* tBleStatus hci_le_iso_test_end(uint16_t Connection_Handle,
9230                                uint32_t *Received_Packet_Count,
9231                                uint32_t *Missed_Packet_Count,
9232                                uint32_t *Failed_Packet_Count);
9233  */
9234 /* Command len: 2 */
9235 /* Response len: 1 + 2 + 4 + 4 + 4 */
hci_le_iso_test_end_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9236 uint16_t hci_le_iso_test_end_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9237 {
9238   /* Input params */
9239   hci_le_iso_test_end_cp0 *cp0 = (hci_le_iso_test_end_cp0 *)(buffer_in + (0));
9240 
9241   int output_size = 1 + 2 + 4 + 4 + 4;
9242   /* Output params */
9243   hci_le_iso_test_end_rp0 *rp0 = (hci_le_iso_test_end_rp0 *) (buffer_out + 6);
9244   uint32_t Received_Packet_Count = 0;
9245   uint32_t Missed_Packet_Count = 0;
9246   uint32_t Failed_Packet_Count = 0;
9247 
9248   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9249   if (buffer_out_max_length < (1 + 2 + 4 + 4 + 4 + 6)) { return 0; }
9250   if(buffer_in_length != 2)
9251   {
9252     goto fail;
9253   }
9254 
9255   rp0->Status = hci_le_iso_test_end(cp0->Connection_Handle /* 2 */,
9256                                     &Received_Packet_Count,
9257                                     &Missed_Packet_Count,
9258                                     &Failed_Packet_Count);
9259 fail:
9260   rp0->Connection_Handle = cp0->Connection_Handle;
9261   rp0->Received_Packet_Count = Received_Packet_Count;
9262   rp0->Missed_Packet_Count = Missed_Packet_Count;
9263   rp0->Failed_Packet_Count = Failed_Packet_Count;
9264   buffer_out[0] = 0x04;
9265   buffer_out[1] = 0x0E;
9266   buffer_out[2] = output_size + 3;
9267   buffer_out[3] = 0x01;
9268   buffer_out[4] = 0x73;
9269   buffer_out[5] = 0x20;
9270   return (output_size + 6);
9271 }
9272 #endif
9273 
9274 #if (!defined(HCI_LE_SET_HOST_FEATURE_ENABLED) || HCI_LE_SET_HOST_FEATURE_ENABLED) && !HCI_LE_SET_HOST_FEATURE_FORCE_DISABLED
9275 /* tBleStatus hci_le_set_host_feature(uint8_t Bit_Number,
9276                                    uint8_t Bit_Value);
9277  */
9278 /* Command len: 1 + 1 */
9279 /* Response len: 1 */
hci_le_set_host_feature_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9280 uint16_t hci_le_set_host_feature_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9281 {
9282   /* Input params */
9283   hci_le_set_host_feature_cp0 *cp0 = (hci_le_set_host_feature_cp0 *)(buffer_in + (0));
9284 
9285   int output_size = 1;
9286   /* Output params */
9287   uint8_t *status = (uint8_t *) (buffer_out + 6);
9288 
9289   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9290   if (buffer_out_max_length < (1 + 6)) { return 0; }
9291   if(buffer_in_length != 1 + 1)
9292   {
9293     goto fail;
9294   }
9295 
9296   *status = hci_le_set_host_feature(cp0->Bit_Number /* 1 */,
9297                                     cp0->Bit_Value /* 1 */);
9298 fail:
9299   buffer_out[0] = 0x04;
9300   buffer_out[1] = 0x0E;
9301   buffer_out[2] = output_size + 3;
9302   buffer_out[3] = 0x01;
9303   buffer_out[4] = 0x74;
9304   buffer_out[5] = 0x20;
9305   return (output_size + 6);
9306 }
9307 #endif
9308 
9309 #if (!defined(HCI_LE_READ_ISO_LINK_QUALITY_ENABLED) || HCI_LE_READ_ISO_LINK_QUALITY_ENABLED) && !HCI_LE_READ_ISO_LINK_QUALITY_FORCE_DISABLED
9310 /* tBleStatus hci_le_read_iso_link_quality(uint16_t Connection_Handle,
9311                                         uint32_t *Tx_UnACKed_Packets,
9312                                         uint32_t *Tx_Flushed_Packets,
9313                                         uint32_t *Tx_Last_Subevent_Packets,
9314                                         uint32_t *Retransmitted_Packets,
9315                                         uint32_t *CRC_Error_Packets,
9316                                         uint32_t *Rx_Unreceived_Packets,
9317                                         uint32_t *Duplicate_Packets);
9318  */
9319 /* Command len: 2 */
9320 /* Response len: 1 + 2 + 4 + 4 + 4 + 4 + 4 + 4 + 4 */
hci_le_read_iso_link_quality_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9321 uint16_t hci_le_read_iso_link_quality_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9322 {
9323   /* Input params */
9324   hci_le_read_iso_link_quality_cp0 *cp0 = (hci_le_read_iso_link_quality_cp0 *)(buffer_in + (0));
9325 
9326   int output_size = 1 + 2 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
9327   /* Output params */
9328   hci_le_read_iso_link_quality_rp0 *rp0 = (hci_le_read_iso_link_quality_rp0 *) (buffer_out + 6);
9329   uint32_t Tx_UnACKed_Packets = 0;
9330   uint32_t Tx_Flushed_Packets = 0;
9331   uint32_t Tx_Last_Subevent_Packets = 0;
9332   uint32_t Retransmitted_Packets = 0;
9333   uint32_t CRC_Error_Packets = 0;
9334   uint32_t Rx_Unreceived_Packets = 0;
9335   uint32_t Duplicate_Packets = 0;
9336 
9337   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9338   if (buffer_out_max_length < (1 + 2 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 6)) { return 0; }
9339   if(buffer_in_length != 2)
9340   {
9341     goto fail;
9342   }
9343 
9344   rp0->Status = hci_le_read_iso_link_quality(cp0->Connection_Handle /* 2 */,
9345                                              &Tx_UnACKed_Packets,
9346                                              &Tx_Flushed_Packets,
9347                                              &Tx_Last_Subevent_Packets,
9348                                              &Retransmitted_Packets,
9349                                              &CRC_Error_Packets,
9350                                              &Rx_Unreceived_Packets,
9351                                              &Duplicate_Packets);
9352 fail:
9353   rp0->Connection_Handle = cp0->Connection_Handle;
9354   rp0->Tx_UnACKed_Packets = Tx_UnACKed_Packets;
9355   rp0->Tx_Flushed_Packets = Tx_Flushed_Packets;
9356   rp0->Tx_Last_Subevent_Packets = Tx_Last_Subevent_Packets;
9357   rp0->Retransmitted_Packets = Retransmitted_Packets;
9358   rp0->CRC_Error_Packets = CRC_Error_Packets;
9359   rp0->Rx_Unreceived_Packets = Rx_Unreceived_Packets;
9360   rp0->Duplicate_Packets = Duplicate_Packets;
9361   buffer_out[0] = 0x04;
9362   buffer_out[1] = 0x0E;
9363   buffer_out[2] = output_size + 3;
9364   buffer_out[3] = 0x01;
9365   buffer_out[4] = 0x75;
9366   buffer_out[5] = 0x20;
9367   return (output_size + 6);
9368 }
9369 #endif
9370 
9371 #if (!defined(HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
9372 /* tBleStatus hci_le_enhanced_read_transmit_power_level(uint16_t Connection_Handle,
9373                                                      uint8_t PHY,
9374                                                      int8_t *Current_Transmit_Power_Level,
9375                                                      int8_t *Max_Transmit_Power_Level);
9376  */
9377 /* Command len: 2 + 1 */
9378 /* Response len: 1 + 2 + 1 + 1 + 1 */
hci_le_enhanced_read_transmit_power_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9379 uint16_t hci_le_enhanced_read_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9380 {
9381   /* Input params */
9382   hci_le_enhanced_read_transmit_power_level_cp0 *cp0 = (hci_le_enhanced_read_transmit_power_level_cp0 *)(buffer_in + (0));
9383 
9384   int output_size = 1 + 2 + 1 + 1 + 1;
9385   /* Output params */
9386   hci_le_enhanced_read_transmit_power_level_rp0 *rp0 = (hci_le_enhanced_read_transmit_power_level_rp0 *) (buffer_out + 6);
9387   int8_t Current_Transmit_Power_Level = 0;
9388   int8_t Max_Transmit_Power_Level = 0;
9389 
9390   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9391   if (buffer_out_max_length < (1 + 2 + 1 + 1 + 1 + 6)) { return 0; }
9392   if(buffer_in_length != 2 + 1)
9393   {
9394     goto fail;
9395   }
9396 
9397   rp0->Status = hci_le_enhanced_read_transmit_power_level(cp0->Connection_Handle /* 2 */,
9398                                                           cp0->PHY /* 1 */,
9399                                                           &Current_Transmit_Power_Level,
9400                                                           &Max_Transmit_Power_Level);
9401 fail:
9402   rp0->Connection_Handle = cp0->Connection_Handle;
9403   rp0->PHY = cp0->PHY;
9404   rp0->Current_Transmit_Power_Level = Current_Transmit_Power_Level;
9405   rp0->Max_Transmit_Power_Level = Max_Transmit_Power_Level;
9406   buffer_out[0] = 0x04;
9407   buffer_out[1] = 0x0E;
9408   buffer_out[2] = output_size + 3;
9409   buffer_out[3] = 0x01;
9410   buffer_out[4] = 0x76;
9411   buffer_out[5] = 0x20;
9412   return (output_size + 6);
9413 }
9414 #endif
9415 
9416 #if (!defined(HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_ENABLED) || HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_ENABLED) && !HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_FORCE_DISABLED
9417 /* tBleStatus hci_le_read_remote_transmit_power_level(uint16_t Connection_Handle,
9418                                                    uint8_t PHY);
9419  */
9420 /* Command len: 2 + 1 */
9421 /* Response len: 1 */
hci_le_read_remote_transmit_power_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9422 uint16_t hci_le_read_remote_transmit_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9423 {
9424   /* Input params */
9425   hci_le_read_remote_transmit_power_level_cp0 *cp0 = (hci_le_read_remote_transmit_power_level_cp0 *)(buffer_in + (0));
9426 
9427   int output_size = 1;
9428   /* Output params */
9429   uint8_t *status = (uint8_t *) (buffer_out + 3);
9430 
9431   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9432   if (buffer_out_max_length < (1 + 6)) { return 0; }
9433   if(buffer_in_length != 2 + 1)
9434   {
9435     goto fail;
9436   }
9437 
9438   *status = hci_le_read_remote_transmit_power_level(cp0->Connection_Handle /* 2 */,
9439                                                     cp0->PHY /* 1 */);
9440 fail:
9441   buffer_out[0] = 0x04;
9442   buffer_out[1] = 0x0F;
9443   buffer_out[2] = output_size + 3;
9444   buffer_out[4] = 0x01;
9445   buffer_out[5] = 0x77;
9446   buffer_out[6] = 0x20;
9447   return (output_size + 6);
9448 }
9449 #endif
9450 
9451 #if (!defined(HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_ENABLED) || HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_ENABLED) && !HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_FORCE_DISABLED
9452 /* tBleStatus hci_le_set_path_loss_reporting_parameters(uint16_t Connection_Handle,
9453                                                      uint8_t High_Threshold,
9454                                                      uint8_t High_Hysteresis,
9455                                                      uint8_t Low_Threshold,
9456                                                      uint8_t Low_Hysteresis,
9457                                                      uint16_t Min_Time_Spent);
9458  */
9459 /* Command len: 2 + 1 + 1 + 1 + 1 + 2 */
9460 /* Response len: 1 + 2 */
hci_le_set_path_loss_reporting_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9461 uint16_t hci_le_set_path_loss_reporting_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9462 {
9463   /* Input params */
9464   hci_le_set_path_loss_reporting_parameters_cp0 *cp0 = (hci_le_set_path_loss_reporting_parameters_cp0 *)(buffer_in + (0));
9465 
9466   int output_size = 1 + 2;
9467   /* Output params */
9468   hci_le_set_path_loss_reporting_parameters_rp0 *rp0 = (hci_le_set_path_loss_reporting_parameters_rp0 *) (buffer_out + 6);
9469 
9470   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9471   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9472   if(buffer_in_length != 2 + 1 + 1 + 1 + 1 + 2)
9473   {
9474     goto fail;
9475   }
9476 
9477   rp0->Status = hci_le_set_path_loss_reporting_parameters(cp0->Connection_Handle /* 2 */,
9478                                                           cp0->High_Threshold /* 1 */,
9479                                                           cp0->High_Hysteresis /* 1 */,
9480                                                           cp0->Low_Threshold /* 1 */,
9481                                                           cp0->Low_Hysteresis /* 1 */,
9482                                                           cp0->Min_Time_Spent /* 2 */);
9483 fail:
9484   rp0->Connection_Handle = cp0->Connection_Handle;
9485   buffer_out[0] = 0x04;
9486   buffer_out[1] = 0x0E;
9487   buffer_out[2] = output_size + 3;
9488   buffer_out[3] = 0x01;
9489   buffer_out[4] = 0x78;
9490   buffer_out[5] = 0x20;
9491   return (output_size + 6);
9492 }
9493 #endif
9494 
9495 #if (!defined(HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_ENABLED) || HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_ENABLED) && !HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_FORCE_DISABLED
9496 /* tBleStatus hci_le_set_path_loss_reporting_enable(uint16_t Connection_Handle,
9497                                                  uint8_t Enable);
9498  */
9499 /* Command len: 2 + 1 */
9500 /* Response len: 1 + 2 */
hci_le_set_path_loss_reporting_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9501 uint16_t hci_le_set_path_loss_reporting_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9502 {
9503   /* Input params */
9504   hci_le_set_path_loss_reporting_enable_cp0 *cp0 = (hci_le_set_path_loss_reporting_enable_cp0 *)(buffer_in + (0));
9505 
9506   int output_size = 1 + 2;
9507   /* Output params */
9508   hci_le_set_path_loss_reporting_enable_rp0 *rp0 = (hci_le_set_path_loss_reporting_enable_rp0 *) (buffer_out + 6);
9509 
9510   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9511   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9512   if(buffer_in_length != 2 + 1)
9513   {
9514     goto fail;
9515   }
9516 
9517   rp0->Status = hci_le_set_path_loss_reporting_enable(cp0->Connection_Handle /* 2 */,
9518                                                       cp0->Enable /* 1 */);
9519 fail:
9520   rp0->Connection_Handle = cp0->Connection_Handle;
9521   buffer_out[0] = 0x04;
9522   buffer_out[1] = 0x0E;
9523   buffer_out[2] = output_size + 3;
9524   buffer_out[3] = 0x01;
9525   buffer_out[4] = 0x79;
9526   buffer_out[5] = 0x20;
9527   return (output_size + 6);
9528 }
9529 #endif
9530 
9531 #if (!defined(HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_ENABLED) || HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_ENABLED) && !HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_FORCE_DISABLED
9532 /* tBleStatus hci_le_set_transmit_power_reporting_enable(uint16_t Connection_Handle,
9533                                                       uint8_t Local_Enable,
9534                                                       uint8_t Remote_Enable);
9535  */
9536 /* Command len: 2 + 1 + 1 */
9537 /* Response len: 1 + 2 */
hci_le_set_transmit_power_reporting_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9538 uint16_t hci_le_set_transmit_power_reporting_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9539 {
9540   /* Input params */
9541   hci_le_set_transmit_power_reporting_enable_cp0 *cp0 = (hci_le_set_transmit_power_reporting_enable_cp0 *)(buffer_in + (0));
9542 
9543   int output_size = 1 + 2;
9544   /* Output params */
9545   hci_le_set_transmit_power_reporting_enable_rp0 *rp0 = (hci_le_set_transmit_power_reporting_enable_rp0 *) (buffer_out + 6);
9546 
9547   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9548   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9549   if(buffer_in_length != 2 + 1 + 1)
9550   {
9551     goto fail;
9552   }
9553 
9554   rp0->Status = hci_le_set_transmit_power_reporting_enable(cp0->Connection_Handle /* 2 */,
9555                                                            cp0->Local_Enable /* 1 */,
9556                                                            cp0->Remote_Enable /* 1 */);
9557 fail:
9558   rp0->Connection_Handle = cp0->Connection_Handle;
9559   buffer_out[0] = 0x04;
9560   buffer_out[1] = 0x0E;
9561   buffer_out[2] = output_size + 3;
9562   buffer_out[3] = 0x01;
9563   buffer_out[4] = 0x7a;
9564   buffer_out[5] = 0x20;
9565   return (output_size + 6);
9566 }
9567 #endif
9568 
9569 #if (!defined(HCI_LE_TRANSMITTER_TEST_V4_ENABLED) || HCI_LE_TRANSMITTER_TEST_V4_ENABLED) && !HCI_LE_TRANSMITTER_TEST_V4_FORCE_DISABLED
9570 /* tBleStatus hci_le_transmitter_test_v4(uint8_t TX_Channel,
9571                                       uint8_t Test_Data_Length,
9572                                       uint8_t Packet_Payload,
9573                                       uint8_t PHY,
9574                                       uint8_t CTE_Length,
9575                                       uint8_t CTE_Type,
9576                                       uint8_t Switching_Pattern_Length,
9577                                       uint8_t Antenna_IDs[],
9578                                       int8_t Transmit_Power_Level);
9579  */
9580 /* Command len: 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) + 1 */
9581 /* Response len: 1 */
hci_le_transmitter_test_v4_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9582 uint16_t hci_le_transmitter_test_v4_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9583 {
9584   /* Input params */
9585   hci_le_transmitter_test_v4_cp0 *cp0 = (hci_le_transmitter_test_v4_cp0 *)(buffer_in + (0));
9586   hci_le_transmitter_test_v4_cp1 *cp1 = (hci_le_transmitter_test_v4_cp1 *)(buffer_in + (0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t))));
9587 
9588   int output_size = 1;
9589   /* Output params */
9590   uint8_t *status = (uint8_t *) (buffer_out + 6);
9591 
9592   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9593   if (buffer_out_max_length < (1 + 6)) { return 0; }
9594   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) + 1)
9595   {
9596     goto fail;
9597   }
9598 
9599   *status = hci_le_transmitter_test_v4(cp0->TX_Channel /* 1 */,
9600                                        cp0->Test_Data_Length /* 1 */,
9601                                        cp0->Packet_Payload /* 1 */,
9602                                        cp0->PHY /* 1 */,
9603                                        cp0->CTE_Length /* 1 */,
9604                                        cp0->CTE_Type /* 1 */,
9605                                        cp0->Switching_Pattern_Length /* 1 */,
9606                                        cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */,
9607                                        cp1->Transmit_Power_Level /* 1 */);
9608 fail:
9609   buffer_out[0] = 0x04;
9610   buffer_out[1] = 0x0E;
9611   buffer_out[2] = output_size + 3;
9612   buffer_out[3] = 0x01;
9613   buffer_out[4] = 0x7b;
9614   buffer_out[5] = 0x20;
9615   return (output_size + 6);
9616 }
9617 #endif
9618 
9619 #if (!defined(HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_ENABLED) || HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_ENABLED) && !HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_FORCE_DISABLED
9620 /* tBleStatus hci_le_set_data_related_address_changes(uint8_t Advertising_Handle,
9621                                                    uint8_t Change_Reasons);
9622  */
9623 /* Command len: 1 + 1 */
9624 /* Response len: 1 */
hci_le_set_data_related_address_changes_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9625 uint16_t hci_le_set_data_related_address_changes_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9626 {
9627   /* Input params */
9628   hci_le_set_data_related_address_changes_cp0 *cp0 = (hci_le_set_data_related_address_changes_cp0 *)(buffer_in + (0));
9629 
9630   int output_size = 1;
9631   /* Output params */
9632   uint8_t *status = (uint8_t *) (buffer_out + 6);
9633 
9634   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9635   if (buffer_out_max_length < (1 + 6)) { return 0; }
9636   if(buffer_in_length != 1 + 1)
9637   {
9638     goto fail;
9639   }
9640 
9641   *status = hci_le_set_data_related_address_changes(cp0->Advertising_Handle /* 1 */,
9642                                                     cp0->Change_Reasons /* 1 */);
9643 fail:
9644   buffer_out[0] = 0x04;
9645   buffer_out[1] = 0x0E;
9646   buffer_out[2] = output_size + 3;
9647   buffer_out[3] = 0x01;
9648   buffer_out[4] = 0x7c;
9649   buffer_out[5] = 0x20;
9650   return (output_size + 6);
9651 }
9652 #endif
9653 
9654 #if (!defined(HCI_LE_SET_DEFAULT_SUBRATE_ENABLED) || HCI_LE_SET_DEFAULT_SUBRATE_ENABLED) && !HCI_LE_SET_DEFAULT_SUBRATE_FORCE_DISABLED
9655 /* tBleStatus hci_le_set_default_subrate(uint16_t Subrate_Min,
9656                                       uint16_t Subrate_Max,
9657                                       uint16_t Max_Latency,
9658                                       uint16_t Continuation_Number,
9659                                       uint16_t Supervision_Timeout);
9660  */
9661 /* Command len: 2 + 2 + 2 + 2 + 2 */
9662 /* Response len: 1 */
hci_le_set_default_subrate_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9663 uint16_t hci_le_set_default_subrate_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9664 {
9665   /* Input params */
9666   hci_le_set_default_subrate_cp0 *cp0 = (hci_le_set_default_subrate_cp0 *)(buffer_in + (0));
9667 
9668   int output_size = 1;
9669   /* Output params */
9670   uint8_t *status = (uint8_t *) (buffer_out + 6);
9671 
9672   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9673   if (buffer_out_max_length < (1 + 6)) { return 0; }
9674   if(buffer_in_length != 2 + 2 + 2 + 2 + 2)
9675   {
9676     goto fail;
9677   }
9678 
9679   *status = hci_le_set_default_subrate(cp0->Subrate_Min /* 2 */,
9680                                        cp0->Subrate_Max /* 2 */,
9681                                        cp0->Max_Latency /* 2 */,
9682                                        cp0->Continuation_Number /* 2 */,
9683                                        cp0->Supervision_Timeout /* 2 */);
9684 fail:
9685   buffer_out[0] = 0x04;
9686   buffer_out[1] = 0x0E;
9687   buffer_out[2] = output_size + 3;
9688   buffer_out[3] = 0x01;
9689   buffer_out[4] = 0x7d;
9690   buffer_out[5] = 0x20;
9691   return (output_size + 6);
9692 }
9693 #endif
9694 
9695 #if (!defined(HCI_LE_SUBRATE_REQUEST_ENABLED) || HCI_LE_SUBRATE_REQUEST_ENABLED) && !HCI_LE_SUBRATE_REQUEST_FORCE_DISABLED
9696 /* tBleStatus hci_le_subrate_request(uint16_t Connection_Handle,
9697                                   uint16_t Subrate_Min,
9698                                   uint16_t Subrate_Max,
9699                                   uint16_t Max_Latency,
9700                                   uint16_t Continuation_Number,
9701                                   uint16_t Supervision_Timeout);
9702  */
9703 /* Command len: 2 + 2 + 2 + 2 + 2 + 2 */
9704 /* Response len: 1 */
hci_le_subrate_request_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9705 uint16_t hci_le_subrate_request_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9706 {
9707   /* Input params */
9708   hci_le_subrate_request_cp0 *cp0 = (hci_le_subrate_request_cp0 *)(buffer_in + (0));
9709 
9710   int output_size = 1;
9711   /* Output params */
9712   uint8_t *status = (uint8_t *) (buffer_out + 3);
9713 
9714   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9715   if (buffer_out_max_length < (1 + 6)) { return 0; }
9716   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + 2)
9717   {
9718     goto fail;
9719   }
9720 
9721   *status = hci_le_subrate_request(cp0->Connection_Handle /* 2 */,
9722                                    cp0->Subrate_Min /* 2 */,
9723                                    cp0->Subrate_Max /* 2 */,
9724                                    cp0->Max_Latency /* 2 */,
9725                                    cp0->Continuation_Number /* 2 */,
9726                                    cp0->Supervision_Timeout /* 2 */);
9727 fail:
9728   buffer_out[0] = 0x04;
9729   buffer_out[1] = 0x0F;
9730   buffer_out[2] = output_size + 3;
9731   buffer_out[4] = 0x01;
9732   buffer_out[5] = 0x7e;
9733   buffer_out[6] = 0x20;
9734   return (output_size + 6);
9735 }
9736 #endif
9737 
9738 #if (!defined(HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_ENABLED) || HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_ENABLED) && !HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_FORCE_DISABLED
9739 /* tBleStatus hci_le_set_extended_advertising_parameters_v2(uint8_t Advertising_Handle,
9740                                                          uint16_t Advertising_Event_Properties,
9741                                                          uint8_t Primary_Advertising_Interval_Min[3],
9742                                                          uint8_t Primary_Advertising_Interval_Max[3],
9743                                                          uint8_t Primary_Advertising_Channel_Map,
9744                                                          uint8_t Own_Address_Type,
9745                                                          uint8_t Peer_Address_Type,
9746                                                          uint8_t Peer_Address[6],
9747                                                          uint8_t Advertising_Filter_Policy,
9748                                                          int8_t Advertising_Tx_Power,
9749                                                          uint8_t Primary_Advertising_PHY,
9750                                                          uint8_t Secondary_Advertising_Max_Skip,
9751                                                          uint8_t Secondary_Advertising_PHY,
9752                                                          uint8_t Advertising_SID,
9753                                                          uint8_t Scan_Request_Notification_Enable,
9754                                                          uint8_t Primary_Advertising_PHY_Options,
9755                                                          uint8_t Secondary_Advertising_PHY_Options,
9756                                                          int8_t *Selected_Tx_Power);
9757  */
9758 /* Command len: 1 + 2 + 3 + 3 + 1 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 */
9759 /* Response len: 1 + 1 */
hci_le_set_extended_advertising_parameters_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9760 uint16_t hci_le_set_extended_advertising_parameters_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9761 {
9762   /* Input params */
9763   hci_le_set_extended_advertising_parameters_v2_cp0 *cp0 = (hci_le_set_extended_advertising_parameters_v2_cp0 *)(buffer_in + (0));
9764 
9765   int output_size = 1 + 1;
9766   /* Output params */
9767   hci_le_set_extended_advertising_parameters_v2_rp0 *rp0 = (hci_le_set_extended_advertising_parameters_v2_rp0 *) (buffer_out + 6);
9768   int8_t Selected_Tx_Power = 0;
9769 
9770   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9771   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
9772   if(buffer_in_length != 1 + 2 + 3 + 3 + 1 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1)
9773   {
9774     goto fail;
9775   }
9776 
9777   rp0->Status = hci_le_set_extended_advertising_parameters_v2(cp0->Advertising_Handle /* 1 */,
9778                                                               cp0->Advertising_Event_Properties /* 2 */,
9779                                                               cp0->Primary_Advertising_Interval_Min /* 3 */,
9780                                                               cp0->Primary_Advertising_Interval_Max /* 3 */,
9781                                                               cp0->Primary_Advertising_Channel_Map /* 1 */,
9782                                                               cp0->Own_Address_Type /* 1 */,
9783                                                               cp0->Peer_Address_Type /* 1 */,
9784                                                               cp0->Peer_Address /* 6 */,
9785                                                               cp0->Advertising_Filter_Policy /* 1 */,
9786                                                               cp0->Advertising_Tx_Power /* 1 */,
9787                                                               cp0->Primary_Advertising_PHY /* 1 */,
9788                                                               cp0->Secondary_Advertising_Max_Skip /* 1 */,
9789                                                               cp0->Secondary_Advertising_PHY /* 1 */,
9790                                                               cp0->Advertising_SID /* 1 */,
9791                                                               cp0->Scan_Request_Notification_Enable /* 1 */,
9792                                                               cp0->Primary_Advertising_PHY_Options /* 1 */,
9793                                                               cp0->Secondary_Advertising_PHY_Options /* 1 */,
9794                                                               &Selected_Tx_Power);
9795 fail:
9796   rp0->Selected_Tx_Power = Selected_Tx_Power;
9797   buffer_out[0] = 0x04;
9798   buffer_out[1] = 0x0E;
9799   buffer_out[2] = output_size + 3;
9800   buffer_out[3] = 0x01;
9801   buffer_out[4] = 0x7f;
9802   buffer_out[5] = 0x20;
9803   return (output_size + 6);
9804 }
9805 #endif
9806 
9807 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_SUBEVENT_DATA_FORCE_DISABLED
9808 /* tBleStatus hci_le_set_periodic_advertising_subevent_data(uint8_t Advertising_Handle,
9809                                                          uint8_t Num_Subevents,
9810                                                          Subevent_Data_Parameters_t Subevent_Data_Parameters[]);
9811  */
9812 /* Command len: 1 + 1 + struct_length */
9813 /* Response len: 1 + 1 */
hci_le_set_periodic_advertising_subevent_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9814 uint16_t hci_le_set_periodic_advertising_subevent_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9815 {
9816   /* Input params */
9817   hci_le_set_periodic_advertising_subevent_data_cp0 *cp0 = (hci_le_set_periodic_advertising_subevent_data_cp0 *)(buffer_in + (0));
9818   Subevent_Data_Parameters_t Subevent_Data_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Subevent_Data_Parameters_t)];
9819 
9820   int output_size = 1 + 1;
9821   /* Output params */
9822   hci_le_set_periodic_advertising_subevent_data_rp0 *rp0 = (hci_le_set_periodic_advertising_subevent_data_rp0 *) (buffer_out + 6);
9823 
9824   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9825   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
9826   int i;
9827   int struct_length = 0;
9828   if(cp0->Num_Subevents > HCI_MAX_PAYLOAD_SIZE/sizeof(Subevent_Data_Parameters_t))
9829   {
9830     cp0->Num_Subevents = 0;
9831     goto fail;
9832   }
9833   for (i = 0; i < cp0->Num_Subevents; i++) {
9834     packed_Subevent_Data_Parameters_t *Subevent_Data_Parameters_tmp = (packed_Subevent_Data_Parameters_t *)(((uint8_t *)cp0->Subevent_Data_Parameters) + struct_length);
9835     Subevent_Data_Parameters[i].Subevent = Subevent_Data_Parameters_tmp->Subevent;
9836     struct_length += 1;
9837     Subevent_Data_Parameters[i].Response_Slot_Start = Subevent_Data_Parameters_tmp->Response_Slot_Start;
9838     struct_length += 1;
9839     Subevent_Data_Parameters[i].Response_Slot_Count = Subevent_Data_Parameters_tmp->Response_Slot_Count;
9840     struct_length += 1;
9841     Subevent_Data_Parameters[i].Subevent_Data_Length = Subevent_Data_Parameters_tmp->Subevent_Data_Length;
9842     struct_length += 1;
9843     Subevent_Data_Parameters[i].Subevent_Data = Subevent_Data_Parameters_tmp->Subevent_Data;
9844     struct_length += Subevent_Data_Parameters_tmp->Subevent_Data_Length;
9845   }
9846   if(buffer_in_length != 1 + 1 + struct_length)
9847   {
9848     goto fail;
9849   }
9850 
9851   rp0->Status = hci_le_set_periodic_advertising_subevent_data(cp0->Advertising_Handle /* 1 */,
9852                                                               cp0->Num_Subevents /* 1 */,
9853                                                               Subevent_Data_Parameters /* struct_length */);
9854 fail:
9855   rp0->Advertising_Handle = cp0->Advertising_Handle;
9856   buffer_out[0] = 0x04;
9857   buffer_out[1] = 0x0E;
9858   buffer_out[2] = output_size + 3;
9859   buffer_out[3] = 0x01;
9860   buffer_out[4] = 0x82;
9861   buffer_out[5] = 0x20;
9862   return (output_size + 6);
9863 }
9864 #endif
9865 
9866 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_RESPONSE_DATA_FORCE_DISABLED
9867 /* tBleStatus hci_le_set_periodic_advertising_response_data(uint16_t Sync_Handle,
9868                                                          uint16_t Request_Event,
9869                                                          uint8_t Request_Subevent,
9870                                                          uint8_t Response_Subevent,
9871                                                          uint8_t Response_Slot,
9872                                                          uint8_t Response_Data_Length,
9873                                                          uint8_t Response_Data[]);
9874  */
9875 /* Command len: 2 + 2 + 1 + 1 + 1 + 1 + cp0->Response_Data_Length * (sizeof(uint8_t)) */
9876 /* Response len: 1 + 2 */
hci_le_set_periodic_advertising_response_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9877 uint16_t hci_le_set_periodic_advertising_response_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9878 {
9879   /* Input params */
9880   hci_le_set_periodic_advertising_response_data_cp0 *cp0 = (hci_le_set_periodic_advertising_response_data_cp0 *)(buffer_in + (0));
9881 
9882   int output_size = 1 + 2;
9883   /* Output params */
9884   hci_le_set_periodic_advertising_response_data_rp0 *rp0 = (hci_le_set_periodic_advertising_response_data_rp0 *) (buffer_out + 6);
9885 
9886   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9887   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9888   if(buffer_in_length != 2 + 2 + 1 + 1 + 1 + 1 + cp0->Response_Data_Length * (sizeof(uint8_t)))
9889   {
9890     goto fail;
9891   }
9892 
9893   rp0->Status = hci_le_set_periodic_advertising_response_data(cp0->Sync_Handle /* 2 */,
9894                                                               cp0->Request_Event /* 2 */,
9895                                                               cp0->Request_Subevent /* 1 */,
9896                                                               cp0->Response_Subevent /* 1 */,
9897                                                               cp0->Response_Slot /* 1 */,
9898                                                               cp0->Response_Data_Length /* 1 */,
9899                                                               cp0->Response_Data /* cp0->Response_Data_Length * (sizeof(uint8_t)) */);
9900 fail:
9901   rp0->Sync_Handle = cp0->Sync_Handle;
9902   buffer_out[0] = 0x04;
9903   buffer_out[1] = 0x0E;
9904   buffer_out[2] = output_size + 3;
9905   buffer_out[3] = 0x01;
9906   buffer_out[4] = 0x83;
9907   buffer_out[5] = 0x20;
9908   return (output_size + 6);
9909 }
9910 #endif
9911 
9912 #if (!defined(HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_ENABLED) || HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_ENABLED) && !HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_FORCE_DISABLED
9913 /* tBleStatus hci_le_set_periodic_sync_subevent(uint16_t Sync_Handle,
9914                                              uint16_t Periodic_Advertising_Properties,
9915                                              uint8_t Num_Subevents,
9916                                              uint8_t Subevent[]);
9917  */
9918 /* Command len: 2 + 2 + 1 + cp0->Num_Subevents * (sizeof(uint8_t)) */
9919 /* Response len: 1 + 2 */
hci_le_set_periodic_sync_subevent_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9920 uint16_t hci_le_set_periodic_sync_subevent_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9921 {
9922   /* Input params */
9923   hci_le_set_periodic_sync_subevent_cp0 *cp0 = (hci_le_set_periodic_sync_subevent_cp0 *)(buffer_in + (0));
9924 
9925   int output_size = 1 + 2;
9926   /* Output params */
9927   hci_le_set_periodic_sync_subevent_rp0 *rp0 = (hci_le_set_periodic_sync_subevent_rp0 *) (buffer_out + 6);
9928 
9929   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9930   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
9931   if(buffer_in_length != 2 + 2 + 1 + cp0->Num_Subevents * (sizeof(uint8_t)))
9932   {
9933     goto fail;
9934   }
9935 
9936   rp0->Status = hci_le_set_periodic_sync_subevent(cp0->Sync_Handle /* 2 */,
9937                                                   cp0->Periodic_Advertising_Properties /* 2 */,
9938                                                   cp0->Num_Subevents /* 1 */,
9939                                                   cp0->Subevent /* cp0->Num_Subevents * (sizeof(uint8_t)) */);
9940 fail:
9941   rp0->Sync_Handle = cp0->Sync_Handle;
9942   buffer_out[0] = 0x04;
9943   buffer_out[1] = 0x0E;
9944   buffer_out[2] = output_size + 3;
9945   buffer_out[3] = 0x01;
9946   buffer_out[4] = 0x84;
9947   buffer_out[5] = 0x20;
9948   return (output_size + 6);
9949 }
9950 #endif
9951 
9952 #if (!defined(HCI_LE_EXTENDED_CREATE_CONNECTION_V2_ENABLED) || HCI_LE_EXTENDED_CREATE_CONNECTION_V2_ENABLED) && !HCI_LE_EXTENDED_CREATE_CONNECTION_V2_FORCE_DISABLED
9953 /* tBleStatus hci_le_extended_create_connection_v2(uint8_t Advertising_Handle,
9954                                                 uint8_t Subevent,
9955                                                 uint8_t Initiator_Filter_Policy,
9956                                                 uint8_t Own_Address_Type,
9957                                                 uint8_t Peer_Address_Type,
9958                                                 uint8_t Peer_Address[6],
9959                                                 uint8_t Initiating_PHYs,
9960                                                 Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[]);
9961  */
9962 /* Command len: 1 + 1 + 1 + 1 + 1 + 6 + 1 + struct_length */
9963 /* Response len: 1 */
hci_le_extended_create_connection_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)9964 uint16_t hci_le_extended_create_connection_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
9965 {
9966   /* Input params */
9967   hci_le_extended_create_connection_v2_cp0 *cp0 = (hci_le_extended_create_connection_v2_cp0 *)(buffer_in + (0));
9968   Extended_Create_Connection_Parameters_t Extended_Create_Connection_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Create_Connection_Parameters_t)];
9969 
9970   int output_size = 1;
9971   /* Output params */
9972   uint8_t *status = (uint8_t *) (buffer_out + 3);
9973 
9974   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
9975   if (buffer_out_max_length < (1 + 6)) { return 0; }
9976   int i;
9977   int struct_length = 0;
9978   int len = 0;
9979 
9980   for (i = 0; i < sizeof( cp0->Initiating_PHYs)*8; i++) {
9981     if((cp0->Initiating_PHYs >> i) & 0x01){
9982       len++;
9983     }
9984   }
9985   if(len > HCI_MAX_PAYLOAD_SIZE/sizeof(Extended_Create_Connection_Parameters_t))
9986   {
9987     len = 0;
9988     goto fail;
9989   }
9990   for (i = 0; i < len; i++) {
9991     packed_Extended_Create_Connection_Parameters_t *Extended_Create_Connection_Parameters_tmp = (packed_Extended_Create_Connection_Parameters_t *)(((uint8_t *)cp0->Extended_Create_Connection_Parameters) + struct_length);
9992     Extended_Create_Connection_Parameters[i].Scan_Interval = Extended_Create_Connection_Parameters_tmp->Scan_Interval;
9993     struct_length += 2;
9994     Extended_Create_Connection_Parameters[i].Scan_Window = Extended_Create_Connection_Parameters_tmp->Scan_Window;
9995     struct_length += 2;
9996     Extended_Create_Connection_Parameters[i].Connection_Interval_Min = Extended_Create_Connection_Parameters_tmp->Connection_Interval_Min;
9997     struct_length += 2;
9998     Extended_Create_Connection_Parameters[i].Connection_Interval_Max = Extended_Create_Connection_Parameters_tmp->Connection_Interval_Max;
9999     struct_length += 2;
10000     Extended_Create_Connection_Parameters[i].Max_Latency = Extended_Create_Connection_Parameters_tmp->Max_Latency;
10001     struct_length += 2;
10002     Extended_Create_Connection_Parameters[i].Supervision_Timeout = Extended_Create_Connection_Parameters_tmp->Supervision_Timeout;
10003     struct_length += 2;
10004     Extended_Create_Connection_Parameters[i].Min_CE_Length = Extended_Create_Connection_Parameters_tmp->Min_CE_Length;
10005     struct_length += 2;
10006     Extended_Create_Connection_Parameters[i].Max_CE_Length = Extended_Create_Connection_Parameters_tmp->Max_CE_Length;
10007     struct_length += 2;
10008   }
10009   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 6 + 1 + struct_length)
10010   {
10011     goto fail;
10012   }
10013 
10014   *status = hci_le_extended_create_connection_v2(cp0->Advertising_Handle /* 1 */,
10015                                                  cp0->Subevent /* 1 */,
10016                                                  cp0->Initiator_Filter_Policy /* 1 */,
10017                                                  cp0->Own_Address_Type /* 1 */,
10018                                                  cp0->Peer_Address_Type /* 1 */,
10019                                                  cp0->Peer_Address /* 6 */,
10020                                                  cp0->Initiating_PHYs /* 1 */,
10021                                                  Extended_Create_Connection_Parameters /* struct_length */);
10022 fail:
10023   buffer_out[0] = 0x04;
10024   buffer_out[1] = 0x0F;
10025   buffer_out[2] = output_size + 3;
10026   buffer_out[4] = 0x01;
10027   buffer_out[5] = 0x85;
10028   buffer_out[6] = 0x20;
10029   return (output_size + 6);
10030 }
10031 #endif
10032 
10033 #if (!defined(HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_ENABLED) || HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_ENABLED) && !HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_FORCE_DISABLED
10034 /* tBleStatus hci_le_set_periodic_advertising_parameters_v2(uint8_t Advertising_Handle,
10035                                                          uint16_t Periodic_Advertising_Interval_Min,
10036                                                          uint16_t Periodic_Advertising_Interval_Max,
10037                                                          uint16_t Periodic_Advertising_Properties,
10038                                                          uint8_t Num_Subevents,
10039                                                          uint8_t Subevent_Interval,
10040                                                          uint8_t Response_Slot_Delay,
10041                                                          uint8_t Response_Slot_Spacing,
10042                                                          uint8_t Num_Response_Slots);
10043  */
10044 /* Command len: 1 + 2 + 2 + 2 + 1 + 1 + 1 + 1 + 1 */
10045 /* Response len: 1 + 1 */
hci_le_set_periodic_advertising_parameters_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10046 uint16_t hci_le_set_periodic_advertising_parameters_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10047 {
10048   /* Input params */
10049   hci_le_set_periodic_advertising_parameters_v2_cp0 *cp0 = (hci_le_set_periodic_advertising_parameters_v2_cp0 *)(buffer_in + (0));
10050 
10051   int output_size = 1 + 1;
10052   /* Output params */
10053   hci_le_set_periodic_advertising_parameters_v2_rp0 *rp0 = (hci_le_set_periodic_advertising_parameters_v2_rp0 *) (buffer_out + 6);
10054 
10055   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10056   if (buffer_out_max_length < (1 + 1 + 6)) { return 0; }
10057   if(buffer_in_length != 1 + 2 + 2 + 2 + 1 + 1 + 1 + 1 + 1)
10058   {
10059     goto fail;
10060   }
10061 
10062   rp0->Status = hci_le_set_periodic_advertising_parameters_v2(cp0->Advertising_Handle /* 1 */,
10063                                                               cp0->Periodic_Advertising_Interval_Min /* 2 */,
10064                                                               cp0->Periodic_Advertising_Interval_Max /* 2 */,
10065                                                               cp0->Periodic_Advertising_Properties /* 2 */,
10066                                                               cp0->Num_Subevents /* 1 */,
10067                                                               cp0->Subevent_Interval /* 1 */,
10068                                                               cp0->Response_Slot_Delay /* 1 */,
10069                                                               cp0->Response_Slot_Spacing /* 1 */,
10070                                                               cp0->Num_Response_Slots /* 1 */);
10071 fail:
10072   rp0->Advertising_Handle = cp0->Advertising_Handle;
10073   buffer_out[0] = 0x04;
10074   buffer_out[1] = 0x0E;
10075   buffer_out[2] = output_size + 3;
10076   buffer_out[3] = 0x01;
10077   buffer_out[4] = 0x86;
10078   buffer_out[5] = 0x20;
10079   return (output_size + 6);
10080 }
10081 #endif
10082 
10083 #if (!defined(ACI_HAL_GET_FW_BUILD_NUMBER_ENABLED) || ACI_HAL_GET_FW_BUILD_NUMBER_ENABLED) && !ACI_HAL_GET_FW_BUILD_NUMBER_FORCE_DISABLED
10084 /* tBleStatus aci_hal_get_fw_build_number(uint16_t *Build_Number);
10085  */
10086 /* Command len: 0 */
10087 /* Response len: 1 + 2 */
aci_hal_get_fw_build_number_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10088 uint16_t aci_hal_get_fw_build_number_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10089 {
10090 
10091   int output_size = 1 + 2;
10092   /* Output params */
10093   aci_hal_get_fw_build_number_rp0 *rp0 = (aci_hal_get_fw_build_number_rp0 *) (buffer_out + 6);
10094   uint16_t Build_Number = 0;
10095 
10096   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10097   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
10098   if(buffer_in_length != 0)
10099   {
10100     goto fail;
10101   }
10102 
10103   rp0->Status = aci_hal_get_fw_build_number(&Build_Number);
10104 fail:
10105   rp0->Build_Number = Build_Number;
10106   buffer_out[0] = 0x04;
10107   buffer_out[1] = 0x0E;
10108   buffer_out[2] = output_size + 3;
10109   buffer_out[3] = 0x01;
10110   buffer_out[4] = 0x00;
10111   buffer_out[5] = 0xfc;
10112   return (output_size + 6);
10113 }
10114 #endif
10115 
10116 #if (!defined(ACI_HAL_GET_FIRMWARE_DETAILS_ENABLED) || ACI_HAL_GET_FIRMWARE_DETAILS_ENABLED) && !ACI_HAL_GET_FIRMWARE_DETAILS_FORCE_DISABLED
10117 /* tBleStatus aci_hal_get_firmware_details(uint8_t *DTM_version_major,
10118                                         uint8_t *DTM_version_minor,
10119                                         uint8_t *DTM_version_patch,
10120                                         uint8_t *DTM_variant,
10121                                         uint16_t *DTM_Build_Number,
10122                                         uint8_t *BTLE_Stack_version_major,
10123                                         uint8_t *BTLE_Stack_version_minor,
10124                                         uint8_t *BTLE_Stack_version_patch,
10125                                         uint8_t *BTLE_Stack_development,
10126                                         uint16_t *BTLE_Stack_variant,
10127                                         uint16_t *BTLE_Stack_Build_Number);
10128  */
10129 /* Command len: 0 */
10130 /* Response len: 1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 2 + 2 */
aci_hal_get_firmware_details_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10131 uint16_t aci_hal_get_firmware_details_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10132 {
10133 
10134   int output_size = 1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 2 + 2;
10135   /* Output params */
10136   aci_hal_get_firmware_details_rp0 *rp0 = (aci_hal_get_firmware_details_rp0 *) (buffer_out + 6);
10137   uint8_t DTM_version_major = 0;
10138   uint8_t DTM_version_minor = 0;
10139   uint8_t DTM_version_patch = 0;
10140   uint8_t DTM_variant = 0;
10141   uint16_t DTM_Build_Number = 0;
10142   uint8_t BTLE_Stack_version_major = 0;
10143   uint8_t BTLE_Stack_version_minor = 0;
10144   uint8_t BTLE_Stack_version_patch = 0;
10145   uint8_t BTLE_Stack_development = 0;
10146   uint16_t BTLE_Stack_variant = 0;
10147   uint16_t BTLE_Stack_Build_Number = 0;
10148 
10149   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10150   if (buffer_out_max_length < (1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 2 + 2 + 6)) { return 0; }
10151   if(buffer_in_length != 0)
10152   {
10153     goto fail;
10154   }
10155 
10156   rp0->Status = aci_hal_get_firmware_details(&DTM_version_major,
10157                                              &DTM_version_minor,
10158                                              &DTM_version_patch,
10159                                              &DTM_variant,
10160                                              &DTM_Build_Number,
10161                                              &BTLE_Stack_version_major,
10162                                              &BTLE_Stack_version_minor,
10163                                              &BTLE_Stack_version_patch,
10164                                              &BTLE_Stack_development,
10165                                              &BTLE_Stack_variant,
10166                                              &BTLE_Stack_Build_Number);
10167 fail:
10168   rp0->DTM_version_major = DTM_version_major;
10169   rp0->DTM_version_minor = DTM_version_minor;
10170   rp0->DTM_version_patch = DTM_version_patch;
10171   rp0->DTM_variant = DTM_variant;
10172   rp0->DTM_Build_Number = DTM_Build_Number;
10173   rp0->BTLE_Stack_version_major = BTLE_Stack_version_major;
10174   rp0->BTLE_Stack_version_minor = BTLE_Stack_version_minor;
10175   rp0->BTLE_Stack_version_patch = BTLE_Stack_version_patch;
10176   rp0->BTLE_Stack_development = BTLE_Stack_development;
10177   rp0->BTLE_Stack_variant = BTLE_Stack_variant;
10178   rp0->BTLE_Stack_Build_Number = BTLE_Stack_Build_Number;
10179   buffer_out[0] = 0x04;
10180   buffer_out[1] = 0x0E;
10181   buffer_out[2] = output_size + 3;
10182   buffer_out[3] = 0x01;
10183   buffer_out[4] = 0x01;
10184   buffer_out[5] = 0xfc;
10185   return (output_size + 6);
10186 }
10187 #endif
10188 
10189 #if (!defined(ACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED) || ACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED) && !ACI_HAL_GET_FIRMWARE_DETAILS_V2_FORCE_DISABLED
10190 /* tBleStatus aci_hal_get_firmware_details_v2(uint8_t *DTM_version_major,
10191                                            uint8_t *DTM_version_minor,
10192                                            uint8_t *DTM_version_patch,
10193                                            uint8_t *DTM_variant,
10194                                            uint16_t *DTM_Build_Number,
10195                                            uint8_t *BTLE_Stack_version_major,
10196                                            uint8_t *BTLE_Stack_version_minor,
10197                                            uint8_t *BTLE_Stack_version_patch,
10198                                            uint8_t *BTLE_Stack_development,
10199                                            uint32_t *BTLE_Stack_variant,
10200                                            uint16_t *BTLE_Stack_Build_Number);
10201  */
10202 /* Command len: 0 */
10203 /* Response len: 1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 4 + 2 */
aci_hal_get_firmware_details_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10204 uint16_t aci_hal_get_firmware_details_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10205 {
10206 
10207   int output_size = 1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 4 + 2;
10208   /* Output params */
10209   aci_hal_get_firmware_details_v2_rp0 *rp0 = (aci_hal_get_firmware_details_v2_rp0 *) (buffer_out + 6);
10210   uint8_t DTM_version_major = 0;
10211   uint8_t DTM_version_minor = 0;
10212   uint8_t DTM_version_patch = 0;
10213   uint8_t DTM_variant = 0;
10214   uint16_t DTM_Build_Number = 0;
10215   uint8_t BTLE_Stack_version_major = 0;
10216   uint8_t BTLE_Stack_version_minor = 0;
10217   uint8_t BTLE_Stack_version_patch = 0;
10218   uint8_t BTLE_Stack_development = 0;
10219   uint32_t BTLE_Stack_variant = 0;
10220   uint16_t BTLE_Stack_Build_Number = 0;
10221 
10222   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10223   if (buffer_out_max_length < (1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + 4 + 2 + 6)) { return 0; }
10224   if(buffer_in_length != 0)
10225   {
10226     goto fail;
10227   }
10228 
10229   rp0->Status = aci_hal_get_firmware_details_v2(&DTM_version_major,
10230                                                 &DTM_version_minor,
10231                                                 &DTM_version_patch,
10232                                                 &DTM_variant,
10233                                                 &DTM_Build_Number,
10234                                                 &BTLE_Stack_version_major,
10235                                                 &BTLE_Stack_version_minor,
10236                                                 &BTLE_Stack_version_patch,
10237                                                 &BTLE_Stack_development,
10238                                                 &BTLE_Stack_variant,
10239                                                 &BTLE_Stack_Build_Number);
10240 fail:
10241   rp0->DTM_version_major = DTM_version_major;
10242   rp0->DTM_version_minor = DTM_version_minor;
10243   rp0->DTM_version_patch = DTM_version_patch;
10244   rp0->DTM_variant = DTM_variant;
10245   rp0->DTM_Build_Number = DTM_Build_Number;
10246   rp0->BTLE_Stack_version_major = BTLE_Stack_version_major;
10247   rp0->BTLE_Stack_version_minor = BTLE_Stack_version_minor;
10248   rp0->BTLE_Stack_version_patch = BTLE_Stack_version_patch;
10249   rp0->BTLE_Stack_development = BTLE_Stack_development;
10250   rp0->BTLE_Stack_variant = BTLE_Stack_variant;
10251   rp0->BTLE_Stack_Build_Number = BTLE_Stack_Build_Number;
10252   buffer_out[0] = 0x04;
10253   buffer_out[1] = 0x0E;
10254   buffer_out[2] = output_size + 3;
10255   buffer_out[3] = 0x01;
10256   buffer_out[4] = 0x02;
10257   buffer_out[5] = 0xfc;
10258   return (output_size + 6);
10259 }
10260 #endif
10261 
10262 #if (!defined(ACI_HAL_WRITE_CONFIG_DATA_ENABLED) || ACI_HAL_WRITE_CONFIG_DATA_ENABLED) && !ACI_HAL_WRITE_CONFIG_DATA_FORCE_DISABLED
10263 /* tBleStatus aci_hal_write_config_data(uint8_t Offset,
10264                                      uint8_t Length,
10265                                      uint8_t Value[]);
10266  */
10267 /* Command len: 1 + 1 + cp0->Length * (sizeof(uint8_t)) */
10268 /* Response len: 1 */
aci_hal_write_config_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10269 uint16_t aci_hal_write_config_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10270 {
10271   /* Input params */
10272   aci_hal_write_config_data_cp0 *cp0 = (aci_hal_write_config_data_cp0 *)(buffer_in + (0));
10273 
10274   int output_size = 1;
10275   /* Output params */
10276   uint8_t *status = (uint8_t *) (buffer_out + 6);
10277 
10278   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10279   if (buffer_out_max_length < (1 + 6)) { return 0; }
10280   if(buffer_in_length != 1 + 1 + cp0->Length * (sizeof(uint8_t)))
10281   {
10282     goto fail;
10283   }
10284 
10285   *status = aci_hal_write_config_data(cp0->Offset /* 1 */,
10286                                       cp0->Length /* 1 */,
10287                                       cp0->Value /* cp0->Length * (sizeof(uint8_t)) */);
10288 fail:
10289   buffer_out[0] = 0x04;
10290   buffer_out[1] = 0x0E;
10291   buffer_out[2] = output_size + 3;
10292   buffer_out[3] = 0x01;
10293   buffer_out[4] = 0x0c;
10294   buffer_out[5] = 0xfc;
10295   return (output_size + 6);
10296 }
10297 #endif
10298 
10299 #if (!defined(ACI_HAL_READ_CONFIG_DATA_ENABLED) || ACI_HAL_READ_CONFIG_DATA_ENABLED) && !ACI_HAL_READ_CONFIG_DATA_FORCE_DISABLED
10300 /* tBleStatus aci_hal_read_config_data(uint8_t Offset,
10301                                     uint8_t *Data_Length,
10302                                     uint8_t Data[]);
10303  */
10304 /* Command len: 1 */
10305 /* Response len: 1 + 1 + rp0->Data_Length * (sizeof(uint8_t)) */
aci_hal_read_config_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10306 uint16_t aci_hal_read_config_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10307 {
10308   /* Input params */
10309   aci_hal_read_config_data_cp0 *cp0 = (aci_hal_read_config_data_cp0 *)(buffer_in + (0));
10310 
10311   int output_size = 0;
10312   /* Output params */
10313   aci_hal_read_config_data_rp0 *rp0 = (aci_hal_read_config_data_rp0 *) (buffer_out + 6);
10314   uint8_t Data_Length = 0;
10315   uint8_t Data[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
10316 
10317   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10318   if (buffer_out_max_length < (1 + 6)) { return 0; }
10319   if(buffer_in_length != 1)
10320   {
10321     goto fail;
10322   }
10323 
10324   rp0->Status = aci_hal_read_config_data(cp0->Offset /* 1 */,
10325                                          &Data_Length,
10326                                          Data);
10327 fail:
10328   output_size += 1;
10329   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
10330   rp0->Data_Length = Data_Length;
10331   output_size += 1;
10332   if (buffer_out_max_length < (output_size + (rp0->Data_Length * (sizeof(uint8_t))) + 6)) { return 0; }
10333   Osal_MemCpy((void *) rp0->Data,(const void *) Data, rp0->Data_Length * (sizeof(uint8_t)));
10334   output_size += rp0->Data_Length * (sizeof(uint8_t));
10335   buffer_out[0] = 0x04;
10336   buffer_out[1] = 0x0E;
10337   buffer_out[2] = output_size + 3;
10338   buffer_out[3] = 0x01;
10339   buffer_out[4] = 0x0d;
10340   buffer_out[5] = 0xfc;
10341   return (output_size + 6);
10342 }
10343 #endif
10344 
10345 #if (!defined(ACI_HAL_SET_TX_POWER_LEVEL_ENABLED) || ACI_HAL_SET_TX_POWER_LEVEL_ENABLED) && !ACI_HAL_SET_TX_POWER_LEVEL_FORCE_DISABLED
10346 tBleStatus aci_hal_set_tx_power_level_preprocess(uint8_t En_High_Power,
10347                                                  uint8_t PA_Level);
10348 /* tBleStatus aci_hal_set_tx_power_level(uint8_t En_High_Power,
10349                                       uint8_t PA_Level);
10350  */
10351 /* Command len: 1 + 1 */
10352 /* Response len: 1 */
aci_hal_set_tx_power_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10353 uint16_t aci_hal_set_tx_power_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10354 {
10355   /* Input params */
10356   aci_hal_set_tx_power_level_cp0 *cp0 = (aci_hal_set_tx_power_level_cp0 *)(buffer_in + (0));
10357 
10358   int output_size = 1;
10359   /* Output params */
10360   uint8_t *status = (uint8_t *) (buffer_out + 6);
10361 
10362   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10363   if (buffer_out_max_length < (1 + 6)) { return 0; }
10364   if(buffer_in_length != 1 + 1)
10365   {
10366     goto fail;
10367   }
10368 
10369   *status = aci_hal_set_tx_power_level_preprocess(cp0->En_High_Power /* 1 */,
10370                                                   cp0->PA_Level /* 1 */);
10371   if(*status)
10372     goto fail;
10373 
10374   *status = aci_hal_set_tx_power_level(cp0->En_High_Power /* 1 */,
10375                                        cp0->PA_Level /* 1 */);
10376 fail:
10377   buffer_out[0] = 0x04;
10378   buffer_out[1] = 0x0E;
10379   buffer_out[2] = output_size + 3;
10380   buffer_out[3] = 0x01;
10381   buffer_out[4] = 0x0f;
10382   buffer_out[5] = 0xfc;
10383   return (output_size + 6);
10384 }
10385 #endif
10386 
10387 #if (!defined(ACI_HAL_LE_TX_TEST_PACKET_NUMBER_ENABLED) || ACI_HAL_LE_TX_TEST_PACKET_NUMBER_ENABLED) && !ACI_HAL_LE_TX_TEST_PACKET_NUMBER_FORCE_DISABLED
10388 /* tBleStatus aci_hal_le_tx_test_packet_number(uint32_t *Number_Of_Packets);
10389  */
10390 /* Command len: 0 */
10391 /* Response len: 1 + 4 */
aci_hal_le_tx_test_packet_number_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10392 uint16_t aci_hal_le_tx_test_packet_number_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10393 {
10394 
10395   int output_size = 1 + 4;
10396   /* Output params */
10397   aci_hal_le_tx_test_packet_number_rp0 *rp0 = (aci_hal_le_tx_test_packet_number_rp0 *) (buffer_out + 6);
10398   uint32_t Number_Of_Packets = 0;
10399 
10400   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10401   if (buffer_out_max_length < (1 + 4 + 6)) { return 0; }
10402   if(buffer_in_length != 0)
10403   {
10404     goto fail;
10405   }
10406 
10407   rp0->Status = aci_hal_le_tx_test_packet_number(&Number_Of_Packets);
10408 fail:
10409   rp0->Number_Of_Packets = Number_Of_Packets;
10410   buffer_out[0] = 0x04;
10411   buffer_out[1] = 0x0E;
10412   buffer_out[2] = output_size + 3;
10413   buffer_out[3] = 0x01;
10414   buffer_out[4] = 0x14;
10415   buffer_out[5] = 0xfc;
10416   return (output_size + 6);
10417 }
10418 #endif
10419 
10420 #if (!defined(ACI_HAL_TONE_START_ENABLED) || ACI_HAL_TONE_START_ENABLED) && !ACI_HAL_TONE_START_FORCE_DISABLED
10421 /* tBleStatus aci_hal_tone_start(uint8_t RF_Channel,
10422                               uint8_t Offset);
10423  */
10424 /* Command len: 1 + 1 */
10425 /* Response len: 1 */
aci_hal_tone_start_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10426 uint16_t aci_hal_tone_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10427 {
10428   /* Input params */
10429   aci_hal_tone_start_cp0 *cp0 = (aci_hal_tone_start_cp0 *)(buffer_in + (0));
10430 
10431   int output_size = 1;
10432   /* Output params */
10433   uint8_t *status = (uint8_t *) (buffer_out + 6);
10434 
10435   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10436   if (buffer_out_max_length < (1 + 6)) { return 0; }
10437   if(buffer_in_length != 1 + 1)
10438   {
10439     goto fail;
10440   }
10441 
10442   *status = aci_hal_tone_start(cp0->RF_Channel /* 1 */,
10443                                cp0->Offset /* 1 */);
10444 fail:
10445   buffer_out[0] = 0x04;
10446   buffer_out[1] = 0x0E;
10447   buffer_out[2] = output_size + 3;
10448   buffer_out[3] = 0x01;
10449   buffer_out[4] = 0x15;
10450   buffer_out[5] = 0xfc;
10451   return (output_size + 6);
10452 }
10453 #endif
10454 
10455 #if (!defined(ACI_HAL_TONE_STOP_ENABLED) || ACI_HAL_TONE_STOP_ENABLED) && !ACI_HAL_TONE_STOP_FORCE_DISABLED
10456 /* tBleStatus aci_hal_tone_stop(void);
10457  */
10458 /* Command len: 0 */
10459 /* Response len: 1 */
aci_hal_tone_stop_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10460 uint16_t aci_hal_tone_stop_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10461 {
10462 
10463   int output_size = 1;
10464   /* Output params */
10465   uint8_t *status = (uint8_t *) (buffer_out + 6);
10466 
10467   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10468   if (buffer_out_max_length < (1 + 6)) { return 0; }
10469   if(buffer_in_length != 0)
10470   {
10471     goto fail;
10472   }
10473 
10474   *status = aci_hal_tone_stop();
10475 fail:
10476   buffer_out[0] = 0x04;
10477   buffer_out[1] = 0x0E;
10478   buffer_out[2] = output_size + 3;
10479   buffer_out[3] = 0x01;
10480   buffer_out[4] = 0x16;
10481   buffer_out[5] = 0xfc;
10482   return (output_size + 6);
10483 }
10484 #endif
10485 
10486 #if (!defined(ACI_HAL_GET_LINK_STATUS_ENABLED) || ACI_HAL_GET_LINK_STATUS_ENABLED) && !ACI_HAL_GET_LINK_STATUS_FORCE_DISABLED
10487 /* tBleStatus aci_hal_get_link_status(uint8_t Bank_index,
10488                                    uint8_t Link_Status[8],
10489                                    uint16_t Link_Connection_Handle[16 / 2]);
10490  */
10491 /* Command len: 1 */
10492 /* Response len: 1 + 8 + 16 */
aci_hal_get_link_status_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10493 uint16_t aci_hal_get_link_status_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10494 {
10495   /* Input params */
10496   aci_hal_get_link_status_cp0 *cp0 = (aci_hal_get_link_status_cp0 *)(buffer_in + (0));
10497 
10498   int output_size = 1 + 8 + 16;
10499   /* Output params */
10500   aci_hal_get_link_status_rp0 *rp0 = (aci_hal_get_link_status_rp0 *) (buffer_out + 6);
10501   uint8_t Link_Status[8] = {0};
10502   uint16_t Link_Connection_Handle[16 / 2] = {0};
10503 
10504   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10505   if (buffer_out_max_length < (1 + 8 + 16 + 6)) { return 0; }
10506   if(buffer_in_length != 1)
10507   {
10508     goto fail;
10509   }
10510 
10511   rp0->Status = aci_hal_get_link_status(cp0->Bank_index /* 1 */,
10512                                         Link_Status,
10513                                         Link_Connection_Handle);
10514 fail:
10515   Osal_MemCpy((void *) rp0->Link_Status,(const void *) Link_Status, 8);
10516   Osal_MemCpy((void *) rp0->Link_Connection_Handle,(const void *) Link_Connection_Handle, 16);
10517   buffer_out[0] = 0x04;
10518   buffer_out[1] = 0x0E;
10519   buffer_out[2] = output_size + 3;
10520   buffer_out[3] = 0x01;
10521   buffer_out[4] = 0x17;
10522   buffer_out[5] = 0xfc;
10523   return (output_size + 6);
10524 }
10525 #endif
10526 
10527 #if (!defined(ACI_HAL_SET_RADIO_ACTIVITY_MASK_ENABLED) || ACI_HAL_SET_RADIO_ACTIVITY_MASK_ENABLED) && !ACI_HAL_SET_RADIO_ACTIVITY_MASK_FORCE_DISABLED
10528 /* tBleStatus aci_hal_set_radio_activity_mask(uint16_t Radio_Activity_Mask);
10529  */
10530 /* Command len: 2 */
10531 /* Response len: 1 */
aci_hal_set_radio_activity_mask_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10532 uint16_t aci_hal_set_radio_activity_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10533 {
10534   /* Input params */
10535   aci_hal_set_radio_activity_mask_cp0 *cp0 = (aci_hal_set_radio_activity_mask_cp0 *)(buffer_in + (0));
10536 
10537   int output_size = 1;
10538   /* Output params */
10539   uint8_t *status = (uint8_t *) (buffer_out + 6);
10540 
10541   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10542   if (buffer_out_max_length < (1 + 6)) { return 0; }
10543   if(buffer_in_length != 2)
10544   {
10545     goto fail;
10546   }
10547 
10548   *status = aci_hal_set_radio_activity_mask(cp0->Radio_Activity_Mask /* 2 */);
10549 fail:
10550   buffer_out[0] = 0x04;
10551   buffer_out[1] = 0x0E;
10552   buffer_out[2] = output_size + 3;
10553   buffer_out[3] = 0x01;
10554   buffer_out[4] = 0x18;
10555   buffer_out[5] = 0xfc;
10556   return (output_size + 6);
10557 }
10558 #endif
10559 
10560 #if (!defined(ACI_HAL_SET_LE_POWER_CONTROL_ENABLED) || ACI_HAL_SET_LE_POWER_CONTROL_ENABLED) && !ACI_HAL_SET_LE_POWER_CONTROL_FORCE_DISABLED
10561 /* tBleStatus aci_hal_set_le_power_control(uint8_t Enable,
10562                                         uint8_t PHY,
10563                                         int8_t RSSI_Target,
10564                                         uint8_t RSSI_Hysteresis,
10565                                         int8_t Initial_TX_Power,
10566                                         uint8_t RSSI_Filtering_Coefficient);
10567  */
10568 /* Command len: 1 + 1 + 1 + 1 + 1 + 1 */
10569 /* Response len: 1 */
aci_hal_set_le_power_control_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10570 uint16_t aci_hal_set_le_power_control_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10571 {
10572   /* Input params */
10573   aci_hal_set_le_power_control_cp0 *cp0 = (aci_hal_set_le_power_control_cp0 *)(buffer_in + (0));
10574 
10575   int output_size = 1;
10576   /* Output params */
10577   uint8_t *status = (uint8_t *) (buffer_out + 6);
10578 
10579   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10580   if (buffer_out_max_length < (1 + 6)) { return 0; }
10581   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 1)
10582   {
10583     goto fail;
10584   }
10585 
10586   *status = aci_hal_set_le_power_control(cp0->Enable /* 1 */,
10587                                          cp0->PHY /* 1 */,
10588                                          cp0->RSSI_Target /* 1 */,
10589                                          cp0->RSSI_Hysteresis /* 1 */,
10590                                          cp0->Initial_TX_Power /* 1 */,
10591                                          cp0->RSSI_Filtering_Coefficient /* 1 */);
10592 fail:
10593   buffer_out[0] = 0x04;
10594   buffer_out[1] = 0x0E;
10595   buffer_out[2] = output_size + 3;
10596   buffer_out[3] = 0x01;
10597   buffer_out[4] = 0x1c;
10598   buffer_out[5] = 0xfc;
10599   return (output_size + 6);
10600 }
10601 #endif
10602 
10603 #if (!defined(ACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED) || ACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED) && !ACI_HAL_TRANSMITTER_TEST_PACKETS_FORCE_DISABLED
10604 /* tBleStatus aci_hal_transmitter_test_packets(uint8_t TX_Frequency,
10605                                             uint8_t Length_Of_Test_Data,
10606                                             uint8_t Packet_Payload,
10607                                             uint16_t Number_Of_Packets,
10608                                             uint8_t PHY);
10609  */
10610 /* Command len: 1 + 1 + 1 + 2 + 1 */
10611 /* Response len: 1 */
aci_hal_transmitter_test_packets_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10612 uint16_t aci_hal_transmitter_test_packets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10613 {
10614   /* Input params */
10615   aci_hal_transmitter_test_packets_cp0 *cp0 = (aci_hal_transmitter_test_packets_cp0 *)(buffer_in + (0));
10616 
10617   int output_size = 1;
10618   /* Output params */
10619   uint8_t *status = (uint8_t *) (buffer_out + 3);
10620 
10621   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10622   if (buffer_out_max_length < (1 + 6)) { return 0; }
10623   if(buffer_in_length != 1 + 1 + 1 + 2 + 1)
10624   {
10625     goto fail;
10626   }
10627 
10628   *status = aci_hal_transmitter_test_packets(cp0->TX_Frequency /* 1 */,
10629                                              cp0->Length_Of_Test_Data /* 1 */,
10630                                              cp0->Packet_Payload /* 1 */,
10631                                              cp0->Number_Of_Packets /* 2 */,
10632                                              cp0->PHY /* 1 */);
10633 fail:
10634   buffer_out[0] = 0x04;
10635   buffer_out[1] = 0x0F;
10636   buffer_out[2] = output_size + 3;
10637   buffer_out[4] = 0x01;
10638   buffer_out[5] = 0x2b;
10639   buffer_out[6] = 0xfc;
10640   return (output_size + 6);
10641 }
10642 #endif
10643 
10644 #if (!defined(ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED) || ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED) && !ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_FORCE_DISABLED
10645 /* tBleStatus aci_hal_transmitter_test_packets_v2(uint8_t TX_Channel,
10646                                                uint8_t Test_Data_Length,
10647                                                uint8_t Packet_Payload,
10648                                                uint16_t Number_Of_Packets,
10649                                                uint8_t PHY,
10650                                                uint8_t CTE_Length,
10651                                                uint8_t CTE_Type,
10652                                                uint8_t Switching_Pattern_Length,
10653                                                uint8_t Antenna_IDs[]);
10654  */
10655 /* Command len: 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */
10656 /* Response len: 1 */
aci_hal_transmitter_test_packets_v2_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10657 uint16_t aci_hal_transmitter_test_packets_v2_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10658 {
10659   /* Input params */
10660   aci_hal_transmitter_test_packets_v2_cp0 *cp0 = (aci_hal_transmitter_test_packets_v2_cp0 *)(buffer_in + (0));
10661 
10662   int output_size = 1;
10663   /* Output params */
10664   uint8_t *status = (uint8_t *) (buffer_out + 6);
10665 
10666   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10667   if (buffer_out_max_length < (1 + 6)) { return 0; }
10668   if(buffer_in_length != 1 + 1 + 1 + 2 + 1 + 1 + 1 + 1 + cp0->Switching_Pattern_Length * (sizeof(uint8_t)))
10669   {
10670     goto fail;
10671   }
10672 
10673   *status = aci_hal_transmitter_test_packets_v2(cp0->TX_Channel /* 1 */,
10674                                                 cp0->Test_Data_Length /* 1 */,
10675                                                 cp0->Packet_Payload /* 1 */,
10676                                                 cp0->Number_Of_Packets /* 2 */,
10677                                                 cp0->PHY /* 1 */,
10678                                                 cp0->CTE_Length /* 1 */,
10679                                                 cp0->CTE_Type /* 1 */,
10680                                                 cp0->Switching_Pattern_Length /* 1 */,
10681                                                 cp0->Antenna_IDs /* cp0->Switching_Pattern_Length * (sizeof(uint8_t)) */);
10682 fail:
10683   buffer_out[0] = 0x04;
10684   buffer_out[1] = 0x0E;
10685   buffer_out[2] = output_size + 3;
10686   buffer_out[3] = 0x01;
10687   buffer_out[4] = 0x2c;
10688   buffer_out[5] = 0xfc;
10689   return (output_size + 6);
10690 }
10691 #endif
10692 
10693 #if (!defined(ACI_HAL_WRITE_RADIO_REG_ENABLED) || ACI_HAL_WRITE_RADIO_REG_ENABLED) && !ACI_HAL_WRITE_RADIO_REG_FORCE_DISABLED
10694 /* tBleStatus aci_hal_write_radio_reg(uint32_t Start_Address,
10695                                    uint8_t Num_Bytes,
10696                                    uint8_t Data[]);
10697  */
10698 /* Command len: 4 + 1 + cp0->Num_Bytes * (sizeof(uint8_t)) */
10699 /* Response len: 1 */
aci_hal_write_radio_reg_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10700 uint16_t aci_hal_write_radio_reg_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10701 {
10702   /* Input params */
10703   aci_hal_write_radio_reg_cp0 *cp0 = (aci_hal_write_radio_reg_cp0 *)(buffer_in + (0));
10704 
10705   int output_size = 1;
10706   /* Output params */
10707   uint8_t *status = (uint8_t *) (buffer_out + 6);
10708 
10709   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10710   if (buffer_out_max_length < (1 + 6)) { return 0; }
10711   if(buffer_in_length != 4 + 1 + cp0->Num_Bytes * (sizeof(uint8_t)))
10712   {
10713     goto fail;
10714   }
10715 
10716   *status = aci_hal_write_radio_reg(cp0->Start_Address /* 4 */,
10717                                     cp0->Num_Bytes /* 1 */,
10718                                     cp0->Data /* cp0->Num_Bytes * (sizeof(uint8_t)) */);
10719 fail:
10720   buffer_out[0] = 0x04;
10721   buffer_out[1] = 0x0E;
10722   buffer_out[2] = output_size + 3;
10723   buffer_out[3] = 0x01;
10724   buffer_out[4] = 0x35;
10725   buffer_out[5] = 0xfc;
10726   return (output_size + 6);
10727 }
10728 #endif
10729 
10730 #if (!defined(ACI_HAL_READ_RADIO_REG_ENABLED) || ACI_HAL_READ_RADIO_REG_ENABLED) && !ACI_HAL_READ_RADIO_REG_FORCE_DISABLED
10731 /* tBleStatus aci_hal_read_radio_reg(uint32_t Start_Address,
10732                                   uint8_t Num_Bytes,
10733                                   uint8_t *Data_Length,
10734                                   uint8_t Data[]);
10735  */
10736 /* Command len: 4 + 1 */
10737 /* Response len: 1 + 1 + rp0->Data_Length * (sizeof(uint8_t)) */
aci_hal_read_radio_reg_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10738 uint16_t aci_hal_read_radio_reg_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10739 {
10740   /* Input params */
10741   aci_hal_read_radio_reg_cp0 *cp0 = (aci_hal_read_radio_reg_cp0 *)(buffer_in + (0));
10742 
10743   int output_size = 0;
10744   /* Output params */
10745   aci_hal_read_radio_reg_rp0 *rp0 = (aci_hal_read_radio_reg_rp0 *) (buffer_out + 6);
10746   uint8_t Data_Length = 0;
10747   uint8_t Data[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
10748 
10749   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10750   if (buffer_out_max_length < (1 + 6)) { return 0; }
10751   if(buffer_in_length != 4 + 1)
10752   {
10753     goto fail;
10754   }
10755 
10756   rp0->Status = aci_hal_read_radio_reg(cp0->Start_Address /* 4 */,
10757                                        cp0->Num_Bytes /* 1 */,
10758                                        &Data_Length,
10759                                        Data);
10760 fail:
10761   output_size += 1;
10762   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
10763   rp0->Data_Length = Data_Length;
10764   output_size += 1;
10765   if (buffer_out_max_length < (output_size + (rp0->Data_Length * (sizeof(uint8_t))) + 6)) { return 0; }
10766   Osal_MemCpy((void *) rp0->Data,(const void *) Data, rp0->Data_Length * (sizeof(uint8_t)));
10767   output_size += rp0->Data_Length * (sizeof(uint8_t));
10768   buffer_out[0] = 0x04;
10769   buffer_out[1] = 0x0E;
10770   buffer_out[2] = output_size + 3;
10771   buffer_out[3] = 0x01;
10772   buffer_out[4] = 0x36;
10773   buffer_out[5] = 0xfc;
10774   return (output_size + 6);
10775 }
10776 #endif
10777 
10778 #if (!defined(ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_ENABLED) || ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_ENABLED) && !ACI_HAL_SET_ANTENNA_SWITCH_PARAMETERS_FORCE_DISABLED
10779 /* tBleStatus aci_hal_set_antenna_switch_parameters(uint8_t Antenna_IDs,
10780                                                  uint8_t Antenna_ID_Shift,
10781                                                  uint8_t Default_Antenna_ID,
10782                                                  uint8_t RF_Activity_Enable);
10783  */
10784 /* Command len: 1 + 1 + 1 + 1 */
10785 /* Response len: 1 */
aci_hal_set_antenna_switch_parameters_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10786 uint16_t aci_hal_set_antenna_switch_parameters_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10787 {
10788   /* Input params */
10789   aci_hal_set_antenna_switch_parameters_cp0 *cp0 = (aci_hal_set_antenna_switch_parameters_cp0 *)(buffer_in + (0));
10790 
10791   int output_size = 1;
10792   /* Output params */
10793   uint8_t *status = (uint8_t *) (buffer_out + 6);
10794 
10795   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10796   if (buffer_out_max_length < (1 + 6)) { return 0; }
10797   if(buffer_in_length != 1 + 1 + 1 + 1)
10798   {
10799     goto fail;
10800   }
10801 
10802   *status = aci_hal_set_antenna_switch_parameters(cp0->Antenna_IDs /* 1 */,
10803                                                   cp0->Antenna_ID_Shift /* 1 */,
10804                                                   cp0->Default_Antenna_ID /* 1 */,
10805                                                   cp0->RF_Activity_Enable /* 1 */);
10806 fail:
10807   buffer_out[0] = 0x04;
10808   buffer_out[1] = 0x0E;
10809   buffer_out[2] = output_size + 3;
10810   buffer_out[3] = 0x01;
10811   buffer_out[4] = 0x37;
10812   buffer_out[5] = 0xfc;
10813   return (output_size + 6);
10814 }
10815 #endif
10816 
10817 #if (!defined(ACI_HAL_PERIPHERAL_LATENCY_ENABLE_ENABLED) || ACI_HAL_PERIPHERAL_LATENCY_ENABLE_ENABLED) && !ACI_HAL_PERIPHERAL_LATENCY_ENABLE_FORCE_DISABLED
10818 /* tBleStatus aci_hal_peripheral_latency_enable(uint16_t Connection_Handle,
10819                                              uint8_t Enable);
10820  */
10821 /* Command len: 2 + 1 */
10822 /* Response len: 1 */
aci_hal_peripheral_latency_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10823 uint16_t aci_hal_peripheral_latency_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10824 {
10825   /* Input params */
10826   aci_hal_peripheral_latency_enable_cp0 *cp0 = (aci_hal_peripheral_latency_enable_cp0 *)(buffer_in + (0));
10827 
10828   int output_size = 1;
10829   /* Output params */
10830   uint8_t *status = (uint8_t *) (buffer_out + 6);
10831 
10832   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10833   if (buffer_out_max_length < (1 + 6)) { return 0; }
10834   if(buffer_in_length != 2 + 1)
10835   {
10836     goto fail;
10837   }
10838 
10839   *status = aci_hal_peripheral_latency_enable(cp0->Connection_Handle /* 2 */,
10840                                               cp0->Enable /* 1 */);
10841 fail:
10842   buffer_out[0] = 0x04;
10843   buffer_out[1] = 0x0E;
10844   buffer_out[2] = output_size + 3;
10845   buffer_out[3] = 0x01;
10846   buffer_out[4] = 0x38;
10847   buffer_out[5] = 0xfc;
10848   return (output_size + 6);
10849 }
10850 #endif
10851 
10852 #if (!defined(ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_ENABLED) || ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_ENABLED) && !ACI_HAL_GET_EVT_FIFO_MAX_LEVEL_FORCE_DISABLED
10853 /* tBleStatus aci_hal_get_evt_fifo_max_level(uint16_t *ISR0_FIFO_Max_Level,
10854                                           uint16_t *ISR1_FIFO_Max_Level,
10855                                           uint16_t *User_FIFO_Max_Level);
10856  */
10857 /* Command len: 0 */
10858 /* Response len: 1 + 2 + 2 + 2 */
aci_hal_get_evt_fifo_max_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10859 uint16_t aci_hal_get_evt_fifo_max_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10860 {
10861 
10862   int output_size = 1 + 2 + 2 + 2;
10863   /* Output params */
10864   aci_hal_get_evt_fifo_max_level_rp0 *rp0 = (aci_hal_get_evt_fifo_max_level_rp0 *) (buffer_out + 6);
10865   uint16_t ISR0_FIFO_Max_Level = 0;
10866   uint16_t ISR1_FIFO_Max_Level = 0;
10867   uint16_t User_FIFO_Max_Level = 0;
10868 
10869   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10870   if (buffer_out_max_length < (1 + 2 + 2 + 2 + 6)) { return 0; }
10871   if(buffer_in_length != 0)
10872   {
10873     goto fail;
10874   }
10875 
10876   rp0->Status = aci_hal_get_evt_fifo_max_level(&ISR0_FIFO_Max_Level,
10877                                                &ISR1_FIFO_Max_Level,
10878                                                &User_FIFO_Max_Level);
10879 fail:
10880   rp0->ISR0_FIFO_Max_Level = ISR0_FIFO_Max_Level;
10881   rp0->ISR1_FIFO_Max_Level = ISR1_FIFO_Max_Level;
10882   rp0->User_FIFO_Max_Level = User_FIFO_Max_Level;
10883   buffer_out[0] = 0x04;
10884   buffer_out[1] = 0x0E;
10885   buffer_out[2] = output_size + 3;
10886   buffer_out[3] = 0x01;
10887   buffer_out[4] = 0x60;
10888   buffer_out[5] = 0xfc;
10889   return (output_size + 6);
10890 }
10891 #endif
10892 
10893 #if BLESTACK_CONTROLLER_ONLY==0
10894 
10895 #if (!defined(ACI_GAP_INIT_ENABLED) || ACI_GAP_INIT_ENABLED) && !ACI_GAP_INIT_FORCE_DISABLED
10896 /* tBleStatus aci_gap_init(uint8_t Privacy_Type,
10897                         uint8_t Identity_Address_Type);
10898  */
10899 /* Command len: 1 + 1 */
10900 /* Response len: 1 */
aci_gap_init_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10901 uint16_t aci_gap_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10902 {
10903   /* Input params */
10904   aci_gap_init_cp0 *cp0 = (aci_gap_init_cp0 *)(buffer_in + (0));
10905 
10906   int output_size = 1;
10907   /* Output params */
10908   uint8_t *status = (uint8_t *) (buffer_out + 6);
10909 
10910   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10911   if (buffer_out_max_length < (1 + 6)) { return 0; }
10912   if(buffer_in_length != 1 + 1)
10913   {
10914     goto fail;
10915   }
10916 
10917   *status = aci_gap_init(cp0->Privacy_Type /* 1 */,
10918                          cp0->Identity_Address_Type /* 1 */);
10919 fail:
10920   buffer_out[0] = 0x04;
10921   buffer_out[1] = 0x0E;
10922   buffer_out[2] = output_size + 3;
10923   buffer_out[3] = 0x01;
10924   buffer_out[4] = 0x81;
10925   buffer_out[5] = 0xfc;
10926   return (output_size + 6);
10927 }
10928 #endif
10929 
10930 #if (!defined(ACI_GAP_SET_IO_CAPABILITY_ENABLED) || ACI_GAP_SET_IO_CAPABILITY_ENABLED) && !ACI_GAP_SET_IO_CAPABILITY_FORCE_DISABLED
10931 /* tBleStatus aci_gap_set_io_capability(uint8_t IO_Capability);
10932  */
10933 /* Command len: 1 */
10934 /* Response len: 1 */
aci_gap_set_io_capability_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10935 uint16_t aci_gap_set_io_capability_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10936 {
10937   /* Input params */
10938   aci_gap_set_io_capability_cp0 *cp0 = (aci_gap_set_io_capability_cp0 *)(buffer_in + (0));
10939 
10940   int output_size = 1;
10941   /* Output params */
10942   uint8_t *status = (uint8_t *) (buffer_out + 6);
10943 
10944   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10945   if (buffer_out_max_length < (1 + 6)) { return 0; }
10946   if(buffer_in_length != 1)
10947   {
10948     goto fail;
10949   }
10950 
10951   *status = aci_gap_set_io_capability(cp0->IO_Capability /* 1 */);
10952 fail:
10953   buffer_out[0] = 0x04;
10954   buffer_out[1] = 0x0E;
10955   buffer_out[2] = output_size + 3;
10956   buffer_out[3] = 0x01;
10957   buffer_out[4] = 0x85;
10958   buffer_out[5] = 0xfc;
10959   return (output_size + 6);
10960 }
10961 #endif
10962 
10963 #if (!defined(ACI_GAP_SET_SECURITY_REQUIREMENTS_ENABLED) || ACI_GAP_SET_SECURITY_REQUIREMENTS_ENABLED) && !ACI_GAP_SET_SECURITY_REQUIREMENTS_FORCE_DISABLED
10964 /* tBleStatus aci_gap_set_security_requirements(uint8_t Bonding_Mode,
10965                                              uint8_t MITM_Mode,
10966                                              uint8_t SC_Support,
10967                                              uint8_t KeyPress_Notification_Support,
10968                                              uint8_t Min_Encryption_Key_Size,
10969                                              uint8_t Max_Encryption_Key_Size,
10970                                              uint8_t Pairing_Response);
10971  */
10972 /* Command len: 1 + 1 + 1 + 1 + 1 + 1 + 1 */
10973 /* Response len: 1 */
aci_gap_set_security_requirements_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)10974 uint16_t aci_gap_set_security_requirements_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
10975 {
10976   /* Input params */
10977   aci_gap_set_security_requirements_cp0 *cp0 = (aci_gap_set_security_requirements_cp0 *)(buffer_in + (0));
10978 
10979   int output_size = 1;
10980   /* Output params */
10981   uint8_t *status = (uint8_t *) (buffer_out + 6);
10982 
10983   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
10984   if (buffer_out_max_length < (1 + 6)) { return 0; }
10985   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 1 + 1)
10986   {
10987     goto fail;
10988   }
10989 
10990   *status = aci_gap_set_security_requirements(cp0->Bonding_Mode /* 1 */,
10991                                               cp0->MITM_Mode /* 1 */,
10992                                               cp0->SC_Support /* 1 */,
10993                                               cp0->KeyPress_Notification_Support /* 1 */,
10994                                               cp0->Min_Encryption_Key_Size /* 1 */,
10995                                               cp0->Max_Encryption_Key_Size /* 1 */,
10996                                               cp0->Pairing_Response /* 1 */);
10997 fail:
10998   buffer_out[0] = 0x04;
10999   buffer_out[1] = 0x0E;
11000   buffer_out[2] = output_size + 3;
11001   buffer_out[3] = 0x01;
11002   buffer_out[4] = 0x86;
11003   buffer_out[5] = 0xfc;
11004   return (output_size + 6);
11005 }
11006 #endif
11007 
11008 #if (!defined(ACI_GAP_PASSKEY_RESP_ENABLED) || ACI_GAP_PASSKEY_RESP_ENABLED) && !ACI_GAP_PASSKEY_RESP_FORCE_DISABLED
11009 /* tBleStatus aci_gap_passkey_resp(uint16_t Connection_Handle,
11010                                 uint32_t Passkey);
11011  */
11012 /* Command len: 2 + 4 */
11013 /* Response len: 1 */
aci_gap_passkey_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11014 uint16_t aci_gap_passkey_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11015 {
11016   /* Input params */
11017   aci_gap_passkey_resp_cp0 *cp0 = (aci_gap_passkey_resp_cp0 *)(buffer_in + (0));
11018 
11019   int output_size = 1;
11020   /* Output params */
11021   uint8_t *status = (uint8_t *) (buffer_out + 6);
11022 
11023   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11024   if (buffer_out_max_length < (1 + 6)) { return 0; }
11025   if(buffer_in_length != 2 + 4)
11026   {
11027     goto fail;
11028   }
11029 
11030   *status = aci_gap_passkey_resp(cp0->Connection_Handle /* 2 */,
11031                                  cp0->Passkey /* 4 */);
11032 fail:
11033   buffer_out[0] = 0x04;
11034   buffer_out[1] = 0x0E;
11035   buffer_out[2] = output_size + 3;
11036   buffer_out[3] = 0x01;
11037   buffer_out[4] = 0x88;
11038   buffer_out[5] = 0xfc;
11039   return (output_size + 6);
11040 }
11041 #endif
11042 
11043 #if (!defined(ACI_GAP_PROFILE_INIT_ENABLED) || ACI_GAP_PROFILE_INIT_ENABLED) && !ACI_GAP_PROFILE_INIT_FORCE_DISABLED
11044 /* tBleStatus aci_gap_profile_init(uint8_t Role,
11045                                 uint8_t Privacy_Type,
11046                                 uint16_t *Dev_Name_Char_Handle,
11047                                 uint16_t *Appearance_Char_Handle,
11048                                 uint16_t *Periph_Pref_Conn_Param_Char_Handle);
11049  */
11050 /* Command len: 1 + 1 */
11051 /* Response len: 1 + 2 + 2 + 2 */
aci_gap_profile_init_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11052 uint16_t aci_gap_profile_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11053 {
11054   /* Input params */
11055   aci_gap_profile_init_cp0 *cp0 = (aci_gap_profile_init_cp0 *)(buffer_in + (0));
11056 
11057   int output_size = 1 + 2 + 2 + 2;
11058   /* Output params */
11059   aci_gap_profile_init_rp0 *rp0 = (aci_gap_profile_init_rp0 *) (buffer_out + 6);
11060   uint16_t Dev_Name_Char_Handle = 0;
11061   uint16_t Appearance_Char_Handle = 0;
11062   uint16_t Periph_Pref_Conn_Param_Char_Handle = 0;
11063 
11064   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11065   if (buffer_out_max_length < (1 + 2 + 2 + 2 + 6)) { return 0; }
11066   if(buffer_in_length != 1 + 1)
11067   {
11068     goto fail;
11069   }
11070 
11071   rp0->Status = aci_gap_profile_init(cp0->Role /* 1 */,
11072                                      cp0->Privacy_Type /* 1 */,
11073                                      &Dev_Name_Char_Handle,
11074                                      &Appearance_Char_Handle,
11075                                      &Periph_Pref_Conn_Param_Char_Handle);
11076 fail:
11077   rp0->Dev_Name_Char_Handle = Dev_Name_Char_Handle;
11078   rp0->Appearance_Char_Handle = Appearance_Char_Handle;
11079   rp0->Periph_Pref_Conn_Param_Char_Handle = Periph_Pref_Conn_Param_Char_Handle;
11080   buffer_out[0] = 0x04;
11081   buffer_out[1] = 0x0E;
11082   buffer_out[2] = output_size + 3;
11083   buffer_out[3] = 0x01;
11084   buffer_out[4] = 0x8a;
11085   buffer_out[5] = 0xfc;
11086   return (output_size + 6);
11087 }
11088 #endif
11089 
11090 #if (!defined(ACI_GAP_SET_SECURITY_ENABLED) || ACI_GAP_SET_SECURITY_ENABLED) && !ACI_GAP_SET_SECURITY_FORCE_DISABLED
11091 /* tBleStatus aci_gap_set_security(uint16_t Connection_Handle,
11092                                 uint8_t Security_Level,
11093                                 uint8_t Force_Pairing);
11094  */
11095 /* Command len: 2 + 1 + 1 */
11096 /* Response len: 1 */
aci_gap_set_security_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11097 uint16_t aci_gap_set_security_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11098 {
11099   /* Input params */
11100   aci_gap_set_security_cp0 *cp0 = (aci_gap_set_security_cp0 *)(buffer_in + (0));
11101 
11102   int output_size = 1;
11103   /* Output params */
11104   uint8_t *status = (uint8_t *) (buffer_out + 6);
11105 
11106   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11107   if (buffer_out_max_length < (1 + 6)) { return 0; }
11108   if(buffer_in_length != 2 + 1 + 1)
11109   {
11110     goto fail;
11111   }
11112 
11113   *status = aci_gap_set_security(cp0->Connection_Handle /* 2 */,
11114                                  cp0->Security_Level /* 1 */,
11115                                  cp0->Force_Pairing /* 1 */);
11116 fail:
11117   buffer_out[0] = 0x04;
11118   buffer_out[1] = 0x0E;
11119   buffer_out[2] = output_size + 3;
11120   buffer_out[3] = 0x01;
11121   buffer_out[4] = 0x8d;
11122   buffer_out[5] = 0xfc;
11123   return (output_size + 6);
11124 }
11125 #endif
11126 
11127 #if (!defined(ACI_GAP_GET_SECURITY_LEVEL_ENABLED) || ACI_GAP_GET_SECURITY_LEVEL_ENABLED) && !ACI_GAP_GET_SECURITY_LEVEL_FORCE_DISABLED
11128 /* tBleStatus aci_gap_get_security_level(uint16_t Connection_Handle,
11129                                       uint8_t *Security_Mode,
11130                                       uint8_t *Security_Level);
11131  */
11132 /* Command len: 2 */
11133 /* Response len: 1 + 1 + 1 */
aci_gap_get_security_level_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11134 uint16_t aci_gap_get_security_level_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11135 {
11136   /* Input params */
11137   aci_gap_get_security_level_cp0 *cp0 = (aci_gap_get_security_level_cp0 *)(buffer_in + (0));
11138 
11139   int output_size = 1 + 1 + 1;
11140   /* Output params */
11141   aci_gap_get_security_level_rp0 *rp0 = (aci_gap_get_security_level_rp0 *) (buffer_out + 6);
11142   uint8_t Security_Mode = 0;
11143   uint8_t Security_Level = 0;
11144 
11145   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11146   if (buffer_out_max_length < (1 + 1 + 1 + 6)) { return 0; }
11147   if(buffer_in_length != 2)
11148   {
11149     goto fail;
11150   }
11151 
11152   rp0->Status = aci_gap_get_security_level(cp0->Connection_Handle /* 2 */,
11153                                            &Security_Mode,
11154                                            &Security_Level);
11155 fail:
11156   rp0->Security_Mode = Security_Mode;
11157   rp0->Security_Level = Security_Level;
11158   buffer_out[0] = 0x04;
11159   buffer_out[1] = 0x0E;
11160   buffer_out[2] = output_size + 3;
11161   buffer_out[3] = 0x01;
11162   buffer_out[4] = 0x90;
11163   buffer_out[5] = 0xfc;
11164   return (output_size + 6);
11165 }
11166 #endif
11167 
11168 #if (!defined(ACI_GAP_SET_LE_EVENT_MASK_ENABLED) || ACI_GAP_SET_LE_EVENT_MASK_ENABLED) && !ACI_GAP_SET_LE_EVENT_MASK_FORCE_DISABLED
11169 /* tBleStatus aci_gap_set_le_event_mask(uint8_t LE_Event_Mask[8]);
11170  */
11171 /* Command len: 8 */
11172 /* Response len: 1 */
aci_gap_set_le_event_mask_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11173 uint16_t aci_gap_set_le_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11174 {
11175   /* Input params */
11176   aci_gap_set_le_event_mask_cp0 *cp0 = (aci_gap_set_le_event_mask_cp0 *)(buffer_in + (0));
11177 
11178   int output_size = 1;
11179   /* Output params */
11180   uint8_t *status = (uint8_t *) (buffer_out + 6);
11181 
11182   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11183   if (buffer_out_max_length < (1 + 6)) { return 0; }
11184   if(buffer_in_length != 8)
11185   {
11186     goto fail;
11187   }
11188 
11189   *status = aci_gap_set_le_event_mask(cp0->LE_Event_Mask /* 8 */);
11190 fail:
11191   buffer_out[0] = 0x04;
11192   buffer_out[1] = 0x0E;
11193   buffer_out[2] = output_size + 3;
11194   buffer_out[3] = 0x01;
11195   buffer_out[4] = 0x92;
11196   buffer_out[5] = 0xfc;
11197   return (output_size + 6);
11198 }
11199 #endif
11200 
11201 #if (!defined(ACI_GAP_TERMINATE_ENABLED) || ACI_GAP_TERMINATE_ENABLED) && !ACI_GAP_TERMINATE_FORCE_DISABLED
11202 /* tBleStatus aci_gap_terminate(uint16_t Connection_Handle,
11203                              uint8_t Reason);
11204  */
11205 /* Command len: 2 + 1 */
11206 /* Response len: 1 */
aci_gap_terminate_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11207 uint16_t aci_gap_terminate_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11208 {
11209   /* Input params */
11210   aci_gap_terminate_cp0 *cp0 = (aci_gap_terminate_cp0 *)(buffer_in + (0));
11211 
11212   int output_size = 1;
11213   /* Output params */
11214   uint8_t *status = (uint8_t *) (buffer_out + 3);
11215 
11216   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11217   if (buffer_out_max_length < (1 + 6)) { return 0; }
11218   if(buffer_in_length != 2 + 1)
11219   {
11220     goto fail;
11221   }
11222 
11223   *status = aci_gap_terminate(cp0->Connection_Handle /* 2 */,
11224                               cp0->Reason /* 1 */);
11225 fail:
11226   buffer_out[0] = 0x04;
11227   buffer_out[1] = 0x0F;
11228   buffer_out[2] = output_size + 3;
11229   buffer_out[4] = 0x01;
11230   buffer_out[5] = 0x93;
11231   buffer_out[6] = 0xfc;
11232   return (output_size + 6);
11233 }
11234 #endif
11235 
11236 #if (!defined(ACI_GAP_CLEAR_SECURITY_DB_ENABLED) || ACI_GAP_CLEAR_SECURITY_DB_ENABLED) && !ACI_GAP_CLEAR_SECURITY_DB_FORCE_DISABLED
11237 /* tBleStatus aci_gap_clear_security_db(void);
11238  */
11239 /* Command len: 0 */
11240 /* Response len: 1 */
aci_gap_clear_security_db_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11241 uint16_t aci_gap_clear_security_db_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11242 {
11243 
11244   int output_size = 1;
11245   /* Output params */
11246   uint8_t *status = (uint8_t *) (buffer_out + 6);
11247 
11248   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11249   if (buffer_out_max_length < (1 + 6)) { return 0; }
11250   if(buffer_in_length != 0)
11251   {
11252     goto fail;
11253   }
11254 
11255   *status = aci_gap_clear_security_db();
11256 fail:
11257   buffer_out[0] = 0x04;
11258   buffer_out[1] = 0x0E;
11259   buffer_out[2] = output_size + 3;
11260   buffer_out[3] = 0x01;
11261   buffer_out[4] = 0x94;
11262   buffer_out[5] = 0xfc;
11263   return (output_size + 6);
11264 }
11265 #endif
11266 
11267 #if (!defined(ACI_GAP_PAIRING_RESP_ENABLED) || ACI_GAP_PAIRING_RESP_ENABLED) && !ACI_GAP_PAIRING_RESP_FORCE_DISABLED
11268 /* tBleStatus aci_gap_pairing_resp(uint16_t Connection_Handle,
11269                                 uint8_t Accept);
11270  */
11271 /* Command len: 2 + 1 */
11272 /* Response len: 1 */
aci_gap_pairing_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11273 uint16_t aci_gap_pairing_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11274 {
11275   /* Input params */
11276   aci_gap_pairing_resp_cp0 *cp0 = (aci_gap_pairing_resp_cp0 *)(buffer_in + (0));
11277 
11278   int output_size = 1;
11279   /* Output params */
11280   uint8_t *status = (uint8_t *) (buffer_out + 6);
11281 
11282   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11283   if (buffer_out_max_length < (1 + 6)) { return 0; }
11284   if(buffer_in_length != 2 + 1)
11285   {
11286     goto fail;
11287   }
11288 
11289   *status = aci_gap_pairing_resp(cp0->Connection_Handle /* 2 */,
11290                                  cp0->Accept /* 1 */);
11291 fail:
11292   buffer_out[0] = 0x04;
11293   buffer_out[1] = 0x0E;
11294   buffer_out[2] = output_size + 3;
11295   buffer_out[3] = 0x01;
11296   buffer_out[4] = 0x96;
11297   buffer_out[5] = 0xfc;
11298   return (output_size + 6);
11299 }
11300 #endif
11301 
11302 #if (!defined(ACI_GAP_CREATE_CONNECTION_ENABLED) || ACI_GAP_CREATE_CONNECTION_ENABLED) && !ACI_GAP_CREATE_CONNECTION_FORCE_DISABLED
11303 /* tBleStatus aci_gap_create_connection(uint8_t Initiating_PHY,
11304                                      uint8_t Peer_Address_Type,
11305                                      uint8_t Peer_Address[6]);
11306  */
11307 /* Command len: 1 + 1 + 6 */
11308 /* Response len: 1 */
aci_gap_create_connection_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11309 uint16_t aci_gap_create_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11310 {
11311   /* Input params */
11312   aci_gap_create_connection_cp0 *cp0 = (aci_gap_create_connection_cp0 *)(buffer_in + (0));
11313 
11314   int output_size = 1;
11315   /* Output params */
11316   uint8_t *status = (uint8_t *) (buffer_out + 3);
11317 
11318   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11319   if (buffer_out_max_length < (1 + 6)) { return 0; }
11320   if(buffer_in_length != 1 + 1 + 6)
11321   {
11322     goto fail;
11323   }
11324 
11325   *status = aci_gap_create_connection(cp0->Initiating_PHY /* 1 */,
11326                                       cp0->Peer_Address_Type /* 1 */,
11327                                       cp0->Peer_Address /* 6 */);
11328 fail:
11329   buffer_out[0] = 0x04;
11330   buffer_out[1] = 0x0F;
11331   buffer_out[2] = output_size + 3;
11332   buffer_out[4] = 0x01;
11333   buffer_out[5] = 0x9c;
11334   buffer_out[6] = 0xfc;
11335   return (output_size + 6);
11336 }
11337 #endif
11338 
11339 #if (!defined(ACI_GAP_TERMINATE_PROC_ENABLED) || ACI_GAP_TERMINATE_PROC_ENABLED) && !ACI_GAP_TERMINATE_PROC_FORCE_DISABLED
11340 /* tBleStatus aci_gap_terminate_proc(uint8_t Procedure_Code);
11341  */
11342 /* Command len: 1 */
11343 /* Response len: 1 */
aci_gap_terminate_proc_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11344 uint16_t aci_gap_terminate_proc_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11345 {
11346   /* Input params */
11347   aci_gap_terminate_proc_cp0 *cp0 = (aci_gap_terminate_proc_cp0 *)(buffer_in + (0));
11348 
11349   int output_size = 1;
11350   /* Output params */
11351   uint8_t *status = (uint8_t *) (buffer_out + 3);
11352 
11353   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11354   if (buffer_out_max_length < (1 + 6)) { return 0; }
11355   if(buffer_in_length != 1)
11356   {
11357     goto fail;
11358   }
11359 
11360   *status = aci_gap_terminate_proc(cp0->Procedure_Code /* 1 */);
11361 fail:
11362   buffer_out[0] = 0x04;
11363   buffer_out[1] = 0x0F;
11364   buffer_out[2] = output_size + 3;
11365   buffer_out[4] = 0x01;
11366   buffer_out[5] = 0x9d;
11367   buffer_out[6] = 0xfc;
11368   return (output_size + 6);
11369 }
11370 #endif
11371 
11372 #if (!defined(ACI_GAP_START_CONNECTION_UPDATE_ENABLED) || ACI_GAP_START_CONNECTION_UPDATE_ENABLED) && !ACI_GAP_START_CONNECTION_UPDATE_FORCE_DISABLED
11373 /* tBleStatus aci_gap_start_connection_update(uint16_t Connection_Handle,
11374                                            uint16_t Connection_Interval_Min,
11375                                            uint16_t Connection_Interval_Max,
11376                                            uint16_t Max_Latency,
11377                                            uint16_t Supervision_Timeout,
11378                                            uint16_t Min_CE_Length,
11379                                            uint16_t Max_CE_Length);
11380  */
11381 /* Command len: 2 + 2 + 2 + 2 + 2 + 2 + 2 */
11382 /* Response len: 1 */
aci_gap_start_connection_update_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11383 uint16_t aci_gap_start_connection_update_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11384 {
11385   /* Input params */
11386   aci_gap_start_connection_update_cp0 *cp0 = (aci_gap_start_connection_update_cp0 *)(buffer_in + (0));
11387 
11388   int output_size = 1;
11389   /* Output params */
11390   uint8_t *status = (uint8_t *) (buffer_out + 3);
11391 
11392   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11393   if (buffer_out_max_length < (1 + 6)) { return 0; }
11394   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + 2 + 2)
11395   {
11396     goto fail;
11397   }
11398 
11399   *status = aci_gap_start_connection_update(cp0->Connection_Handle /* 2 */,
11400                                             cp0->Connection_Interval_Min /* 2 */,
11401                                             cp0->Connection_Interval_Max /* 2 */,
11402                                             cp0->Max_Latency /* 2 */,
11403                                             cp0->Supervision_Timeout /* 2 */,
11404                                             cp0->Min_CE_Length /* 2 */,
11405                                             cp0->Max_CE_Length /* 2 */);
11406 fail:
11407   buffer_out[0] = 0x04;
11408   buffer_out[1] = 0x0F;
11409   buffer_out[2] = output_size + 3;
11410   buffer_out[4] = 0x01;
11411   buffer_out[5] = 0x9e;
11412   buffer_out[6] = 0xfc;
11413   return (output_size + 6);
11414 }
11415 #endif
11416 
11417 #if (!defined(ACI_GAP_RESOLVE_PRIVATE_ADDR_ENABLED) || ACI_GAP_RESOLVE_PRIVATE_ADDR_ENABLED) && !ACI_GAP_RESOLVE_PRIVATE_ADDR_FORCE_DISABLED
11418 /* tBleStatus aci_gap_resolve_private_addr(uint8_t Address[6],
11419                                         uint8_t Actual_Address[6]);
11420  */
11421 /* Command len: 6 */
11422 /* Response len: 1 + 6 */
aci_gap_resolve_private_addr_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11423 uint16_t aci_gap_resolve_private_addr_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11424 {
11425   /* Input params */
11426   aci_gap_resolve_private_addr_cp0 *cp0 = (aci_gap_resolve_private_addr_cp0 *)(buffer_in + (0));
11427 
11428   int output_size = 1 + 6;
11429   /* Output params */
11430   aci_gap_resolve_private_addr_rp0 *rp0 = (aci_gap_resolve_private_addr_rp0 *) (buffer_out + 6);
11431   uint8_t Actual_Address[6] = {0};
11432 
11433   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11434   if (buffer_out_max_length < (1 + 6 + 6)) { return 0; }
11435   if(buffer_in_length != 6)
11436   {
11437     goto fail;
11438   }
11439 
11440   rp0->Status = aci_gap_resolve_private_addr(cp0->Address /* 6 */,
11441                                              Actual_Address);
11442 fail:
11443   Osal_MemCpy((void *) rp0->Actual_Address,(const void *) Actual_Address, 6);
11444   buffer_out[0] = 0x04;
11445   buffer_out[1] = 0x0E;
11446   buffer_out[2] = output_size + 3;
11447   buffer_out[3] = 0x01;
11448   buffer_out[4] = 0xa0;
11449   buffer_out[5] = 0xfc;
11450   return (output_size + 6);
11451 }
11452 #endif
11453 
11454 #if (!defined(ACI_GAP_GET_BONDED_DEVICES_ENABLED) || ACI_GAP_GET_BONDED_DEVICES_ENABLED) && !ACI_GAP_GET_BONDED_DEVICES_FORCE_DISABLED
11455 /* tBleStatus aci_gap_get_bonded_devices(uint8_t Offset,
11456                                       uint8_t Max_Num_Of_Addresses,
11457                                       uint8_t *Num_of_Addresses,
11458                                       Bonded_Device_Entry_t Bonded_Device_Entry[]);
11459  */
11460 /* Command len: 1 + 1 */
11461 /* Response len: 1 + 1 + struct_length */
aci_gap_get_bonded_devices_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11462 uint16_t aci_gap_get_bonded_devices_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11463 {
11464   /* Input params */
11465   aci_gap_get_bonded_devices_cp0 *cp0 = (aci_gap_get_bonded_devices_cp0 *)(buffer_in + (0));
11466 
11467   int output_size = 0;
11468   /* Output params */
11469   aci_gap_get_bonded_devices_rp0 *rp0 = (aci_gap_get_bonded_devices_rp0 *) (buffer_out + 6);
11470   uint8_t Num_of_Addresses = 0;
11471   Bonded_Device_Entry_t Bonded_Device_Entry[HCI_MAX_PAYLOAD_SIZE/sizeof(Bonded_Device_Entry_t)] = {0};
11472 
11473   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11474   if (buffer_out_max_length < (1 + 6)) { return 0; }
11475   if(buffer_in_length != 1 + 1)
11476   {
11477     goto fail;
11478   }
11479 
11480   rp0->Status = aci_gap_get_bonded_devices(cp0->Offset /* 1 */,
11481                                            cp0->Max_Num_Of_Addresses /* 1 */,
11482                                            &Num_of_Addresses,
11483                                            Bonded_Device_Entry);
11484 fail:
11485   output_size += 1;
11486   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
11487   rp0->Num_of_Addresses = Num_of_Addresses;
11488   output_size += 1;
11489   {
11490     int i;
11491     for (i = 0; i < rp0->Num_of_Addresses; i++) {
11492       if (buffer_out_max_length < (output_size + (sizeof(uint8_t)) + 6)) { return 0; }
11493       rp0->Bonded_Device_Entry[i].Address_Type = Bonded_Device_Entry[i].Address_Type;
11494       output_size += sizeof(uint8_t);
11495       if (buffer_out_max_length < (output_size + (6) + 6)) { return 0; }
11496       Osal_MemCpy((void *) &rp0->Bonded_Device_Entry[i].Address, (const void *) Bonded_Device_Entry[i].Address, 6);
11497       output_size += 6;
11498     }
11499   }
11500   buffer_out[0] = 0x04;
11501   buffer_out[1] = 0x0E;
11502   buffer_out[2] = output_size + 3;
11503   buffer_out[3] = 0x01;
11504   buffer_out[4] = 0xa3;
11505   buffer_out[5] = 0xfc;
11506   return (output_size + 6);
11507 }
11508 #endif
11509 
11510 #if (!defined(ACI_GAP_IS_DEVICE_BONDED_ENABLED) || ACI_GAP_IS_DEVICE_BONDED_ENABLED) && !ACI_GAP_IS_DEVICE_BONDED_FORCE_DISABLED
11511 /* tBleStatus aci_gap_is_device_bonded(uint8_t Peer_Address_Type,
11512                                     uint8_t Peer_Address[6]);
11513  */
11514 /* Command len: 1 + 6 */
11515 /* Response len: 1 */
aci_gap_is_device_bonded_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11516 uint16_t aci_gap_is_device_bonded_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11517 {
11518   /* Input params */
11519   aci_gap_is_device_bonded_cp0 *cp0 = (aci_gap_is_device_bonded_cp0 *)(buffer_in + (0));
11520 
11521   int output_size = 1;
11522   /* Output params */
11523   uint8_t *status = (uint8_t *) (buffer_out + 6);
11524 
11525   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11526   if (buffer_out_max_length < (1 + 6)) { return 0; }
11527   if(buffer_in_length != 1 + 6)
11528   {
11529     goto fail;
11530   }
11531 
11532   *status = aci_gap_is_device_bonded(cp0->Peer_Address_Type /* 1 */,
11533                                      cp0->Peer_Address /* 6 */);
11534 fail:
11535   buffer_out[0] = 0x04;
11536   buffer_out[1] = 0x0E;
11537   buffer_out[2] = output_size + 3;
11538   buffer_out[3] = 0x01;
11539   buffer_out[4] = 0xa4;
11540   buffer_out[5] = 0xfc;
11541   return (output_size + 6);
11542 }
11543 #endif
11544 
11545 #if (!defined(ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_ENABLED) || ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_ENABLED) && !ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_FORCE_DISABLED
11546 /* tBleStatus aci_gap_numeric_comparison_value_confirm_yesno(uint16_t Connection_Handle,
11547                                                           uint8_t Confirm_Yes_No);
11548  */
11549 /* Command len: 2 + 1 */
11550 /* Response len: 1 */
aci_gap_numeric_comparison_value_confirm_yesno_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11551 uint16_t aci_gap_numeric_comparison_value_confirm_yesno_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11552 {
11553   /* Input params */
11554   aci_gap_numeric_comparison_value_confirm_yesno_cp0 *cp0 = (aci_gap_numeric_comparison_value_confirm_yesno_cp0 *)(buffer_in + (0));
11555 
11556   int output_size = 1;
11557   /* Output params */
11558   uint8_t *status = (uint8_t *) (buffer_out + 6);
11559 
11560   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11561   if (buffer_out_max_length < (1 + 6)) { return 0; }
11562   if(buffer_in_length != 2 + 1)
11563   {
11564     goto fail;
11565   }
11566 
11567   *status = aci_gap_numeric_comparison_value_confirm_yesno(cp0->Connection_Handle /* 2 */,
11568                                                            cp0->Confirm_Yes_No /* 1 */);
11569 fail:
11570   buffer_out[0] = 0x04;
11571   buffer_out[1] = 0x0E;
11572   buffer_out[2] = output_size + 3;
11573   buffer_out[3] = 0x01;
11574   buffer_out[4] = 0xa5;
11575   buffer_out[5] = 0xfc;
11576   return (output_size + 6);
11577 }
11578 #endif
11579 
11580 #if (!defined(ACI_GAP_PASSKEY_INPUT_ENABLED) || ACI_GAP_PASSKEY_INPUT_ENABLED) && !ACI_GAP_PASSKEY_INPUT_FORCE_DISABLED
11581 /* tBleStatus aci_gap_passkey_input(uint16_t Connection_Handle,
11582                                  uint8_t Input_Type);
11583  */
11584 /* Command len: 2 + 1 */
11585 /* Response len: 1 */
aci_gap_passkey_input_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11586 uint16_t aci_gap_passkey_input_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11587 {
11588   /* Input params */
11589   aci_gap_passkey_input_cp0 *cp0 = (aci_gap_passkey_input_cp0 *)(buffer_in + (0));
11590 
11591   int output_size = 1;
11592   /* Output params */
11593   uint8_t *status = (uint8_t *) (buffer_out + 6);
11594 
11595   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11596   if (buffer_out_max_length < (1 + 6)) { return 0; }
11597   if(buffer_in_length != 2 + 1)
11598   {
11599     goto fail;
11600   }
11601 
11602   *status = aci_gap_passkey_input(cp0->Connection_Handle /* 2 */,
11603                                   cp0->Input_Type /* 1 */);
11604 fail:
11605   buffer_out[0] = 0x04;
11606   buffer_out[1] = 0x0E;
11607   buffer_out[2] = output_size + 3;
11608   buffer_out[3] = 0x01;
11609   buffer_out[4] = 0xa6;
11610   buffer_out[5] = 0xfc;
11611   return (output_size + 6);
11612 }
11613 #endif
11614 
11615 #if (!defined(ACI_GAP_GET_OOB_DATA_ENABLED) || ACI_GAP_GET_OOB_DATA_ENABLED) && !ACI_GAP_GET_OOB_DATA_FORCE_DISABLED
11616 /* tBleStatus aci_gap_get_oob_data(uint8_t OOB_Data_Type,
11617                                 uint8_t *Address_Type,
11618                                 uint8_t Address[6],
11619                                 uint8_t *OOB_Data_Len,
11620                                 uint8_t OOB_Data[16]);
11621  */
11622 /* Command len: 1 */
11623 /* Response len: 1 + 1 + 6 + 1 + 1 + 16 */
aci_gap_get_oob_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11624 uint16_t aci_gap_get_oob_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11625 {
11626   /* Input params */
11627   aci_gap_get_oob_data_cp0 *cp0 = (aci_gap_get_oob_data_cp0 *)(buffer_in + (0));
11628 
11629   int output_size = 1 + 1 + 6 + 1 + 1 + 16;
11630   /* Output params */
11631   aci_gap_get_oob_data_rp0 *rp0 = (aci_gap_get_oob_data_rp0 *) (buffer_out + 6);
11632   uint8_t Address_Type = 0;
11633   uint8_t Address[6] = {0};
11634   uint8_t OOB_Data_Len = 0;
11635   uint8_t OOB_Data[16] = {0};
11636 
11637   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11638   if (buffer_out_max_length < (1 + 1 + 6 + 1 + 1 + 16 + 6)) { return 0; }
11639   if(buffer_in_length != 1)
11640   {
11641     goto fail;
11642   }
11643 
11644   rp0->Status = aci_gap_get_oob_data(cp0->OOB_Data_Type /* 1 */,
11645                                      &Address_Type,
11646                                      Address,
11647                                      &OOB_Data_Len,
11648                                      OOB_Data);
11649 fail:
11650   rp0->Address_Type = Address_Type;
11651   Osal_MemCpy((void *) rp0->Address,(const void *) Address, 6);
11652   rp0->OOB_Data_Type = cp0->OOB_Data_Type;
11653   rp0->OOB_Data_Len = OOB_Data_Len;
11654   Osal_MemCpy((void *) rp0->OOB_Data,(const void *) OOB_Data, 16);
11655   buffer_out[0] = 0x04;
11656   buffer_out[1] = 0x0E;
11657   buffer_out[2] = output_size + 3;
11658   buffer_out[3] = 0x01;
11659   buffer_out[4] = 0xa7;
11660   buffer_out[5] = 0xfc;
11661   return (output_size + 6);
11662 }
11663 #endif
11664 
11665 #if (!defined(ACI_GAP_SET_OOB_DATA_ENABLED) || ACI_GAP_SET_OOB_DATA_ENABLED) && !ACI_GAP_SET_OOB_DATA_FORCE_DISABLED
11666 /* tBleStatus aci_gap_set_oob_data(uint8_t Device_Type,
11667                                 uint8_t Address_Type,
11668                                 uint8_t Address[6],
11669                                 uint8_t OOB_Data_Type,
11670                                 uint8_t OOB_Data_Len,
11671                                 uint8_t OOB_Data[16]);
11672  */
11673 /* Command len: 1 + 1 + 6 + 1 + 1 + 16 */
11674 /* Response len: 1 */
aci_gap_set_oob_data_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11675 uint16_t aci_gap_set_oob_data_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11676 {
11677   /* Input params */
11678   aci_gap_set_oob_data_cp0 *cp0 = (aci_gap_set_oob_data_cp0 *)(buffer_in + (0));
11679 
11680   int output_size = 1;
11681   /* Output params */
11682   uint8_t *status = (uint8_t *) (buffer_out + 6);
11683 
11684   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11685   if (buffer_out_max_length < (1 + 6)) { return 0; }
11686   if(buffer_in_length != 1 + 1 + 6 + 1 + 1 + 16)
11687   {
11688     goto fail;
11689   }
11690 
11691   *status = aci_gap_set_oob_data(cp0->Device_Type /* 1 */,
11692                                  cp0->Address_Type /* 1 */,
11693                                  cp0->Address /* 6 */,
11694                                  cp0->OOB_Data_Type /* 1 */,
11695                                  cp0->OOB_Data_Len /* 1 */,
11696                                  cp0->OOB_Data /* 16 */);
11697 fail:
11698   buffer_out[0] = 0x04;
11699   buffer_out[1] = 0x0E;
11700   buffer_out[2] = output_size + 3;
11701   buffer_out[3] = 0x01;
11702   buffer_out[4] = 0xa8;
11703   buffer_out[5] = 0xfc;
11704   return (output_size + 6);
11705 }
11706 #endif
11707 
11708 #if (!defined(ACI_GAP_REMOVE_BONDED_DEVICE_ENABLED) || ACI_GAP_REMOVE_BONDED_DEVICE_ENABLED) && !ACI_GAP_REMOVE_BONDED_DEVICE_FORCE_DISABLED
11709 /* tBleStatus aci_gap_remove_bonded_device(uint8_t Peer_Identity_Address_Type,
11710                                         uint8_t Peer_Identity_Address[6]);
11711  */
11712 /* Command len: 1 + 6 */
11713 /* Response len: 1 */
aci_gap_remove_bonded_device_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11714 uint16_t aci_gap_remove_bonded_device_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11715 {
11716   /* Input params */
11717   aci_gap_remove_bonded_device_cp0 *cp0 = (aci_gap_remove_bonded_device_cp0 *)(buffer_in + (0));
11718 
11719   int output_size = 1;
11720   /* Output params */
11721   uint8_t *status = (uint8_t *) (buffer_out + 6);
11722 
11723   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11724   if (buffer_out_max_length < (1 + 6)) { return 0; }
11725   if(buffer_in_length != 1 + 6)
11726   {
11727     goto fail;
11728   }
11729 
11730   *status = aci_gap_remove_bonded_device(cp0->Peer_Identity_Address_Type /* 1 */,
11731                                          cp0->Peer_Identity_Address /* 6 */);
11732 fail:
11733   buffer_out[0] = 0x04;
11734   buffer_out[1] = 0x0E;
11735   buffer_out[2] = output_size + 3;
11736   buffer_out[3] = 0x01;
11737   buffer_out[4] = 0xaa;
11738   buffer_out[5] = 0xfc;
11739   return (output_size + 6);
11740 }
11741 #endif
11742 
11743 #if (!defined(ACI_GAP_SET_ADVERTISING_CONFIGURATION_ENABLED) || ACI_GAP_SET_ADVERTISING_CONFIGURATION_ENABLED) && !ACI_GAP_SET_ADVERTISING_CONFIGURATION_FORCE_DISABLED
11744 /* tBleStatus aci_gap_set_advertising_configuration(uint8_t Advertising_Handle,
11745                                                  uint8_t Discoverable_Mode,
11746                                                  uint16_t Advertising_Event_Properties,
11747                                                  uint32_t Primary_Advertising_Interval_Min,
11748                                                  uint32_t Primary_Advertising_Interval_Max,
11749                                                  uint8_t Primary_Advertising_Channel_Map,
11750                                                  uint8_t Peer_Address_Type,
11751                                                  uint8_t Peer_Address[6],
11752                                                  uint8_t Advertising_Filter_Policy,
11753                                                  int8_t Advertising_Tx_Power,
11754                                                  uint8_t Primary_Advertising_PHY,
11755                                                  uint8_t Secondary_Advertising_Max_Skip,
11756                                                  uint8_t Secondary_Advertising_PHY,
11757                                                  uint8_t Advertising_SID,
11758                                                  uint8_t Scan_Request_Notification_Enable);
11759  */
11760 /* Command len: 1 + 1 + 2 + 4 + 4 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 */
11761 /* Response len: 1 */
aci_gap_set_advertising_configuration_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11762 uint16_t aci_gap_set_advertising_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11763 {
11764   /* Input params */
11765   aci_gap_set_advertising_configuration_cp0 *cp0 = (aci_gap_set_advertising_configuration_cp0 *)(buffer_in + (0));
11766 
11767   int output_size = 1;
11768   /* Output params */
11769   uint8_t *status = (uint8_t *) (buffer_out + 6);
11770 
11771   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11772   if (buffer_out_max_length < (1 + 6)) { return 0; }
11773   if(buffer_in_length != 1 + 1 + 2 + 4 + 4 + 1 + 1 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1)
11774   {
11775     goto fail;
11776   }
11777 
11778   *status = aci_gap_set_advertising_configuration(cp0->Advertising_Handle /* 1 */,
11779                                                   cp0->Discoverable_Mode /* 1 */,
11780                                                   cp0->Advertising_Event_Properties /* 2 */,
11781                                                   cp0->Primary_Advertising_Interval_Min /* 4 */,
11782                                                   cp0->Primary_Advertising_Interval_Max /* 4 */,
11783                                                   cp0->Primary_Advertising_Channel_Map /* 1 */,
11784                                                   cp0->Peer_Address_Type /* 1 */,
11785                                                   cp0->Peer_Address /* 6 */,
11786                                                   cp0->Advertising_Filter_Policy /* 1 */,
11787                                                   cp0->Advertising_Tx_Power /* 1 */,
11788                                                   cp0->Primary_Advertising_PHY /* 1 */,
11789                                                   cp0->Secondary_Advertising_Max_Skip /* 1 */,
11790                                                   cp0->Secondary_Advertising_PHY /* 1 */,
11791                                                   cp0->Advertising_SID /* 1 */,
11792                                                   cp0->Scan_Request_Notification_Enable /* 1 */);
11793 fail:
11794   buffer_out[0] = 0x04;
11795   buffer_out[1] = 0x0E;
11796   buffer_out[2] = output_size + 3;
11797   buffer_out[3] = 0x01;
11798   buffer_out[4] = 0xab;
11799   buffer_out[5] = 0xfc;
11800   return (output_size + 6);
11801 }
11802 #endif
11803 
11804 #if (!defined(ACI_GAP_SET_ADVERTISING_ENABLE_ENABLED) || ACI_GAP_SET_ADVERTISING_ENABLE_ENABLED) && !ACI_GAP_SET_ADVERTISING_ENABLE_FORCE_DISABLED
11805 tBleStatus aci_gap_set_advertising_enable_preprocess(uint8_t Enable,
11806                                                      uint8_t Number_of_Sets,
11807                                                      Advertising_Set_Parameters_t Advertising_Set_Parameters[]);
11808 /* tBleStatus aci_gap_set_advertising_enable(uint8_t Enable,
11809                                           uint8_t Number_of_Sets,
11810                                           Advertising_Set_Parameters_t Advertising_Set_Parameters[]);
11811  */
11812 /* Command len: 1 + 1 + struct_length */
11813 /* Response len: 1 */
aci_gap_set_advertising_enable_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11814 uint16_t aci_gap_set_advertising_enable_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11815 {
11816   /* Input params */
11817   aci_gap_set_advertising_enable_cp0 *cp0 = (aci_gap_set_advertising_enable_cp0 *)(buffer_in + (0));
11818   Advertising_Set_Parameters_t Advertising_Set_Parameters[HCI_MAX_PAYLOAD_SIZE/sizeof(Advertising_Set_Parameters_t)];
11819 
11820   int output_size = 1;
11821   /* Output params */
11822   uint8_t *status = (uint8_t *) (buffer_out + 6);
11823 
11824   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11825   if (buffer_out_max_length < (1 + 6)) { return 0; }
11826   int i;
11827   int struct_length = 0;
11828   if(cp0->Number_of_Sets > HCI_MAX_PAYLOAD_SIZE/sizeof(Advertising_Set_Parameters_t))
11829   {
11830     cp0->Number_of_Sets = 0;
11831     goto fail;
11832   }
11833   for (i = 0; i < cp0->Number_of_Sets; i++) {
11834     packed_Advertising_Set_Parameters_t *Advertising_Set_Parameters_tmp = (packed_Advertising_Set_Parameters_t *)(((uint8_t *)cp0->Advertising_Set_Parameters) + struct_length);
11835     Advertising_Set_Parameters[i].Advertising_Handle = Advertising_Set_Parameters_tmp->Advertising_Handle;
11836     struct_length += 1;
11837     Advertising_Set_Parameters[i].Duration = Advertising_Set_Parameters_tmp->Duration;
11838     struct_length += 2;
11839     Advertising_Set_Parameters[i].Max_Extended_Advertising_Events = Advertising_Set_Parameters_tmp->Max_Extended_Advertising_Events;
11840     struct_length += 1;
11841   }
11842   if(buffer_in_length != 1 + 1 + struct_length)
11843   {
11844     goto fail;
11845   }
11846 
11847   *status = aci_gap_set_advertising_enable_preprocess(cp0->Enable /* 1 */,
11848                                                       cp0->Number_of_Sets /* 1 */,
11849                                                       Advertising_Set_Parameters /* struct_length */);
11850   if(*status)
11851     goto fail;
11852 
11853   *status = aci_gap_set_advertising_enable(cp0->Enable /* 1 */,
11854                                            cp0->Number_of_Sets /* 1 */,
11855                                            Advertising_Set_Parameters /* struct_length */);
11856 fail:
11857   buffer_out[0] = 0x04;
11858   buffer_out[1] = 0x0E;
11859   buffer_out[2] = output_size + 3;
11860   buffer_out[3] = 0x01;
11861   buffer_out[4] = 0xac;
11862   buffer_out[5] = 0xfc;
11863   return (output_size + 6);
11864 }
11865 #endif
11866 
11867 #if (!defined(ACI_GAP_SET_ADVERTISING_DATA_NWK_ENABLED) || ACI_GAP_SET_ADVERTISING_DATA_NWK_ENABLED) && !ACI_GAP_SET_ADVERTISING_DATA_NWK_FORCE_DISABLED
11868 /* tBleStatus aci_gap_set_advertising_data_nwk(uint8_t Advertising_Handle,
11869                                             uint8_t Operation,
11870                                             uint8_t Advertising_Data_Length,
11871                                             uint8_t Advertising_Data[]);
11872  */
11873 /* Command len: 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)) */
11874 /* Response len: 1 */
aci_gap_set_advertising_data_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11875 uint16_t aci_gap_set_advertising_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11876 {
11877   /* Input params */
11878   aci_gap_set_advertising_data_nwk_cp0 *cp0 = (aci_gap_set_advertising_data_nwk_cp0 *)(buffer_in + (0));
11879 
11880   int output_size = 1;
11881   /* Output params */
11882   uint8_t *status = (uint8_t *) (buffer_out + 6);
11883 
11884   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11885   if (buffer_out_max_length < (1 + 6)) { return 0; }
11886   if(buffer_in_length != 1 + 1 + 1 + cp0->Advertising_Data_Length * (sizeof(uint8_t)))
11887   {
11888     goto fail;
11889   }
11890 
11891   *status = aci_gap_set_advertising_data_nwk(cp0->Advertising_Handle /* 1 */,
11892                                              cp0->Operation /* 1 */,
11893                                              cp0->Advertising_Data_Length /* 1 */,
11894                                              cp0->Advertising_Data /* cp0->Advertising_Data_Length * (sizeof(uint8_t)) */);
11895 fail:
11896   buffer_out[0] = 0x04;
11897   buffer_out[1] = 0x0E;
11898   buffer_out[2] = output_size + 3;
11899   buffer_out[3] = 0x01;
11900   buffer_out[4] = 0xad;
11901   buffer_out[5] = 0xfc;
11902   return (output_size + 6);
11903 }
11904 #endif
11905 
11906 #if (!defined(ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_ENABLED) || ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_ENABLED) && !ACI_GAP_SET_SCAN_RESPONSE_DATA_NWK_FORCE_DISABLED
11907 /* tBleStatus aci_gap_set_scan_response_data_nwk(uint8_t Advertising_Handle,
11908                                               uint8_t Operation,
11909                                               uint8_t Scan_Response_Data_Length,
11910                                               uint8_t Scan_Response_Data[]);
11911  */
11912 /* Command len: 1 + 1 + 1 + cp0->Scan_Response_Data_Length * (sizeof(uint8_t)) */
11913 /* Response len: 1 */
aci_gap_set_scan_response_data_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11914 uint16_t aci_gap_set_scan_response_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11915 {
11916   /* Input params */
11917   aci_gap_set_scan_response_data_nwk_cp0 *cp0 = (aci_gap_set_scan_response_data_nwk_cp0 *)(buffer_in + (0));
11918 
11919   int output_size = 1;
11920   /* Output params */
11921   uint8_t *status = (uint8_t *) (buffer_out + 6);
11922 
11923   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11924   if (buffer_out_max_length < (1 + 6)) { return 0; }
11925   if(buffer_in_length != 1 + 1 + 1 + cp0->Scan_Response_Data_Length * (sizeof(uint8_t)))
11926   {
11927     goto fail;
11928   }
11929 
11930   *status = aci_gap_set_scan_response_data_nwk(cp0->Advertising_Handle /* 1 */,
11931                                                cp0->Operation /* 1 */,
11932                                                cp0->Scan_Response_Data_Length /* 1 */,
11933                                                cp0->Scan_Response_Data /* cp0->Scan_Response_Data_Length * (sizeof(uint8_t)) */);
11934 fail:
11935   buffer_out[0] = 0x04;
11936   buffer_out[1] = 0x0E;
11937   buffer_out[2] = output_size + 3;
11938   buffer_out[3] = 0x01;
11939   buffer_out[4] = 0xae;
11940   buffer_out[5] = 0xfc;
11941   return (output_size + 6);
11942 }
11943 #endif
11944 
11945 #if (!defined(ACI_GAP_SET_SCAN_CONFIGURATION_ENABLED) || ACI_GAP_SET_SCAN_CONFIGURATION_ENABLED) && !ACI_GAP_SET_SCAN_CONFIGURATION_FORCE_DISABLED
11946 /* tBleStatus aci_gap_set_scan_configuration(uint8_t Filter_Duplicates,
11947                                           uint8_t Scanning_Filter_Policy,
11948                                           uint8_t Scanning_PHY,
11949                                           uint8_t Scan_Type,
11950                                           uint16_t Scan_Interval,
11951                                           uint16_t Scan_Window);
11952  */
11953 /* Command len: 1 + 1 + 1 + 1 + 2 + 2 */
11954 /* Response len: 1 */
aci_gap_set_scan_configuration_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11955 uint16_t aci_gap_set_scan_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
11956 {
11957   /* Input params */
11958   aci_gap_set_scan_configuration_cp0 *cp0 = (aci_gap_set_scan_configuration_cp0 *)(buffer_in + (0));
11959 
11960   int output_size = 1;
11961   /* Output params */
11962   uint8_t *status = (uint8_t *) (buffer_out + 6);
11963 
11964   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
11965   if (buffer_out_max_length < (1 + 6)) { return 0; }
11966   if(buffer_in_length != 1 + 1 + 1 + 1 + 2 + 2)
11967   {
11968     goto fail;
11969   }
11970 
11971   *status = aci_gap_set_scan_configuration(cp0->Filter_Duplicates /* 1 */,
11972                                            cp0->Scanning_Filter_Policy /* 1 */,
11973                                            cp0->Scanning_PHY /* 1 */,
11974                                            cp0->Scan_Type /* 1 */,
11975                                            cp0->Scan_Interval /* 2 */,
11976                                            cp0->Scan_Window /* 2 */);
11977 fail:
11978   buffer_out[0] = 0x04;
11979   buffer_out[1] = 0x0E;
11980   buffer_out[2] = output_size + 3;
11981   buffer_out[3] = 0x01;
11982   buffer_out[4] = 0xaf;
11983   buffer_out[5] = 0xfc;
11984   return (output_size + 6);
11985 }
11986 #endif
11987 
11988 #if (!defined(ACI_GAP_SET_CONNECTION_CONFIGURATION_ENABLED) || ACI_GAP_SET_CONNECTION_CONFIGURATION_ENABLED) && !ACI_GAP_SET_CONNECTION_CONFIGURATION_FORCE_DISABLED
11989 /* tBleStatus aci_gap_set_connection_configuration(uint8_t Initiating_PHY,
11990                                                 uint16_t Connection_Interval_Min,
11991                                                 uint16_t Connection_Interval_Max,
11992                                                 uint16_t Max_Latency,
11993                                                 uint16_t Supervision_Timeout,
11994                                                 uint16_t Min_CE_Length,
11995                                                 uint16_t Max_CE_Length);
11996  */
11997 /* Command len: 1 + 2 + 2 + 2 + 2 + 2 + 2 */
11998 /* Response len: 1 */
aci_gap_set_connection_configuration_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)11999 uint16_t aci_gap_set_connection_configuration_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12000 {
12001   /* Input params */
12002   aci_gap_set_connection_configuration_cp0 *cp0 = (aci_gap_set_connection_configuration_cp0 *)(buffer_in + (0));
12003 
12004   int output_size = 1;
12005   /* Output params */
12006   uint8_t *status = (uint8_t *) (buffer_out + 6);
12007 
12008   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12009   if (buffer_out_max_length < (1 + 6)) { return 0; }
12010   if(buffer_in_length != 1 + 2 + 2 + 2 + 2 + 2 + 2)
12011   {
12012     goto fail;
12013   }
12014 
12015   *status = aci_gap_set_connection_configuration(cp0->Initiating_PHY /* 1 */,
12016                                                  cp0->Connection_Interval_Min /* 2 */,
12017                                                  cp0->Connection_Interval_Max /* 2 */,
12018                                                  cp0->Max_Latency /* 2 */,
12019                                                  cp0->Supervision_Timeout /* 2 */,
12020                                                  cp0->Min_CE_Length /* 2 */,
12021                                                  cp0->Max_CE_Length /* 2 */);
12022 fail:
12023   buffer_out[0] = 0x04;
12024   buffer_out[1] = 0x0E;
12025   buffer_out[2] = output_size + 3;
12026   buffer_out[3] = 0x01;
12027   buffer_out[4] = 0xb0;
12028   buffer_out[5] = 0xfc;
12029   return (output_size + 6);
12030 }
12031 #endif
12032 
12033 #if (!defined(ACI_GAP_START_PROCEDURE_ENABLED) || ACI_GAP_START_PROCEDURE_ENABLED) && !ACI_GAP_START_PROCEDURE_FORCE_DISABLED
12034 /* tBleStatus aci_gap_start_procedure(uint8_t Procedure_Code,
12035                                    uint8_t PHYs,
12036                                    uint16_t Duration,
12037                                    uint16_t Period);
12038  */
12039 /* Command len: 1 + 1 + 2 + 2 */
12040 /* Response len: 1 */
aci_gap_start_procedure_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12041 uint16_t aci_gap_start_procedure_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12042 {
12043   /* Input params */
12044   aci_gap_start_procedure_cp0 *cp0 = (aci_gap_start_procedure_cp0 *)(buffer_in + (0));
12045 
12046   int output_size = 1;
12047   /* Output params */
12048   uint8_t *status = (uint8_t *) (buffer_out + 6);
12049 
12050   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12051   if (buffer_out_max_length < (1 + 6)) { return 0; }
12052   if(buffer_in_length != 1 + 1 + 2 + 2)
12053   {
12054     goto fail;
12055   }
12056 
12057   *status = aci_gap_start_procedure(cp0->Procedure_Code /* 1 */,
12058                                     cp0->PHYs /* 1 */,
12059                                     cp0->Duration /* 2 */,
12060                                     cp0->Period /* 2 */);
12061 fail:
12062   buffer_out[0] = 0x04;
12063   buffer_out[1] = 0x0E;
12064   buffer_out[2] = output_size + 3;
12065   buffer_out[3] = 0x01;
12066   buffer_out[4] = 0xb1;
12067   buffer_out[5] = 0xfc;
12068   return (output_size + 6);
12069 }
12070 #endif
12071 
12072 #if (!defined(ACI_GAP_DISCOVER_NAME_ENABLED) || ACI_GAP_DISCOVER_NAME_ENABLED) && !ACI_GAP_DISCOVER_NAME_FORCE_DISABLED
12073 /* tBleStatus aci_gap_discover_name(uint8_t PHYs,
12074                                  uint8_t Peer_Address_Type,
12075                                  uint8_t Peer_Address[6]);
12076  */
12077 /* Command len: 1 + 1 + 6 */
12078 /* Response len: 1 */
aci_gap_discover_name_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12079 uint16_t aci_gap_discover_name_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12080 {
12081   /* Input params */
12082   aci_gap_discover_name_cp0 *cp0 = (aci_gap_discover_name_cp0 *)(buffer_in + (0));
12083 
12084   int output_size = 1;
12085   /* Output params */
12086   uint8_t *status = (uint8_t *) (buffer_out + 6);
12087 
12088   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12089   if (buffer_out_max_length < (1 + 6)) { return 0; }
12090   if(buffer_in_length != 1 + 1 + 6)
12091   {
12092     goto fail;
12093   }
12094 
12095   *status = aci_gap_discover_name(cp0->PHYs /* 1 */,
12096                                   cp0->Peer_Address_Type /* 1 */,
12097                                   cp0->Peer_Address /* 6 */);
12098 fail:
12099   buffer_out[0] = 0x04;
12100   buffer_out[1] = 0x0E;
12101   buffer_out[2] = output_size + 3;
12102   buffer_out[3] = 0x01;
12103   buffer_out[4] = 0xb2;
12104   buffer_out[5] = 0xfc;
12105   return (output_size + 6);
12106 }
12107 #endif
12108 
12109 #if (!defined(ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) || ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) && !ACI_GAP_ADD_DEVICES_TO_FILTER_ACCEPT_AND_RESOLVING_LIST_FORCE_DISABLED
12110 /* tBleStatus aci_gap_add_devices_to_filter_accept_and_resolving_list(uint8_t Lists,
12111                                                                    uint8_t Clear_Lists,
12112                                                                    uint8_t Num_of_List_Entries,
12113                                                                    List_Entry_t List_Entry[]);
12114  */
12115 /* Command len: 1 + 1 + 1 + struct_length */
12116 /* Response len: 1 */
aci_gap_add_devices_to_filter_accept_and_resolving_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12117 uint16_t aci_gap_add_devices_to_filter_accept_and_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12118 {
12119   /* Input params */
12120   aci_gap_add_devices_to_filter_accept_and_resolving_list_cp0 *cp0 = (aci_gap_add_devices_to_filter_accept_and_resolving_list_cp0 *)(buffer_in + (0));
12121   List_Entry_t List_Entry[HCI_MAX_PAYLOAD_SIZE/sizeof(List_Entry_t)];
12122 
12123   int output_size = 1;
12124   /* Output params */
12125   uint8_t *status = (uint8_t *) (buffer_out + 6);
12126 
12127   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12128   if (buffer_out_max_length < (1 + 6)) { return 0; }
12129   int i;
12130   int struct_length = 0;
12131   if(cp0->Num_of_List_Entries > HCI_MAX_PAYLOAD_SIZE/sizeof(List_Entry_t))
12132   {
12133     cp0->Num_of_List_Entries = 0;
12134     goto fail;
12135   }
12136   for (i = 0; i < cp0->Num_of_List_Entries; i++) {
12137     packed_List_Entry_t *List_Entry_tmp = (packed_List_Entry_t *)(((uint8_t *)cp0->List_Entry) + struct_length);
12138     List_Entry[i].Peer_Address_Type = List_Entry_tmp->Peer_Address_Type;
12139     struct_length += 1;
12140     Osal_MemCpy((void *) &List_Entry[i].Peer_Address, (const void *) &cp0->List_Entry[i].Peer_Address, 6);
12141     struct_length += 6;
12142   }
12143   if(buffer_in_length != 1 + 1 + 1 + struct_length)
12144   {
12145     goto fail;
12146   }
12147 
12148   *status = aci_gap_add_devices_to_filter_accept_and_resolving_list(cp0->Lists /* 1 */,
12149                                                                     cp0->Clear_Lists /* 1 */,
12150                                                                     cp0->Num_of_List_Entries /* 1 */,
12151                                                                     List_Entry /* struct_length */);
12152 fail:
12153   buffer_out[0] = 0x04;
12154   buffer_out[1] = 0x0E;
12155   buffer_out[2] = output_size + 3;
12156   buffer_out[3] = 0x01;
12157   buffer_out[4] = 0xb3;
12158   buffer_out[5] = 0xfc;
12159   return (output_size + 6);
12160 }
12161 #endif
12162 
12163 #if (!defined(ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) || ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_ENABLED) && !ACI_GAP_CONFIGURE_FILTER_ACCEPT_AND_RESOLVING_LIST_FORCE_DISABLED
12164 /* tBleStatus aci_gap_configure_filter_accept_and_resolving_list(uint8_t Lists);
12165  */
12166 /* Command len: 1 */
12167 /* Response len: 1 */
aci_gap_configure_filter_accept_and_resolving_list_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12168 uint16_t aci_gap_configure_filter_accept_and_resolving_list_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12169 {
12170   /* Input params */
12171   aci_gap_configure_filter_accept_and_resolving_list_cp0 *cp0 = (aci_gap_configure_filter_accept_and_resolving_list_cp0 *)(buffer_in + (0));
12172 
12173   int output_size = 1;
12174   /* Output params */
12175   uint8_t *status = (uint8_t *) (buffer_out + 6);
12176 
12177   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12178   if (buffer_out_max_length < (1 + 6)) { return 0; }
12179   if(buffer_in_length != 1)
12180   {
12181     goto fail;
12182   }
12183 
12184   *status = aci_gap_configure_filter_accept_and_resolving_list(cp0->Lists /* 1 */);
12185 fail:
12186   buffer_out[0] = 0x04;
12187   buffer_out[1] = 0x0E;
12188   buffer_out[2] = output_size + 3;
12189   buffer_out[3] = 0x01;
12190   buffer_out[4] = 0xb4;
12191   buffer_out[5] = 0xfc;
12192   return (output_size + 6);
12193 }
12194 #endif
12195 
12196 #if (!defined(ACI_GAP_REMOVE_ADVERTISING_SET_ENABLED) || ACI_GAP_REMOVE_ADVERTISING_SET_ENABLED) && !ACI_GAP_REMOVE_ADVERTISING_SET_FORCE_DISABLED
12197 /* tBleStatus aci_gap_remove_advertising_set(uint8_t Advertising_Handle);
12198  */
12199 /* Command len: 1 */
12200 /* Response len: 1 */
aci_gap_remove_advertising_set_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12201 uint16_t aci_gap_remove_advertising_set_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12202 {
12203   /* Input params */
12204   aci_gap_remove_advertising_set_cp0 *cp0 = (aci_gap_remove_advertising_set_cp0 *)(buffer_in + (0));
12205 
12206   int output_size = 1;
12207   /* Output params */
12208   uint8_t *status = (uint8_t *) (buffer_out + 6);
12209 
12210   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12211   if (buffer_out_max_length < (1 + 6)) { return 0; }
12212   if(buffer_in_length != 1)
12213   {
12214     goto fail;
12215   }
12216 
12217   *status = aci_gap_remove_advertising_set(cp0->Advertising_Handle /* 1 */);
12218 fail:
12219   buffer_out[0] = 0x04;
12220   buffer_out[1] = 0x0E;
12221   buffer_out[2] = output_size + 3;
12222   buffer_out[3] = 0x01;
12223   buffer_out[4] = 0xba;
12224   buffer_out[5] = 0xfc;
12225   return (output_size + 6);
12226 }
12227 #endif
12228 
12229 #if (!defined(ACI_GAP_CLEAR_ADVERTISING_SETS_ENABLED) || ACI_GAP_CLEAR_ADVERTISING_SETS_ENABLED) && !ACI_GAP_CLEAR_ADVERTISING_SETS_FORCE_DISABLED
12230 /* tBleStatus aci_gap_clear_advertising_sets(void);
12231  */
12232 /* Command len: 0 */
12233 /* Response len: 1 */
aci_gap_clear_advertising_sets_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12234 uint16_t aci_gap_clear_advertising_sets_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12235 {
12236 
12237   int output_size = 1;
12238   /* Output params */
12239   uint8_t *status = (uint8_t *) (buffer_out + 6);
12240 
12241   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12242   if (buffer_out_max_length < (1 + 6)) { return 0; }
12243   if(buffer_in_length != 0)
12244   {
12245     goto fail;
12246   }
12247 
12248   *status = aci_gap_clear_advertising_sets();
12249 fail:
12250   buffer_out[0] = 0x04;
12251   buffer_out[1] = 0x0E;
12252   buffer_out[2] = output_size + 3;
12253   buffer_out[3] = 0x01;
12254   buffer_out[4] = 0xbb;
12255   buffer_out[5] = 0xfc;
12256   return (output_size + 6);
12257 }
12258 #endif
12259 
12260 #if (!defined(ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_ENABLED) || ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_ENABLED) && !ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_FORCE_DISABLED
12261 /* tBleStatus aci_gap_create_periodic_advertising_connection(uint8_t Advertising_Handle,
12262                                                           uint8_t Subevent,
12263                                                           uint8_t Initiator_Filter_Policy,
12264                                                           uint8_t Own_Address_Type,
12265                                                           uint8_t Peer_Address_Type,
12266                                                           uint8_t Peer_Address[6],
12267                                                           uint16_t Connection_Interval_Min,
12268                                                           uint16_t Connection_Interval_Max,
12269                                                           uint16_t Max_Latency,
12270                                                           uint16_t Supervision_Timeout,
12271                                                           uint16_t Min_CE_Length,
12272                                                           uint16_t Max_CE_Length);
12273  */
12274 /* Command len: 1 + 1 + 1 + 1 + 1 + 6 + 2 + 2 + 2 + 2 + 2 + 2 */
12275 /* Response len: 1 */
aci_gap_create_periodic_advertising_connection_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12276 uint16_t aci_gap_create_periodic_advertising_connection_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12277 {
12278   /* Input params */
12279   aci_gap_create_periodic_advertising_connection_cp0 *cp0 = (aci_gap_create_periodic_advertising_connection_cp0 *)(buffer_in + (0));
12280 
12281   int output_size = 1;
12282   /* Output params */
12283   uint8_t *status = (uint8_t *) (buffer_out + 3);
12284 
12285   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12286   if (buffer_out_max_length < (1 + 6)) { return 0; }
12287   if(buffer_in_length != 1 + 1 + 1 + 1 + 1 + 6 + 2 + 2 + 2 + 2 + 2 + 2)
12288   {
12289     goto fail;
12290   }
12291 
12292   *status = aci_gap_create_periodic_advertising_connection(cp0->Advertising_Handle /* 1 */,
12293                                                            cp0->Subevent /* 1 */,
12294                                                            cp0->Initiator_Filter_Policy /* 1 */,
12295                                                            cp0->Own_Address_Type /* 1 */,
12296                                                            cp0->Peer_Address_Type /* 1 */,
12297                                                            cp0->Peer_Address /* 6 */,
12298                                                            cp0->Connection_Interval_Min /* 2 */,
12299                                                            cp0->Connection_Interval_Max /* 2 */,
12300                                                            cp0->Max_Latency /* 2 */,
12301                                                            cp0->Supervision_Timeout /* 2 */,
12302                                                            cp0->Min_CE_Length /* 2 */,
12303                                                            cp0->Max_CE_Length /* 2 */);
12304 fail:
12305   buffer_out[0] = 0x04;
12306   buffer_out[1] = 0x0F;
12307   buffer_out[2] = output_size + 3;
12308   buffer_out[4] = 0x01;
12309   buffer_out[5] = 0xca;
12310   buffer_out[6] = 0xfc;
12311   return (output_size + 6);
12312 }
12313 #endif
12314 
12315 #if (!defined(ACI_GAP_ENCRYPT_ADV_DATA_NWK_ENABLED) || ACI_GAP_ENCRYPT_ADV_DATA_NWK_ENABLED) && !ACI_GAP_ENCRYPT_ADV_DATA_NWK_FORCE_DISABLED
12316 /* tBleStatus aci_gap_encrypt_adv_data_nwk(uint8_t Session_Key[16],
12317                                         uint8_t IV[8],
12318                                         uint8_t Data_Length,
12319                                         uint8_t Data[],
12320                                         uint8_t *Encrypted_Data_Length,
12321                                         uint8_t Encrypted_Data[]);
12322  */
12323 /* Command len: 16 + 8 + 1 + cp0->Data_Length * (sizeof(uint8_t)) */
12324 /* Response len: 1 + 1 + rp0->Encrypted_Data_Length * (sizeof(uint8_t)) */
aci_gap_encrypt_adv_data_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12325 uint16_t aci_gap_encrypt_adv_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12326 {
12327   /* Input params */
12328   aci_gap_encrypt_adv_data_nwk_cp0 *cp0 = (aci_gap_encrypt_adv_data_nwk_cp0 *)(buffer_in + (0));
12329 
12330   int output_size = 0;
12331   /* Output params */
12332   aci_gap_encrypt_adv_data_nwk_rp0 *rp0 = (aci_gap_encrypt_adv_data_nwk_rp0 *) (buffer_out + 6);
12333   uint8_t Encrypted_Data_Length = 0;
12334   uint8_t Encrypted_Data[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
12335 
12336   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12337   if (buffer_out_max_length < (1 + 6)) { return 0; }
12338   if(buffer_in_length != 16 + 8 + 1 + cp0->Data_Length * (sizeof(uint8_t)))
12339   {
12340     goto fail;
12341   }
12342 
12343   rp0->Status = aci_gap_encrypt_adv_data_nwk(cp0->Session_Key /* 16 */,
12344                                              cp0->IV /* 8 */,
12345                                              cp0->Data_Length /* 1 */,
12346                                              cp0->Data /* cp0->Data_Length * (sizeof(uint8_t)) */,
12347                                              &Encrypted_Data_Length,
12348                                              Encrypted_Data);
12349 fail:
12350   output_size += 1;
12351   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
12352   rp0->Encrypted_Data_Length = Encrypted_Data_Length;
12353   output_size += 1;
12354   if (buffer_out_max_length < (output_size + (rp0->Encrypted_Data_Length * (sizeof(uint8_t))) + 6)) { return 0; }
12355   Osal_MemCpy((void *) rp0->Encrypted_Data,(const void *) Encrypted_Data, rp0->Encrypted_Data_Length * (sizeof(uint8_t)));
12356   output_size += rp0->Encrypted_Data_Length * (sizeof(uint8_t));
12357   buffer_out[0] = 0x04;
12358   buffer_out[1] = 0x0E;
12359   buffer_out[2] = output_size + 3;
12360   buffer_out[3] = 0x01;
12361   buffer_out[4] = 0xcb;
12362   buffer_out[5] = 0xfc;
12363   return (output_size + 6);
12364 }
12365 #endif
12366 
12367 #if (!defined(ACI_GAP_DECRYPT_ADV_DATA_NWK_ENABLED) || ACI_GAP_DECRYPT_ADV_DATA_NWK_ENABLED) && !ACI_GAP_DECRYPT_ADV_DATA_NWK_FORCE_DISABLED
12368 /* tBleStatus aci_gap_decrypt_adv_data_nwk(uint8_t Session_Key[16],
12369                                         uint8_t IV[8],
12370                                         uint8_t Encrypted_Data_Length,
12371                                         uint8_t Encrypted_Data[],
12372                                         uint8_t *Decrypted_Data_Length,
12373                                         uint8_t Decrypted_Data[]);
12374  */
12375 /* Command len: 16 + 8 + 1 + cp0->Encrypted_Data_Length * (sizeof(uint8_t)) */
12376 /* Response len: 1 + 1 + rp0->Decrypted_Data_Length * (sizeof(uint8_t)) */
aci_gap_decrypt_adv_data_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12377 uint16_t aci_gap_decrypt_adv_data_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12378 {
12379   /* Input params */
12380   aci_gap_decrypt_adv_data_nwk_cp0 *cp0 = (aci_gap_decrypt_adv_data_nwk_cp0 *)(buffer_in + (0));
12381 
12382   int output_size = 0;
12383   /* Output params */
12384   aci_gap_decrypt_adv_data_nwk_rp0 *rp0 = (aci_gap_decrypt_adv_data_nwk_rp0 *) (buffer_out + 6);
12385   uint8_t Decrypted_Data_Length = 0;
12386   uint8_t Decrypted_Data[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
12387 
12388   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12389   if (buffer_out_max_length < (1 + 6)) { return 0; }
12390   if(buffer_in_length != 16 + 8 + 1 + cp0->Encrypted_Data_Length * (sizeof(uint8_t)))
12391   {
12392     goto fail;
12393   }
12394 
12395   rp0->Status = aci_gap_decrypt_adv_data_nwk(cp0->Session_Key /* 16 */,
12396                                              cp0->IV /* 8 */,
12397                                              cp0->Encrypted_Data_Length /* 1 */,
12398                                              cp0->Encrypted_Data /* cp0->Encrypted_Data_Length * (sizeof(uint8_t)) */,
12399                                              &Decrypted_Data_Length,
12400                                              Decrypted_Data);
12401 fail:
12402   output_size += 1;
12403   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
12404   rp0->Decrypted_Data_Length = Decrypted_Data_Length;
12405   output_size += 1;
12406   if (buffer_out_max_length < (output_size + (rp0->Decrypted_Data_Length * (sizeof(uint8_t))) + 6)) { return 0; }
12407   Osal_MemCpy((void *) rp0->Decrypted_Data,(const void *) Decrypted_Data, rp0->Decrypted_Data_Length * (sizeof(uint8_t)));
12408   output_size += rp0->Decrypted_Data_Length * (sizeof(uint8_t));
12409   buffer_out[0] = 0x04;
12410   buffer_out[1] = 0x0E;
12411   buffer_out[2] = output_size + 3;
12412   buffer_out[3] = 0x01;
12413   buffer_out[4] = 0xcc;
12414   buffer_out[5] = 0xfc;
12415   return (output_size + 6);
12416 }
12417 #endif
12418 
12419 #if (!defined(ACI_GATT_SRV_PROFILE_INIT_ENABLED) || ACI_GATT_SRV_PROFILE_INIT_ENABLED) && !ACI_GATT_SRV_PROFILE_INIT_FORCE_DISABLED
12420 /* tBleStatus aci_gatt_srv_profile_init(uint8_t Characteristics,
12421                                      uint16_t *Service_Changed_Handle);
12422  */
12423 /* Command len: 1 */
12424 /* Response len: 1 + 2 */
aci_gatt_srv_profile_init_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12425 uint16_t aci_gatt_srv_profile_init_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12426 {
12427   /* Input params */
12428   aci_gatt_srv_profile_init_cp0 *cp0 = (aci_gatt_srv_profile_init_cp0 *)(buffer_in + (0));
12429 
12430   int output_size = 1 + 2;
12431   /* Output params */
12432   aci_gatt_srv_profile_init_rp0 *rp0 = (aci_gatt_srv_profile_init_rp0 *) (buffer_out + 6);
12433   uint16_t Service_Changed_Handle = 0;
12434 
12435   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12436   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
12437   if(buffer_in_length != 1)
12438   {
12439     goto fail;
12440   }
12441 
12442   rp0->Status = aci_gatt_srv_profile_init(cp0->Characteristics /* 1 */,
12443                                           &Service_Changed_Handle);
12444 fail:
12445   rp0->Service_Changed_Handle = Service_Changed_Handle;
12446   buffer_out[0] = 0x04;
12447   buffer_out[1] = 0x0E;
12448   buffer_out[2] = output_size + 3;
12449   buffer_out[3] = 0x01;
12450   buffer_out[4] = 0x01;
12451   buffer_out[5] = 0xfd;
12452   return (output_size + 6);
12453 }
12454 #endif
12455 
12456 #if (!defined(ACI_GATT_SRV_ADD_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_ADD_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_ADD_SERVICE_NWK_FORCE_DISABLED
12457 /* tBleStatus aci_gatt_srv_add_service_nwk(uint8_t Service_UUID_Type,
12458                                         Service_UUID_t *Service_UUID,
12459                                         uint8_t Service_Type,
12460                                         uint8_t Max_Attribute_Records,
12461                                         uint16_t *Service_Handle);
12462  */
12463 /* Command len: 1 + (cp0->Service_UUID_Type == 1 ? 2 : (cp0->Service_UUID_Type == 2 ? 16 : 0)) + 1 + 1 */
12464 /* Response len: 1 + 2 */
aci_gatt_srv_add_service_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12465 uint16_t aci_gatt_srv_add_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12466 {
12467   /* Input params */
12468   aci_gatt_srv_add_service_nwk_cp0 *cp0 = (aci_gatt_srv_add_service_nwk_cp0 *)(buffer_in + (0));
12469   aci_gatt_srv_add_service_nwk_cp1 *cp1 = (aci_gatt_srv_add_service_nwk_cp1 *)(buffer_in + (0 + 1 + (cp0->Service_UUID_Type == 1 ? 2 : (cp0->Service_UUID_Type == 2 ? 16 : 0))));
12470   Service_UUID_t Service_UUID;
12471 
12472   int output_size = 1 + 2;
12473   /* Output params */
12474   aci_gatt_srv_add_service_nwk_rp0 *rp0 = (aci_gatt_srv_add_service_nwk_rp0 *) (buffer_out + 6);
12475   uint16_t Service_Handle = 0;
12476 
12477   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12478   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
12479   Osal_MemCpy((void *) &Service_UUID.Service_UUID_16, (const void *) &cp0->Service_UUID.Service_UUID_16, (cp0->Service_UUID_Type == 1 ? 2 : (cp0->Service_UUID_Type == 2 ? 16 : 0)));
12480   if(buffer_in_length != 1 + (cp0->Service_UUID_Type == 1 ? 2 : (cp0->Service_UUID_Type == 2 ? 16 : 0)) + 1 + 1)
12481   {
12482     goto fail;
12483   }
12484 
12485   rp0->Status = aci_gatt_srv_add_service_nwk(cp0->Service_UUID_Type /* 1 */,
12486                                              &Service_UUID /* (cp0->Service_UUID_Type == 1 ? 2 : (cp0->Service_UUID_Type == 2 ? 16 : 0)) */,
12487                                              cp1->Service_Type /* 1 */,
12488                                              cp1->Max_Attribute_Records /* 1 */,
12489                                              &Service_Handle);
12490 fail:
12491   rp0->Service_Handle = Service_Handle;
12492   buffer_out[0] = 0x04;
12493   buffer_out[1] = 0x0E;
12494   buffer_out[2] = output_size + 3;
12495   buffer_out[3] = 0x01;
12496   buffer_out[4] = 0x02;
12497   buffer_out[5] = 0xfd;
12498   return (output_size + 6);
12499 }
12500 #endif
12501 
12502 #if (!defined(ACI_GATT_SRV_INCLUDE_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_INCLUDE_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_INCLUDE_SERVICE_NWK_FORCE_DISABLED
12503 /* tBleStatus aci_gatt_srv_include_service_nwk(uint16_t Service_Handle,
12504                                             uint16_t Included_Service_Handle,
12505                                             uint16_t *Include_Handle);
12506  */
12507 /* Command len: 2 + 2 */
12508 /* Response len: 1 + 2 */
aci_gatt_srv_include_service_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12509 uint16_t aci_gatt_srv_include_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12510 {
12511   /* Input params */
12512   aci_gatt_srv_include_service_nwk_cp0 *cp0 = (aci_gatt_srv_include_service_nwk_cp0 *)(buffer_in + (0));
12513 
12514   int output_size = 1 + 2;
12515   /* Output params */
12516   aci_gatt_srv_include_service_nwk_rp0 *rp0 = (aci_gatt_srv_include_service_nwk_rp0 *) (buffer_out + 6);
12517   uint16_t Include_Handle = 0;
12518 
12519   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12520   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
12521   if(buffer_in_length != 2 + 2)
12522   {
12523     goto fail;
12524   }
12525 
12526   rp0->Status = aci_gatt_srv_include_service_nwk(cp0->Service_Handle /* 2 */,
12527                                                  cp0->Included_Service_Handle /* 2 */,
12528                                                  &Include_Handle);
12529 fail:
12530   rp0->Include_Handle = Include_Handle;
12531   buffer_out[0] = 0x04;
12532   buffer_out[1] = 0x0E;
12533   buffer_out[2] = output_size + 3;
12534   buffer_out[3] = 0x01;
12535   buffer_out[4] = 0x03;
12536   buffer_out[5] = 0xfd;
12537   return (output_size + 6);
12538 }
12539 #endif
12540 
12541 #if (!defined(ACI_GATT_SRV_ADD_CHAR_NWK_ENABLED) || ACI_GATT_SRV_ADD_CHAR_NWK_ENABLED) && !ACI_GATT_SRV_ADD_CHAR_NWK_FORCE_DISABLED
12542 /* tBleStatus aci_gatt_srv_add_char_nwk(uint16_t Service_Handle,
12543                                      uint8_t Char_UUID_Type,
12544                                      Char_UUID_t *Char_UUID,
12545                                      uint16_t Char_Value_Length,
12546                                      uint8_t Char_Properties,
12547                                      uint8_t Security_Permissions,
12548                                      uint8_t GATT_Evt_Mask,
12549                                      uint8_t Enc_Key_Size,
12550                                      uint8_t Is_Variable,
12551                                      uint16_t *Char_Handle);
12552  */
12553 /* Command len: 2 + 1 + (cp0->Char_UUID_Type == 1 ? 2 : (cp0->Char_UUID_Type == 2 ? 16 : 0)) + 2 + 1 + 1 + 1 + 1 + 1 */
12554 /* Response len: 1 + 2 */
aci_gatt_srv_add_char_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12555 uint16_t aci_gatt_srv_add_char_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12556 {
12557   /* Input params */
12558   aci_gatt_srv_add_char_nwk_cp0 *cp0 = (aci_gatt_srv_add_char_nwk_cp0 *)(buffer_in + (0));
12559   aci_gatt_srv_add_char_nwk_cp1 *cp1 = (aci_gatt_srv_add_char_nwk_cp1 *)(buffer_in + (0 + 2 + 1 + (cp0->Char_UUID_Type == 1 ? 2 : (cp0->Char_UUID_Type == 2 ? 16 : 0))));
12560   Char_UUID_t Char_UUID;
12561 
12562   int output_size = 1 + 2;
12563   /* Output params */
12564   aci_gatt_srv_add_char_nwk_rp0 *rp0 = (aci_gatt_srv_add_char_nwk_rp0 *) (buffer_out + 6);
12565   uint16_t Char_Handle = 0;
12566 
12567   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12568   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
12569   Osal_MemCpy((void *) &Char_UUID.Char_UUID_16, (const void *) &cp0->Char_UUID.Char_UUID_16, (cp0->Char_UUID_Type == 1 ? 2 : (cp0->Char_UUID_Type == 2 ? 16 : 0)));
12570   if(buffer_in_length != 2 + 1 + (cp0->Char_UUID_Type == 1 ? 2 : (cp0->Char_UUID_Type == 2 ? 16 : 0)) + 2 + 1 + 1 + 1 + 1 + 1)
12571   {
12572     goto fail;
12573   }
12574 
12575   rp0->Status = aci_gatt_srv_add_char_nwk(cp0->Service_Handle /* 2 */,
12576                                           cp0->Char_UUID_Type /* 1 */,
12577                                           &Char_UUID /* (cp0->Char_UUID_Type == 1 ? 2 : (cp0->Char_UUID_Type == 2 ? 16 : 0)) */,
12578                                           cp1->Char_Value_Length /* 2 */,
12579                                           cp1->Char_Properties /* 1 */,
12580                                           cp1->Security_Permissions /* 1 */,
12581                                           cp1->GATT_Evt_Mask /* 1 */,
12582                                           cp1->Enc_Key_Size /* 1 */,
12583                                           cp1->Is_Variable /* 1 */,
12584                                           &Char_Handle);
12585 fail:
12586   rp0->Char_Handle = Char_Handle;
12587   buffer_out[0] = 0x04;
12588   buffer_out[1] = 0x0E;
12589   buffer_out[2] = output_size + 3;
12590   buffer_out[3] = 0x01;
12591   buffer_out[4] = 0x04;
12592   buffer_out[5] = 0xfd;
12593   return (output_size + 6);
12594 }
12595 #endif
12596 
12597 #if (!defined(ACI_GATT_SRV_ADD_CHAR_DESC_NWK_ENABLED) || ACI_GATT_SRV_ADD_CHAR_DESC_NWK_ENABLED) && !ACI_GATT_SRV_ADD_CHAR_DESC_NWK_FORCE_DISABLED
12598 /* tBleStatus aci_gatt_srv_add_char_desc_nwk(uint16_t Char_Handle,
12599                                           uint8_t Char_Desc_Uuid_Type,
12600                                           Char_Desc_Uuid_t *Char_Desc_Uuid,
12601                                           uint16_t Char_Desc_Value_Max_Len,
12602                                           uint16_t Char_Desc_Value_Length,
12603                                           uint8_t Char_Desc_Value[],
12604                                           uint8_t Security_Permissions,
12605                                           uint8_t Access_Permissions,
12606                                           uint8_t GATT_Evt_Mask,
12607                                           uint8_t Enc_Key_Size,
12608                                           uint8_t Is_Variable,
12609                                           uint16_t *Char_Desc_Handle);
12610  */
12611 /* Command len: 2 + 1 + (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0)) + 2 + 2 + cp1->Char_Desc_Value_Length * (sizeof(uint8_t)) + 1 + 1 + 1 + 1 + 1 */
12612 /* Response len: 1 + 2 */
aci_gatt_srv_add_char_desc_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12613 uint16_t aci_gatt_srv_add_char_desc_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12614 {
12615   /* Input params */
12616   aci_gatt_srv_add_char_desc_nwk_cp0 *cp0 = (aci_gatt_srv_add_char_desc_nwk_cp0 *)(buffer_in + (0));
12617   aci_gatt_srv_add_char_desc_nwk_cp1 *cp1 = (aci_gatt_srv_add_char_desc_nwk_cp1 *)(buffer_in + (0 + 2 + 1 + (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0))));
12618   aci_gatt_srv_add_char_desc_nwk_cp2 *cp2 = (aci_gatt_srv_add_char_desc_nwk_cp2 *)(buffer_in + (0 + 2 + 1 + (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0)) + 2 + 2 + cp1->Char_Desc_Value_Length * (sizeof(uint8_t))));
12619   Char_Desc_Uuid_t Char_Desc_Uuid;
12620 
12621   int output_size = 1 + 2;
12622   /* Output params */
12623   aci_gatt_srv_add_char_desc_nwk_rp0 *rp0 = (aci_gatt_srv_add_char_desc_nwk_rp0 *) (buffer_out + 6);
12624   uint16_t Char_Desc_Handle = 0;
12625 
12626   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12627   if (buffer_out_max_length < (1 + 2 + 6)) { return 0; }
12628   Osal_MemCpy((void *) &Char_Desc_Uuid.Char_UUID_16, (const void *) &cp0->Char_Desc_Uuid.Char_UUID_16, (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0)));
12629   if(buffer_in_length != 2 + 1 + (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0)) + 2 + 2 + cp1->Char_Desc_Value_Length * (sizeof(uint8_t)) + 1 + 1 + 1 + 1 + 1)
12630   {
12631     goto fail;
12632   }
12633 
12634   rp0->Status = aci_gatt_srv_add_char_desc_nwk(cp0->Char_Handle /* 2 */,
12635                                                cp0->Char_Desc_Uuid_Type /* 1 */,
12636                                                &Char_Desc_Uuid /* (cp0->Char_Desc_Uuid_Type == 1 ? 2 : (cp0->Char_Desc_Uuid_Type == 2 ? 16 : 0)) */,
12637                                                cp1->Char_Desc_Value_Max_Len /* 2 */,
12638                                                cp1->Char_Desc_Value_Length /* 2 */,
12639                                                cp1->Char_Desc_Value /* cp1->Char_Desc_Value_Length * (sizeof(uint8_t)) */,
12640                                                cp2->Security_Permissions /* 1 */,
12641                                                cp2->Access_Permissions /* 1 */,
12642                                                cp2->GATT_Evt_Mask /* 1 */,
12643                                                cp2->Enc_Key_Size /* 1 */,
12644                                                cp2->Is_Variable /* 1 */,
12645                                                &Char_Desc_Handle);
12646 fail:
12647   rp0->Char_Desc_Handle = Char_Desc_Handle;
12648   buffer_out[0] = 0x04;
12649   buffer_out[1] = 0x0E;
12650   buffer_out[2] = output_size + 3;
12651   buffer_out[3] = 0x01;
12652   buffer_out[4] = 0x05;
12653   buffer_out[5] = 0xfd;
12654   return (output_size + 6);
12655 }
12656 #endif
12657 
12658 #if (!defined(ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_WRITE_HANDLE_VALUE_NWK_FORCE_DISABLED
12659 /* tBleStatus aci_gatt_srv_write_handle_value_nwk(uint16_t Attr_Handle,
12660                                                uint16_t Val_Offset,
12661                                                uint16_t Value_Length,
12662                                                uint8_t Value[]);
12663  */
12664 /* Command len: 2 + 2 + 2 + cp0->Value_Length * (sizeof(uint8_t)) */
12665 /* Response len: 1 */
aci_gatt_srv_write_handle_value_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12666 uint16_t aci_gatt_srv_write_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12667 {
12668   /* Input params */
12669   aci_gatt_srv_write_handle_value_nwk_cp0 *cp0 = (aci_gatt_srv_write_handle_value_nwk_cp0 *)(buffer_in + (0));
12670 
12671   int output_size = 1;
12672   /* Output params */
12673   uint8_t *status = (uint8_t *) (buffer_out + 6);
12674 
12675   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12676   if (buffer_out_max_length < (1 + 6)) { return 0; }
12677   if(buffer_in_length != 2 + 2 + 2 + cp0->Value_Length * (sizeof(uint8_t)))
12678   {
12679     goto fail;
12680   }
12681 
12682   *status = aci_gatt_srv_write_handle_value_nwk(cp0->Attr_Handle /* 2 */,
12683                                                 cp0->Val_Offset /* 2 */,
12684                                                 cp0->Value_Length /* 2 */,
12685                                                 cp0->Value /* cp0->Value_Length * (sizeof(uint8_t)) */);
12686 fail:
12687   buffer_out[0] = 0x04;
12688   buffer_out[1] = 0x0E;
12689   buffer_out[2] = output_size + 3;
12690   buffer_out[3] = 0x01;
12691   buffer_out[4] = 0x06;
12692   buffer_out[5] = 0xfd;
12693   return (output_size + 6);
12694 }
12695 #endif
12696 
12697 #if (!defined(ACI_GATT_SRV_RM_CHAR_NWK_ENABLED) || ACI_GATT_SRV_RM_CHAR_NWK_ENABLED) && !ACI_GATT_SRV_RM_CHAR_NWK_FORCE_DISABLED
12698 /* tBleStatus aci_gatt_srv_rm_char_nwk(uint16_t Char_Handle);
12699  */
12700 /* Command len: 2 */
12701 /* Response len: 1 */
aci_gatt_srv_rm_char_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12702 uint16_t aci_gatt_srv_rm_char_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12703 {
12704   /* Input params */
12705   aci_gatt_srv_rm_char_nwk_cp0 *cp0 = (aci_gatt_srv_rm_char_nwk_cp0 *)(buffer_in + (0));
12706 
12707   int output_size = 1;
12708   /* Output params */
12709   uint8_t *status = (uint8_t *) (buffer_out + 6);
12710 
12711   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12712   if (buffer_out_max_length < (1 + 6)) { return 0; }
12713   if(buffer_in_length != 2)
12714   {
12715     goto fail;
12716   }
12717 
12718   *status = aci_gatt_srv_rm_char_nwk(cp0->Char_Handle /* 2 */);
12719 fail:
12720   buffer_out[0] = 0x04;
12721   buffer_out[1] = 0x0E;
12722   buffer_out[2] = output_size + 3;
12723   buffer_out[3] = 0x01;
12724   buffer_out[4] = 0x07;
12725   buffer_out[5] = 0xfd;
12726   return (output_size + 6);
12727 }
12728 #endif
12729 
12730 #if (!defined(ACI_GATT_SRV_RM_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_RM_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_RM_SERVICE_NWK_FORCE_DISABLED
12731 /* tBleStatus aci_gatt_srv_rm_service_nwk(uint16_t Serv_Handle);
12732  */
12733 /* Command len: 2 */
12734 /* Response len: 1 */
aci_gatt_srv_rm_service_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12735 uint16_t aci_gatt_srv_rm_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12736 {
12737   /* Input params */
12738   aci_gatt_srv_rm_service_nwk_cp0 *cp0 = (aci_gatt_srv_rm_service_nwk_cp0 *)(buffer_in + (0));
12739 
12740   int output_size = 1;
12741   /* Output params */
12742   uint8_t *status = (uint8_t *) (buffer_out + 6);
12743 
12744   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12745   if (buffer_out_max_length < (1 + 6)) { return 0; }
12746   if(buffer_in_length != 2)
12747   {
12748     goto fail;
12749   }
12750 
12751   *status = aci_gatt_srv_rm_service_nwk(cp0->Serv_Handle /* 2 */);
12752 fail:
12753   buffer_out[0] = 0x04;
12754   buffer_out[1] = 0x0E;
12755   buffer_out[2] = output_size + 3;
12756   buffer_out[3] = 0x01;
12757   buffer_out[4] = 0x08;
12758   buffer_out[5] = 0xfd;
12759   return (output_size + 6);
12760 }
12761 #endif
12762 
12763 #if (!defined(ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_ENABLED) || ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_ENABLED) && !ACI_GATT_SRV_RM_INCLUDE_SERVICE_NWK_FORCE_DISABLED
12764 /* tBleStatus aci_gatt_srv_rm_include_service_nwk(uint16_t Include_Handle);
12765  */
12766 /* Command len: 2 */
12767 /* Response len: 1 */
aci_gatt_srv_rm_include_service_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12768 uint16_t aci_gatt_srv_rm_include_service_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12769 {
12770   /* Input params */
12771   aci_gatt_srv_rm_include_service_nwk_cp0 *cp0 = (aci_gatt_srv_rm_include_service_nwk_cp0 *)(buffer_in + (0));
12772 
12773   int output_size = 1;
12774   /* Output params */
12775   uint8_t *status = (uint8_t *) (buffer_out + 6);
12776 
12777   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12778   if (buffer_out_max_length < (1 + 6)) { return 0; }
12779   if(buffer_in_length != 2)
12780   {
12781     goto fail;
12782   }
12783 
12784   *status = aci_gatt_srv_rm_include_service_nwk(cp0->Include_Handle /* 2 */);
12785 fail:
12786   buffer_out[0] = 0x04;
12787   buffer_out[1] = 0x0E;
12788   buffer_out[2] = output_size + 3;
12789   buffer_out[3] = 0x01;
12790   buffer_out[4] = 0x09;
12791   buffer_out[5] = 0xfd;
12792   return (output_size + 6);
12793 }
12794 #endif
12795 
12796 #if (!defined(ACI_GATT_SET_EVENT_MASK_ENABLED) || ACI_GATT_SET_EVENT_MASK_ENABLED) && !ACI_GATT_SET_EVENT_MASK_FORCE_DISABLED
12797 /* tBleStatus aci_gatt_set_event_mask(uint32_t GATT_Evt_Mask);
12798  */
12799 /* Command len: 4 */
12800 /* Response len: 1 */
aci_gatt_set_event_mask_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12801 uint16_t aci_gatt_set_event_mask_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12802 {
12803   /* Input params */
12804   aci_gatt_set_event_mask_cp0 *cp0 = (aci_gatt_set_event_mask_cp0 *)(buffer_in + (0));
12805 
12806   int output_size = 1;
12807   /* Output params */
12808   uint8_t *status = (uint8_t *) (buffer_out + 6);
12809 
12810   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12811   if (buffer_out_max_length < (1 + 6)) { return 0; }
12812   if(buffer_in_length != 4)
12813   {
12814     goto fail;
12815   }
12816 
12817   *status = aci_gatt_set_event_mask(cp0->GATT_Evt_Mask /* 4 */);
12818 fail:
12819   buffer_out[0] = 0x04;
12820   buffer_out[1] = 0x0E;
12821   buffer_out[2] = output_size + 3;
12822   buffer_out[3] = 0x01;
12823   buffer_out[4] = 0x0a;
12824   buffer_out[5] = 0xfd;
12825   return (output_size + 6);
12826 }
12827 #endif
12828 
12829 #if (!defined(ACI_GATT_CLT_EXCHANGE_CONFIG_ENABLED) || ACI_GATT_CLT_EXCHANGE_CONFIG_ENABLED) && !ACI_GATT_CLT_EXCHANGE_CONFIG_FORCE_DISABLED
12830 /* tBleStatus aci_gatt_clt_exchange_config(uint16_t Connection_Handle);
12831  */
12832 /* Command len: 2 */
12833 /* Response len: 1 */
aci_gatt_clt_exchange_config_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12834 uint16_t aci_gatt_clt_exchange_config_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12835 {
12836   /* Input params */
12837   aci_gatt_clt_exchange_config_cp0 *cp0 = (aci_gatt_clt_exchange_config_cp0 *)(buffer_in + (0));
12838 
12839   int output_size = 1;
12840   /* Output params */
12841   uint8_t *status = (uint8_t *) (buffer_out + 3);
12842 
12843   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12844   if (buffer_out_max_length < (1 + 6)) { return 0; }
12845   if(buffer_in_length != 2)
12846   {
12847     goto fail;
12848   }
12849 
12850   *status = aci_gatt_clt_exchange_config(cp0->Connection_Handle /* 2 */);
12851 fail:
12852   buffer_out[0] = 0x04;
12853   buffer_out[1] = 0x0F;
12854   buffer_out[2] = output_size + 3;
12855   buffer_out[4] = 0x01;
12856   buffer_out[5] = 0x0b;
12857   buffer_out[6] = 0xfd;
12858   return (output_size + 6);
12859 }
12860 #endif
12861 
12862 #if (!defined(ACI_GATT_CLT_PREPARE_WRITE_REQ_ENABLED) || ACI_GATT_CLT_PREPARE_WRITE_REQ_ENABLED) && !ACI_GATT_CLT_PREPARE_WRITE_REQ_FORCE_DISABLED
12863 /* tBleStatus aci_gatt_clt_prepare_write_req(uint16_t Connection_Handle,
12864                                           uint16_t CID,
12865                                           uint16_t Attr_Handle,
12866                                           uint16_t Val_Offset,
12867                                           uint16_t Attribute_Val_Length,
12868                                           uint8_t Attribute_Val[]);
12869  */
12870 /* Command len: 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
12871 /* Response len: 1 */
aci_gatt_clt_prepare_write_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12872 uint16_t aci_gatt_clt_prepare_write_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12873 {
12874   /* Input params */
12875   aci_gatt_clt_prepare_write_req_cp0 *cp0 = (aci_gatt_clt_prepare_write_req_cp0 *)(buffer_in + (0));
12876 
12877   int output_size = 1;
12878   /* Output params */
12879   uint8_t *status = (uint8_t *) (buffer_out + 3);
12880 
12881   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12882   if (buffer_out_max_length < (1 + 6)) { return 0; }
12883   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
12884   {
12885     goto fail;
12886   }
12887 
12888   *status = aci_gatt_clt_prepare_write_req(cp0->Connection_Handle /* 2 */,
12889                                            cp0->CID /* 2 */,
12890                                            cp0->Attr_Handle /* 2 */,
12891                                            cp0->Val_Offset /* 2 */,
12892                                            cp0->Attribute_Val_Length /* 2 */,
12893                                            cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
12894 fail:
12895   buffer_out[0] = 0x04;
12896   buffer_out[1] = 0x0F;
12897   buffer_out[2] = output_size + 3;
12898   buffer_out[4] = 0x01;
12899   buffer_out[5] = 0x10;
12900   buffer_out[6] = 0xfd;
12901   return (output_size + 6);
12902 }
12903 #endif
12904 
12905 #if (!defined(ACI_GATT_CLT_EXECUTE_WRITE_REQ_ENABLED) || ACI_GATT_CLT_EXECUTE_WRITE_REQ_ENABLED) && !ACI_GATT_CLT_EXECUTE_WRITE_REQ_FORCE_DISABLED
12906 /* tBleStatus aci_gatt_clt_execute_write_req(uint16_t Connection_Handle,
12907                                           uint16_t CID,
12908                                           uint8_t Execute);
12909  */
12910 /* Command len: 2 + 2 + 1 */
12911 /* Response len: 1 */
aci_gatt_clt_execute_write_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12912 uint16_t aci_gatt_clt_execute_write_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12913 {
12914   /* Input params */
12915   aci_gatt_clt_execute_write_req_cp0 *cp0 = (aci_gatt_clt_execute_write_req_cp0 *)(buffer_in + (0));
12916 
12917   int output_size = 1;
12918   /* Output params */
12919   uint8_t *status = (uint8_t *) (buffer_out + 3);
12920 
12921   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12922   if (buffer_out_max_length < (1 + 6)) { return 0; }
12923   if(buffer_in_length != 2 + 2 + 1)
12924   {
12925     goto fail;
12926   }
12927 
12928   *status = aci_gatt_clt_execute_write_req(cp0->Connection_Handle /* 2 */,
12929                                            cp0->CID /* 2 */,
12930                                            cp0->Execute /* 1 */);
12931 fail:
12932   buffer_out[0] = 0x04;
12933   buffer_out[1] = 0x0F;
12934   buffer_out[2] = output_size + 3;
12935   buffer_out[4] = 0x01;
12936   buffer_out[5] = 0x11;
12937   buffer_out[6] = 0xfd;
12938   return (output_size + 6);
12939 }
12940 #endif
12941 
12942 #if (!defined(ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_ENABLED) || ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_ENABLED) && !ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_FORCE_DISABLED
12943 /* tBleStatus aci_gatt_clt_disc_all_primary_services(uint16_t Connection_Handle,
12944                                                   uint16_t CID);
12945  */
12946 /* Command len: 2 + 2 */
12947 /* Response len: 1 */
aci_gatt_clt_disc_all_primary_services_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12948 uint16_t aci_gatt_clt_disc_all_primary_services_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12949 {
12950   /* Input params */
12951   aci_gatt_clt_disc_all_primary_services_cp0 *cp0 = (aci_gatt_clt_disc_all_primary_services_cp0 *)(buffer_in + (0));
12952 
12953   int output_size = 1;
12954   /* Output params */
12955   uint8_t *status = (uint8_t *) (buffer_out + 3);
12956 
12957   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12958   if (buffer_out_max_length < (1 + 6)) { return 0; }
12959   if(buffer_in_length != 2 + 2)
12960   {
12961     goto fail;
12962   }
12963 
12964   *status = aci_gatt_clt_disc_all_primary_services(cp0->Connection_Handle /* 2 */,
12965                                                    cp0->CID /* 2 */);
12966 fail:
12967   buffer_out[0] = 0x04;
12968   buffer_out[1] = 0x0F;
12969   buffer_out[2] = output_size + 3;
12970   buffer_out[4] = 0x01;
12971   buffer_out[5] = 0x12;
12972   buffer_out[6] = 0xfd;
12973   return (output_size + 6);
12974 }
12975 #endif
12976 
12977 #if (!defined(ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_ENABLED) || ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_ENABLED) && !ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_FORCE_DISABLED
12978 /* tBleStatus aci_gatt_clt_disc_primary_service_by_uuid(uint16_t Connection_Handle,
12979                                                      uint16_t CID,
12980                                                      uint8_t UUID_Type,
12981                                                      UUID_t *UUID);
12982  */
12983 /* Command len: 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */
12984 /* Response len: 1 */
aci_gatt_clt_disc_primary_service_by_uuid_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)12985 uint16_t aci_gatt_clt_disc_primary_service_by_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
12986 {
12987   /* Input params */
12988   aci_gatt_clt_disc_primary_service_by_uuid_cp0 *cp0 = (aci_gatt_clt_disc_primary_service_by_uuid_cp0 *)(buffer_in + (0));
12989   UUID_t UUID;
12990 
12991   int output_size = 1;
12992   /* Output params */
12993   uint8_t *status = (uint8_t *) (buffer_out + 3);
12994 
12995   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
12996   if (buffer_out_max_length < (1 + 6)) { return 0; }
12997   Osal_MemCpy((void *) &UUID.UUID_16, (const void *) &cp0->UUID.UUID_16, (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)));
12998   if(buffer_in_length != 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)))
12999   {
13000     goto fail;
13001   }
13002 
13003   *status = aci_gatt_clt_disc_primary_service_by_uuid(cp0->Connection_Handle /* 2 */,
13004                                                       cp0->CID /* 2 */,
13005                                                       cp0->UUID_Type /* 1 */,
13006                                                       &UUID /* (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */);
13007 fail:
13008   buffer_out[0] = 0x04;
13009   buffer_out[1] = 0x0F;
13010   buffer_out[2] = output_size + 3;
13011   buffer_out[4] = 0x01;
13012   buffer_out[5] = 0x13;
13013   buffer_out[6] = 0xfd;
13014   return (output_size + 6);
13015 }
13016 #endif
13017 
13018 #if (!defined(ACI_GATT_CLT_FIND_INCLUDED_SERVICES_ENABLED) || ACI_GATT_CLT_FIND_INCLUDED_SERVICES_ENABLED) && !ACI_GATT_CLT_FIND_INCLUDED_SERVICES_FORCE_DISABLED
13019 /* tBleStatus aci_gatt_clt_find_included_services(uint16_t Connection_Handle,
13020                                                uint16_t CID,
13021                                                uint16_t Start_Handle,
13022                                                uint16_t End_Handle);
13023  */
13024 /* Command len: 2 + 2 + 2 + 2 */
13025 /* Response len: 1 */
aci_gatt_clt_find_included_services_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13026 uint16_t aci_gatt_clt_find_included_services_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13027 {
13028   /* Input params */
13029   aci_gatt_clt_find_included_services_cp0 *cp0 = (aci_gatt_clt_find_included_services_cp0 *)(buffer_in + (0));
13030 
13031   int output_size = 1;
13032   /* Output params */
13033   uint8_t *status = (uint8_t *) (buffer_out + 3);
13034 
13035   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13036   if (buffer_out_max_length < (1 + 6)) { return 0; }
13037   if(buffer_in_length != 2 + 2 + 2 + 2)
13038   {
13039     goto fail;
13040   }
13041 
13042   *status = aci_gatt_clt_find_included_services(cp0->Connection_Handle /* 2 */,
13043                                                 cp0->CID /* 2 */,
13044                                                 cp0->Start_Handle /* 2 */,
13045                                                 cp0->End_Handle /* 2 */);
13046 fail:
13047   buffer_out[0] = 0x04;
13048   buffer_out[1] = 0x0F;
13049   buffer_out[2] = output_size + 3;
13050   buffer_out[4] = 0x01;
13051   buffer_out[5] = 0x14;
13052   buffer_out[6] = 0xfd;
13053   return (output_size + 6);
13054 }
13055 #endif
13056 
13057 #if (!defined(ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_ENABLED) || ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_ENABLED) && !ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_FORCE_DISABLED
13058 /* tBleStatus aci_gatt_clt_disc_all_char_of_service(uint16_t Connection_Handle,
13059                                                  uint16_t CID,
13060                                                  uint16_t Start_Handle,
13061                                                  uint16_t End_Handle);
13062  */
13063 /* Command len: 2 + 2 + 2 + 2 */
13064 /* Response len: 1 */
aci_gatt_clt_disc_all_char_of_service_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13065 uint16_t aci_gatt_clt_disc_all_char_of_service_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13066 {
13067   /* Input params */
13068   aci_gatt_clt_disc_all_char_of_service_cp0 *cp0 = (aci_gatt_clt_disc_all_char_of_service_cp0 *)(buffer_in + (0));
13069 
13070   int output_size = 1;
13071   /* Output params */
13072   uint8_t *status = (uint8_t *) (buffer_out + 3);
13073 
13074   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13075   if (buffer_out_max_length < (1 + 6)) { return 0; }
13076   if(buffer_in_length != 2 + 2 + 2 + 2)
13077   {
13078     goto fail;
13079   }
13080 
13081   *status = aci_gatt_clt_disc_all_char_of_service(cp0->Connection_Handle /* 2 */,
13082                                                   cp0->CID /* 2 */,
13083                                                   cp0->Start_Handle /* 2 */,
13084                                                   cp0->End_Handle /* 2 */);
13085 fail:
13086   buffer_out[0] = 0x04;
13087   buffer_out[1] = 0x0F;
13088   buffer_out[2] = output_size + 3;
13089   buffer_out[4] = 0x01;
13090   buffer_out[5] = 0x15;
13091   buffer_out[6] = 0xfd;
13092   return (output_size + 6);
13093 }
13094 #endif
13095 
13096 #if (!defined(ACI_GATT_CLT_DISC_CHAR_BY_UUID_ENABLED) || ACI_GATT_CLT_DISC_CHAR_BY_UUID_ENABLED) && !ACI_GATT_CLT_DISC_CHAR_BY_UUID_FORCE_DISABLED
13097 /* tBleStatus aci_gatt_clt_disc_char_by_uuid(uint16_t Connection_Handle,
13098                                           uint16_t CID,
13099                                           uint16_t Start_Handle,
13100                                           uint16_t End_Handle,
13101                                           uint8_t UUID_Type,
13102                                           UUID_t *UUID);
13103  */
13104 /* Command len: 2 + 2 + 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */
13105 /* Response len: 1 */
aci_gatt_clt_disc_char_by_uuid_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13106 uint16_t aci_gatt_clt_disc_char_by_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13107 {
13108   /* Input params */
13109   aci_gatt_clt_disc_char_by_uuid_cp0 *cp0 = (aci_gatt_clt_disc_char_by_uuid_cp0 *)(buffer_in + (0));
13110   UUID_t UUID;
13111 
13112   int output_size = 1;
13113   /* Output params */
13114   uint8_t *status = (uint8_t *) (buffer_out + 3);
13115 
13116   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13117   if (buffer_out_max_length < (1 + 6)) { return 0; }
13118   Osal_MemCpy((void *) &UUID.UUID_16, (const void *) &cp0->UUID.UUID_16, (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)));
13119   if(buffer_in_length != 2 + 2 + 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)))
13120   {
13121     goto fail;
13122   }
13123 
13124   *status = aci_gatt_clt_disc_char_by_uuid(cp0->Connection_Handle /* 2 */,
13125                                            cp0->CID /* 2 */,
13126                                            cp0->Start_Handle /* 2 */,
13127                                            cp0->End_Handle /* 2 */,
13128                                            cp0->UUID_Type /* 1 */,
13129                                            &UUID /* (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */);
13130 fail:
13131   buffer_out[0] = 0x04;
13132   buffer_out[1] = 0x0F;
13133   buffer_out[2] = output_size + 3;
13134   buffer_out[4] = 0x01;
13135   buffer_out[5] = 0x16;
13136   buffer_out[6] = 0xfd;
13137   return (output_size + 6);
13138 }
13139 #endif
13140 
13141 #if (!defined(ACI_GATT_CLT_DISC_ALL_CHAR_DESC_ENABLED) || ACI_GATT_CLT_DISC_ALL_CHAR_DESC_ENABLED) && !ACI_GATT_CLT_DISC_ALL_CHAR_DESC_FORCE_DISABLED
13142 /* tBleStatus aci_gatt_clt_disc_all_char_desc(uint16_t Connection_Handle,
13143                                            uint16_t CID,
13144                                            uint16_t Char_Handle,
13145                                            uint16_t End_Handle);
13146  */
13147 /* Command len: 2 + 2 + 2 + 2 */
13148 /* Response len: 1 */
aci_gatt_clt_disc_all_char_desc_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13149 uint16_t aci_gatt_clt_disc_all_char_desc_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13150 {
13151   /* Input params */
13152   aci_gatt_clt_disc_all_char_desc_cp0 *cp0 = (aci_gatt_clt_disc_all_char_desc_cp0 *)(buffer_in + (0));
13153 
13154   int output_size = 1;
13155   /* Output params */
13156   uint8_t *status = (uint8_t *) (buffer_out + 3);
13157 
13158   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13159   if (buffer_out_max_length < (1 + 6)) { return 0; }
13160   if(buffer_in_length != 2 + 2 + 2 + 2)
13161   {
13162     goto fail;
13163   }
13164 
13165   *status = aci_gatt_clt_disc_all_char_desc(cp0->Connection_Handle /* 2 */,
13166                                             cp0->CID /* 2 */,
13167                                             cp0->Char_Handle /* 2 */,
13168                                             cp0->End_Handle /* 2 */);
13169 fail:
13170   buffer_out[0] = 0x04;
13171   buffer_out[1] = 0x0F;
13172   buffer_out[2] = output_size + 3;
13173   buffer_out[4] = 0x01;
13174   buffer_out[5] = 0x17;
13175   buffer_out[6] = 0xfd;
13176   return (output_size + 6);
13177 }
13178 #endif
13179 
13180 #if (!defined(ACI_GATT_CLT_READ_ENABLED) || ACI_GATT_CLT_READ_ENABLED) && !ACI_GATT_CLT_READ_FORCE_DISABLED
13181 /* tBleStatus aci_gatt_clt_read(uint16_t Connection_Handle,
13182                              uint16_t CID,
13183                              uint16_t Attr_Handle);
13184  */
13185 /* Command len: 2 + 2 + 2 */
13186 /* Response len: 1 */
aci_gatt_clt_read_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13187 uint16_t aci_gatt_clt_read_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13188 {
13189   /* Input params */
13190   aci_gatt_clt_read_cp0 *cp0 = (aci_gatt_clt_read_cp0 *)(buffer_in + (0));
13191 
13192   int output_size = 1;
13193   /* Output params */
13194   uint8_t *status = (uint8_t *) (buffer_out + 3);
13195 
13196   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13197   if (buffer_out_max_length < (1 + 6)) { return 0; }
13198   if(buffer_in_length != 2 + 2 + 2)
13199   {
13200     goto fail;
13201   }
13202 
13203   *status = aci_gatt_clt_read(cp0->Connection_Handle /* 2 */,
13204                               cp0->CID /* 2 */,
13205                               cp0->Attr_Handle /* 2 */);
13206 fail:
13207   buffer_out[0] = 0x04;
13208   buffer_out[1] = 0x0F;
13209   buffer_out[2] = output_size + 3;
13210   buffer_out[4] = 0x01;
13211   buffer_out[5] = 0x18;
13212   buffer_out[6] = 0xfd;
13213   return (output_size + 6);
13214 }
13215 #endif
13216 
13217 #if (!defined(ACI_GATT_CLT_READ_USING_CHAR_UUID_ENABLED) || ACI_GATT_CLT_READ_USING_CHAR_UUID_ENABLED) && !ACI_GATT_CLT_READ_USING_CHAR_UUID_FORCE_DISABLED
13218 /* tBleStatus aci_gatt_clt_read_using_char_uuid(uint16_t Connection_Handle,
13219                                              uint16_t CID,
13220                                              uint16_t Start_Handle,
13221                                              uint16_t End_Handle,
13222                                              uint8_t UUID_Type,
13223                                              UUID_t *UUID);
13224  */
13225 /* Command len: 2 + 2 + 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */
13226 /* Response len: 1 */
aci_gatt_clt_read_using_char_uuid_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13227 uint16_t aci_gatt_clt_read_using_char_uuid_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13228 {
13229   /* Input params */
13230   aci_gatt_clt_read_using_char_uuid_cp0 *cp0 = (aci_gatt_clt_read_using_char_uuid_cp0 *)(buffer_in + (0));
13231   UUID_t UUID;
13232 
13233   int output_size = 1;
13234   /* Output params */
13235   uint8_t *status = (uint8_t *) (buffer_out + 3);
13236 
13237   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13238   if (buffer_out_max_length < (1 + 6)) { return 0; }
13239   Osal_MemCpy((void *) &UUID.UUID_16, (const void *) &cp0->UUID.UUID_16, (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)));
13240   if(buffer_in_length != 2 + 2 + 2 + 2 + 1 + (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)))
13241   {
13242     goto fail;
13243   }
13244 
13245   *status = aci_gatt_clt_read_using_char_uuid(cp0->Connection_Handle /* 2 */,
13246                                               cp0->CID /* 2 */,
13247                                               cp0->Start_Handle /* 2 */,
13248                                               cp0->End_Handle /* 2 */,
13249                                               cp0->UUID_Type /* 1 */,
13250                                               &UUID /* (cp0->UUID_Type == 1 ? 2 : (cp0->UUID_Type == 2 ? 16 : 0)) */);
13251 fail:
13252   buffer_out[0] = 0x04;
13253   buffer_out[1] = 0x0F;
13254   buffer_out[2] = output_size + 3;
13255   buffer_out[4] = 0x01;
13256   buffer_out[5] = 0x19;
13257   buffer_out[6] = 0xfd;
13258   return (output_size + 6);
13259 }
13260 #endif
13261 
13262 #if (!defined(ACI_GATT_CLT_READ_LONG_ENABLED) || ACI_GATT_CLT_READ_LONG_ENABLED) && !ACI_GATT_CLT_READ_LONG_FORCE_DISABLED
13263 /* tBleStatus aci_gatt_clt_read_long(uint16_t Connection_Handle,
13264                                   uint16_t CID,
13265                                   uint16_t Attr_Handle,
13266                                   uint16_t Val_Offset);
13267  */
13268 /* Command len: 2 + 2 + 2 + 2 */
13269 /* Response len: 1 */
aci_gatt_clt_read_long_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13270 uint16_t aci_gatt_clt_read_long_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13271 {
13272   /* Input params */
13273   aci_gatt_clt_read_long_cp0 *cp0 = (aci_gatt_clt_read_long_cp0 *)(buffer_in + (0));
13274 
13275   int output_size = 1;
13276   /* Output params */
13277   uint8_t *status = (uint8_t *) (buffer_out + 3);
13278 
13279   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13280   if (buffer_out_max_length < (1 + 6)) { return 0; }
13281   if(buffer_in_length != 2 + 2 + 2 + 2)
13282   {
13283     goto fail;
13284   }
13285 
13286   *status = aci_gatt_clt_read_long(cp0->Connection_Handle /* 2 */,
13287                                    cp0->CID /* 2 */,
13288                                    cp0->Attr_Handle /* 2 */,
13289                                    cp0->Val_Offset /* 2 */);
13290 fail:
13291   buffer_out[0] = 0x04;
13292   buffer_out[1] = 0x0F;
13293   buffer_out[2] = output_size + 3;
13294   buffer_out[4] = 0x01;
13295   buffer_out[5] = 0x1a;
13296   buffer_out[6] = 0xfd;
13297   return (output_size + 6);
13298 }
13299 #endif
13300 
13301 #if (!defined(ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_ENABLED) || ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_ENABLED) && !ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_FORCE_DISABLED
13302 /* tBleStatus aci_gatt_clt_read_multiple_char_value(uint16_t Connection_Handle,
13303                                                  uint16_t CID,
13304                                                  uint8_t Number_of_Handles,
13305                                                  uint16_t Handle[]);
13306  */
13307 /* Command len: 2 + 2 + 1 + cp0->Number_of_Handles * (sizeof(uint16_t)) */
13308 /* Response len: 1 */
aci_gatt_clt_read_multiple_char_value_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13309 uint16_t aci_gatt_clt_read_multiple_char_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13310 {
13311   /* Input params */
13312   aci_gatt_clt_read_multiple_char_value_cp0 *cp0 = (aci_gatt_clt_read_multiple_char_value_cp0 *)(buffer_in + (0));
13313   uint16_t Handle[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)];
13314 
13315   int output_size = 1;
13316   /* Output params */
13317   uint8_t *status = (uint8_t *) (buffer_out + 3);
13318 
13319   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13320   if (buffer_out_max_length < (1 + 6)) { return 0; }
13321   Osal_MemCpy(Handle, cp0->Handle, cp0->Number_of_Handles * (sizeof(uint16_t)));
13322   if(buffer_in_length != 2 + 2 + 1 + cp0->Number_of_Handles * (sizeof(uint16_t)))
13323   {
13324     goto fail;
13325   }
13326 
13327   *status = aci_gatt_clt_read_multiple_char_value(cp0->Connection_Handle /* 2 */,
13328                                                   cp0->CID /* 2 */,
13329                                                   cp0->Number_of_Handles /* 1 */,
13330                                                   Handle /* cp0->Number_of_Handles * (sizeof(uint16_t)) */);
13331 fail:
13332   buffer_out[0] = 0x04;
13333   buffer_out[1] = 0x0F;
13334   buffer_out[2] = output_size + 3;
13335   buffer_out[4] = 0x01;
13336   buffer_out[5] = 0x1b;
13337   buffer_out[6] = 0xfd;
13338   return (output_size + 6);
13339 }
13340 #endif
13341 
13342 #if (!defined(ACI_GATT_CLT_WRITE_NWK_ENABLED) || ACI_GATT_CLT_WRITE_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_NWK_FORCE_DISABLED
13343 /* tBleStatus aci_gatt_clt_write_nwk(uint16_t Connection_Handle,
13344                                   uint16_t CID,
13345                                   uint16_t Attr_Handle,
13346                                   uint16_t Attribute_Val_Length,
13347                                   uint8_t Attribute_Val[]);
13348  */
13349 /* Command len: 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
13350 /* Response len: 1 */
aci_gatt_clt_write_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13351 uint16_t aci_gatt_clt_write_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13352 {
13353   /* Input params */
13354   aci_gatt_clt_write_nwk_cp0 *cp0 = (aci_gatt_clt_write_nwk_cp0 *)(buffer_in + (0));
13355 
13356   int output_size = 1;
13357   /* Output params */
13358   uint8_t *status = (uint8_t *) (buffer_out + 3);
13359 
13360   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13361   if (buffer_out_max_length < (1 + 6)) { return 0; }
13362   if(buffer_in_length != 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
13363   {
13364     goto fail;
13365   }
13366 
13367   *status = aci_gatt_clt_write_nwk(cp0->Connection_Handle /* 2 */,
13368                                    cp0->CID /* 2 */,
13369                                    cp0->Attr_Handle /* 2 */,
13370                                    cp0->Attribute_Val_Length /* 2 */,
13371                                    cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
13372 fail:
13373   buffer_out[0] = 0x04;
13374   buffer_out[1] = 0x0F;
13375   buffer_out[2] = output_size + 3;
13376   buffer_out[4] = 0x01;
13377   buffer_out[5] = 0x1c;
13378   buffer_out[6] = 0xfd;
13379   return (output_size + 6);
13380 }
13381 #endif
13382 
13383 #if (!defined(ACI_GATT_CLT_WRITE_LONG_NWK_ENABLED) || ACI_GATT_CLT_WRITE_LONG_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_LONG_NWK_FORCE_DISABLED
13384 /* tBleStatus aci_gatt_clt_write_long_nwk(uint16_t Connection_Handle,
13385                                        uint16_t CID,
13386                                        uint16_t Attr_Handle,
13387                                        uint16_t Val_Offset,
13388                                        uint16_t Attribute_Val_Length,
13389                                        uint8_t Attribute_Val[]);
13390  */
13391 /* Command len: 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
13392 /* Response len: 1 */
aci_gatt_clt_write_long_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13393 uint16_t aci_gatt_clt_write_long_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13394 {
13395   /* Input params */
13396   aci_gatt_clt_write_long_nwk_cp0 *cp0 = (aci_gatt_clt_write_long_nwk_cp0 *)(buffer_in + (0));
13397 
13398   int output_size = 1;
13399   /* Output params */
13400   uint8_t *status = (uint8_t *) (buffer_out + 3);
13401 
13402   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13403   if (buffer_out_max_length < (1 + 6)) { return 0; }
13404   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
13405   {
13406     goto fail;
13407   }
13408 
13409   *status = aci_gatt_clt_write_long_nwk(cp0->Connection_Handle /* 2 */,
13410                                         cp0->CID /* 2 */,
13411                                         cp0->Attr_Handle /* 2 */,
13412                                         cp0->Val_Offset /* 2 */,
13413                                         cp0->Attribute_Val_Length /* 2 */,
13414                                         cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
13415 fail:
13416   buffer_out[0] = 0x04;
13417   buffer_out[1] = 0x0F;
13418   buffer_out[2] = output_size + 3;
13419   buffer_out[4] = 0x01;
13420   buffer_out[5] = 0x1d;
13421   buffer_out[6] = 0xfd;
13422   return (output_size + 6);
13423 }
13424 #endif
13425 
13426 #if (!defined(ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_ENABLED) || ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_ENABLED) && !ACI_GATT_CLT_WRITE_CHAR_RELIABLE_NWK_FORCE_DISABLED
13427 /* tBleStatus aci_gatt_clt_write_char_reliable_nwk(uint16_t Connection_Handle,
13428                                                 uint16_t CID,
13429                                                 uint16_t Attr_Handle,
13430                                                 uint16_t Val_Offset,
13431                                                 uint16_t Attribute_Val_Length,
13432                                                 uint8_t Attribute_Val[]);
13433  */
13434 /* Command len: 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
13435 /* Response len: 1 */
aci_gatt_clt_write_char_reliable_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13436 uint16_t aci_gatt_clt_write_char_reliable_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13437 {
13438   /* Input params */
13439   aci_gatt_clt_write_char_reliable_nwk_cp0 *cp0 = (aci_gatt_clt_write_char_reliable_nwk_cp0 *)(buffer_in + (0));
13440 
13441   int output_size = 1;
13442   /* Output params */
13443   uint8_t *status = (uint8_t *) (buffer_out + 3);
13444 
13445   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13446   if (buffer_out_max_length < (1 + 6)) { return 0; }
13447   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
13448   {
13449     goto fail;
13450   }
13451 
13452   *status = aci_gatt_clt_write_char_reliable_nwk(cp0->Connection_Handle /* 2 */,
13453                                                  cp0->CID /* 2 */,
13454                                                  cp0->Attr_Handle /* 2 */,
13455                                                  cp0->Val_Offset /* 2 */,
13456                                                  cp0->Attribute_Val_Length /* 2 */,
13457                                                  cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
13458 fail:
13459   buffer_out[0] = 0x04;
13460   buffer_out[1] = 0x0F;
13461   buffer_out[2] = output_size + 3;
13462   buffer_out[4] = 0x01;
13463   buffer_out[5] = 0x1e;
13464   buffer_out[6] = 0xfd;
13465   return (output_size + 6);
13466 }
13467 #endif
13468 
13469 #if (!defined(ACI_GATT_CLT_WRITE_WITHOUT_RESP_ENABLED) || ACI_GATT_CLT_WRITE_WITHOUT_RESP_ENABLED) && !ACI_GATT_CLT_WRITE_WITHOUT_RESP_FORCE_DISABLED
13470 /* tBleStatus aci_gatt_clt_write_without_resp(uint16_t Connection_Handle,
13471                                            uint16_t CID,
13472                                            uint16_t Attr_Handle,
13473                                            uint16_t Attribute_Val_Length,
13474                                            uint8_t Attribute_Val[]);
13475  */
13476 /* Command len: 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
13477 /* Response len: 1 */
aci_gatt_clt_write_without_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13478 uint16_t aci_gatt_clt_write_without_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13479 {
13480   /* Input params */
13481   aci_gatt_clt_write_without_resp_cp0 *cp0 = (aci_gatt_clt_write_without_resp_cp0 *)(buffer_in + (0));
13482 
13483   int output_size = 1;
13484   /* Output params */
13485   uint8_t *status = (uint8_t *) (buffer_out + 6);
13486 
13487   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13488   if (buffer_out_max_length < (1 + 6)) { return 0; }
13489   if(buffer_in_length != 2 + 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
13490   {
13491     goto fail;
13492   }
13493 
13494   *status = aci_gatt_clt_write_without_resp(cp0->Connection_Handle /* 2 */,
13495                                             cp0->CID /* 2 */,
13496                                             cp0->Attr_Handle /* 2 */,
13497                                             cp0->Attribute_Val_Length /* 2 */,
13498                                             cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
13499 fail:
13500   buffer_out[0] = 0x04;
13501   buffer_out[1] = 0x0E;
13502   buffer_out[2] = output_size + 3;
13503   buffer_out[3] = 0x01;
13504   buffer_out[4] = 0x23;
13505   buffer_out[5] = 0xfd;
13506   return (output_size + 6);
13507 }
13508 #endif
13509 
13510 #if (!defined(ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_ENABLED) || ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_ENABLED) && !ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_FORCE_DISABLED
13511 /* tBleStatus aci_gatt_clt_signed_write_without_resp(uint16_t Connection_Handle,
13512                                                   uint16_t Attr_Handle,
13513                                                   uint16_t Attribute_Val_Length,
13514                                                   uint8_t Attribute_Val[]);
13515  */
13516 /* Command len: 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)) */
13517 /* Response len: 1 */
aci_gatt_clt_signed_write_without_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13518 uint16_t aci_gatt_clt_signed_write_without_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13519 {
13520   /* Input params */
13521   aci_gatt_clt_signed_write_without_resp_cp0 *cp0 = (aci_gatt_clt_signed_write_without_resp_cp0 *)(buffer_in + (0));
13522 
13523   int output_size = 1;
13524   /* Output params */
13525   uint8_t *status = (uint8_t *) (buffer_out + 6);
13526 
13527   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13528   if (buffer_out_max_length < (1 + 6)) { return 0; }
13529   if(buffer_in_length != 2 + 2 + 2 + cp0->Attribute_Val_Length * (sizeof(uint8_t)))
13530   {
13531     goto fail;
13532   }
13533 
13534   *status = aci_gatt_clt_signed_write_without_resp(cp0->Connection_Handle /* 2 */,
13535                                                    cp0->Attr_Handle /* 2 */,
13536                                                    cp0->Attribute_Val_Length /* 2 */,
13537                                                    cp0->Attribute_Val /* cp0->Attribute_Val_Length * (sizeof(uint8_t)) */);
13538 fail:
13539   buffer_out[0] = 0x04;
13540   buffer_out[1] = 0x0E;
13541   buffer_out[2] = output_size + 3;
13542   buffer_out[3] = 0x01;
13543   buffer_out[4] = 0x24;
13544   buffer_out[5] = 0xfd;
13545   return (output_size + 6);
13546 }
13547 #endif
13548 
13549 #if (!defined(ACI_GATT_CLT_CONFIRM_INDICATION_ENABLED) || ACI_GATT_CLT_CONFIRM_INDICATION_ENABLED) && !ACI_GATT_CLT_CONFIRM_INDICATION_FORCE_DISABLED
13550 /* tBleStatus aci_gatt_clt_confirm_indication(uint16_t Connection_Handle,
13551                                            uint16_t CID);
13552  */
13553 /* Command len: 2 + 2 */
13554 /* Response len: 1 */
aci_gatt_clt_confirm_indication_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13555 uint16_t aci_gatt_clt_confirm_indication_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13556 {
13557   /* Input params */
13558   aci_gatt_clt_confirm_indication_cp0 *cp0 = (aci_gatt_clt_confirm_indication_cp0 *)(buffer_in + (0));
13559 
13560   int output_size = 1;
13561   /* Output params */
13562   uint8_t *status = (uint8_t *) (buffer_out + 6);
13563 
13564   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13565   if (buffer_out_max_length < (1 + 6)) { return 0; }
13566   if(buffer_in_length != 2 + 2)
13567   {
13568     goto fail;
13569   }
13570 
13571   *status = aci_gatt_clt_confirm_indication(cp0->Connection_Handle /* 2 */,
13572                                             cp0->CID /* 2 */);
13573 fail:
13574   buffer_out[0] = 0x04;
13575   buffer_out[1] = 0x0E;
13576   buffer_out[2] = output_size + 3;
13577   buffer_out[3] = 0x01;
13578   buffer_out[4] = 0x25;
13579   buffer_out[5] = 0xfd;
13580   return (output_size + 6);
13581 }
13582 #endif
13583 
13584 #if (!defined(ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_ENABLED) || ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_ENABLED) && !ACI_GATT_SRV_SET_SECURITY_PERMISSION_NWK_FORCE_DISABLED
13585 /* tBleStatus aci_gatt_srv_set_security_permission_nwk(uint16_t Attr_Handle,
13586                                                     uint8_t Security_Permissions);
13587  */
13588 /* Command len: 2 + 1 */
13589 /* Response len: 1 */
aci_gatt_srv_set_security_permission_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13590 uint16_t aci_gatt_srv_set_security_permission_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13591 {
13592   /* Input params */
13593   aci_gatt_srv_set_security_permission_nwk_cp0 *cp0 = (aci_gatt_srv_set_security_permission_nwk_cp0 *)(buffer_in + (0));
13594 
13595   int output_size = 1;
13596   /* Output params */
13597   uint8_t *status = (uint8_t *) (buffer_out + 6);
13598 
13599   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13600   if (buffer_out_max_length < (1 + 6)) { return 0; }
13601   if(buffer_in_length != 2 + 1)
13602   {
13603     goto fail;
13604   }
13605 
13606   *status = aci_gatt_srv_set_security_permission_nwk(cp0->Attr_Handle /* 2 */,
13607                                                      cp0->Security_Permissions /* 1 */);
13608 fail:
13609   buffer_out[0] = 0x04;
13610   buffer_out[1] = 0x0E;
13611   buffer_out[2] = output_size + 3;
13612   buffer_out[3] = 0x01;
13613   buffer_out[4] = 0x28;
13614   buffer_out[5] = 0xfd;
13615   return (output_size + 6);
13616 }
13617 #endif
13618 
13619 #if (!defined(ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_HANDLE_VALUE_NWK_FORCE_DISABLED
13620 /* tBleStatus aci_gatt_srv_read_handle_value_nwk(uint16_t Attr_Handle,
13621                                               uint16_t Offset,
13622                                               uint16_t Value_Length_Requested,
13623                                               uint16_t *Length,
13624                                               uint16_t *Value_Length,
13625                                               uint8_t Value[]);
13626  */
13627 /* Command len: 2 + 2 + 2 */
13628 /* Response len: 1 + 2 + 2 + rp0->Value_Length * (sizeof(uint8_t)) */
aci_gatt_srv_read_handle_value_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13629 uint16_t aci_gatt_srv_read_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13630 {
13631   /* Input params */
13632   aci_gatt_srv_read_handle_value_nwk_cp0 *cp0 = (aci_gatt_srv_read_handle_value_nwk_cp0 *)(buffer_in + (0));
13633 
13634   int output_size = 0;
13635   /* Output params */
13636   aci_gatt_srv_read_handle_value_nwk_rp0 *rp0 = (aci_gatt_srv_read_handle_value_nwk_rp0 *) (buffer_out + 6);
13637   uint16_t Length = 0;
13638   uint16_t Value_Length = 0;
13639   uint8_t Value[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
13640 
13641   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13642   if (buffer_out_max_length < (1 + 6)) { return 0; }
13643   if(buffer_in_length != 2 + 2 + 2)
13644   {
13645     goto fail;
13646   }
13647 
13648   rp0->Status = aci_gatt_srv_read_handle_value_nwk(cp0->Attr_Handle /* 2 */,
13649                                                    cp0->Offset /* 2 */,
13650                                                    cp0->Value_Length_Requested /* 2 */,
13651                                                    &Length,
13652                                                    &Value_Length,
13653                                                    Value);
13654 fail:
13655   output_size += 1;
13656   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13657   rp0->Length = Length;
13658   output_size += 2;
13659   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13660   rp0->Value_Length = Value_Length;
13661   output_size += 2;
13662   if (buffer_out_max_length < (output_size + (rp0->Value_Length * (sizeof(uint8_t))) + 6)) { return 0; }
13663   Osal_MemCpy((void *) rp0->Value,(const void *) Value, rp0->Value_Length * (sizeof(uint8_t)));
13664   output_size += rp0->Value_Length * (sizeof(uint8_t));
13665   buffer_out[0] = 0x04;
13666   buffer_out[1] = 0x0E;
13667   buffer_out[2] = output_size + 3;
13668   buffer_out[3] = 0x01;
13669   buffer_out[4] = 0x2a;
13670   buffer_out[5] = 0xfd;
13671   return (output_size + 6);
13672 }
13673 #endif
13674 
13675 #if (!defined(ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_ENABLED) || ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_ENABLED) && !ACI_GATT_SRV_SET_ACCESS_PERMISSION_NWK_FORCE_DISABLED
13676 /* tBleStatus aci_gatt_srv_set_access_permission_nwk(uint16_t Attr_Handle,
13677                                                   uint8_t Access_Permissions);
13678  */
13679 /* Command len: 2 + 1 */
13680 /* Response len: 1 */
aci_gatt_srv_set_access_permission_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13681 uint16_t aci_gatt_srv_set_access_permission_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13682 {
13683   /* Input params */
13684   aci_gatt_srv_set_access_permission_nwk_cp0 *cp0 = (aci_gatt_srv_set_access_permission_nwk_cp0 *)(buffer_in + (0));
13685 
13686   int output_size = 1;
13687   /* Output params */
13688   uint8_t *status = (uint8_t *) (buffer_out + 6);
13689 
13690   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13691   if (buffer_out_max_length < (1 + 6)) { return 0; }
13692   if(buffer_in_length != 2 + 1)
13693   {
13694     goto fail;
13695   }
13696 
13697   *status = aci_gatt_srv_set_access_permission_nwk(cp0->Attr_Handle /* 2 */,
13698                                                    cp0->Access_Permissions /* 1 */);
13699 fail:
13700   buffer_out[0] = 0x04;
13701   buffer_out[1] = 0x0E;
13702   buffer_out[2] = output_size + 3;
13703   buffer_out[3] = 0x01;
13704   buffer_out[4] = 0x2e;
13705   buffer_out[5] = 0xfd;
13706   return (output_size + 6);
13707 }
13708 #endif
13709 
13710 #if (!defined(ACI_GATT_SRV_NOTIFY_ENABLED) || ACI_GATT_SRV_NOTIFY_ENABLED) && !ACI_GATT_SRV_NOTIFY_FORCE_DISABLED
13711 /* tBleStatus aci_gatt_srv_notify(uint16_t Connection_Handle,
13712                                uint16_t CID,
13713                                uint16_t Attr_Handle,
13714                                uint8_t Flags,
13715                                uint16_t Val_Length,
13716                                uint8_t Val[]);
13717  */
13718 /* Command len: 2 + 2 + 2 + 1 + 2 + cp0->Val_Length * (sizeof(uint8_t)) */
13719 /* Response len: 1 */
aci_gatt_srv_notify_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13720 uint16_t aci_gatt_srv_notify_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13721 {
13722   /* Input params */
13723   aci_gatt_srv_notify_cp0 *cp0 = (aci_gatt_srv_notify_cp0 *)(buffer_in + (0));
13724 
13725   int output_size = 1;
13726   /* Output params */
13727   uint8_t *status = (uint8_t *) (buffer_out + 6);
13728 
13729   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13730   if (buffer_out_max_length < (1 + 6)) { return 0; }
13731   if(buffer_in_length != 2 + 2 + 2 + 1 + 2 + cp0->Val_Length * (sizeof(uint8_t)))
13732   {
13733     goto fail;
13734   }
13735 
13736   *status = aci_gatt_srv_notify(cp0->Connection_Handle /* 2 */,
13737                                 cp0->CID /* 2 */,
13738                                 cp0->Attr_Handle /* 2 */,
13739                                 cp0->Flags /* 1 */,
13740                                 cp0->Val_Length /* 2 */,
13741                                 cp0->Val /* cp0->Val_Length * (sizeof(uint8_t)) */);
13742 fail:
13743   buffer_out[0] = 0x04;
13744   buffer_out[1] = 0x0E;
13745   buffer_out[2] = output_size + 3;
13746   buffer_out[3] = 0x01;
13747   buffer_out[4] = 0x2f;
13748   buffer_out[5] = 0xfd;
13749   return (output_size + 6);
13750 }
13751 #endif
13752 
13753 #if (!defined(ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_ENABLED) || ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_ENABLED) && !ACI_GATT_SRV_EXEC_WRITE_RESP_NWK_FORCE_DISABLED
13754 /* tBleStatus aci_gatt_srv_exec_write_resp_nwk(uint16_t Conn_Handle,
13755                                             uint16_t CID,
13756                                             uint8_t Exec);
13757  */
13758 /* Command len: 2 + 2 + 1 */
13759 /* Response len: 1 */
aci_gatt_srv_exec_write_resp_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13760 uint16_t aci_gatt_srv_exec_write_resp_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13761 {
13762   /* Input params */
13763   aci_gatt_srv_exec_write_resp_nwk_cp0 *cp0 = (aci_gatt_srv_exec_write_resp_nwk_cp0 *)(buffer_in + (0));
13764 
13765   int output_size = 1;
13766   /* Output params */
13767   uint8_t *status = (uint8_t *) (buffer_out + 6);
13768 
13769   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13770   if (buffer_out_max_length < (1 + 6)) { return 0; }
13771   if(buffer_in_length != 2 + 2 + 1)
13772   {
13773     goto fail;
13774   }
13775 
13776   *status = aci_gatt_srv_exec_write_resp_nwk(cp0->Conn_Handle /* 2 */,
13777                                              cp0->CID /* 2 */,
13778                                              cp0->Exec /* 1 */);
13779 fail:
13780   buffer_out[0] = 0x04;
13781   buffer_out[1] = 0x0E;
13782   buffer_out[2] = output_size + 3;
13783   buffer_out[3] = 0x01;
13784   buffer_out[4] = 0x31;
13785   buffer_out[5] = 0xfd;
13786   return (output_size + 6);
13787 }
13788 #endif
13789 
13790 #if (!defined(ACI_GATT_SRV_AUTHORIZE_RESP_NWK_ENABLED) || ACI_GATT_SRV_AUTHORIZE_RESP_NWK_ENABLED) && !ACI_GATT_SRV_AUTHORIZE_RESP_NWK_FORCE_DISABLED
13791 /* tBleStatus aci_gatt_srv_authorize_resp_nwk(uint16_t Conn_Handle,
13792                                            uint16_t CID,
13793                                            uint16_t Attr_Handle,
13794                                            uint8_t Operation_Type,
13795                                            uint8_t Error_Code,
13796                                            uint16_t Attr_Val_Offset,
13797                                            uint16_t Data_Length,
13798                                            uint8_t Data[]);
13799  */
13800 /* Command len: 2 + 2 + 2 + 1 + 1 + 2 + 2 + cp0->Data_Length * (sizeof(uint8_t)) */
13801 /* Response len: 1 */
aci_gatt_srv_authorize_resp_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13802 uint16_t aci_gatt_srv_authorize_resp_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13803 {
13804   /* Input params */
13805   aci_gatt_srv_authorize_resp_nwk_cp0 *cp0 = (aci_gatt_srv_authorize_resp_nwk_cp0 *)(buffer_in + (0));
13806 
13807   int output_size = 1;
13808   /* Output params */
13809   uint8_t *status = (uint8_t *) (buffer_out + 6);
13810 
13811   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13812   if (buffer_out_max_length < (1 + 6)) { return 0; }
13813   if(buffer_in_length != 2 + 2 + 2 + 1 + 1 + 2 + 2 + cp0->Data_Length * (sizeof(uint8_t)))
13814   {
13815     goto fail;
13816   }
13817 
13818   *status = aci_gatt_srv_authorize_resp_nwk(cp0->Conn_Handle /* 2 */,
13819                                             cp0->CID /* 2 */,
13820                                             cp0->Attr_Handle /* 2 */,
13821                                             cp0->Operation_Type /* 1 */,
13822                                             cp0->Error_Code /* 1 */,
13823                                             cp0->Attr_Val_Offset /* 2 */,
13824                                             cp0->Data_Length /* 2 */,
13825                                             cp0->Data /* cp0->Data_Length * (sizeof(uint8_t)) */);
13826 fail:
13827   buffer_out[0] = 0x04;
13828   buffer_out[1] = 0x0E;
13829   buffer_out[2] = output_size + 3;
13830   buffer_out[3] = 0x01;
13831   buffer_out[4] = 0x33;
13832   buffer_out[5] = 0xfd;
13833   return (output_size + 6);
13834 }
13835 #endif
13836 
13837 #if (!defined(ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_ENABLED) || ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_PREPARE_QUEUE_NWK_FORCE_DISABLED
13838 /* tBleStatus aci_gatt_srv_read_prepare_queue_nwk(uint16_t Conn_Handle,
13839                                                uint8_t Item_Index,
13840                                                uint16_t *Attr_Handle,
13841                                                uint16_t *Value_Offset,
13842                                                uint16_t *Value_Length,
13843                                                uint8_t Value[]);
13844  */
13845 /* Command len: 2 + 1 */
13846 /* Response len: 1 + 2 + 2 + 2 + rp0->Value_Length * (sizeof(uint8_t)) */
aci_gatt_srv_read_prepare_queue_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13847 uint16_t aci_gatt_srv_read_prepare_queue_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13848 {
13849   /* Input params */
13850   aci_gatt_srv_read_prepare_queue_nwk_cp0 *cp0 = (aci_gatt_srv_read_prepare_queue_nwk_cp0 *)(buffer_in + (0));
13851 
13852   int output_size = 0;
13853   /* Output params */
13854   aci_gatt_srv_read_prepare_queue_nwk_rp0 *rp0 = (aci_gatt_srv_read_prepare_queue_nwk_rp0 *) (buffer_out + 6);
13855   uint16_t Attr_Handle = 0;
13856   uint16_t Value_Offset = 0;
13857   uint16_t Value_Length = 0;
13858   uint8_t Value[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
13859 
13860   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13861   if (buffer_out_max_length < (1 + 6)) { return 0; }
13862   if(buffer_in_length != 2 + 1)
13863   {
13864     goto fail;
13865   }
13866 
13867   rp0->Status = aci_gatt_srv_read_prepare_queue_nwk(cp0->Conn_Handle /* 2 */,
13868                                                     cp0->Item_Index /* 1 */,
13869                                                     &Attr_Handle,
13870                                                     &Value_Offset,
13871                                                     &Value_Length,
13872                                                     Value);
13873 fail:
13874   output_size += 1;
13875   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13876   rp0->Attr_Handle = Attr_Handle;
13877   output_size += 2;
13878   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13879   rp0->Value_Offset = Value_Offset;
13880   output_size += 2;
13881   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13882   rp0->Value_Length = Value_Length;
13883   output_size += 2;
13884   if (buffer_out_max_length < (output_size + (rp0->Value_Length * (sizeof(uint8_t))) + 6)) { return 0; }
13885   Osal_MemCpy((void *) rp0->Value,(const void *) Value, rp0->Value_Length * (sizeof(uint8_t)));
13886   output_size += rp0->Value_Length * (sizeof(uint8_t));
13887   buffer_out[0] = 0x04;
13888   buffer_out[1] = 0x0E;
13889   buffer_out[2] = output_size + 3;
13890   buffer_out[3] = 0x01;
13891   buffer_out[4] = 0x35;
13892   buffer_out[5] = 0xfd;
13893   return (output_size + 6);
13894 }
13895 #endif
13896 
13897 #if (!defined(ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED) || ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED) && !ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_FORCE_DISABLED
13898 /* tBleStatus aci_gatt_srv_write_multiple_instance_handle_value(uint16_t Connection_Handle,
13899                                                              uint16_t Attr_Handle,
13900                                                              uint16_t Value_Length,
13901                                                              uint8_t Value[]);
13902  */
13903 /* Command len: 2 + 2 + 2 + cp0->Value_Length * (sizeof(uint8_t)) */
13904 /* Response len: 1 */
aci_gatt_srv_write_multiple_instance_handle_value_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13905 uint16_t aci_gatt_srv_write_multiple_instance_handle_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13906 {
13907   /* Input params */
13908   aci_gatt_srv_write_multiple_instance_handle_value_cp0 *cp0 = (aci_gatt_srv_write_multiple_instance_handle_value_cp0 *)(buffer_in + (0));
13909 
13910   int output_size = 1;
13911   /* Output params */
13912   uint8_t *status = (uint8_t *) (buffer_out + 6);
13913 
13914   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13915   if (buffer_out_max_length < (1 + 6)) { return 0; }
13916   if(buffer_in_length != 2 + 2 + 2 + cp0->Value_Length * (sizeof(uint8_t)))
13917   {
13918     goto fail;
13919   }
13920 
13921   *status = aci_gatt_srv_write_multiple_instance_handle_value(cp0->Connection_Handle /* 2 */,
13922                                                               cp0->Attr_Handle /* 2 */,
13923                                                               cp0->Value_Length /* 2 */,
13924                                                               cp0->Value /* cp0->Value_Length * (sizeof(uint8_t)) */);
13925 fail:
13926   buffer_out[0] = 0x04;
13927   buffer_out[1] = 0x0E;
13928   buffer_out[2] = output_size + 3;
13929   buffer_out[3] = 0x01;
13930   buffer_out[4] = 0x36;
13931   buffer_out[5] = 0xfd;
13932   return (output_size + 6);
13933 }
13934 #endif
13935 
13936 #if (!defined(ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_ENABLED) || ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_ENABLED) && !ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_NWK_FORCE_DISABLED
13937 /* tBleStatus aci_gatt_srv_read_multiple_instance_handle_value_nwk(uint16_t Connection_Handle,
13938                                                                 uint16_t Attr_Handle,
13939                                                                 uint16_t *Value_Length,
13940                                                                 uint8_t Value[]);
13941  */
13942 /* Command len: 2 + 2 */
13943 /* Response len: 1 + 2 + rp0->Value_Length * (sizeof(uint8_t)) */
aci_gatt_srv_read_multiple_instance_handle_value_nwk_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13944 uint16_t aci_gatt_srv_read_multiple_instance_handle_value_nwk_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13945 {
13946   /* Input params */
13947   aci_gatt_srv_read_multiple_instance_handle_value_nwk_cp0 *cp0 = (aci_gatt_srv_read_multiple_instance_handle_value_nwk_cp0 *)(buffer_in + (0));
13948 
13949   int output_size = 0;
13950   /* Output params */
13951   aci_gatt_srv_read_multiple_instance_handle_value_nwk_rp0 *rp0 = (aci_gatt_srv_read_multiple_instance_handle_value_nwk_rp0 *) (buffer_out + 6);
13952   uint16_t Value_Length = 0;
13953   uint8_t Value[HCI_MAX_PAYLOAD_SIZE/sizeof(uint8_t)] = {0};
13954 
13955   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
13956   if (buffer_out_max_length < (1 + 6)) { return 0; }
13957   if(buffer_in_length != 2 + 2)
13958   {
13959     goto fail;
13960   }
13961 
13962   rp0->Status = aci_gatt_srv_read_multiple_instance_handle_value_nwk(cp0->Connection_Handle /* 2 */,
13963                                                                      cp0->Attr_Handle /* 2 */,
13964                                                                      &Value_Length,
13965                                                                      Value);
13966 fail:
13967   output_size += 1;
13968   if (buffer_out_max_length < (output_size + (2) + 6)) { return 0; }
13969   rp0->Value_Length = Value_Length;
13970   output_size += 2;
13971   if (buffer_out_max_length < (output_size + (rp0->Value_Length * (sizeof(uint8_t))) + 6)) { return 0; }
13972   Osal_MemCpy((void *) rp0->Value,(const void *) Value, rp0->Value_Length * (sizeof(uint8_t)));
13973   output_size += rp0->Value_Length * (sizeof(uint8_t));
13974   buffer_out[0] = 0x04;
13975   buffer_out[1] = 0x0E;
13976   buffer_out[2] = output_size + 3;
13977   buffer_out[3] = 0x01;
13978   buffer_out[4] = 0x37;
13979   buffer_out[5] = 0xfd;
13980   return (output_size + 6);
13981 }
13982 #endif
13983 
13984 #if (!defined(ACI_GATT_SRV_MULTI_NOTIFY_ENABLED) || ACI_GATT_SRV_MULTI_NOTIFY_ENABLED) && !ACI_GATT_SRV_MULTI_NOTIFY_FORCE_DISABLED
13985 /* tBleStatus aci_gatt_srv_multi_notify(uint16_t Connection_Handle,
13986                                      uint16_t CID,
13987                                      uint8_t Flags,
13988                                      uint8_t Num_Of_Attr,
13989                                      Gatt_Srv_Notify_Attr_t Gatt_Srv_Notify_Attr[]);
13990  */
13991 /* Command len: 2 + 2 + 1 + 1 + struct_length */
13992 /* Response len: 1 */
aci_gatt_srv_multi_notify_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)13993 uint16_t aci_gatt_srv_multi_notify_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
13994 {
13995   /* Input params */
13996   aci_gatt_srv_multi_notify_cp0 *cp0 = (aci_gatt_srv_multi_notify_cp0 *)(buffer_in + (0));
13997   Gatt_Srv_Notify_Attr_t Gatt_Srv_Notify_Attr[HCI_MAX_PAYLOAD_SIZE/sizeof(Gatt_Srv_Notify_Attr_t)];
13998 
13999   int output_size = 1;
14000   /* Output params */
14001   uint8_t *status = (uint8_t *) (buffer_out + 6);
14002 
14003   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14004   if (buffer_out_max_length < (1 + 6)) { return 0; }
14005   int i;
14006   int struct_length = 0;
14007   if(cp0->Num_Of_Attr > HCI_MAX_PAYLOAD_SIZE/sizeof(Gatt_Srv_Notify_Attr_t))
14008   {
14009     cp0->Num_Of_Attr = 0;
14010     goto fail;
14011   }
14012   for (i = 0; i < cp0->Num_Of_Attr; i++) {
14013     packed_Gatt_Srv_Notify_Attr_t *Gatt_Srv_Notify_Attr_tmp = (packed_Gatt_Srv_Notify_Attr_t *)(((uint8_t *)cp0->Gatt_Srv_Notify_Attr) + struct_length);
14014     Gatt_Srv_Notify_Attr[i].Handle = Gatt_Srv_Notify_Attr_tmp->Handle;
14015     struct_length += 2;
14016     Gatt_Srv_Notify_Attr[i].Val_Length = Gatt_Srv_Notify_Attr_tmp->Val_Length;
14017     struct_length += 2;
14018     Gatt_Srv_Notify_Attr[i].Val = Gatt_Srv_Notify_Attr_tmp->Val;
14019     struct_length += Gatt_Srv_Notify_Attr_tmp->Val_Length;
14020   }
14021   if(buffer_in_length != 2 + 2 + 1 + 1 + struct_length)
14022   {
14023     goto fail;
14024   }
14025 
14026   *status = aci_gatt_srv_multi_notify(cp0->Connection_Handle /* 2 */,
14027                                       cp0->CID /* 2 */,
14028                                       cp0->Flags /* 1 */,
14029                                       cp0->Num_Of_Attr /* 1 */,
14030                                       Gatt_Srv_Notify_Attr /* struct_length */);
14031 fail:
14032   buffer_out[0] = 0x04;
14033   buffer_out[1] = 0x0E;
14034   buffer_out[2] = output_size + 3;
14035   buffer_out[3] = 0x01;
14036   buffer_out[4] = 0x38;
14037   buffer_out[5] = 0xfd;
14038   return (output_size + 6);
14039 }
14040 #endif
14041 
14042 #if (!defined(ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_ENABLED) || ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_ENABLED) && !ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_FORCE_DISABLED
14043 /* tBleStatus aci_gatt_clt_read_multiple_var_len_char_value(uint16_t Connection_Handle,
14044                                                          uint16_t CID,
14045                                                          uint8_t Number_of_Handles,
14046                                                          uint16_t Handle[]);
14047  */
14048 /* Command len: 2 + 2 + 1 + cp0->Number_of_Handles * (sizeof(uint16_t)) */
14049 /* Response len: 1 */
aci_gatt_clt_read_multiple_var_len_char_value_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14050 uint16_t aci_gatt_clt_read_multiple_var_len_char_value_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14051 {
14052   /* Input params */
14053   aci_gatt_clt_read_multiple_var_len_char_value_cp0 *cp0 = (aci_gatt_clt_read_multiple_var_len_char_value_cp0 *)(buffer_in + (0));
14054   uint16_t Handle[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)];
14055 
14056   int output_size = 1;
14057   /* Output params */
14058   uint8_t *status = (uint8_t *) (buffer_out + 3);
14059 
14060   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14061   if (buffer_out_max_length < (1 + 6)) { return 0; }
14062   Osal_MemCpy(Handle, cp0->Handle, cp0->Number_of_Handles * (sizeof(uint16_t)));
14063   if(buffer_in_length != 2 + 2 + 1 + cp0->Number_of_Handles * (sizeof(uint16_t)))
14064   {
14065     goto fail;
14066   }
14067 
14068   *status = aci_gatt_clt_read_multiple_var_len_char_value(cp0->Connection_Handle /* 2 */,
14069                                                           cp0->CID /* 2 */,
14070                                                           cp0->Number_of_Handles /* 1 */,
14071                                                           Handle /* cp0->Number_of_Handles * (sizeof(uint16_t)) */);
14072 fail:
14073   buffer_out[0] = 0x04;
14074   buffer_out[1] = 0x0F;
14075   buffer_out[2] = output_size + 3;
14076   buffer_out[4] = 0x01;
14077   buffer_out[5] = 0x39;
14078   buffer_out[6] = 0xfd;
14079   return (output_size + 6);
14080 }
14081 #endif
14082 
14083 #if (!defined(ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_ENABLED) || ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_ENABLED) && !ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_FORCE_DISABLED
14084 /* tBleStatus aci_l2cap_connection_parameter_update_req(uint16_t Connection_Handle,
14085                                                      uint16_t Connection_Interval_Min,
14086                                                      uint16_t Connection_Interval_Max,
14087                                                      uint16_t Peripheral_Latency,
14088                                                      uint16_t Timeout_Multiplier);
14089  */
14090 /* Command len: 2 + 2 + 2 + 2 + 2 */
14091 /* Response len: 1 */
aci_l2cap_connection_parameter_update_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14092 uint16_t aci_l2cap_connection_parameter_update_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14093 {
14094   /* Input params */
14095   aci_l2cap_connection_parameter_update_req_cp0 *cp0 = (aci_l2cap_connection_parameter_update_req_cp0 *)(buffer_in + (0));
14096 
14097   int output_size = 1;
14098   /* Output params */
14099   uint8_t *status = (uint8_t *) (buffer_out + 3);
14100 
14101   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14102   if (buffer_out_max_length < (1 + 6)) { return 0; }
14103   if(buffer_in_length != 2 + 2 + 2 + 2 + 2)
14104   {
14105     goto fail;
14106   }
14107 
14108   *status = aci_l2cap_connection_parameter_update_req(cp0->Connection_Handle /* 2 */,
14109                                                       cp0->Connection_Interval_Min /* 2 */,
14110                                                       cp0->Connection_Interval_Max /* 2 */,
14111                                                       cp0->Peripheral_Latency /* 2 */,
14112                                                       cp0->Timeout_Multiplier /* 2 */);
14113 fail:
14114   buffer_out[0] = 0x04;
14115   buffer_out[1] = 0x0F;
14116   buffer_out[2] = output_size + 3;
14117   buffer_out[4] = 0x01;
14118   buffer_out[5] = 0x81;
14119   buffer_out[6] = 0xfd;
14120   return (output_size + 6);
14121 }
14122 #endif
14123 
14124 #if (!defined(ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_ENABLED) || ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_ENABLED) && !ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_FORCE_DISABLED
14125 /* tBleStatus aci_l2cap_connection_parameter_update_resp(uint16_t Connection_Handle,
14126                                                       uint16_t Connection_Interval_Min,
14127                                                       uint16_t Connection_Interval_Max,
14128                                                       uint16_t Peripheral_Latency,
14129                                                       uint16_t Timeout_Multiplier,
14130                                                       uint16_t Min_CE_Length,
14131                                                       uint16_t Max_CE_Length,
14132                                                       uint8_t Identifier,
14133                                                       uint8_t Accept);
14134  */
14135 /* Command len: 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + 1 */
14136 /* Response len: 1 */
aci_l2cap_connection_parameter_update_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14137 uint16_t aci_l2cap_connection_parameter_update_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14138 {
14139   /* Input params */
14140   aci_l2cap_connection_parameter_update_resp_cp0 *cp0 = (aci_l2cap_connection_parameter_update_resp_cp0 *)(buffer_in + (0));
14141 
14142   int output_size = 1;
14143   /* Output params */
14144   uint8_t *status = (uint8_t *) (buffer_out + 6);
14145 
14146   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14147   if (buffer_out_max_length < (1 + 6)) { return 0; }
14148   if(buffer_in_length != 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + 1)
14149   {
14150     goto fail;
14151   }
14152 
14153   *status = aci_l2cap_connection_parameter_update_resp(cp0->Connection_Handle /* 2 */,
14154                                                        cp0->Connection_Interval_Min /* 2 */,
14155                                                        cp0->Connection_Interval_Max /* 2 */,
14156                                                        cp0->Peripheral_Latency /* 2 */,
14157                                                        cp0->Timeout_Multiplier /* 2 */,
14158                                                        cp0->Min_CE_Length /* 2 */,
14159                                                        cp0->Max_CE_Length /* 2 */,
14160                                                        cp0->Identifier /* 1 */,
14161                                                        cp0->Accept /* 1 */);
14162 fail:
14163   buffer_out[0] = 0x04;
14164   buffer_out[1] = 0x0E;
14165   buffer_out[2] = output_size + 3;
14166   buffer_out[3] = 0x01;
14167   buffer_out[4] = 0x82;
14168   buffer_out[5] = 0xfd;
14169   return (output_size + 6);
14170 }
14171 #endif
14172 
14173 #if (!defined(ACI_L2CAP_COS_CONNECTION_REQ_ENABLED) || ACI_L2CAP_COS_CONNECTION_REQ_ENABLED) && !ACI_L2CAP_COS_CONNECTION_REQ_FORCE_DISABLED
14174 /* tBleStatus aci_l2cap_cos_connection_req(uint16_t Connection_Handle,
14175                                         uint16_t SPSM,
14176                                         uint16_t MTU,
14177                                         uint16_t MPS,
14178                                         uint8_t Channel_Type,
14179                                         uint8_t CID_Count);
14180  */
14181 /* Command len: 2 + 2 + 2 + 2 + 1 + 1 */
14182 /* Response len: 1 */
aci_l2cap_cos_connection_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14183 uint16_t aci_l2cap_cos_connection_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14184 {
14185   /* Input params */
14186   aci_l2cap_cos_connection_req_cp0 *cp0 = (aci_l2cap_cos_connection_req_cp0 *)(buffer_in + (0));
14187 
14188   int output_size = 1;
14189   /* Output params */
14190   uint8_t *status = (uint8_t *) (buffer_out + 3);
14191 
14192   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14193   if (buffer_out_max_length < (1 + 6)) { return 0; }
14194   if(buffer_in_length != 2 + 2 + 2 + 2 + 1 + 1)
14195   {
14196     goto fail;
14197   }
14198 
14199   *status = aci_l2cap_cos_connection_req(cp0->Connection_Handle /* 2 */,
14200                                          cp0->SPSM /* 2 */,
14201                                          cp0->MTU /* 2 */,
14202                                          cp0->MPS /* 2 */,
14203                                          cp0->Channel_Type /* 1 */,
14204                                          cp0->CID_Count /* 1 */);
14205 fail:
14206   buffer_out[0] = 0x04;
14207   buffer_out[1] = 0x0F;
14208   buffer_out[2] = output_size + 3;
14209   buffer_out[4] = 0x01;
14210   buffer_out[5] = 0x83;
14211   buffer_out[6] = 0xfd;
14212   return (output_size + 6);
14213 }
14214 #endif
14215 
14216 #if (!defined(ACI_L2CAP_COS_CONNECTION_RESP_ENABLED) || ACI_L2CAP_COS_CONNECTION_RESP_ENABLED) && !ACI_L2CAP_COS_CONNECTION_RESP_FORCE_DISABLED
14217 /* tBleStatus aci_l2cap_cos_connection_resp(uint16_t Connection_Handle,
14218                                          uint8_t Identifier,
14219                                          uint16_t MTU,
14220                                          uint16_t MPS,
14221                                          uint16_t Result,
14222                                          uint8_t CID_Count,
14223                                          uint16_t CID[]);
14224  */
14225 /* Command len: 2 + 1 + 2 + 2 + 2 + 1 */
14226 /* Response len: 1 + 1 + rp0->CID_Count * (sizeof(uint16_t)) */
aci_l2cap_cos_connection_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14227 uint16_t aci_l2cap_cos_connection_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14228 {
14229   /* Input params */
14230   aci_l2cap_cos_connection_resp_cp0 *cp0 = (aci_l2cap_cos_connection_resp_cp0 *)(buffer_in + (0));
14231 
14232   int output_size = 0;
14233   /* Output params */
14234   aci_l2cap_cos_connection_resp_rp0 *rp0 = (aci_l2cap_cos_connection_resp_rp0 *) (buffer_out + 6);
14235   uint16_t CID[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)] = {0};
14236 
14237   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14238   if (buffer_out_max_length < (1 + 6)) { return 0; }
14239   if(buffer_in_length != 2 + 1 + 2 + 2 + 2 + 1)
14240   {
14241     goto fail;
14242   }
14243 
14244   rp0->Status = aci_l2cap_cos_connection_resp(cp0->Connection_Handle /* 2 */,
14245                                               cp0->Identifier /* 1 */,
14246                                               cp0->MTU /* 2 */,
14247                                               cp0->MPS /* 2 */,
14248                                               cp0->Result /* 2 */,
14249                                               cp0->CID_Count /* 1 */,
14250                                               CID);
14251 fail:
14252   output_size += 1;
14253   if (buffer_out_max_length < (output_size + (1) + 6)) { return 0; }
14254   rp0->CID_Count = cp0->CID_Count;
14255   output_size += 1;
14256   if (buffer_out_max_length < (output_size + (rp0->CID_Count * (sizeof(uint16_t))) + 6)) { return 0; }
14257   Osal_MemCpy((void *) rp0->CID,(const void *) CID, rp0->CID_Count * (sizeof(uint16_t)));
14258   output_size += rp0->CID_Count * (sizeof(uint16_t));
14259   buffer_out[0] = 0x04;
14260   buffer_out[1] = 0x0E;
14261   buffer_out[2] = output_size + 3;
14262   buffer_out[3] = 0x01;
14263   buffer_out[4] = 0x84;
14264   buffer_out[5] = 0xfd;
14265   return (output_size + 6);
14266 }
14267 #endif
14268 
14269 #if (!defined(ACI_L2CAP_COS_DISCONNECT_REQ_ENABLED) || ACI_L2CAP_COS_DISCONNECT_REQ_ENABLED) && !ACI_L2CAP_COS_DISCONNECT_REQ_FORCE_DISABLED
14270 /* tBleStatus aci_l2cap_cos_disconnect_req(uint16_t Connection_Handle,
14271                                         uint16_t CID);
14272  */
14273 /* Command len: 2 + 2 */
14274 /* Response len: 1 */
aci_l2cap_cos_disconnect_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14275 uint16_t aci_l2cap_cos_disconnect_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14276 {
14277   /* Input params */
14278   aci_l2cap_cos_disconnect_req_cp0 *cp0 = (aci_l2cap_cos_disconnect_req_cp0 *)(buffer_in + (0));
14279 
14280   int output_size = 1;
14281   /* Output params */
14282   uint8_t *status = (uint8_t *) (buffer_out + 3);
14283 
14284   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14285   if (buffer_out_max_length < (1 + 6)) { return 0; }
14286   if(buffer_in_length != 2 + 2)
14287   {
14288     goto fail;
14289   }
14290 
14291   *status = aci_l2cap_cos_disconnect_req(cp0->Connection_Handle /* 2 */,
14292                                          cp0->CID /* 2 */);
14293 fail:
14294   buffer_out[0] = 0x04;
14295   buffer_out[1] = 0x0F;
14296   buffer_out[2] = output_size + 3;
14297   buffer_out[4] = 0x01;
14298   buffer_out[5] = 0x86;
14299   buffer_out[6] = 0xfd;
14300   return (output_size + 6);
14301 }
14302 #endif
14303 
14304 #if (!defined(ACI_L2CAP_COS_SDU_DATA_TRANSMIT_ENABLED) || ACI_L2CAP_COS_SDU_DATA_TRANSMIT_ENABLED) && !ACI_L2CAP_COS_SDU_DATA_TRANSMIT_FORCE_DISABLED
14305 /* tBleStatus aci_l2cap_cos_sdu_data_transmit(uint16_t Connection_Handle,
14306                                            uint16_t CID,
14307                                            uint16_t SDU_Length,
14308                                            uint8_t SDU_Data[]);
14309  */
14310 /* Command len: 2 + 2 + 2 + cp0->SDU_Length * (sizeof(uint8_t)) */
14311 /* Response len: 1 */
aci_l2cap_cos_sdu_data_transmit_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14312 uint16_t aci_l2cap_cos_sdu_data_transmit_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14313 {
14314   /* Input params */
14315   aci_l2cap_cos_sdu_data_transmit_cp0 *cp0 = (aci_l2cap_cos_sdu_data_transmit_cp0 *)(buffer_in + (0));
14316 
14317   int output_size = 1;
14318   /* Output params */
14319   uint8_t *status = (uint8_t *) (buffer_out + 6);
14320 
14321   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14322   if (buffer_out_max_length < (1 + 6)) { return 0; }
14323   if(buffer_in_length != 2 + 2 + 2 + cp0->SDU_Length * (sizeof(uint8_t)))
14324   {
14325     goto fail;
14326   }
14327 
14328   *status = aci_l2cap_cos_sdu_data_transmit(cp0->Connection_Handle /* 2 */,
14329                                             cp0->CID /* 2 */,
14330                                             cp0->SDU_Length /* 2 */,
14331                                             cp0->SDU_Data /* cp0->SDU_Length * (sizeof(uint8_t)) */);
14332 fail:
14333   buffer_out[0] = 0x04;
14334   buffer_out[1] = 0x0E;
14335   buffer_out[2] = output_size + 3;
14336   buffer_out[3] = 0x01;
14337   buffer_out[4] = 0x87;
14338   buffer_out[5] = 0xfd;
14339   return (output_size + 6);
14340 }
14341 #endif
14342 
14343 #if (!defined(ACI_L2CAP_COS_RECONFIGURE_REQ_ENABLED) || ACI_L2CAP_COS_RECONFIGURE_REQ_ENABLED) && !ACI_L2CAP_COS_RECONFIGURE_REQ_FORCE_DISABLED
14344 /* tBleStatus aci_l2cap_cos_reconfigure_req(uint16_t Connection_Handle,
14345                                          uint16_t MTU,
14346                                          uint16_t MPS,
14347                                          uint8_t CID_Count,
14348                                          uint16_t CID[]);
14349  */
14350 /* Command len: 2 + 2 + 2 + 1 + cp0->CID_Count * (sizeof(uint16_t)) */
14351 /* Response len: 1 */
aci_l2cap_cos_reconfigure_req_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14352 uint16_t aci_l2cap_cos_reconfigure_req_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14353 {
14354   /* Input params */
14355   aci_l2cap_cos_reconfigure_req_cp0 *cp0 = (aci_l2cap_cos_reconfigure_req_cp0 *)(buffer_in + (0));
14356   uint16_t CID[HCI_MAX_PAYLOAD_SIZE/sizeof(uint16_t)];
14357 
14358   int output_size = 1;
14359   /* Output params */
14360   uint8_t *status = (uint8_t *) (buffer_out + 6);
14361 
14362   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14363   if (buffer_out_max_length < (1 + 6)) { return 0; }
14364   Osal_MemCpy(CID, cp0->CID, cp0->CID_Count * (sizeof(uint16_t)));
14365   if(buffer_in_length != 2 + 2 + 2 + 1 + cp0->CID_Count * (sizeof(uint16_t)))
14366   {
14367     goto fail;
14368   }
14369 
14370   *status = aci_l2cap_cos_reconfigure_req(cp0->Connection_Handle /* 2 */,
14371                                           cp0->MTU /* 2 */,
14372                                           cp0->MPS /* 2 */,
14373                                           cp0->CID_Count /* 1 */,
14374                                           CID /* cp0->CID_Count * (sizeof(uint16_t)) */);
14375 fail:
14376   buffer_out[0] = 0x04;
14377   buffer_out[1] = 0x0E;
14378   buffer_out[2] = output_size + 3;
14379   buffer_out[3] = 0x01;
14380   buffer_out[4] = 0x8a;
14381   buffer_out[5] = 0xfd;
14382   return (output_size + 6);
14383 }
14384 #endif
14385 
14386 #if (!defined(ACI_L2CAP_COS_RECONFIGURE_RESP_ENABLED) || ACI_L2CAP_COS_RECONFIGURE_RESP_ENABLED) && !ACI_L2CAP_COS_RECONFIGURE_RESP_FORCE_DISABLED
14387 /* tBleStatus aci_l2cap_cos_reconfigure_resp(uint16_t Connection_Handle,
14388                                           uint8_t Identifier,
14389                                           uint16_t Result);
14390  */
14391 /* Command len: 2 + 1 + 2 */
14392 /* Response len: 1 */
aci_l2cap_cos_reconfigure_resp_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14393 uint16_t aci_l2cap_cos_reconfigure_resp_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14394 {
14395   /* Input params */
14396   aci_l2cap_cos_reconfigure_resp_cp0 *cp0 = (aci_l2cap_cos_reconfigure_resp_cp0 *)(buffer_in + (0));
14397 
14398   int output_size = 1;
14399   /* Output params */
14400   uint8_t *status = (uint8_t *) (buffer_out + 6);
14401 
14402   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14403   if (buffer_out_max_length < (1 + 6)) { return 0; }
14404   if(buffer_in_length != 2 + 1 + 2)
14405   {
14406     goto fail;
14407   }
14408 
14409   *status = aci_l2cap_cos_reconfigure_resp(cp0->Connection_Handle /* 2 */,
14410                                            cp0->Identifier /* 1 */,
14411                                            cp0->Result /* 2 */);
14412 fail:
14413   buffer_out[0] = 0x04;
14414   buffer_out[1] = 0x0E;
14415   buffer_out[2] = output_size + 3;
14416   buffer_out[3] = 0x01;
14417   buffer_out[4] = 0x8b;
14418   buffer_out[5] = 0xfd;
14419   return (output_size + 6);
14420 }
14421 #endif
14422 
14423 #if (!defined(ACI_TEST_TX_NOTIFICATION_START_ENABLED) || ACI_TEST_TX_NOTIFICATION_START_ENABLED) && !ACI_TEST_TX_NOTIFICATION_START_FORCE_DISABLED
14424 /* tBleStatus aci_test_tx_notification_start(uint16_t Connection_Handle,
14425                                           uint16_t Service_Handle,
14426                                           uint16_t Char_Handle,
14427                                           uint16_t Value_Length);
14428  */
14429 /* Command len: 2 + 2 + 2 + 2 */
14430 /* Response len: 1 */
aci_test_tx_notification_start_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14431 uint16_t aci_test_tx_notification_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14432 {
14433   /* Input params */
14434   aci_test_tx_notification_start_cp0 *cp0 = (aci_test_tx_notification_start_cp0 *)(buffer_in + (0));
14435 
14436   int output_size = 1;
14437   /* Output params */
14438   uint8_t *status = (uint8_t *) (buffer_out + 6);
14439 
14440   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14441   if (buffer_out_max_length < (1 + 6)) { return 0; }
14442   if(buffer_in_length != 2 + 2 + 2 + 2)
14443   {
14444     goto fail;
14445   }
14446 
14447   *status = aci_test_tx_notification_start(cp0->Connection_Handle /* 2 */,
14448                                            cp0->Service_Handle /* 2 */,
14449                                            cp0->Char_Handle /* 2 */,
14450                                            cp0->Value_Length /* 2 */);
14451 fail:
14452   buffer_out[0] = 0x04;
14453   buffer_out[1] = 0x0E;
14454   buffer_out[2] = output_size + 3;
14455   buffer_out[3] = 0x01;
14456   buffer_out[4] = 0x00;
14457   buffer_out[5] = 0xfe;
14458   return (output_size + 6);
14459 }
14460 #endif
14461 
14462 #if (!defined(ACI_TEST_TX_WRITE_COMMAND_START_ENABLED) || ACI_TEST_TX_WRITE_COMMAND_START_ENABLED) && !ACI_TEST_TX_WRITE_COMMAND_START_FORCE_DISABLED
14463 /* tBleStatus aci_test_tx_write_command_start(uint16_t Connection_Handle,
14464                                            uint16_t Attr_Handle,
14465                                            uint16_t Value_Length);
14466  */
14467 /* Command len: 2 + 2 + 2 */
14468 /* Response len: 1 */
aci_test_tx_write_command_start_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14469 uint16_t aci_test_tx_write_command_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14470 {
14471   /* Input params */
14472   aci_test_tx_write_command_start_cp0 *cp0 = (aci_test_tx_write_command_start_cp0 *)(buffer_in + (0));
14473 
14474   int output_size = 1;
14475   /* Output params */
14476   uint8_t *status = (uint8_t *) (buffer_out + 6);
14477 
14478   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14479   if (buffer_out_max_length < (1 + 6)) { return 0; }
14480   if(buffer_in_length != 2 + 2 + 2)
14481   {
14482     goto fail;
14483   }
14484 
14485   *status = aci_test_tx_write_command_start(cp0->Connection_Handle /* 2 */,
14486                                             cp0->Attr_Handle /* 2 */,
14487                                             cp0->Value_Length /* 2 */);
14488 fail:
14489   buffer_out[0] = 0x04;
14490   buffer_out[1] = 0x0E;
14491   buffer_out[2] = output_size + 3;
14492   buffer_out[3] = 0x01;
14493   buffer_out[4] = 0x01;
14494   buffer_out[5] = 0xfe;
14495   return (output_size + 6);
14496 }
14497 #endif
14498 
14499 #if (!defined(ACI_TEST_RX_START_ENABLED) || ACI_TEST_RX_START_ENABLED) && !ACI_TEST_RX_START_FORCE_DISABLED
14500 /* tBleStatus aci_test_rx_start(uint16_t Connection_Handle,
14501                              uint16_t Attr_Handle,
14502                              uint8_t Notifications_WriteCmds);
14503  */
14504 /* Command len: 2 + 2 + 1 */
14505 /* Response len: 1 */
aci_test_rx_start_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14506 uint16_t aci_test_rx_start_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14507 {
14508   /* Input params */
14509   aci_test_rx_start_cp0 *cp0 = (aci_test_rx_start_cp0 *)(buffer_in + (0));
14510 
14511   int output_size = 1;
14512   /* Output params */
14513   uint8_t *status = (uint8_t *) (buffer_out + 6);
14514 
14515   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14516   if (buffer_out_max_length < (1 + 6)) { return 0; }
14517   if(buffer_in_length != 2 + 2 + 1)
14518   {
14519     goto fail;
14520   }
14521 
14522   *status = aci_test_rx_start(cp0->Connection_Handle /* 2 */,
14523                               cp0->Attr_Handle /* 2 */,
14524                               cp0->Notifications_WriteCmds /* 1 */);
14525 fail:
14526   buffer_out[0] = 0x04;
14527   buffer_out[1] = 0x0E;
14528   buffer_out[2] = output_size + 3;
14529   buffer_out[3] = 0x01;
14530   buffer_out[4] = 0x02;
14531   buffer_out[5] = 0xfe;
14532   return (output_size + 6);
14533 }
14534 #endif
14535 
14536 #if (!defined(ACI_TEST_STOP_ENABLED) || ACI_TEST_STOP_ENABLED) && !ACI_TEST_STOP_FORCE_DISABLED
14537 /* tBleStatus aci_test_stop(uint8_t TX_RX);
14538  */
14539 /* Command len: 1 */
14540 /* Response len: 1 */
aci_test_stop_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14541 uint16_t aci_test_stop_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14542 {
14543   /* Input params */
14544   aci_test_stop_cp0 *cp0 = (aci_test_stop_cp0 *)(buffer_in + (0));
14545 
14546   int output_size = 1;
14547   /* Output params */
14548   uint8_t *status = (uint8_t *) (buffer_out + 6);
14549 
14550   *status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14551   if (buffer_out_max_length < (1 + 6)) { return 0; }
14552   if(buffer_in_length != 1)
14553   {
14554     goto fail;
14555   }
14556 
14557   *status = aci_test_stop(cp0->TX_RX /* 1 */);
14558 fail:
14559   buffer_out[0] = 0x04;
14560   buffer_out[1] = 0x0E;
14561   buffer_out[2] = output_size + 3;
14562   buffer_out[3] = 0x01;
14563   buffer_out[4] = 0x03;
14564   buffer_out[5] = 0xfe;
14565   return (output_size + 6);
14566 }
14567 #endif
14568 
14569 #if (!defined(ACI_TEST_REPORT_ENABLED) || ACI_TEST_REPORT_ENABLED) && !ACI_TEST_REPORT_FORCE_DISABLED
14570 /* tBleStatus aci_test_report(uint32_t *TX_Packets,
14571                            uint32_t *RX_Packets,
14572                            uint16_t *RX_Data_Length,
14573                            uint32_t *RX_Sequence_Errors);
14574  */
14575 /* Command len: 0 */
14576 /* Response len: 1 + 4 + 4 + 2 + 4 */
aci_test_report_process(uint8_t * buffer_in,uint16_t buffer_in_length,uint8_t * buffer_out,uint16_t buffer_out_max_length)14577 uint16_t aci_test_report_process(uint8_t *buffer_in, uint16_t buffer_in_length, uint8_t *buffer_out, uint16_t buffer_out_max_length)
14578 {
14579 
14580   int output_size = 1 + 4 + 4 + 2 + 4;
14581   /* Output params */
14582   aci_test_report_rp0 *rp0 = (aci_test_report_rp0 *) (buffer_out + 6);
14583   uint32_t TX_Packets = 0;
14584   uint32_t RX_Packets = 0;
14585   uint16_t RX_Data_Length = 0;
14586   uint32_t RX_Sequence_Errors = 0;
14587 
14588   rp0->Status = BLE_ERROR_INVALID_HCI_CMD_PARAMS;
14589   if (buffer_out_max_length < (1 + 4 + 4 + 2 + 4 + 6)) { return 0; }
14590   if(buffer_in_length != 0)
14591   {
14592     goto fail;
14593   }
14594 
14595   rp0->Status = aci_test_report(&TX_Packets,
14596                                 &RX_Packets,
14597                                 &RX_Data_Length,
14598                                 &RX_Sequence_Errors);
14599 fail:
14600   rp0->TX_Packets = TX_Packets;
14601   rp0->RX_Packets = RX_Packets;
14602   rp0->RX_Data_Length = RX_Data_Length;
14603   rp0->RX_Sequence_Errors = RX_Sequence_Errors;
14604   buffer_out[0] = 0x04;
14605   buffer_out[1] = 0x0E;
14606   buffer_out[2] = output_size + 3;
14607   buffer_out[3] = 0x01;
14608   buffer_out[4] = 0x04;
14609   buffer_out[5] = 0xfe;
14610   return (output_size + 6);
14611 }
14612 #endif
14613 
14614 #endif /* if BLESTACK_CONTROLLER_ONLY==0 */
14615 /* aci_blue_initialized_event */
14616 /* Event len: 1 */
14617 /**
14618  * @brief This event inform the application that the network coprocessor has
14619  *        been reset. If the reason code is a system crash, a following event
14620  *        @ref aci_blue_crash_info_event will provide more information regarding
14621  *        the system crash details.
14622  * @param Reason_Code Reason code describing why device was reset and in which
14623  *        mode is operating (Updater or Normal mode)
14624  *        Values:
14625  *        - 0x01: Firmware started properly
14626  *        - 0x02: Updater mode entered with ACI command
14627  *        - 0x03: Updater mode entered due to bad Blue Flag
14628  *        - 0x04: Updater mode entered due to boot pin
14629  *        - 0x05: System reset due to watchdog
14630  *        - 0x06: System reset due to lockup
14631  *        - 0x07: System reset due to brownout reset
14632  *        - 0x08: System reset due to crash
14633  *        - 0x09: System reset due to ECC error
14634  * @retval None
14635  */
aci_blue_initialized_event(uint8_t Reason_Code)14636 void aci_blue_initialized_event(uint8_t Reason_Code)
14637 {
14638   uint8_t buffer_out[532];
14639   /* Output params */
14640   aci_blue_initialized_event_rp0 *rp0 = (aci_blue_initialized_event_rp0 *) (buffer_out + 6);
14641   rp0->Reason_Code = Reason_Code;
14642   buffer_out[0] = 0x82;
14643   buffer_out[1] = 0xFF;
14644   HOST_TO_LE_16(buffer_out+2,1 + 2);
14645   buffer_out[4] = 0x01;
14646   buffer_out[5] = 0x00;
14647   send_event(buffer_out, 1 + 6, 8);
14648 }
14649 
aci_blue_initialized_legacy_event(uint8_t Reason_Code)14650 void aci_blue_initialized_legacy_event(uint8_t Reason_Code)
14651 {
14652   uint8_t buffer_out[258];
14653   /* Output params */
14654   aci_blue_initialized_event_rp0 *rp0 = (aci_blue_initialized_event_rp0 *) (buffer_out + 5);
14655   rp0->Reason_Code = Reason_Code;
14656   buffer_out[0] = 0x04;
14657   buffer_out[1] = 0xFF;
14658   buffer_out[2] = 1 + 2;
14659   buffer_out[3] = 0x01;
14660   buffer_out[4] = 0x00;
14661   send_event(buffer_out, 1 + 5, 8);
14662 }
14663 
14664 /* aci_blue_crash_info_event */
14665 /* Event len: 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + rp0->Debug_Data_Length * (sizeof(uint8_t)) */
14666 /**
14667  * @brief This event is given to the application after the @ref
14668  *        aci_blue_initialized_event when a system crash is detected. This
14669  *        events returns system crash information for debugging purposes.
14670  *        Information reported are useful to understand the root cause of the
14671  *        crash.
14672  * @param Crash_Type Crash type
14673  *        Values:
14674  *        - 0x00: Assert failed
14675  *        - 0x01: NMI fault
14676  *        - 0x02: Hard fault
14677  * @param SP Stack pointer
14678  * @param R0 Register R0
14679  * @param R1 Register R1
14680  * @param R2 Register R2
14681  * @param R3 Register R3
14682  * @param R12 Register R12
14683  * @param LR Link register
14684  * @param PC Program counter where crash occurred
14685  * @param xPSR xPSR register
14686  * @param Debug_Data_Length Length of Debug_Data field
14687  * @param Debug_Data Debug data
14688  * @retval None
14689  */
aci_blue_crash_info_event(uint8_t Crash_Type,uint32_t SP,uint32_t R0,uint32_t R1,uint32_t R2,uint32_t R3,uint32_t R12,uint32_t LR,uint32_t PC,uint32_t xPSR,uint8_t Debug_Data_Length,uint8_t Debug_Data[])14690 void aci_blue_crash_info_event(uint8_t Crash_Type,
14691                                uint32_t SP,
14692                                uint32_t R0,
14693                                uint32_t R1,
14694                                uint32_t R2,
14695                                uint32_t R3,
14696                                uint32_t R12,
14697                                uint32_t LR,
14698                                uint32_t PC,
14699                                uint32_t xPSR,
14700                                uint8_t Debug_Data_Length,
14701                                uint8_t Debug_Data[])
14702 {
14703   uint8_t buffer_out[258];
14704   /* Output params */
14705   aci_blue_crash_info_event_rp0 *rp0 = (aci_blue_crash_info_event_rp0 *) (buffer_out + 5);
14706   rp0->Crash_Type = Crash_Type;
14707   rp0->SP = SP;
14708   rp0->R0 = R0;
14709   rp0->R1 = R1;
14710   rp0->R2 = R2;
14711   rp0->R3 = R3;
14712   rp0->R12 = R12;
14713   rp0->LR = LR;
14714   rp0->PC = PC;
14715   rp0->xPSR = xPSR;
14716   rp0->Debug_Data_Length = Debug_Data_Length;
14717   Osal_MemCpy((void *) rp0->Debug_Data,(const void *) Debug_Data, Debug_Data_Length);
14718   buffer_out[0] = 0x04;
14719   buffer_out[1] = 0xFF;
14720   buffer_out[2] = 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + Debug_Data_Length + 2;
14721   buffer_out[3] = 0x03;
14722   buffer_out[4] = 0x00;
14723   send_event(buffer_out, 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + Debug_Data_Length + 5, -1);
14724 }
14725 
14726 /* aci_hal_le_test_end_event */
14727 /* Event len: 2 */
14728 /**
14729  * @brief This event is generated when the amount of transmitted test packets
14730  *        specified with aci_hal_transmitter_test_packets() has been reached.
14731  * @param Number_Of_Packets The number of test packets actually transmitted.
14732  * @retval None
14733  */
aci_hal_le_test_end_event(uint16_t Number_Of_Packets)14734 void aci_hal_le_test_end_event(uint16_t Number_Of_Packets)
14735 {
14736   uint8_t buffer_out[532];
14737   /* Output params */
14738   aci_hal_le_test_end_event_rp0 *rp0 = (aci_hal_le_test_end_event_rp0 *) (buffer_out + 6);
14739   rp0->Number_Of_Packets = Number_Of_Packets;
14740   buffer_out[0] = 0x82;
14741   buffer_out[1] = 0xFF;
14742   HOST_TO_LE_16(buffer_out+2,2 + 2);
14743   buffer_out[4] = 0x07;
14744   buffer_out[5] = 0x00;
14745   send_event(buffer_out, 2 + 6, -1);
14746 }
14747 
14748 /* aci_l2cap_cos_sdu_data_rx_nwk_event */
14749 /* Event len: 2 + 2 + 2 + 2 + rp0->SDU_Length * (sizeof(uint8_t)) */
14750 /**
14751  * @brief Event raised when an SDU has been received.
14752  * @param Connection_Handle Handle identifying the connection.
14753  * @param CID The local channel endpoint that identifies the L2CAP channel.
14754  * @param RX_Credit_Balance Remaining number of K-frames that local L2CAP layer
14755  *        entity can currently receive from the peer. If automatic management of
14756  *        credits is enabled, this number is automatically changed after the SDU
14757  *        is extracted.
14758  * @param SDU_Length
14759  * @param SDU_Data
14760  * @retval None
14761  */
aci_l2cap_cos_sdu_data_rx_nwk_event(uint16_t Connection_Handle,uint16_t CID,uint16_t RX_Credit_Balance,uint16_t SDU_Length,uint8_t SDU_Data[])14762 void aci_l2cap_cos_sdu_data_rx_nwk_event(uint16_t Connection_Handle,
14763                                          uint16_t CID,
14764                                          uint16_t RX_Credit_Balance,
14765                                          uint16_t SDU_Length,
14766                                          uint8_t SDU_Data[])
14767 {
14768   uint8_t buffer_out[6+ sizeof(aci_l2cap_cos_sdu_data_rx_nwk_event_rp0)-sizeof(((aci_l2cap_cos_sdu_data_rx_nwk_event_rp0*)0)->SDU_Data)];
14769   /* Output params */
14770   aci_l2cap_cos_sdu_data_rx_nwk_event_rp0 *rp0 = (aci_l2cap_cos_sdu_data_rx_nwk_event_rp0 *) (buffer_out + 6);
14771   rp0->Connection_Handle = Connection_Handle;
14772   rp0->CID = CID;
14773   rp0->RX_Credit_Balance = RX_Credit_Balance;
14774   rp0->SDU_Length = SDU_Length;
14775   buffer_out[0] = 0x82;
14776   buffer_out[1] = 0xFF;
14777   HOST_TO_LE_16(buffer_out+2,2 + 2 + 2 + 2 + SDU_Length + 2);
14778   buffer_out[4] = 0x07;
14779   buffer_out[5] = 0x08;
14780   send_event_2buffers(buffer_out, 6 + sizeof(aci_l2cap_cos_sdu_data_rx_nwk_event_rp0)-sizeof(((aci_l2cap_cos_sdu_data_rx_nwk_event_rp0*)0)->SDU_Data), SDU_Data, SDU_Length, -1);
14781 }
14782 
14783 /* aci_gatt_srv_authorize_nwk_event */
14784 /* Event len: 2 + 2 + 2 + 1 + 2 + 1 + rp0->Data_Length * (sizeof(uint8_t)) */
14785 /**
14786  * @brief This event is generated if authorization is needed to access the
14787  *        attribute value. aci_gatt_srv_authorize_resp_nwk command must be sent
14788  *        in response to this event.
14789  * @param Conn_Handle Connection handle to be used to identify the connection
14790  *        with the peer device.
14791  *        Values:
14792  *        - 0x0000 ... 0x0EFF
14793  * @param CID If equal to 0x0004, the event is related to an unenhanced ATT
14794  *        bearer. Otherwise, the value is the local endpoint identifying the
14795  *        enhanced ATT bearer.
14796  * @param Attr_Handle
14797  * @param Operation_Type
14798  *        Values:
14799  *        - 0x00: Read
14800  *        - 0x10: Write Request
14801  *        - 0x11: Write Command or Signed Write Command
14802  *        - 0x12: Prepare Write Request
14803  * @param Attr_Val_Offset Offset from which the value needs to be read or write
14804  *        Values:
14805  *        - 0 ... 511
14806  * @param Data_Length Length of Data field
14807  * @param Data The data that the client has requested to write
14808  * @retval None
14809  */
aci_gatt_srv_authorize_nwk_event(uint16_t Conn_Handle,uint16_t CID,uint16_t Attr_Handle,uint8_t Operation_Type,uint16_t Attr_Val_Offset,uint8_t Data_Length,uint8_t Data[])14810 void aci_gatt_srv_authorize_nwk_event(uint16_t Conn_Handle,
14811                                       uint16_t CID,
14812                                       uint16_t Attr_Handle,
14813                                       uint8_t Operation_Type,
14814                                       uint16_t Attr_Val_Offset,
14815                                       uint8_t Data_Length,
14816                                       uint8_t Data[])
14817 {
14818   uint8_t buffer_out[532];
14819   /* Output params */
14820   aci_gatt_srv_authorize_nwk_event_rp0 *rp0 = (aci_gatt_srv_authorize_nwk_event_rp0 *) (buffer_out + 6);
14821   rp0->Conn_Handle = Conn_Handle;
14822   rp0->CID = CID;
14823   rp0->Attr_Handle = Attr_Handle;
14824   rp0->Operation_Type = Operation_Type;
14825   rp0->Attr_Val_Offset = Attr_Val_Offset;
14826   rp0->Data_Length = Data_Length;
14827   Osal_MemCpy((void *) rp0->Data,(const void *) Data, Data_Length);
14828   buffer_out[0] = 0x82;
14829   buffer_out[1] = 0xFF;
14830   HOST_TO_LE_16(buffer_out+2,2 + 2 + 2 + 1 + 2 + 1 + Data_Length + 2);
14831   buffer_out[4] = 0x1d;
14832   buffer_out[5] = 0x0c;
14833   send_event(buffer_out, 2 + 2 + 2 + 1 + 2 + 1 + Data_Length + 6, -1);
14834 }
14835 
14836 /* aci_gatt_srv_attribute_modified_event */
14837 /* Event len: 2 + 2 + 2 + 2 + rp0->Attr_Data_Length * (sizeof(uint8_t)) */
14838 /**
14839  * @brief This event is generated to the application by the GATT server when a
14840  *        client modifies any attribute on the server, as consequence of one of
14841  *        the following GATT procedures: - write without response - signed write
14842  *        without response - write characteristic value - write long
14843  *        characteristic value - reliable write.
14844  * @param Connection_Handle The connection handle which modified the attribute.
14845  * @param CID If equal to 0x0004, the event is related to an unenhanced ATT
14846  *        bearer. Otherwise, the value is the local endpoint identifying the
14847  *        enhanced ATT bearer.
14848  * @param Attr_Handle Handle of the attribute that was modified.
14849  * @param Attr_Data_Length Length of Attr_Data in octets
14850  * @param Attr_Data A concatenation of Handle, Length and Values for each of the
14851  *        attributes being notified.
14852  * @retval None
14853  */
aci_gatt_srv_attribute_modified_event(uint16_t Connection_Handle,uint16_t CID,uint16_t Attr_Handle,uint16_t Attr_Data_Length,uint8_t Attr_Data[])14854 void aci_gatt_srv_attribute_modified_event(uint16_t Connection_Handle,
14855                                            uint16_t CID,
14856                                            uint16_t Attr_Handle,
14857                                            uint16_t Attr_Data_Length,
14858                                            uint8_t Attr_Data[])
14859 {
14860   uint8_t buffer_out[532];
14861 
14862   /* Output params */
14863   aci_gatt_srv_attribute_modified_event_rp0 *rp0 = (aci_gatt_srv_attribute_modified_event_rp0 *) (buffer_out + 6);
14864   rp0->Connection_Handle = Connection_Handle;
14865   rp0->CID = CID;
14866   rp0->Attr_Handle = Attr_Handle;
14867   rp0->Attr_Data_Length = Attr_Data_Length;
14868   Osal_MemCpy((void *) rp0->Attr_Data,(const void *) Attr_Data, Attr_Data_Length);
14869   buffer_out[0] = 0x82;
14870   buffer_out[1] = 0xFF;
14871   HOST_TO_LE_16(buffer_out+2,2 + 2 + 2 + 2 + Attr_Data_Length + 2);
14872   buffer_out[4] = 0x01;
14873   buffer_out[5] = 0x0c;
14874   send_event(buffer_out, 2 + 2 + 2 + 2 + Attr_Data_Length + 6, 20);
14875 }
14876