From b5a8f0b30560d26e65b32152f0b96d8b68645fe2 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 9 Dec 2005 14:23:01 +0000 Subject: [PATCH] hcidump: Decode class of device and BD_ADDR for inquiry filter --- tools/parser/hci.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tools/parser/hci.c b/tools/parser/hci.c index a1fc1a4a9..aeb7c7c99 100644 --- a/tools/parser/hci.c +++ b/tools/parser/hci.c @@ -768,6 +768,8 @@ static inline void set_event_mask_dump(int level, struct frame *frm) static inline void set_event_flt_dump(int level, struct frame *frm) { set_event_flt_cp *cp = frm->ptr; + uint8_t dev_class[3], dev_mask[3]; + char addr[18]; p_indent(level, frm); printf("type %d condition %d\n", cp->flt_type, @@ -783,8 +785,19 @@ static inline void set_event_flt_dump(int level, struct frame *frm) printf("Inquiry result"); switch (cp->cond_type) { case INQ_RESULT_RETURN_ALL: + printf(" for all devices\n"); + break; case INQ_RESULT_RETURN_CLASS: + memcpy(dev_class, cp->condition, 3); + memcpy(dev_mask, cp->condition + 3, 3); + printf(" with class 0x%2.2x%2.2x%2.2x mask 0x%2.2x%2.2x%2.2x\n", + dev_class[2], dev_class[1], dev_class[0], + dev_mask[2], dev_mask[1], dev_mask[0]); + break; case INQ_RESULT_RETURN_BDADDR: + ba2str((bdaddr_t *) cp->condition, addr); + printf(" with bdaddr %s\n", addr); + break; default: printf("\n"); break; -- 2.47.3