diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-09-12 11:03:22 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-09-12 11:03:22 -0300 |
commit | 25f2a457f9a6615883a81c71c4e6d2dfe4f308b1 (patch) | |
tree | edd5f8893d0eb4c9371d3d8dde977f6dedb6a4c0 /contrib/usb_parse | |
parent | f07b90a87a92bd3df088c7f4a40fc46a26f7c630 (diff) |
contrib: move parsers to a separate directory
In order to organize the tree, let's place the USB parsers
on a separate directory.
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'contrib/usb_parse')
-rwxr-xr-x | contrib/usb_parse/parse_usb.pl | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/contrib/usb_parse/parse_usb.pl b/contrib/usb_parse/parse_usb.pl deleted file mode 100755 index 3d889438..00000000 --- a/contrib/usb_parse/parse_usb.pl +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/perl -use strict; - -# Copyright (C) 2010 Mauro Carvalho Chehab -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# This small script parses USB dumps generated by several drivers, -# decoding USB bits. -# -# To use it, do: -# dmesg | ./parse_usb.pl -# -# Also, there are other utilities that produce similar outputs, and it -# is not hard to parse some USB analyzers log into the expected format. -# - -sub type_req($) -{ - my $reqtype = shift; - my $s; - - if ($reqtype & 0x80) { - $s = "RD "; - } else { - $s = "WR "; - } - if (($reqtype & 0x60) == 0x20) { - $s .= "CLAS "; - } elsif (($reqtype & 0x60) == 0x40) { - $s .= "VEND "; - } elsif (($reqtype & 0x60) == 0x60) { - $s .= "RSVD "; - } - - if (($reqtype & 0x1f) == 0x00) { - $s .= "DEV "; - } elsif (($reqtype & 0x1f) == 0x01) { - $s .= "INT "; - } elsif (($reqtype & 0x1f) == 0x02) { - $s .= "EP "; - } elsif (($reqtype & 0x1f) == 0x03) { - $s .= "OTHER "; - } elsif (($reqtype & 0x1f) == 0x04) { - $s .= "PORT "; - } elsif (($reqtype & 0x1f) == 0x05) { - $s .= "RPIPE "; - } else { - $s .= sprintf "RECIP 0x%02x ", $reqtype & 0x1f; - } - - $s =~ s/\s+$//; - return $s; -} - -while (<>) { - if (m/(.*)([0-9a-f].) ([0-9a-f].) ([0-9a-f].) ([0-9a-f].) ([0-9a-f].) ([0-9a-f].) ([0-9a-f].) ([0-9a-f].)[\<\>\s]+(.*)/) { - my $timestamp = $1; - my $reqtype = hex($2); - my $req = hex($3); - my $wvalue = hex("$5$4"); - my $windex = hex("$7$6"); - my $wlen = hex("$9$8"); - my $payload = $10; - - $timestamp =~ s/^\s+//; - $timestamp =~ s/\s+$//; - - printf("%s %s(0x%02x), Req 0x%02x, wValue: 0x%04x, wIndex 0x%04x, wlen %d: %s\n", - $timestamp, type_req($reqtype), $reqtype, $req, $wvalue, $windex, $wlen, $payload); - } -} |