@@ -408,8 +408,7 @@ uint8_t ll_adv_sync_param_set(uint8_t handle, uint16_t interval, uint16_t flags)
408408uint8_t ll_adv_sync_ad_data_set (uint8_t handle , uint8_t op , uint8_t len ,
409409 uint8_t const * const data )
410410{
411- struct ull_adv_ext_hdr_data hdr_data ;
412- uint8_t field_data [1 + sizeof (data )];
411+ uint8_t hdr_data [1 + sizeof (data )];
413412 void * extra_data_prev , * extra_data ;
414413 struct pdu_adv * pdu_prev , * pdu ;
415414 struct lll_adv_sync * lll_sync ;
@@ -435,9 +434,8 @@ uint8_t ll_adv_sync_ad_data_set(uint8_t handle, uint8_t op, uint8_t len,
435434 return BT_HCI_ERR_UNKNOWN_ADV_IDENTIFIER ;
436435 }
437436
438- hdr_data .field_data = field_data ;
439- field_data [0 ] = len ;
440- memcpy (& field_data [1 ], & data , sizeof (data ));
437+ hdr_data [0 ] = len ;
438+ memcpy (& hdr_data [1 ], & data , sizeof (data ));
441439
442440 err = ull_adv_sync_pdu_alloc (adv , ULL_ADV_PDU_EXTRA_DATA_ALLOC_IF_EXIST , & pdu_prev , & pdu ,
443441 & extra_data_prev , & extra_data , & ter_idx );
@@ -448,14 +446,12 @@ uint8_t ll_adv_sync_ad_data_set(uint8_t handle, uint8_t op, uint8_t len,
448446#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX )
449447 if (extra_data ) {
450448 ull_adv_sync_extra_data_set_clear (extra_data_prev , extra_data ,
451- ULL_ADV_PDU_HDR_FIELD_AD_DATA ,
452- 0 , & hdr_data );
449+ ULL_ADV_PDU_HDR_FIELD_AD_DATA , 0 , NULL );
453450 }
454451#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX */
455452
456- err = ull_adv_sync_pdu_set_clear (lll_sync , pdu_prev , pdu ,
457- ULL_ADV_PDU_HDR_FIELD_AD_DATA ,
458- 0 , & hdr_data );
453+ err = ull_adv_sync_pdu_set_clear (lll_sync , pdu_prev , pdu , ULL_ADV_PDU_HDR_FIELD_AD_DATA , 0 ,
454+ hdr_data );
459455 if (err ) {
460456 return err ;
461457 }
@@ -857,26 +853,27 @@ uint8_t ull_adv_sync_pdu_alloc(struct ll_adv_set *adv,
857853/* @brief Set or clear fields in extended advertising header and store
858854 * extra_data if requested.
859855 *
860- * @param[in] adv Advertising set.
856+ * @param[in] lll_sync Reference to periodic advertising sync.
857+ * @param[in] ter_pdu_prev Pointer to previous PDU.
858+ * @param[in] ter_pdu_ Pointer to PDU to fill fileds.
861859 * @param[in] hdr_add_fields Flag with information which fields add.
862860 * @param[in] hdr_rem_fields Flag with information which fields remove.
863- * @param[in] data Pointer to data to be added to header and
864- * extra_data. Content depends on the value of
865- * @p hdr_add_fields.
866- * @param[out] ter_idx Index of new PDU.
861+ * @param[in] hdr_data Pointer to data to be added to header. Content
862+ * depends on the value of @p hdr_add_fields.
867863 *
868864 * @Note
869- * @p data content depends on the flag provided by @p hdr_add_fields:
865+ * @p hdr_data content depends on the flag provided by @p hdr_add_fields:
870866 * - ULL_ADV_PDU_HDR_FIELD_CTE_INFO:
871- * # @p data->field_data points to single byte with CTEInfo field
872- * # @p data->extra_data points to memory where is struct lll_df_adv_cfg
873- * for LLL.
867+ * # @p hdr_data points to single byte with CTEInfo field
874868 * - ULL_ADV_PDU_HDR_FIELD_AD_DATA:
875- * # @p data->field_data points to memory where first byte
869+ * # @p hdr_data points to memory where first byte
876870 * is size of advertising data, following byte is a pointer to actual
877871 * advertising data.
878- * # @p data->extra_data is NULL
879- * - ULL_ADV_PDU_HDR_FIELD_AUX_PTR: # @p data parameter is not used
872+ * - ULL_ADV_PDU_HDR_FIELD_AUX_PTR:
873+ * # @p hdr_data parameter is not used
874+ * - ULL_ADV_PDU_HDR_FIELD_ACAD:
875+ * # @p hdr_data points to memory where first byte is size of ACAD, second
876+ * byte is used to return offset to ACAD field.
880877 *
881878 * @return Zero in case of success, other value in case of failure.
882879 */
@@ -885,7 +882,7 @@ uint8_t ull_adv_sync_pdu_set_clear(struct lll_adv_sync *lll_sync,
885882 struct pdu_adv * ter_pdu ,
886883 uint16_t hdr_add_fields ,
887884 uint16_t hdr_rem_fields ,
888- struct ull_adv_ext_hdr_data * hdr_data )
885+ void * hdr_data )
889886{
890887 struct pdu_adv_com_ext_adv * ter_com_hdr , * ter_com_hdr_prev ;
891888 struct pdu_adv_ext_hdr * ter_hdr , ter_hdr_prev ;
@@ -900,9 +897,6 @@ uint8_t ull_adv_sync_pdu_set_clear(struct lll_adv_sync *lll_sync,
900897 uint8_t cte_info ;
901898#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX */
902899 uint8_t ad_len ;
903- void * value ;
904-
905- value = hdr_data ? hdr_data -> field_data : NULL ;
906900
907901 /* Get common pointers from reference to previous tertiary PDU data */
908902 ter_com_hdr_prev = (void * )& ter_pdu_prev -> adv_ext_ind ;
@@ -935,8 +929,8 @@ uint8_t ull_adv_sync_pdu_set_clear(struct lll_adv_sync *lll_sync,
935929 /* If requested add or update CTEInfo */
936930 if (hdr_add_fields & ULL_ADV_PDU_HDR_FIELD_CTE_INFO ) {
937931 ter_hdr -> cte_info = 1 ;
938- cte_info = * (uint8_t * )value ;
939- value = (uint8_t * )value + 1 ;
932+ cte_info = * (uint8_t * )hdr_data ;
933+ hdr_data = (uint8_t * )hdr_data + 1 ;
940934 ter_dptr += sizeof (struct pdu_cte_info );
941935 /* If CTEInfo exists in prev and is not requested to be removed */
942936 } else if (!(hdr_rem_fields & ULL_ADV_PDU_HDR_FIELD_CTE_INFO ) &&
@@ -1004,11 +998,11 @@ uint8_t ull_adv_sync_pdu_set_clear(struct lll_adv_sync *lll_sync,
1004998
1005999 /* Add/Retain/Remove ACAD */
10061000 if (hdr_add_fields & ULL_ADV_PDU_HDR_FIELD_ACAD ) {
1007- acad_len = * (uint8_t * )value ;
1008- value = (uint8_t * )value + 1 ;
1001+ acad_len = * (uint8_t * )hdr_data ;
1002+ hdr_data = (uint8_t * )hdr_data + 1 ;
10091003 /* return the pointer to ACAD offset */
1010- memcpy (value , & ter_dptr , sizeof (ter_dptr ));
1011- value = (uint8_t * )value + sizeof (ter_dptr );
1004+ memcpy (hdr_data , & ter_dptr , sizeof (ter_dptr ));
1005+ hdr_data = (uint8_t * )hdr_data + sizeof (ter_dptr );
10121006 ter_dptr += acad_len ;
10131007 } else if (!(hdr_rem_fields & ULL_ADV_PDU_HDR_FIELD_ACAD )) {
10141008 acad_len = acad_len_prev ;
@@ -1023,7 +1017,7 @@ uint8_t ull_adv_sync_pdu_set_clear(struct lll_adv_sync *lll_sync,
10231017
10241018 /* Get Adv data from function parameters */
10251019 if (hdr_add_fields & ULL_ADV_PDU_HDR_FIELD_AD_DATA ) {
1026- ad_data = value ;
1020+ ad_data = hdr_data ;
10271021 ad_len = * ad_data ;
10281022 ++ ad_data ;
10291023
0 commit comments