shithub: riscv

ref: aa7c8cac1145d0cd6e9117deaa1f8c9f418bca17
dir: /sys/src/cmd/syscall/mkfile/

View raw version
</$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