2023-02-14 02:16:18

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ] mgmt: Use BIT macro when defining bitfields

From: Luiz Augusto von Dentz <[email protected]>

This makes use of BIT macro when defining bitfields which makes it
clearer what bit it is toggling.
---
lib/mgmt.h | 117 ++++++++++++++++++++++++++++-------------------------
1 file changed, 61 insertions(+), 56 deletions(-)

diff --git a/lib/mgmt.h b/lib/mgmt.h
index efbdfb4b17c1..59273c85a69f 100644
--- a/lib/mgmt.h
+++ b/lib/mgmt.h
@@ -12,6 +12,10 @@
#define __packed __attribute__((packed))
#endif

+#ifndef BIT
+#define BIT(n) (1 << (n))
+#endif
+
#define MGMT_INDEX_NONE 0xFFFF

#define MGMT_STATUS_SUCCESS 0x00
@@ -78,26 +82,26 @@ struct mgmt_rp_read_index_list {
#define MGMT_MAX_NAME_LENGTH (248 + 1)
#define MGMT_MAX_SHORT_NAME_LENGTH (10 + 1)

-#define MGMT_SETTING_POWERED 0x00000001
-#define MGMT_SETTING_CONNECTABLE 0x00000002
-#define MGMT_SETTING_FAST_CONNECTABLE 0x00000004
-#define MGMT_SETTING_DISCOVERABLE 0x00000008
-#define MGMT_SETTING_BONDABLE 0x00000010
-#define MGMT_SETTING_LINK_SECURITY 0x00000020
-#define MGMT_SETTING_SSP 0x00000040
-#define MGMT_SETTING_BREDR 0x00000080
-#define MGMT_SETTING_HS 0x00000100
-#define MGMT_SETTING_LE 0x00000200
-#define MGMT_SETTING_ADVERTISING 0x00000400
-#define MGMT_SETTING_SECURE_CONN 0x00000800
-#define MGMT_SETTING_DEBUG_KEYS 0x00001000
-#define MGMT_SETTING_PRIVACY 0x00002000
-#define MGMT_SETTING_CONFIGURATION 0x00004000
-#define MGMT_SETTING_STATIC_ADDRESS 0x00008000
-#define MGMT_SETTING_PHY_CONFIGURATION 0x00010000
-#define MGMT_SETTING_WIDEBAND_SPEECH 0x00020000
-#define MGMT_SETTING_CIS_CENTRAL 0x00040000
-#define MGMT_SETTING_CIS_PERIPHERAL 0x00080000
+#define MGMT_SETTING_POWERED BIT(0)
+#define MGMT_SETTING_CONNECTABLE BIT(1)
+#define MGMT_SETTING_FAST_CONNECTABLE BIT(2)
+#define MGMT_SETTING_DISCOVERABLE BIT(3)
+#define MGMT_SETTING_BONDABLE BIT(4)
+#define MGMT_SETTING_LINK_SECURITY BIT(5)
+#define MGMT_SETTING_SSP BIT(6)
+#define MGMT_SETTING_BREDR BIT(7)
+#define MGMT_SETTING_HS BIT(8)
+#define MGMT_SETTING_LE BIT(9)
+#define MGMT_SETTING_ADVERTISING BIT(10)
+#define MGMT_SETTING_SECURE_CONN BIT(11)
+#define MGMT_SETTING_DEBUG_KEYS BIT(12)
+#define MGMT_SETTING_PRIVACY BIT(13)
+#define MGMT_SETTING_CONFIGURATION BIT(14)
+#define MGMT_SETTING_STATIC_ADDRESS BIT(15)
+#define MGMT_SETTING_PHY_CONFIGURATION BIT(16)
+#define MGMT_SETTING_WIDEBAND_SPEECH BIT(17)
+#define MGMT_SETTING_CIS_CENTRAL BIT(18)
+#define MGMT_SETTING_CIS_PERIPHERAL BIT(19)

#define MGMT_OP_READ_INFO 0x0004
struct mgmt_rp_read_info {
@@ -495,23 +499,23 @@ struct mgmt_rp_add_advertising {
uint8_t instance;
} __packed;

-#define MGMT_ADV_FLAG_CONNECTABLE (1 << 0)
-#define MGMT_ADV_FLAG_DISCOV (1 << 1)
-#define MGMT_ADV_FLAG_LIMITED_DISCOV (1 << 2)
-#define MGMT_ADV_FLAG_MANAGED_FLAGS (1 << 3)
-#define MGMT_ADV_FLAG_TX_POWER (1 << 4)
-#define MGMT_ADV_FLAG_APPEARANCE (1 << 5)
-#define MGMT_ADV_FLAG_LOCAL_NAME (1 << 6)
-#define MGMT_ADV_FLAG_SEC_1M (1 << 7)
-#define MGMT_ADV_FLAG_SEC_2M (1 << 8)
-#define MGMT_ADV_FLAG_SEC_CODED (1 << 9)
-#define MGMT_ADV_FLAG_CAN_SET_TX_POWER (1 << 10)
-#define MGMT_ADV_FLAG_HW_OFFLOAD (1 << 11)
-#define MGMT_ADV_PARAM_DURATION (1 << 12)
-#define MGMT_ADV_PARAM_TIMEOUT (1 << 13)
-#define MGMT_ADV_PARAM_INTERVALS (1 << 14)
-#define MGMT_ADV_PARAM_TX_POWER (1 << 15)
-#define MGMT_ADV_PARAM_SCAN_RSP (1 << 16)
+#define MGMT_ADV_FLAG_CONNECTABLE BIT(0)
+#define MGMT_ADV_FLAG_DISCOV BIT(1)
+#define MGMT_ADV_FLAG_LIMITED_DISCOV BIT(2)
+#define MGMT_ADV_FLAG_MANAGED_FLAGS BIT(3)
+#define MGMT_ADV_FLAG_TX_POWER BIT(4)
+#define MGMT_ADV_FLAG_APPEARANCE BIT(5)
+#define MGMT_ADV_FLAG_LOCAL_NAME BIT(6)
+#define MGMT_ADV_FLAG_SEC_1M BIT(7)
+#define MGMT_ADV_FLAG_SEC_2M BIT(8)
+#define MGMT_ADV_FLAG_SEC_CODED BIT(9)
+#define MGMT_ADV_FLAG_CAN_SET_TX_POWER BIT(10)
+#define MGMT_ADV_FLAG_HW_OFFLOAD BIT(11)
+#define MGMT_ADV_PARAM_DURATION BIT(12)
+#define MGMT_ADV_PARAM_TIMEOUT BIT(13)
+#define MGMT_ADV_PARAM_INTERVALS BIT(14)
+#define MGMT_ADV_PARAM_TX_POWER BIT(15)
+#define MGMT_ADV_PARAM_SCAN_RSP BIT(16)

#define MGMT_ADV_FLAG_SEC_MASK (MGMT_ADV_FLAG_SEC_1M | MGMT_ADV_FLAG_SEC_2M | \
MGMT_ADV_FLAG_SEC_CODED)
@@ -563,21 +567,21 @@ struct mgmt_rp_get_phy_confguration {
uint32_t selected_phys;
} __packed;

-#define MGMT_PHY_BR_1M_1SLOT 0x00000001
-#define MGMT_PHY_BR_1M_3SLOT 0x00000002
-#define MGMT_PHY_BR_1M_5SLOT 0x00000004
-#define MGMT_PHY_EDR_2M_1SLOT 0x00000008
-#define MGMT_PHY_EDR_2M_3SLOT 0x00000010
-#define MGMT_PHY_EDR_2M_5SLOT 0x00000020
-#define MGMT_PHY_EDR_3M_1SLOT 0x00000040
-#define MGMT_PHY_EDR_3M_3SLOT 0x00000080
-#define MGMT_PHY_EDR_3M_5SLOT 0x00000100
-#define MGMT_PHY_LE_1M_TX 0x00000200
-#define MGMT_PHY_LE_1M_RX 0x00000400
-#define MGMT_PHY_LE_2M_TX 0x00000800
-#define MGMT_PHY_LE_2M_RX 0x00001000
-#define MGMT_PHY_LE_CODED_TX 0x00002000
-#define MGMT_PHY_LE_CODED_RX 0x00004000
+#define MGMT_PHY_BR_1M_1SLOT BIT(0)
+#define MGMT_PHY_BR_1M_3SLOT BIT(1)
+#define MGMT_PHY_BR_1M_5SLOT BIT(2)
+#define MGMT_PHY_EDR_2M_1SLOT BIT(3)
+#define MGMT_PHY_EDR_2M_3SLOT BIT(4)
+#define MGMT_PHY_EDR_2M_5SLOT BIT(5)
+#define MGMT_PHY_EDR_3M_1SLOT BIT(6)
+#define MGMT_PHY_EDR_3M_3SLOT BIT(7)
+#define MGMT_PHY_EDR_3M_5SLOT BIT(8)
+#define MGMT_PHY_LE_1M_TX BIT(9)
+#define MGMT_PHY_LE_1M_RX BIT(10)
+#define MGMT_PHY_LE_2M_TX BIT(11)
+#define MGMT_PHY_LE_2M_RX BIT(12)
+#define MGMT_PHY_LE_CODED_TX BIT(13)
+#define MGMT_PHY_LE_CODED_RX BIT(14)

#define MGMT_PHY_LE_TX_MASK (MGMT_PHY_LE_1M_TX | MGMT_PHY_LE_2M_TX | \
MGMT_PHY_LE_CODED_TX)
@@ -891,10 +895,11 @@ struct mgmt_ev_auth_failed {
uint8_t status;
} __packed;

-#define MGMT_DEV_FOUND_CONFIRM_NAME 0x01
-#define MGMT_DEV_FOUND_LEGACY_PAIRING 0x02
-#define MGMT_DEV_FOUND_NOT_CONNECTABLE 0x04
-#define MGMT_DEV_FOUND_NAME_REQUEST_FAILED 0x10
+#define MGMT_DEV_FOUND_CONFIRM_NAME BIT(0)
+#define MGMT_DEV_FOUND_LEGACY_PAIRING BIT(1)
+#define MGMT_DEV_FOUND_NOT_CONNECTABLE BIT(2)
+#define MGMT_DEV_FOUND_INITIATED_CONN BIT(3)
+#define MGMT_DEV_FOUND_NAME_REQUEST_FAILED BIT(4)

#define MGMT_EV_DEVICE_FOUND 0x0012
struct mgmt_ev_device_found {
--
2.37.3



2023-02-14 03:41:39

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ] mgmt: Use BIT macro when defining bitfields

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=721505

---Test result---

Test Summary:
CheckPatch PASS 0.55 seconds
GitLint PASS 0.33 seconds
BuildEll PASS 26.97 seconds
BluezMake PASS 980.25 seconds
MakeCheck PASS 11.31 seconds
MakeDistcheck PASS 148.67 seconds
CheckValgrind PASS 245.75 seconds
CheckSmatch PASS 327.04 seconds
bluezmakeextell PASS 97.96 seconds
IncrementalBuild PASS 844.89 seconds
ScanBuild PASS 1015.19 seconds



---
Regards,
Linux Bluetooth

2023-02-14 20:40:23

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH BlueZ] mgmt: Use BIT macro when defining bitfields

Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Mon, 13 Feb 2023 18:16:06 -0800 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> This makes use of BIT macro when defining bitfields which makes it
> clearer what bit it is toggling.
> ---
> lib/mgmt.h | 117 ++++++++++++++++++++++++++++-------------------------
> 1 file changed, 61 insertions(+), 56 deletions(-)

Here is the summary with links:
- [BlueZ] mgmt: Use BIT macro when defining bitfields
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=5d63ee2a58c6

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html