diff --git a/sys/src/cmd/syscall/mkfile b/sys/src/cmd/syscall/mkfile index 18985a0ec..73af87d0b 100644 --- a/sys/src/cmd/syscall/mkfile +++ b/sys/src/cmd/syscall/mkfile @@ -16,25 +16,8 @@ UPDATE=\ 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 +tab.h: $SYSCALL mktab.awk + mktab.awk $SYSCALL >$target clean:V: rm -f *.[$OS] [$OS].out $TARG $HFILES diff --git a/sys/src/cmd/syscall/mktab.awk b/sys/src/cmd/syscall/mktab.awk new file mode 100755 index 000000000..ab8708022 --- /dev/null +++ b/sys/src/cmd/syscall/mktab.awk @@ -0,0 +1,14 @@ +#!/bin/awk -f +{ e = e $2 ", " + s = s sprintf("[%s] \"%s\", (int(*)(...))%s,\n", + $2, tolower($2), tolower($2)) +} +END{ + e = e "READ, WRITE, NTAB" + s = s "[READ] \"read\", (int(*)(...))read,\n" + s = s "[WRITE] \"write\", (int(*)(...))write,\n" + s = s "[NTAB] nil, 0\n" + + print "enum{", e, "};" + print "struct Call tab[] = {\n", s, "};" +}