summaryrefslogtreecommitdiff
path: root/monitor/broadcom.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-05-17 18:22:01 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-05-18 15:35:49 -0700
commit1cf5ceeef363cbbf71b1a6f71ef48e01f171988a (patch)
treed2ea76ad97fdea5970412b8ec5285529dbbf980b /monitor/broadcom.c
parent5efc737f49d4cb98c9b1658d68b226ed4f4c74cf (diff)
downloadbluez-1cf5ceeef363cbbf71b1a6f71ef48e01f171988a.tar.gz
monitor: Cache connection information
This caches connection information including the device addres so it can be printed alongside the handle: > HCI Event: Disconnect Complete (0x05) plen 4 Status: Success (0x00) Handle: 3585 Address: 68:79:12:XX:XX:XX (OUI 68-79-12) Reason: Connection Terminated By Local Host (0x16)
Diffstat (limited to 'monitor/broadcom.c')
-rw-r--r--monitor/broadcom.c60
1 files changed, 36 insertions, 24 deletions
diff --git a/monitor/broadcom.c b/monitor/broadcom.c
index 21a86461b..72da56da2 100644
--- a/monitor/broadcom.c
+++ b/monitor/broadcom.c
@@ -220,23 +220,24 @@ static void print_clock_setting(uint8_t clock)
print_field("UART clock: %s (0x%2.2x)", str, clock);
}
-static void null_cmd(const void *data, uint8_t size)
+static void null_cmd(uint16_t index, const void *data, uint8_t size)
{
}
-static void status_rsp(const void *data, uint8_t size)
+static void status_rsp(uint16_t index, const void *data, uint8_t size)
{
uint8_t status = get_u8(data);
print_status(status);
}
-static void write_bd_addr_cmd(const void *data, uint8_t size)
+static void write_bd_addr_cmd(uint16_t index, const void *data, uint8_t size)
{
packet_print_addr("Address", data, 0x00);
}
-static void update_uart_baud_rate_cmd(const void *data, uint8_t size)
+static void update_uart_baud_rate_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint16_t enc_rate = get_le16(data);
uint32_t exp_rate = get_le32(data + 2);
@@ -249,7 +250,8 @@ static void update_uart_baud_rate_cmd(const void *data, uint8_t size)
print_field("Explicit baud rate: %u Mbps", exp_rate);
}
-static void write_sco_pcm_int_param_cmd(const void *data, uint8_t size)
+static void write_sco_pcm_int_param_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t routing = get_u8(data);
uint8_t rate = get_u8(data + 1);
@@ -264,7 +266,8 @@ static void write_sco_pcm_int_param_cmd(const void *data, uint8_t size)
print_clock_mode(clock_mode);
}
-static void read_sco_pcm_int_param_rsp(const void *data, uint8_t size)
+static void read_sco_pcm_int_param_rsp(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t status = get_u8(data);
uint8_t routing = get_u8(data + 1);
@@ -281,7 +284,8 @@ static void read_sco_pcm_int_param_rsp(const void *data, uint8_t size)
print_clock_mode(clock_mode);
}
-static void set_sleepmode_param_cmd(const void *data, uint8_t size)
+static void set_sleepmode_param_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t mode = get_u8(data);
@@ -290,7 +294,8 @@ static void set_sleepmode_param_cmd(const void *data, uint8_t size)
packet_hexdump(data + 1, size - 1);
}
-static void read_sleepmode_param_rsp(const void *data, uint8_t size)
+static void read_sleepmode_param_rsp(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t status = get_u8(data);
uint8_t mode = get_u8(data + 1);
@@ -301,7 +306,8 @@ static void read_sleepmode_param_rsp(const void *data, uint8_t size)
packet_hexdump(data + 2, size - 2);
}
-static void enable_radio_cmd(const void *data, uint8_t size)
+static void enable_radio_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t mode = get_u8(data);
const char *str;
@@ -321,7 +327,8 @@ static void enable_radio_cmd(const void *data, uint8_t size)
print_field("Mode: %s (0x%2.2x)", str, mode);
}
-static void enable_usb_hid_emulation_cmd(const void *data, uint8_t size)
+static void enable_usb_hid_emulation_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t enable = get_u8(data);
const char *str;
@@ -341,7 +348,8 @@ static void enable_usb_hid_emulation_cmd(const void *data, uint8_t size)
print_field("Enable: %s (0x%2.2x)", str, enable);
}
-static void read_uart_clock_setting_rsp(const void *data, uint8_t size)
+static void read_uart_clock_setting_rsp(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t status = get_u8(data);
uint8_t clock = get_u8(data + 1);
@@ -350,21 +358,22 @@ static void read_uart_clock_setting_rsp(const void *data, uint8_t size)
print_clock_setting(clock);
}
-static void write_uart_clock_setting_cmd(const void *data, uint8_t size)
+static void write_uart_clock_setting_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t clock = get_u8(data);
print_clock_setting(clock);
}
-static void read_raw_rssi_cmd(const void *data, uint8_t size)
+static void read_raw_rssi_cmd(uint16_t index, const void *data, uint8_t size)
{
uint16_t handle = get_le16(data);
print_handle(handle);
}
-static void read_raw_rssi_rsp(const void *data, uint8_t size)
+static void read_raw_rssi_rsp(uint16_t index, const void *data, uint8_t size)
{
uint8_t status = get_u8(data);
uint16_t handle = get_le16(data + 1);
@@ -375,7 +384,7 @@ static void read_raw_rssi_rsp(const void *data, uint8_t size)
print_rssi(rssi);
}
-static void write_ram_cmd(const void *data, uint8_t size)
+static void write_ram_cmd(uint16_t index, const void *data, uint8_t size)
{
uint32_t addr = get_le32(data);
@@ -384,7 +393,7 @@ static void write_ram_cmd(const void *data, uint8_t size)
packet_hexdump(data + 4, size - 4);
}
-static void read_ram_cmd(const void *data, uint8_t size)
+static void read_ram_cmd(uint16_t index, const void *data, uint8_t size)
{
uint32_t addr = get_le32(data);
uint8_t length = get_u8(data + 4);
@@ -393,7 +402,7 @@ static void read_ram_cmd(const void *data, uint8_t size)
print_field("Length: %u", length);
}
-static void read_ram_rsp(const void *data, uint8_t size)
+static void read_ram_rsp(uint16_t index, const void *data, uint8_t size)
{
uint8_t status = get_u8(data);
@@ -402,14 +411,14 @@ static void read_ram_rsp(const void *data, uint8_t size)
packet_hexdump(data + 1, size - 1);
}
-static void launch_ram_cmd(const void *data, uint8_t size)
+static void launch_ram_cmd(uint16_t index, const void *data, uint8_t size)
{
uint32_t addr = get_le32(data);
print_field("Address: 0x%8.8x", addr);
}
-static void read_vid_pid_rsp(const void *data, uint8_t size)
+static void read_vid_pid_rsp(uint16_t index, const void *data, uint8_t size)
{
uint8_t status = get_u8(data);
uint16_t vid = get_le16(data + 1);
@@ -419,7 +428,8 @@ static void read_vid_pid_rsp(const void *data, uint8_t size)
print_field("Product: %4.4x:%4.4x", vid, pid);
}
-static void write_high_priority_connection_cmd(const void *data, uint8_t size)
+static void write_high_priority_connection_cmd(uint16_t index, const void *data,
+ uint8_t size)
{
uint16_t handle = get_le16(data);
uint8_t priority = get_u8(data + 2);
@@ -480,7 +490,8 @@ static void print_features(const uint8_t *features_array)
"(0x%16.16" PRIx64 ")", mask);
}
-static void read_controller_features_rsp(const void *data, uint8_t size)
+static void read_controller_features_rsp(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t status = get_u8(data);
@@ -488,7 +499,8 @@ static void read_controller_features_rsp(const void *data, uint8_t size)
print_features(data + 1);
}
-static void read_verbose_version_info_rsp(const void *data, uint8_t size)
+static void read_verbose_version_info_rsp(uint16_t index, const void *data,
+ uint8_t size)
{
uint8_t status = get_u8(data);
uint8_t chip_id = get_u8(data + 1);
@@ -517,7 +529,7 @@ static void read_verbose_version_info_rsp(const void *data, uint8_t size)
print_field("Build number: %u (0x%4.4x)", build_num, build_num);
}
-static void enable_wbs_cmd(const void *data, uint8_t size)
+static void enable_wbs_cmd(uint16_t index, const void *data, uint8_t size)
{
uint8_t mode = get_u8(data);
uint16_t codec = get_le16(data + 1);
@@ -694,7 +706,7 @@ void broadcom_lm_diag(const void *data, uint8_t size)
}
}
-static void lm_diag_evt(const void *data, uint8_t size)
+static void lm_diag_evt(uint16_t index, const void *data, uint8_t size)
{
broadcom_lm_diag(data, 63);
}