#!/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";
	}
}
