summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/bluetoothd-snoop.c2
-rw-r--r--monitor/control.c4
-rw-r--r--src/shared/btsnoop.c13
-rw-r--r--src/shared/btsnoop.h8
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);