@@ -259,6 +259,10 @@ enum sdc_hci_opcode_le
259259 SDC_HCI_OPCODE_CMD_LE_EXT_CREATE_CONN_V2 = 0x2085 ,
260260 /** @brief See @ref sdc_hci_cmd_le_set_periodic_adv_params_v2(). */
261261 SDC_HCI_OPCODE_CMD_LE_SET_PERIODIC_ADV_PARAMS_V2 = 0x2086 ,
262+ /** @brief See @ref sdc_hci_cmd_le_read_all_local_supported_features(). */
263+ SDC_HCI_OPCODE_CMD_LE_READ_ALL_LOCAL_SUPPORTED_FEATURES = 0x2087 ,
264+ /** @brief See @ref sdc_hci_cmd_le_read_all_remote_features(). */
265+ SDC_HCI_OPCODE_CMD_LE_READ_ALL_REMOTE_FEATURES = 0x2088 ,
262266 /** @brief See @ref sdc_hci_cmd_le_cs_read_local_supported_capabilities(). */
263267 SDC_HCI_OPCODE_CMD_LE_CS_READ_LOCAL_SUPPORTED_CAPABILITIES = 0x2089 ,
264268 /** @brief See @ref sdc_hci_cmd_le_cs_read_remote_supported_capabilities(). */
@@ -289,6 +293,8 @@ enum sdc_hci_opcode_le
289293 SDC_HCI_OPCODE_CMD_LE_CS_TEST_END = 0x2096 ,
290294 /** @brief See @ref sdc_hci_cmd_le_set_host_feature_v2(). */
291295 SDC_HCI_OPCODE_CMD_LE_SET_HOST_FEATURE_V2 = 0x2097 ,
296+ /** @brief See @ref sdc_hci_cmd_le_frame_space_update(). */
297+ SDC_HCI_OPCODE_CMD_LE_FRAME_SPACE_UPDATE = 0x209d ,
292298};
293299
294300/** @brief LE subevent Code values. */
@@ -306,6 +312,8 @@ enum sdc_hci_subevent_le
306312 SDC_HCI_SUBEVENT_LE_SUBRATE_CHANGE = 0x23 ,
307313 /** @brief See @ref sdc_hci_subevent_le_cis_established_v2_t. */
308314 SDC_HCI_SUBEVENT_LE_CIS_ESTABLISHED_V2 = 0x2a ,
315+ /** @brief See @ref sdc_hci_subevent_le_read_all_remote_features_complete_t. */
316+ SDC_HCI_SUBEVENT_LE_READ_ALL_REMOTE_FEATURES_COMPLETE = 0x2b ,
309317 /** @brief See @ref sdc_hci_subevent_le_cs_read_remote_supported_capabilities_complete_t. */
310318 SDC_HCI_SUBEVENT_LE_CS_READ_REMOTE_SUPPORTED_CAPABILITIES_COMPLETE = 0x2c ,
311319 /** @brief See @ref sdc_hci_subevent_le_cs_read_remote_fae_table_complete_t. */
@@ -322,6 +330,8 @@ enum sdc_hci_subevent_le
322330 SDC_HCI_SUBEVENT_LE_CS_SUBEVENT_RESULT_CONTINUE = 0x32 ,
323331 /** @brief See @ref sdc_hci_subevent_le_cs_test_end_complete_t. */
324332 SDC_HCI_SUBEVENT_LE_CS_TEST_END_COMPLETE = 0x33 ,
333+ /** @brief See @ref sdc_hci_subevent_le_frame_space_update_complete_t. */
334+ SDC_HCI_SUBEVENT_LE_FRAME_SPACE_UPDATE_COMPLETE = 0x35 ,
325335};
326336
327337/** @brief Advertising Event Properties parameters. */
@@ -968,6 +978,42 @@ typedef struct __PACKED __ALIGN(1)
968978 uint8_t framing ;
969979} sdc_hci_subevent_le_cis_established_v2_t ;
970980
981+ /** @brief LE Read All Remote Features Complete.
982+ *
983+ * The description below is extracted from Core_v6.0,
984+ * Vol 4, Part E, Section 7.7.65.38
985+ *
986+ * The HCI_LE_Read_All_Remote_Features_Complete event is used to indicate the
987+ * completion of the process of the Controller obtaining the features supported by the
988+ * remote Bluetooth device specified by the Connection_Handle event parameter.
989+ *
990+ * The Max_Remote_Page parameter specifies the highest-numbered page of the remote
991+ * device’s supported LE features that contains at least one bit set to 1; all higher-number
992+ * pages therefore only contain zeroes. The Max_Valid_Page parameter specifies the
993+ * highest-numbered page of features that the Controller has obtained from the remote
994+ * device or, if it has obtained all pages from 1 to Max_Remote_Page, then any value
995+ * greater than or equal to Max_Remote_Page.
996+ *
997+ * The LE_Features parameter contains the LE features. The Controller shall set all pages
998+ * between 0 and Max_Valid_Page to valid data and shall set all higher-numbered pages
999+ * to all zero bits.
1000+ *
1001+ * Note: If Max_Valid_Page ≥ Max_Remote_Page, then all pages will contain valid data,
1002+ * which will be all zero bits for pages numbered greater than Max_Remote_Page.
1003+ *
1004+ * If the feature mask is requested more than once while a connection exists between the
1005+ * two devices, then the second and subsequent requests may report a cached copy of the
1006+ * feature mask rather than fetching the feature mask again.
1007+ */
1008+ typedef struct __PACKED __ALIGN (1 )
1009+ {
1010+ uint8_t status ;
1011+ uint16_t conn_handle ;
1012+ uint8_t max_remote_page ;
1013+ uint8_t max_valid_page ;
1014+ uint8_t le_features [248 ];
1015+ } sdc_hci_subevent_le_read_all_remote_features_complete_t ;
1016+
9711017/** @brief LE CS Read Remote Supported Capabilities Complete.
9721018 *
9731019 * The description below is extracted from Core_v6.0,
@@ -1345,6 +1391,34 @@ typedef struct __PACKED __ALIGN(1)
13451391 uint8_t status ;
13461392} sdc_hci_subevent_le_cs_test_end_complete_t ;
13471393
1394+ /** @brief LE Frame Space Update Complete.
1395+ *
1396+ * The description below is extracted from Core_v6.0,
1397+ * Vol 4, Part E, Section 7.7.65.48
1398+ *
1399+ * The HCI_LE_Frame_Space_Update_Complete event is used to indicate that the Frame
1400+ * Space Update procedure has completed (see [Vol 6] Part B, Section 5.1.30) and, if
1401+ * initiated autonomously by the local Controller or the peer device, that at least one frame
1402+ * space value has changed.
1403+ *
1404+ * The Initiator parameter indicates who initiated the Frame Space Update procedure.
1405+ *
1406+ * The Frame_Space parameter indicates the new frame space value that the Controller is
1407+ * now using.
1408+ *
1409+ * The PHYS and Spacing_Types parameters indicate which PHYs and spacing types are
1410+ * using the new frame space value.
1411+ */
1412+ typedef struct __PACKED __ALIGN (1 )
1413+ {
1414+ uint8_t status ;
1415+ uint16_t conn_handle ;
1416+ uint8_t initiator ;
1417+ uint16_t frame_space ;
1418+ uint8_t phys ;
1419+ uint16_t spacing_types ;
1420+ } sdc_hci_subevent_le_frame_space_update_complete_t ;
1421+
13481422/** @} end of HCI_EVENTS */
13491423
13501424/**
@@ -2510,6 +2584,20 @@ typedef struct __PACKED __ALIGN(1)
25102584 uint8_t adv_handle ;
25112585} sdc_hci_cmd_le_set_periodic_adv_params_v2_return_t ;
25122586
2587+ /** @brief LE Read All Local Supported Features return parameter(s). */
2588+ typedef struct __PACKED __ALIGN (1 )
2589+ {
2590+ uint8_t max_page ;
2591+ uint8_t le_features [248 ];
2592+ } sdc_hci_cmd_le_read_all_local_supported_features_return_t ;
2593+
2594+ /** @brief LE Read All Remote Features command parameter(s). */
2595+ typedef struct __PACKED __ALIGN (1 )
2596+ {
2597+ uint16_t conn_handle ;
2598+ uint8_t pages_requested ;
2599+ } sdc_hci_cmd_le_read_all_remote_features_t ;
2600+
25132601/** @brief LE CS Read Local Supported Capabilities return parameter(s). */
25142602typedef struct __PACKED __ALIGN (1 )
25152603{
@@ -2720,6 +2808,16 @@ typedef struct __PACKED __ALIGN(1)
27202808 uint8_t bit_value ;
27212809} sdc_hci_cmd_le_set_host_feature_v2_t ;
27222810
2811+ /** @brief LE Frame Space Update command parameter(s). */
2812+ typedef struct __PACKED __ALIGN (1 )
2813+ {
2814+ uint16_t conn_handle ;
2815+ uint16_t frame_space_min ;
2816+ uint16_t frame_space_max ;
2817+ uint8_t phys ;
2818+ uint16_t spacing_types ;
2819+ } sdc_hci_cmd_le_frame_space_update_t ;
2820+
27232821/** @} end of HCI_COMMAND_PARAMETERS */
27242822
27252823/**
@@ -8600,6 +8698,67 @@ uint8_t sdc_hci_cmd_le_ext_create_conn_v2(const sdc_hci_cmd_le_ext_create_conn_v
86008698uint8_t sdc_hci_cmd_le_set_periodic_adv_params_v2 (const sdc_hci_cmd_le_set_periodic_adv_params_v2_t * p_params ,
86018699 sdc_hci_cmd_le_set_periodic_adv_params_v2_return_t * p_return );
86028700
8701+ /** @brief LE Read All Local Supported Features.
8702+ *
8703+ * The description below is extracted from Core_v6.0,
8704+ * Vol 4, Part E, Section 7.8.128
8705+ *
8706+ * This command requests the supported LE features for the Controller.
8707+ *
8708+ * Event(s) generated (unless masked away):
8709+ * When the HCI_LE_Read_All_Local_Supported_Features command has completed, an
8710+ * HCI_Command_Complete event shall be generated.
8711+ *
8712+ * @param[out] p_return Extra return parameters.
8713+ *
8714+ * @retval 0 if success.
8715+ * @return Returns value between 0x01-0xFF in case of error.
8716+ * See Vol 2, Part D, Error for a list of error codes and descriptions.
8717+ */
8718+ uint8_t sdc_hci_cmd_le_read_all_local_supported_features (sdc_hci_cmd_le_read_all_local_supported_features_return_t * p_return );
8719+
8720+ /** @brief LE Read All Remote Features.
8721+ *
8722+ * The description below is extracted from Core_v6.0,
8723+ * Vol 4, Part E, Section 7.8.129
8724+ *
8725+ * This command requests, from the remote device identified by the Connection_Handle,
8726+ * the features used on the connection and the features supported by the remote device.
8727+ * For details see [Vol 6] Part B, Section 4.6.
8728+ *
8729+ * This command may be issued on both the Central and Peripheral.
8730+ *
8731+ * The Pages_Requested parameter specifies the highest-numbered page of features
8732+ * that the Host requires. The Controller shall obtain all pages up to the lesser of
8733+ * Pages_Requested and the highest page number on the remote device that contains
8734+ * at least one bit set to 1, and may obtain some or all higher-numbered pages.
8735+ *
8736+ * If a connection already exists between the two devices and the features have already
8737+ * been fetched on that connection, then the Controller may use a cached copy of the
8738+ * features.
8739+ *
8740+ * If the Host issues this command when another HCI_LE_Read_All_Remote_Features
8741+ * command is pending in the Controller, then the Controller shall return the error code
8742+ * Command Disallowed (0x0C).
8743+ *
8744+ * Event(s) generated (unless masked away):
8745+ * When the Controller receives the HCI_LE_Read_All_Remote_Features command,
8746+ * the Controller shall send the HCI_Command_Status event to the Host. When the
8747+ * Controller has completed the procedure to determine the remote features or has
8748+ * determined that it will be using a cached copy, the Controller shall send an
8749+ * HCI_LE_Read_All_Remote_Features_Complete event to the Host.
8750+ *
8751+ * The HCI_LE_Read_All_Remote_Features_Complete event contains the status of this
8752+ * command and the parameters describing the features supported by the remote device.
8753+ *
8754+ * @param[in] p_params Input parameters.
8755+ *
8756+ * @retval 0 if success.
8757+ * @return Returns value between 0x01-0xFF in case of error.
8758+ * See Vol 2, Part D, Error for a list of error codes and descriptions.
8759+ */
8760+ uint8_t sdc_hci_cmd_le_read_all_remote_features (const sdc_hci_cmd_le_read_all_remote_features_t * p_params );
8761+
86038762/** @brief LE CS Read Local Supported Capabilities.
86048763 *
86058764 * The description below is extracted from Core_v6.0,
@@ -9438,6 +9597,59 @@ uint8_t sdc_hci_cmd_le_cs_test_end(void);
94389597 */
94399598uint8_t sdc_hci_cmd_le_set_host_feature_v2 (const sdc_hci_cmd_le_set_host_feature_v2_t * p_params );
94409599
9600+ /** @brief LE Frame Space Update.
9601+ *
9602+ * The description below is extracted from Core_v6.0,
9603+ * Vol 4, Part E, Section 7.8.151
9604+ *
9605+ * The HCI_LE_Frame_Space_Update command allows the Host to request a change to
9606+ * one or more frame space values. This command may be issued on both the Central and
9607+ * the Peripheral.
9608+ *
9609+ * The Frame_Space_Min and Frame_Space_Max parameters indicate the minimum and
9610+ * maximum allowed frame space values that the Controller should use, respectively.
9611+ * The Frame_Space_Min parameter shall not be greater than the Frame_Space_Max
9612+ * parameter.
9613+ *
9614+ * The PHYS and Spacing_Types parameters indicate which frame space values are to be
9615+ * updated. At least one bit shall be set in the PHYS parameter and at least one bit shall
9616+ * be set in the Spacing_Types parameter.
9617+ *
9618+ * The actual parameter values selected by the Link Layer may be different from the
9619+ * parameter values provided by the Host through this command.
9620+ *
9621+ * If the Host issues this command with Frame_Space_Max less than the frame space
9622+ * value, then the Controller shall ignore the value provided by the Host and shall use the
9623+ * frame space value in use as the Frame_Space_Max.
9624+ *
9625+ * If the Connection_Handle parameter does not identify an active ACL connection, then
9626+ * the Controller shall return the error code Unknown Connection Identifier (0x02).
9627+ *
9628+ * If the Host issues this command with Frame_Space_Max less than Frame_Space_Min,
9629+ * then the Controller shall return the error code Invalid HCI Command Parameters (0x12).
9630+ *
9631+ * If the Host issues this command with no bits set in the PHYS or the Spacing_Types
9632+ * parameter, then the Controller shall reject the command and return the error code
9633+ * Invalid HCI Command Parameters (0x12).
9634+ *
9635+ * If the Host issues this command with a bit set in the PHYS or the Spacing_Types
9636+ * parameter that the Controller does not support, then the Controller shall reject the
9637+ * command and return the error code Invalid HCI Command Parameters (0x12).
9638+ *
9639+ * Event(s) generated (unless masked away):
9640+ * When the Controller receives the HCI_LE_Frame_Space_Update command,
9641+ * the Controller shall send the HCI_Command_Status event to the Host.
9642+ * When the HCI_LE_Frame_Space_Update command has completed, an
9643+ * HCI_LE_Frame_Space_Update_Complete event shall be generated.
9644+ *
9645+ * @param[in] p_params Input parameters.
9646+ *
9647+ * @retval 0 if success.
9648+ * @return Returns value between 0x01-0xFF in case of error.
9649+ * See Vol 2, Part D, Error for a list of error codes and descriptions.
9650+ */
9651+ uint8_t sdc_hci_cmd_le_frame_space_update (const sdc_hci_cmd_le_frame_space_update_t * p_params );
9652+
94419653/** @} end of HCI_VS_API */
94429654
94439655/** @} */
0 commit comments