diff --git a/monitor/btsnoop.c b/monitor/btsnoop.c
index 9cd5282..f59ec99 100644
--- a/monitor/btsnoop.c
+++ b/monitor/btsnoop.c
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;
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 de0bd9a..3165090 100644
--- a/monitor/btsnoop.h
+++ b/monitor/btsnoop.h
#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 8285a48..85e618d 100644
--- a/monitor/main.c
+++ b/monitor/main.c
reader_path = optarg;
break;
case 'w':
- btsnoop_create(optarg);
+ btsnoop_create(optarg, BTSNOOP_TYPE_EXTENDED_HCI);
break;
case 's':
control_server(optarg);