From d3393028e6464f4ddaca0d3bb08d58aefd83d5bf Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 20 Aug 2013 15:58:53 -0700 Subject: [PATCH] monitor: Allow specifying type of btsnoop file to create --- monitor/btsnoop.c | 13 +++++++++++-- monitor/btsnoop.h | 2 +- monitor/main.c | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/monitor/btsnoop.c b/monitor/btsnoop.c index 9cd5282d4..f59ec9914 100644 --- a/monitor/btsnoop.c +++ b/monitor/btsnoop.c @@ -77,7 +77,7 @@ static uint32_t btsnoop_type = 0; static int btsnoop_fd = -1; static uint16_t btsnoop_index = 0xffff; -void btsnoop_create(const char *path) +void btsnoop_create(const char *path, uint32_t type) { struct btsnoop_hdr hdr; ssize_t written; @@ -85,12 +85,21 @@ void btsnoop_create(const char *path) if (btsnoop_fd >= 0) return; + switch (type) { + case BTSNOOP_TYPE_HCI: + case BTSNOOP_TYPE_EXTENDED_HCI: + break; + + default: + return; + } + btsnoop_fd = open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (btsnoop_fd < 0) return; - btsnoop_type = BTSNOOP_TYPE_EXTENDED_HCI; + btsnoop_type = type; memcpy(hdr.id, btsnoop_id, sizeof(btsnoop_id)); hdr.version = htonl(btsnoop_version); diff --git a/monitor/btsnoop.h b/monitor/btsnoop.h index de0bd9aac..3165090d7 100644 --- a/monitor/btsnoop.h +++ b/monitor/btsnoop.h @@ -31,7 +31,7 @@ #define BTSNOOP_TYPE_EXTENDED_HCI 2001 -void btsnoop_create(const char *path); +void btsnoop_create(const char *path, uint32_t type); void btsnoop_write(struct timeval *tv, uint16_t index, uint16_t opcode, const void *data, uint16_t size); int btsnoop_open(const char *path, uint32_t *type); diff --git a/monitor/main.c b/monitor/main.c index 8285a48c7..85e618de5 100644 --- a/monitor/main.c +++ b/monitor/main.c @@ -99,7 +99,7 @@ int main(int argc, char *argv[]) reader_path = optarg; break; case 'w': - btsnoop_create(optarg); + btsnoop_create(optarg, BTSNOOP_TYPE_EXTENDED_HCI); break; case 's': control_server(optarg); -- 2.47.3