ref: cdf3c4900b7fc1b17c41008f45e91371b7ff023a
dir: /sys/src/cmd/syscall/mkfile/
</$objtype/mkfile
TARG=syscall
OFILES=syscall.$O\
HFILES=tab.h\
BIN=/$objtype/bin
UPDATE=\
mkfile\
${OFILES:%.$O=%.c}\
${TARG:%=/386/bin/%}\
</sys/src/cmd/mkone
SYSCALL=/sys/src/libc/9syscall/sys.h
tab.h: $SYSCALL
awk '
BEGIN{ print "enum{" }
{ printf "%s, ", $2 }
END{
print "READ, WRITE, NTAB"
print "};"
}' <$SYSCALL >$target
awk '
BEGIN{ print "struct Call tab[] = {" }
{ printf "[%s] \"%s\", (int(*)(...))%s,\n",
$2, tolower($2), tolower($2)
}
END{
print "[READ] \"read\", (int(*)(...))read,"
print "[WRITE] \"write\", (int(*)(...))write,"
print "[NTAB] nil, 0"
print "};"
}' <$SYSCALL >>$target
clean:V:
rm -f *.[$OS] [$OS].out $TARG $HFILES