--- /dev/null
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+my $in_read = 0;
+my $wait = 0;
+my $read = '';
+
+while(<>) {
+ s/[\n\r]+$//;
+ if ( /IRP_MJ_WRITE.*:\s*(.*)/ ) {
+ print "> $1\n";
+ } elsif ( /(IRP_MJ_READ|IOCTL_SERIAL_WAIT_ON_MASK)/ ) {
+ $in_read++;
+ print "#[$in_read] $_\n";
+ } elsif ( $in_read && /SUCCESS\s+Length\s+\d+:\s*([0-9a-fA-F\s]+)/ ) {
+ $read .= $1;
+ print "#<$in_read $_\n";
+ my $len = hex($1) if ( $read =~ m/^([0-9a-f]{2})/i );
+ print "#< $read [$len]\n";
+ if ( length($read) >= ( $len * 3 - 1 ) ) {
+ print "< $read\n";
+ $in_read = 0;
+ $read = '';
+ }
+ } else {
+ print "# $_\n";
+ }
+}