Diff between 8da7fa1c2c759526e9439d8152b613fff84caa96 and a9134a625d13de2c5edc6e980093354b4b16e49e

Changed Files

File Additions Deletions Status
monitor/control.c +27 -5 modified

Full Patch

diff --git a/monitor/control.c b/monitor/control.c
index 2e6552e..288228e 100644
--- a/monitor/control.c
+++ b/monitor/control.c
@@ -809,7 +809,7 @@ void control_server(const char *path)
 void control_reader(const char *path)
 {
 	unsigned char buf[MAX_PACKET_SIZE];
-	uint16_t index, opcode, pktlen;
+	uint16_t pktlen;
 	uint32_t type;
 	struct timeval tv;
 
@@ -819,6 +819,7 @@ void control_reader(const char *path)
 	switch (type) {
 	case BTSNOOP_TYPE_HCI:
 	case BTSNOOP_TYPE_UART:
+	case BTSNOOP_TYPE_EXTENDED_PHY:
 		packet_del_filter(PACKET_FILTER_SHOW_INDEX);
 		break;
 
@@ -829,11 +830,32 @@ void control_reader(const char *path)
 
 	open_pager();
 
-	while (1) {
-		if (btsnoop_read_hci(&tv, &index, &opcode, buf, &pktlen) < 0)
-			break;
+	switch (type) {
+	case BTSNOOP_TYPE_HCI:
+	case BTSNOOP_TYPE_UART:
+	case BTSNOOP_TYPE_EXTENDED_HCI:
+		while (1) {
+			uint16_t index, opcode;
+
+			if (btsnoop_read_hci(&tv, &index, &opcode,
+							buf, &pktlen) < 0)
+				break;
 
-		packet_monitor(&tv, index, opcode, buf, pktlen);
+			packet_monitor(&tv, index, opcode, buf, pktlen);
+		}
+		break;
+
+	case BTSNOOP_TYPE_EXTENDED_PHY:
+		while (1) {
+			uint16_t frequency;
+
+			if (btsnoop_read_phy(&tv, &frequency,
+							buf, &pktlen) < 0)
+				break;
+
+			packet_simulator(&tv, frequency, buf, pktlen);
+		}
+		break;
 	}
 
 	close_pager();