bluetooth: Extend EIR parsing with UUIDs, Device class, TX power and manufacturer data

ParseEIR previously handled only EIR_NAME_SHORT (0x08) and EIR_NAME_COMPLETE (0x09),
silently ignoring all other data types.

Add handling for:
	- EIR_UUID16_INCOMPLETE (0x2) & EIR_UUID16_COMPLETE (0x3)
	- EIR_UUID32_INCOMPLETE (0x4) & EIR_UUID32_COMPLETE (0x5)
	- EIR_UUID128_INCOMPLETE (0x6) & EIR_UUID128_COMPLETE (0x7)
	- EIR_TX_POWER (0X0A): parsed as int8, added to reply as "tx_power"
	- EIR_CLASS_OF_DEVICE: Added to reply as dev_class (0x0D)
	- EIR_MANUFACTURER_DATA: Added to reply as "manufacturer_data" (0xFF)

Change-Id: I80600ff3078e2a7bc41c614596013e633ada5c9c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10613
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
This commit is contained in:
shivamsinghydv
2026-05-11 16:07:08 +00:00
committed by waddlesplash
parent a76c4f11d5
commit 0342b31ff8
2 changed files with 67 additions and 5 deletions
+11
View File
@@ -286,8 +286,19 @@ struct hci_ev_extended_inquiry_info {
int8 rssi;
uint8 eir[HCI_MAX_EIR_LENGTH];
} __attribute__((packed));
#define EIR_FLAGS 0x01
#define EIR_UUID16_INCOMPLETE 0x02
#define EIR_UUID16_COMPLETE 0x03
#define EIR_UUID32_INCOMPLETE 0x04
#define EIR_UUID32_COMPLETE 0x05
#define EIR_UUID128_INCOMPLETE 0x06
#define EIR_UUID128_COMPLETE 0x07
#define EIR_NAME_SHORT 0x08
#define EIR_NAME_COMPLETE 0x09
#define EIR_TX_POWER 0x0A
#define EIR_CLASS_OF_DEVICE 0x0D
#define EIR_MANUFACTURER_DATA 0xFF
#define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30