Commit 7f1589e2 authored by Lars Knudsen's avatar Lars Knudsen Committed by Anas Nashif
Browse files

Bluetooth: ISO: Add ISO BIS bitfield check macro



Checks validity of ISO BIS bitfield (BIT(0)|...|BIT(30))

Signed-off-by: default avatarLars Knudsen <LAKD@demant.com>
parent 05d59f72
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -140,6 +140,14 @@ extern "C" {
/** Maximum pre-transmission offset */
#define BT_ISO_PTO_MAX              0x0FU

/**
 * @brief Check if ISO BIS bitfield is valid (BT_ISO_BIS_INDEX_BIT(1)|..|BT_ISO_BIS_INDEX_BIT(31))
 *
 * @param _bis_bitfield BIS index bitfield (uint32)
 */
#define BT_ISO_VALID_BIS_BITFIELD(_bis_bitfield)                                                   \
	((_bis_bitfield) != 0U && (_bis_bitfield) <= BIT_MASK(BT_ISO_BIS_INDEX_MAX))

/**
 * @brief Life-span states of ISO channel. Used only by internal APIs dealing with setting channel
 * to proper state depending on operational context.
+1 −1
Original line number Diff line number Diff line
@@ -3316,7 +3316,7 @@ int bt_iso_big_sync(struct bt_le_per_adv_sync *sync, struct bt_iso_big_sync_para
		return -EINVAL;
	}

	CHECKIF(param->bis_bitfield == 0U || param->bis_bitfield > BIT_MASK(BT_ISO_BIS_INDEX_MAX)) {
	CHECKIF(!BT_ISO_VALID_BIS_BITFIELD(param->bis_bitfield)) {
		LOG_DBG("Invalid BIS bitfield 0x%08x", param->bis_bitfield);
		return -EINVAL;
	}