diff options
-rw-r--r-- | android/bluetoothd-snoop.c | 2 | ||||
-rw-r--r-- | monitor/control.c | 4 | ||||
-rw-r--r-- | src/shared/btsnoop.c | 13 | ||||
-rw-r--r-- | src/shared/btsnoop.h | 8 |
4 files changed, 14 insertions, 13 deletions
diff --git a/android/bluetoothd-snoop.c b/android/bluetoothd-snoop.c index 7526782f0..4b096632a 100644 --- a/android/bluetoothd-snoop.c +++ b/android/bluetoothd-snoop.c @@ -139,7 +139,7 @@ static void data_callback(int fd, uint32_t events, void *user_data) flags = get_flags_from_opcode(opcode); if (flags != 0xff) - btsnoop_write(snoop, tv, flags, monitor_buf, pktlen); + btsnoop_write(snoop, tv, flags, 0, monitor_buf, pktlen); } } diff --git a/monitor/control.c b/monitor/control.c index a89c0cecc..d25f4d550 100644 --- a/monitor/control.c +++ b/monitor/control.c @@ -970,7 +970,7 @@ static void data_callback(int fd, uint32_t events, void *user_data) data->buf, pktlen); break; case HCI_CHANNEL_MONITOR: - btsnoop_write_hci(btsnoop_file, tv, index, opcode, + btsnoop_write_hci(btsnoop_file, tv, index, opcode, 0, data->buf, pktlen); ellisys_inject_hci(tv, index, opcode, data->buf, pktlen); @@ -1290,7 +1290,7 @@ static void tty_callback(int fd, uint32_t events, void *user_data) opcode = le16_to_cpu(hdr->opcode); pktlen = data_len - 4 - hdr->hdr_len; - btsnoop_write_hci(btsnoop_file, tv, 0, opcode, + btsnoop_write_hci(btsnoop_file, tv, 0, opcode, 0, hdr->ext_hdr + hdr->hdr_len, pktlen); packet_monitor(tv, NULL, 0, opcode, hdr->ext_hdr + hdr->hdr_len, pktlen); diff --git a/src/shared/btsnoop.c b/src/shared/btsnoop.c index cec1b21aa..e20d1b382 100644 --- a/src/shared/btsnoop.c +++ b/src/shared/btsnoop.c @@ -198,7 +198,8 @@ uint32_t btsnoop_get_format(struct btsnoop *btsnoop) } bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv, - uint32_t flags, const void *data, uint16_t size) + uint32_t flags, uint32_t drops, const void *data, + uint16_t size) { struct btsnoop_pkt pkt; uint64_t ts; @@ -212,7 +213,7 @@ bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv, pkt.size = htobe32(size); pkt.len = htobe32(size); pkt.flags = htobe32(flags); - pkt.drops = htobe32(0); + pkt.drops = htobe32(drops); pkt.ts = htobe64(ts + 0x00E03AB44A676000ll); written = write(btsnoop->fd, &pkt, BTSNOOP_PKT_SIZE); @@ -254,8 +255,8 @@ static uint32_t get_flags_from_opcode(uint16_t opcode) } bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv, - uint16_t index, uint16_t opcode, - const void *data, uint16_t size) + uint16_t index, uint16_t opcode, uint32_t drops, + const void *data, uint16_t size) { uint32_t flags; @@ -283,7 +284,7 @@ bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv, return false; } - return btsnoop_write(btsnoop, tv, flags, data, size); + return btsnoop_write(btsnoop, tv, flags, drops, data, size); } bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv, @@ -303,7 +304,7 @@ bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv, return false; } - return btsnoop_write(btsnoop, tv, flags, data, size); + return btsnoop_write(btsnoop, tv, flags, 0, data, size); } static bool pklg_read_hci(struct btsnoop *btsnoop, struct timeval *tv, diff --git a/src/shared/btsnoop.h b/src/shared/btsnoop.h index 06a1c1bfd..dab2b2fe1 100644 --- a/src/shared/btsnoop.h +++ b/src/shared/btsnoop.h @@ -101,11 +101,11 @@ void btsnoop_unref(struct btsnoop *btsnoop); uint32_t btsnoop_get_format(struct btsnoop *btsnoop); -bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv, - uint32_t flags, const void *data, uint16_t size); +bool btsnoop_write(struct btsnoop *btsnoop, struct timeval *tv, uint32_t flags, + uint32_t drops, const void *data, uint16_t size); bool btsnoop_write_hci(struct btsnoop *btsnoop, struct timeval *tv, - uint16_t index, uint16_t opcode, - const void *data, uint16_t size); + uint16_t index, uint16_t opcode, uint32_t drops, + const void *data, uint16_t size); bool btsnoop_write_phy(struct btsnoop *btsnoop, struct timeval *tv, uint16_t frequency, const void *data, uint16_t size); |