From bbe209ce190c25008d8ffca6143b700ec4ff2c55 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 19 Aug 2013 22:33:07 -0700 Subject: [PATCH] monitor: Use separate btsnoop write routine --- monitor/btsnoop.c | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/monitor/btsnoop.c b/monitor/btsnoop.c index 04a6dff17..49d399811 100644 --- a/monitor/btsnoop.c +++ b/monitor/btsnoop.c @@ -104,14 +104,37 @@ void btsnoop_create(const char *path) } } -void btsnoop_write(struct timeval *tv, uint16_t index, uint16_t opcode, +static void do_write(struct timeval *tv, uint32_t flags, const void *data, uint16_t size) { struct btsnoop_pkt pkt; - uint32_t flags; uint64_t ts; ssize_t written; + ts = (tv->tv_sec - 946684800ll) * 1000000ll + tv->tv_usec; + + pkt.size = htonl(size); + pkt.len = htonl(size); + pkt.flags = htonl(flags); + pkt.drops = htonl(0); + pkt.ts = hton64(ts + 0x00E03AB44A676000ll); + + written = write(btsnoop_fd, &pkt, BTSNOOP_PKT_SIZE); + if (written < 0) + return; + + if (data && size > 0) { + written = write(btsnoop_fd, data, size); + if (written < 0) + return; + } +} + +void btsnoop_write(struct timeval *tv, uint16_t index, uint16_t opcode, + const void *data, uint16_t size) +{ + uint32_t flags; + if (!tv) return; @@ -139,23 +162,7 @@ void btsnoop_write(struct timeval *tv, uint16_t index, uint16_t opcode, return; } - ts = (tv->tv_sec - 946684800ll) * 1000000ll + tv->tv_usec; - - pkt.size = htonl(size); - pkt.len = htonl(size); - pkt.flags = htonl(flags); - pkt.drops = htonl(0); - pkt.ts = hton64(ts + 0x00E03AB44A676000ll); - - written = write(btsnoop_fd, &pkt, BTSNOOP_PKT_SIZE); - if (written < 0) - return; - - if (data && size > 0) { - written = write(btsnoop_fd, data, size); - if (written < 0) - return; - } + do_write(tv, flags, data, size); } int btsnoop_open(const char *path) -- 2.47.3