Diff between 0b7e61c68e2d6ed554efd3d8ef65661261acfdda and 61585df5623a616d534846e9916da844e0a9c3ab

Changed Files

File Additions Deletions Status
tools/parser/hci.c +24 -0 modified

Full Patch

diff --git a/tools/parser/hci.c b/tools/parser/hci.c
index 037b8a2..9c439df 100644
--- a/tools/parser/hci.c
+++ b/tools/parser/hci.c
@@ -2219,6 +2219,27 @@ static inline void sync_conn_changed_dump(int level, struct frame *frm)
 	}
 }
 
+static inline void extended_inq_result_dump(int level, struct frame *frm)
+{
+	uint8_t num = get_u8(frm);
+	char addr[18];
+	int i;
+
+	for (i = 0; i < num; i++) {
+		extended_inquiry_info *info = frm->ptr;
+
+		ba2str(&info->bdaddr, addr);
+
+		p_indent(level, frm);
+		printf("bdaddr %s mode %d clkoffset 0x%4.4x class 0x%2.2x%2.2x%2.2x\n",
+			addr, info->pscan_rep_mode, btohs(info->clock_offset),
+			info->dev_class[2], info->dev_class[1], info->dev_class[0]);
+
+		frm->ptr += EXTENDED_INQUIRY_INFO_SIZE;
+		frm->len -= EXTENDED_INQUIRY_INFO_SIZE;
+	}
+}
+
 static inline void event_dump(int level, struct frame *frm)
 {
 	hci_event_hdr *hdr = frm->ptr;
@@ -2369,6 +2390,9 @@ static inline void event_dump(int level, struct frame *frm)
 	case EVT_SYNC_CONN_CHANGED:
 		sync_conn_changed_dump(level + 1, frm);
 		break;
+	case EVT_EXTENDED_INQUIRY_RESULT:
+		extended_inq_result_dump(level + 1, frm);
+		break;
 	default:
 		raw_dump(level, frm);
 		break;