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