1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * @file    dtm_cmd_stack_en.h
5   * @author  AMS - RF Application team
6   * @version V1.0.0
7   * @date    19 July 2022
8   * @brief   List of macros used to configure the DTM ACI/HCI command table
9   *          with modularity
10   ******************************************************************************
11   * @attention
12   *
13   * Copyright (c) 2024 STMicroelectronics.
14   * All rights reserved.
15   *
16   * This software is licensed under terms that can be found in the LICENSE file
17   * in the root directory of this software component.
18   * If no LICENSE file comes with this software, it is provided AS-IS.
19   *
20   ******************************************************************************
21   */
22 /* USER CODE END Header */
23 
24 #ifndef _DTM_CMD_STACK_EN_H_
25 #define _DTM_CMD_STACK_EN_H_
26 
27 #include "ble_stack_user_cfg.h"
28 
29 /* Command support enabling macros */
30 #define ACI_GAP_CLEAR_ADVERTISING_SETS_ENABLED\
31     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
32 #define ACI_GAP_CLEAR_SECURITY_DB_ENABLED\
33     (CONNECTION_ENABLED)
34 #define ACI_GAP_CREATE_CONNECTION_ENABLED\
35     (CONTROLLER_SCAN_ENABLED &\
36      CONNECTION_ENABLED)
37 #define ACI_GAP_CREATE_PERIODIC_ADVERTISING_CONNECTION_ENABLED\
38     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
39      CONTROLLER_PERIODIC_ADV_ENABLED &\
40      CONNECTION_ENABLED &\
41      CONTROLLER_PERIODIC_ADV_WR_ENABLED)
42 #define ACI_GAP_DISCOVER_NAME_ENABLED\
43     (CONTROLLER_SCAN_ENABLED &\
44      CONNECTION_ENABLED)
45 #define ACI_GAP_GET_BONDED_DEVICES_ENABLED\
46     (CONNECTION_ENABLED)
47 #define ACI_GAP_GET_OOB_DATA_ENABLED\
48     (CONNECTION_ENABLED)
49 #define ACI_GAP_GET_SECURITY_LEVEL_ENABLED\
50     (CONNECTION_ENABLED)
51 #define ACI_GAP_IS_DEVICE_BONDED_ENABLED\
52     (CONNECTION_ENABLED)
53 #define ACI_GAP_NUMERIC_COMPARISON_VALUE_CONFIRM_YESNO_ENABLED\
54     (SECURE_CONNECTIONS_ENABLED &\
55      CONNECTION_ENABLED)
56 #define ACI_GAP_PAIRING_RESP_ENABLED\
57     (CONNECTION_ENABLED)
58 #define ACI_GAP_PASSKEY_INPUT_ENABLED\
59     (SECURE_CONNECTIONS_ENABLED &\
60      CONNECTION_ENABLED)
61 #define ACI_GAP_PASSKEY_RESP_ENABLED\
62     (CONNECTION_ENABLED)
63 #define ACI_GAP_REMOVE_ADVERTISING_SET_ENABLED\
64     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
65 #define ACI_GAP_REMOVE_BONDED_DEVICE_ENABLED\
66     (CONNECTION_ENABLED)
67 #define ACI_GAP_SET_CONNECTION_CONFIGURATION_ENABLED\
68     (CONTROLLER_SCAN_ENABLED &\
69      CONNECTION_ENABLED)
70 #define ACI_GAP_SET_IO_CAPABILITY_ENABLED\
71     (CONNECTION_ENABLED)
72 #define ACI_GAP_SET_OOB_DATA_ENABLED\
73     (CONNECTION_ENABLED)
74 #define ACI_GAP_SET_SCAN_CONFIGURATION_ENABLED\
75     (CONTROLLER_SCAN_ENABLED)
76 #define ACI_GAP_SET_SECURITY_ENABLED\
77     (CONNECTION_ENABLED)
78 #define ACI_GAP_SET_SECURITY_REQUIREMENTS_ENABLED\
79     (CONNECTION_ENABLED)
80 #define ACI_GAP_START_CONNECTION_UPDATE_ENABLED\
81     (\
82      (CONNECTION_ENABLED == 1)\
83      &&\
84      (\
85       (CONTROLLER_SCAN_ENABLED == 1)\
86       ||\
87       (\
88        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
89        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
90        (CONNECTION_ENABLED == 1) &&\
91        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
92       )\
93      )\
94     )
95 #define ACI_GAP_START_PROCEDURE_ENABLED\
96     (CONTROLLER_SCAN_ENABLED)
97 #define ACI_GAP_TERMINATE_ENABLED\
98     (CONNECTION_ENABLED)
99 #define ACI_GAP_TERMINATE_PROC_ENABLED\
100     (CONTROLLER_SCAN_ENABLED)
101 #define ACI_GATT_CLT_CONFIRM_INDICATION_ENABLED\
102     (CONNECTION_ENABLED)
103 #define ACI_GATT_CLT_DISC_ALL_CHAR_DESC_ENABLED\
104     (CONNECTION_ENABLED)
105 #define ACI_GATT_CLT_DISC_ALL_CHAR_OF_SERVICE_ENABLED\
106     (CONNECTION_ENABLED)
107 #define ACI_GATT_CLT_DISC_ALL_PRIMARY_SERVICES_ENABLED\
108     (CONNECTION_ENABLED)
109 #define ACI_GATT_CLT_DISC_CHAR_BY_UUID_ENABLED\
110     (CONNECTION_ENABLED)
111 #define ACI_GATT_CLT_DISC_PRIMARY_SERVICE_BY_UUID_ENABLED\
112     (CONNECTION_ENABLED)
113 #define ACI_GATT_CLT_EXCHANGE_CONFIG_ENABLED\
114     (CONNECTION_ENABLED)
115 #define ACI_GATT_CLT_EXECUTE_WRITE_REQ_ENABLED\
116     (CONNECTION_ENABLED)
117 #define ACI_GATT_CLT_FIND_INCLUDED_SERVICES_ENABLED\
118     (CONNECTION_ENABLED)
119 #define ACI_GATT_CLT_PREPARE_WRITE_REQ_ENABLED\
120     (CONNECTION_ENABLED)
121 #define ACI_GATT_CLT_READ_ENABLED\
122     (CONNECTION_ENABLED)
123 #define ACI_GATT_CLT_READ_LONG_ENABLED\
124     (CONNECTION_ENABLED)
125 #define ACI_GATT_CLT_READ_MULTIPLE_CHAR_VALUE_ENABLED\
126     (CONNECTION_ENABLED)
127 #define ACI_GATT_CLT_READ_MULTIPLE_VAR_LEN_CHAR_VALUE_ENABLED\
128     (CONNECTION_ENABLED)
129 #define ACI_GATT_CLT_READ_USING_CHAR_UUID_ENABLED\
130     (CONNECTION_ENABLED)
131 #define ACI_GATT_CLT_SIGNED_WRITE_WITHOUT_RESP_ENABLED\
132     (CONNECTION_ENABLED)
133 #define ACI_GATT_CLT_WRITE_ENABLED\
134     (CONNECTION_ENABLED)
135 #define ACI_GATT_CLT_WRITE_CHAR_RELIABLE_ENABLED\
136     (CONNECTION_ENABLED)
137 #define ACI_GATT_CLT_WRITE_LONG_ENABLED\
138     (CONNECTION_ENABLED)
139 #define ACI_GATT_CLT_WRITE_WITHOUT_RESP_ENABLED\
140     (CONNECTION_ENABLED)
141 #define ACI_GATT_SET_EVENT_MASK_ENABLED\
142     (CONNECTION_ENABLED)
143 #define ACI_GATT_SRV_ADD_CHAR_ENABLED\
144     (CONNECTION_ENABLED)
145 #define ACI_GATT_SRV_ADD_CHAR_DESC_ENABLED\
146     (CONNECTION_ENABLED)
147 #define ACI_GATT_SRV_ADD_SERVICE_ENABLED\
148     (CONNECTION_ENABLED)
149 #define ACI_GATT_SRV_GET_CHAR_DECL_HANDLE_ENABLED\
150     (CONNECTION_ENABLED)
151 #define ACI_GATT_SRV_GET_DESCRIPTOR_HANDLE_ENABLED\
152     (CONNECTION_ENABLED)
153 #define ACI_GATT_SRV_GET_INCLUDE_SERVICE_HANDLE_ENABLED\
154     (CONNECTION_ENABLED)
155 #define ACI_GATT_SRV_GET_SERVICE_HANDLE_ENABLED\
156     (CONNECTION_ENABLED)
157 #define ACI_GATT_SRV_INCLUDE_SERVICE_ENABLED\
158     (CONNECTION_ENABLED)
159 #define ACI_GATT_SRV_MULTI_NOTIFY_ENABLED\
160     (CONNECTION_ENABLED)
161 #define ACI_GATT_SRV_NOTIFY_ENABLED\
162     (CONNECTION_ENABLED)
163 #define ACI_GATT_SRV_READ_HANDLE_VALUE_ENABLED\
164     (CONNECTION_ENABLED)
165 #define ACI_GATT_SRV_READ_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED\
166     (CONNECTION_ENABLED)
167 #define ACI_GATT_SRV_RESP_ENABLED\
168     (CONNECTION_ENABLED)
169 #define ACI_GATT_SRV_RM_CHAR_ENABLED\
170     (CONNECTION_ENABLED)
171 #define ACI_GATT_SRV_RM_INCLUDE_SERVICE_ENABLED\
172     (CONNECTION_ENABLED)
173 #define ACI_GATT_SRV_RM_SERVICE_ENABLED\
174     (CONNECTION_ENABLED)
175 #define ACI_GATT_SRV_WRITE_MULTIPLE_INSTANCE_HANDLE_VALUE_ENABLED\
176     (CONNECTION_ENABLED)
177 #define ACI_HAL_GET_ANCHOR_POINT_ENABLED\
178     (CONNECTION_ENABLED)
179 #define ACI_HAL_PERIPHERAL_LATENCY_ENABLE_ENABLED\
180     (CONNECTION_ENABLED)
181 #define ACI_HAL_SET_LE_POWER_CONTROL_ENABLED\
182     (CONTROLLER_POWER_CONTROL_ENABLED &\
183      CONNECTION_ENABLED)
184 #define ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_REQ_ENABLED\
185     (CONNECTION_ENABLED)
186 #define ACI_L2CAP_CONNECTION_PARAMETER_UPDATE_RESP_ENABLED\
187     (\
188      (CONNECTION_ENABLED == 1)\
189      &&\
190      (\
191       (CONTROLLER_SCAN_ENABLED == 1)\
192       ||\
193       (\
194        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
195        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
196        (CONNECTION_ENABLED == 1) &&\
197        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
198       )\
199      )\
200     )
201 #define ACI_L2CAP_COS_CONNECTION_REQ_ENABLED\
202     (L2CAP_COS_ENABLED &\
203      CONNECTION_ENABLED)
204 #define ACI_L2CAP_COS_CONNECTION_RESP_ENABLED\
205     (L2CAP_COS_ENABLED &\
206      CONNECTION_ENABLED)
207 #define ACI_L2CAP_COS_DISCONNECT_REQ_ENABLED\
208     (L2CAP_COS_ENABLED &\
209      CONNECTION_ENABLED)
210 #define ACI_L2CAP_COS_FLOW_CONTROL_CREDITS_IND_ENABLED\
211     (L2CAP_COS_ENABLED &\
212      CONNECTION_ENABLED)
213 #define ACI_L2CAP_COS_RECONFIGURE_REQ_ENABLED\
214     (L2CAP_COS_ENABLED &\
215      CONNECTION_ENABLED)
216 #define ACI_L2CAP_COS_RECONFIGURE_RESP_ENABLED\
217     (L2CAP_COS_ENABLED &\
218      CONNECTION_ENABLED)
219 #define ACI_L2CAP_COS_SDU_DATA_EXTRACT_ENABLED\
220     (L2CAP_COS_ENABLED &\
221      CONNECTION_ENABLED)
222 #define ACI_L2CAP_COS_SDU_DATA_TRANSMIT_ENABLED\
223     (L2CAP_COS_ENABLED &\
224      CONNECTION_ENABLED)
225 #define HCI_DISCONNECT_ENABLED\
226     (CONNECTION_ENABLED)
227 #define HCI_LE_ACCEPT_CIS_REQUEST_ENABLED\
228     (CONNECTION_ENABLED &\
229      CONTROLLER_CIS_ENABLED &\
230      CONTROLLER_ISO_ENABLED)
231 #define HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST_ENABLED\
232     (CONTROLLER_SCAN_ENABLED &\
233      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
234      CONTROLLER_PERIODIC_ADV_ENABLED)
235 #define HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST_ENABLED\
236     (CONTROLLER_PRIVACY_ENABLED)
237 #define HCI_LE_BIG_CREATE_SYNC_ENABLED\
238     (CONTROLLER_SCAN_ENABLED &\
239      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
240      CONTROLLER_PERIODIC_ADV_ENABLED &\
241      CONTROLLER_BIS_ENABLED &\
242      CONTROLLER_ISO_ENABLED)
243 #define HCI_LE_BIG_TERMINATE_SYNC_ENABLED\
244     (CONTROLLER_SCAN_ENABLED &\
245      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
246      CONTROLLER_PERIODIC_ADV_ENABLED &\
247      CONTROLLER_BIS_ENABLED &\
248      CONTROLLER_ISO_ENABLED)
249 #define HCI_LE_CLEAR_ADVERTISING_SETS_ENABLED\
250     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
251 #define HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST_ENABLED\
252     (CONTROLLER_SCAN_ENABLED &\
253      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
254      CONTROLLER_PERIODIC_ADV_ENABLED)
255 #define HCI_LE_CLEAR_RESOLVING_LIST_ENABLED\
256     (CONTROLLER_PRIVACY_ENABLED)
257 #define HCI_LE_CONNECTION_CTE_REQUEST_ENABLE_ENABLED\
258     (CONTROLLER_CTE_ENABLED &\
259      CONNECTION_ENABLED)
260 #define HCI_LE_CONNECTION_CTE_RESPONSE_ENABLE_ENABLED\
261     (CONTROLLER_CTE_ENABLED &\
262      CONNECTION_ENABLED)
263 #define HCI_LE_CONNECTION_UPDATE_ENABLED\
264     (CONNECTION_ENABLED)
265 #define HCI_LE_CREATE_BIG_ENABLED\
266     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
267      CONTROLLER_PERIODIC_ADV_ENABLED &\
268      CONTROLLER_BIS_ENABLED &\
269      CONTROLLER_ISO_ENABLED)
270 #define HCI_LE_CREATE_BIG_TEST_ENABLED\
271     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
272      CONTROLLER_PERIODIC_ADV_ENABLED &\
273      CONTROLLER_BIS_ENABLED &\
274      CONTROLLER_ISO_ENABLED)
275 #define HCI_LE_CREATE_CIS_ENABLED\
276     (\
277      (CONNECTION_ENABLED == 1)\
278      &&\
279      (\
280       (CONNECTION_ENABLED == 1) &&\
281       (CONTROLLER_CIS_ENABLED == 1) &&\
282       (CONTROLLER_ISO_ENABLED == 1)\
283      )\
284      &&\
285      (\
286       (CONTROLLER_SCAN_ENABLED == 1)\
287       ||\
288       (\
289        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
290        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
291        (CONNECTION_ENABLED == 1) &&\
292        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
293       )\
294      )\
295     )
296 #define HCI_LE_CREATE_CONNECTION_ENABLED\
297     (CONTROLLER_SCAN_ENABLED &\
298      CONNECTION_ENABLED)
299 #define HCI_LE_CREATE_CONNECTION_CANCEL_ENABLED\
300     (CONNECTION_ENABLED)
301 #define HCI_LE_ENABLE_ENCRYPTION_ENABLED\
302     (\
303      (CONNECTION_ENABLED == 1)\
304      &&\
305      (\
306       (CONTROLLER_SCAN_ENABLED == 1)\
307       ||\
308       (\
309        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
310        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
311        (CONNECTION_ENABLED == 1) &&\
312        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
313       )\
314      )\
315     )
316 #define HCI_LE_ENHANCED_READ_TRANSMIT_POWER_LEVEL_ENABLED\
317     (CONTROLLER_POWER_CONTROL_ENABLED &\
318      CONNECTION_ENABLED)
319 #define HCI_LE_EXTENDED_CREATE_CONNECTION_ENABLED\
320     (CONTROLLER_SCAN_ENABLED &\
321      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
322      CONNECTION_ENABLED)
323 #define HCI_LE_EXTENDED_CREATE_CONNECTION_V2_ENABLED\
324     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
325      CONTROLLER_PERIODIC_ADV_ENABLED &\
326      CONNECTION_ENABLED &\
327      CONTROLLER_PERIODIC_ADV_WR_ENABLED)
328 #define HCI_LE_GENERATE_DHKEY_ENABLED\
329     (CONNECTION_ENABLED)
330 #define HCI_LE_ISO_READ_TEST_COUNTERS_ENABLED\
331     (CONTROLLER_ISO_ENABLED)
332 #define HCI_LE_ISO_RECEIVE_TEST_ENABLED\
333     (CONTROLLER_ISO_ENABLED)
334 #define HCI_LE_ISO_TEST_END_ENABLED\
335     (CONTROLLER_ISO_ENABLED)
336 #define HCI_LE_ISO_TRANSMIT_TEST_ENABLED\
337     (CONTROLLER_ISO_ENABLED)
338 #define HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY_ENABLED\
339     (CONNECTION_ENABLED)
340 #define HCI_LE_LONG_TERM_KEY_REQUEST_REPLY_ENABLED\
341     (CONNECTION_ENABLED)
342 #define HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_ENABLED\
343     (CONTROLLER_SCAN_ENABLED &\
344      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
345      CONTROLLER_PERIODIC_ADV_ENABLED)
346 #define HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL_ENABLED\
347     (CONTROLLER_SCAN_ENABLED &\
348      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
349      CONTROLLER_PERIODIC_ADV_ENABLED)
350 #define HCI_LE_PERIODIC_ADVERTISING_SET_INFO_TRANSFER_ENABLED\
351     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
352      CONTROLLER_PERIODIC_ADV_ENABLED &\
353      CONNECTION_ENABLED)
354 #define HCI_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_ENABLED\
355     (CONTROLLER_SCAN_ENABLED &\
356      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
357      CONTROLLER_PERIODIC_ADV_ENABLED &\
358      CONNECTION_ENABLED)
359 #define HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC_ENABLED\
360     (CONTROLLER_SCAN_ENABLED &\
361      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
362      CONTROLLER_PERIODIC_ADV_ENABLED)
363 #define HCI_LE_READ_ANTENNA_INFORMATION_ENABLED\
364     (CONTROLLER_CTE_ENABLED)
365 #define HCI_LE_READ_BUFFER_SIZE_V2_ENABLED\
366     (CONTROLLER_ISO_ENABLED)
367 #define HCI_LE_READ_CHANNEL_MAP_ENABLED\
368     (CONNECTION_ENABLED)
369 #define HCI_LE_READ_ISO_LINK_QUALITY_ENABLED\
370     (CONTROLLER_ISO_ENABLED)
371 #define HCI_LE_READ_ISO_TX_SYNC_ENABLED\
372     (CONTROLLER_ISO_ENABLED)
373 #define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY_ENABLED\
374     (CONNECTION_ENABLED)
375 #define HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS_ENABLED\
376     (CONTROLLER_PRIVACY_ENABLED)
377 #define HCI_LE_READ_MAXIMUM_DATA_LENGTH_ENABLED\
378     (CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED &\
379      CONNECTION_ENABLED)
380 #define HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_ENABLED\
381     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
382 #define HCI_LE_READ_PEER_RESOLVABLE_ADDRESS_ENABLED\
383     (CONTROLLER_PRIVACY_ENABLED)
384 #define HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE_ENABLED\
385     (CONTROLLER_SCAN_ENABLED &\
386      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
387      CONTROLLER_PERIODIC_ADV_ENABLED)
388 #define HCI_LE_READ_PHY_ENABLED\
389     (CONTROLLER_2M_CODED_PHY_ENABLED &\
390      CONNECTION_ENABLED)
391 #define HCI_LE_READ_REMOTE_FEATURES_ENABLED\
392     (CONNECTION_ENABLED)
393 #define HCI_LE_READ_REMOTE_TRANSMIT_POWER_LEVEL_ENABLED\
394     (CONTROLLER_POWER_CONTROL_ENABLED &\
395      CONNECTION_ENABLED)
396 #define HCI_LE_READ_RESOLVING_LIST_SIZE_ENABLED\
397     (CONTROLLER_PRIVACY_ENABLED)
398 #define HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED\
399     (CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED &\
400      CONNECTION_ENABLED)
401 #define HCI_LE_RECEIVER_TEST_V2_ENABLED\
402     (CONTROLLER_2M_CODED_PHY_ENABLED)
403 #define HCI_LE_RECEIVER_TEST_V3_ENABLED\
404     (CONTROLLER_CTE_ENABLED)
405 #define HCI_LE_REJECT_CIS_REQUEST_ENABLED\
406     (CONNECTION_ENABLED &\
407      CONTROLLER_CIS_ENABLED &\
408      CONTROLLER_ISO_ENABLED)
409 #define HCI_LE_REMOVE_ADVERTISING_SET_ENABLED\
410     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
411 #define HCI_LE_REMOVE_CIG_ENABLED\
412     (\
413      (CONNECTION_ENABLED == 1)\
414      &&\
415      (\
416       (CONNECTION_ENABLED == 1) &&\
417       (CONTROLLER_CIS_ENABLED == 1) &&\
418       (CONTROLLER_ISO_ENABLED == 1)\
419      )\
420      &&\
421      (\
422       (CONTROLLER_SCAN_ENABLED == 1)\
423       ||\
424       (\
425        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
426        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
427        (CONNECTION_ENABLED == 1) &&\
428        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
429       )\
430      )\
431     )
432 #define HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST_ENABLED\
433     (CONTROLLER_SCAN_ENABLED &\
434      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
435      CONTROLLER_PERIODIC_ADV_ENABLED)
436 #define HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST_ENABLED\
437     (CONTROLLER_PRIVACY_ENABLED)
438 #define HCI_LE_REMOVE_ISO_DATA_PATH_ENABLED\
439     (CONTROLLER_ISO_ENABLED)
440 #define HCI_LE_REQUEST_PEER_SCA_ENABLED\
441     (CONNECTION_ENABLED &\
442      CONTROLLER_CIS_ENABLED &\
443      CONTROLLER_ISO_ENABLED)
444 #define HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE_ENABLED\
445     (CONTROLLER_PRIVACY_ENABLED)
446 #define HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS_ENABLED\
447     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
448 #define HCI_LE_SET_CIG_PARAMETERS_ENABLED\
449     (\
450      (CONNECTION_ENABLED == 1)\
451      &&\
452      (\
453       (CONNECTION_ENABLED == 1) &&\
454       (CONTROLLER_CIS_ENABLED == 1) &&\
455       (CONTROLLER_ISO_ENABLED == 1)\
456      )\
457      &&\
458      (\
459       (CONTROLLER_SCAN_ENABLED == 1)\
460       ||\
461       (\
462        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
463        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
464        (CONNECTION_ENABLED == 1) &&\
465        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
466       )\
467      )\
468     )
469 #define HCI_LE_SET_CIG_PARAMETERS_TEST_ENABLED\
470     (\
471      (CONNECTION_ENABLED == 1)\
472      &&\
473      (\
474       (CONNECTION_ENABLED == 1) &&\
475       (CONTROLLER_CIS_ENABLED == 1) &&\
476       (CONTROLLER_ISO_ENABLED == 1)\
477      )\
478      &&\
479      (\
480       (CONTROLLER_SCAN_ENABLED == 1)\
481       ||\
482       (\
483        (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1) &&\
484        (CONTROLLER_PERIODIC_ADV_ENABLED == 1) &&\
485        (CONNECTION_ENABLED == 1) &&\
486        (CONTROLLER_PERIODIC_ADV_WR_ENABLED == 1)\
487       )\
488      )\
489     )
490 #define HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMETERS_ENABLED\
491     (CONTROLLER_CTE_ENABLED &\
492      CONNECTION_ENABLED)
493 #define HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMETERS_ENABLED\
494     (CONTROLLER_CTE_ENABLED &\
495      CONNECTION_ENABLED)
496 #define HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE_ENABLED\
497     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
498      CONTROLLER_PERIODIC_ADV_ENABLED &\
499      CONTROLLER_CTE_ENABLED)
500 #define HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMETERS_ENABLED\
501     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
502      CONTROLLER_PERIODIC_ADV_ENABLED &\
503      CONTROLLER_CTE_ENABLED)
504 #define HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE_ENABLED\
505     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
506      CONTROLLER_PERIODIC_ADV_ENABLED &\
507      CONTROLLER_CTE_ENABLED)
508 #define HCI_LE_SET_DATA_LENGTH_ENABLED\
509     (CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED &\
510      CONNECTION_ENABLED)
511 #define HCI_LE_SET_DATA_RELATED_ADDRESS_CHANGES_ENABLED\
512     (CONTROLLER_PRIVACY_ENABLED)
513 #define HCI_LE_SET_DEFAULT_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED\
514     (CONTROLLER_SCAN_ENABLED &\
515      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
516      CONTROLLER_PERIODIC_ADV_ENABLED &\
517      CONNECTION_ENABLED)
518 #define HCI_LE_SET_DEFAULT_PHY_ENABLED\
519     (CONTROLLER_2M_CODED_PHY_ENABLED)
520 #define HCI_LE_SET_DEFAULT_SUBRATE_ENABLED\
521     (CONNECTION_ENABLED &\
522      CONNECTION_SUBRATING_ENABLED)
523 #define HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE_ENABLED\
524     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
525 #define HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_ENABLED\
526     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
527 #define HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS_V2_ENABLED\
528     (CONTROLLER_EXT_ADV_SCAN_ENABLED)
529 #define HCI_LE_SET_EXTENDED_SCAN_ENABLE_ENABLED\
530     (CONTROLLER_SCAN_ENABLED &\
531      CONTROLLER_EXT_ADV_SCAN_ENABLED)
532 #define HCI_LE_SET_EXTENDED_SCAN_PARAMETERS_ENABLED\
533     (CONTROLLER_SCAN_ENABLED &\
534      CONTROLLER_EXT_ADV_SCAN_ENABLED)
535 #define HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION_ENABLED\
536     (\
537      (\
538       (CONNECTION_ENABLED == 1)\
539       &&\
540       (\
541        (CONTROLLER_SCAN_ENABLED == 1)\
542        ||\
543        (CONTROLLER_CHAN_CLASS_ENABLED == 1)\
544       )\
545      )\
546      ||\
547      (CONTROLLER_EXT_ADV_SCAN_ENABLED == 1)\
548     )
549 #define HCI_LE_SET_HOST_FEATURE_ENABLED\
550     (CONTROLLER_EXT_ADV_SCAN_ENABLED |\
551      CONNECTION_ENABLED)
552 #define HCI_LE_SET_PATH_LOSS_REPORTING_ENABLE_ENABLED\
553     (CONTROLLER_POWER_CONTROL_ENABLED &\
554      CONNECTION_ENABLED)
555 #define HCI_LE_SET_PATH_LOSS_REPORTING_PARAMETERS_ENABLED\
556     (CONTROLLER_POWER_CONTROL_ENABLED &\
557      CONNECTION_ENABLED)
558 #define HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE_ENABLED\
559     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
560      CONTROLLER_PERIODIC_ADV_ENABLED)
561 #define HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_ENABLED\
562     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
563      CONTROLLER_PERIODIC_ADV_ENABLED)
564 #define HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS_V2_ENABLED\
565     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
566      CONTROLLER_PERIODIC_ADV_ENABLED &\
567      CONNECTION_ENABLED &\
568      CONTROLLER_PERIODIC_ADV_WR_ENABLED)
569 #define HCI_LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE_ENABLED\
570     (CONTROLLER_SCAN_ENABLED &\
571      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
572      CONTROLLER_PERIODIC_ADV_ENABLED)
573 #define HCI_LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS_ENABLED\
574     (CONTROLLER_SCAN_ENABLED &\
575      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
576      CONTROLLER_PERIODIC_ADV_ENABLED &\
577      CONNECTION_ENABLED)
578 #define HCI_LE_SET_PERIODIC_SYNC_SUBEVENT_ENABLED\
579     (CONTROLLER_SCAN_ENABLED &\
580      CONTROLLER_EXT_ADV_SCAN_ENABLED &\
581      CONTROLLER_PERIODIC_ADV_ENABLED &\
582      CONNECTION_ENABLED &\
583      CONTROLLER_PERIODIC_ADV_WR_ENABLED)
584 #define HCI_LE_SET_PHY_ENABLED\
585     (CONTROLLER_2M_CODED_PHY_ENABLED &\
586      CONNECTION_ENABLED)
587 #define HCI_LE_SET_PRIVACY_MODE_ENABLED\
588     (CONTROLLER_PRIVACY_ENABLED)
589 #define HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT_ENABLED\
590     (CONTROLLER_PRIVACY_ENABLED)
591 #define HCI_LE_SET_SCAN_ENABLE_ENABLED\
592     (CONTROLLER_SCAN_ENABLED)
593 #define HCI_LE_SET_SCAN_PARAMETERS_ENABLED\
594     (CONTROLLER_SCAN_ENABLED)
595 #define HCI_LE_SET_TRANSMIT_POWER_REPORTING_ENABLE_ENABLED\
596     (CONTROLLER_POWER_CONTROL_ENABLED &\
597      CONNECTION_ENABLED)
598 #define HCI_LE_SETUP_ISO_DATA_PATH_ENABLED\
599     (CONTROLLER_ISO_ENABLED)
600 #define HCI_LE_SUBRATE_REQUEST_ENABLED\
601     (CONNECTION_ENABLED &\
602      CONNECTION_SUBRATING_ENABLED)
603 #define HCI_LE_TERMINATE_BIG_ENABLED\
604     (CONTROLLER_EXT_ADV_SCAN_ENABLED &\
605      CONTROLLER_PERIODIC_ADV_ENABLED &\
606      CONTROLLER_BIS_ENABLED &\
607      CONTROLLER_ISO_ENABLED)
608 #define HCI_LE_TRANSMITTER_TEST_V2_ENABLED\
609     (CONTROLLER_2M_CODED_PHY_ENABLED)
610 #define HCI_LE_TRANSMITTER_TEST_V3_ENABLED\
611     (CONTROLLER_CTE_ENABLED)
612 #define HCI_LE_TRANSMITTER_TEST_V4_ENABLED\
613     (CONTROLLER_CTE_ENABLED |\
614      CONTROLLER_POWER_CONTROL_ENABLED)
615 #define HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_ENABLED\
616     (CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED &\
617      CONNECTION_ENABLED)
618 #define HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED\
619     (CONNECTION_ENABLED &\
620      CONTROLLER_CHAN_CLASS_ENABLED)
621 #define HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED\
622     (CONNECTION_ENABLED)
623 #define HCI_READ_CONNECTION_ACCEPT_TIMEOUT_ENABLED\
624     (CONNECTION_ENABLED &\
625      CONTROLLER_CIS_ENABLED &\
626      CONTROLLER_ISO_ENABLED)
627 #define HCI_READ_REMOTE_VERSION_INFORMATION_ENABLED\
628     (CONNECTION_ENABLED)
629 #define HCI_READ_RSSI_ENABLED\
630     (CONNECTION_ENABLED)
631 #define HCI_READ_TRANSMIT_POWER_LEVEL_ENABLED\
632     (CONNECTION_ENABLED)
633 #define HCI_TX_ISO_DATA_ENABLED\
634     (CONTROLLER_ISO_ENABLED)
635 #define HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE_ENABLED\
636     (CONNECTION_ENABLED &\
637      CONTROLLER_CHAN_CLASS_ENABLED)
638 #define HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT_ENABLED\
639     (CONNECTION_ENABLED)
640 #define HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT_ENABLED\
641     (CONNECTION_ENABLED &\
642      CONTROLLER_CIS_ENABLED &\
643      CONTROLLER_ISO_ENABLED)
644 
645 #endif /* _DTM_CMD_STACK_EN_H_ */
646