#!/bin/sh
#
# mkgraph file... -- make graph from MPD timings
#
# pipe output into: grap | pic | psroff
FILES="$@"
NFILES=`echo $FILES | wc -w`
cat <<EOF
.po .25i
.ft H
.G1
frame ht 7 width 7
coord log y
ticks bot from 1 to $NFILES
ticks left from .5 to 500 by *10
ticks left from 1 to 100 by *10
ticks left from 2 to 200 by *10
label left "\\(*msec"
copy thru X
"\$3" size -2 at \$1, \$2
X
EOF
n=0
for i in $FILES
do
n=`expr $n + 1`
awk <$i '
/^ *[0-9].*\..*\./ { printf "'$n' "; }
/loop control/ { print $3, "loop"; }
/local call/ { print $3, "call"; }
/i.* call, no new/ { print $3, "icall"; }
/i.* call, new process/ { print $3, "pcall"; }
/create.destroy/ { print $3, "create"; }
/semaphore P/ { print $3, "P"; }
/semaphore V/ { print $3, "V"; }
/semaphore pair/ { print $3, "PV"; }
/semaphore.*switch/ { print $3, "sem"; }
/asynchronous send/ { print $3, "asy"; }
/message.*switch/ { print $3, "msg"; }
/rendezvous/ { print $3, "rdv"; }
'
done
cat <<'EOF'
.G2
.sp .2i
.po 1i
.nf
.ps 7
.vs 8
EOF
n=0
for i in $FILES
do
n=`expr $n + 1`
echo $n. $i
done
exit
syntax highlighted by Code2HTML, v. 0.9.1