diff --git a/android/bluetoothd-snoop.c b/android/bluetoothd-snoop.c
index 7526782..4b09663 100644
--- a/android/bluetoothd-snoop.c
+++ b/android/bluetoothd-snoop.c
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 a89c0ce..d25f4d5 100644
--- a/monitor/control.c
+++ b/monitor/control.c
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);
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 cec1b21..e20d1b3 100644
--- a/src/shared/btsnoop.c
+++ b/src/shared/btsnoop.c
}
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;
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);
}
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;
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,
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 06a1c1b..dab2b2f 100644
--- a/src/shared/btsnoop.h
+++ b/src/shared/btsnoop.h
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);