OSDN Git Service

hcidump: Add basic AVCTP parsing
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 27 Jun 2011 09:05:26 +0000 (12:05 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 17 Dec 2012 22:53:03 +0000 (23:53 +0100)
tools/parser/avctp.c

index 4a8876c..aa2def1 100644 (file)
 
 #include "parser.h"
 
+static char *pt2str(uint8_t hdr)
+{
+       switch (hdr & 0x0c) {
+       case 0x00:
+               return "";
+       case 0x04:
+               return "Start";
+       case 0x08:
+               return "Cont";
+       case 0x0c:
+               return "End";
+       default:
+               return "Unk";
+       }
+}
+
 void avctp_dump(int level, struct frame *frm)
 {
+       uint8_t hdr;
+       uint16_t pid;
+
        p_indent(level, frm);
-       printf("AVCTP:\n");
 
-       raw_dump(level, frm);
+       hdr = get_u8(frm);
+       pid = get_u16(frm);
+
+       printf("AVCTP: %s %s: pt 0x%02x transaction %d pid 0x%04x \n",
+                               hdr & 0x02 ? "Response" : "Command",
+                               pt2str(hdr), hdr & 0x0c, hdr >> 4, pid);
+
+       raw_dump(level + 1, frm);
 }