mkioctls revision 53079
140455Sbdeset -e 240455Sbde 351960Sn_hibma# $FreeBSD: head/usr.bin/kdump/mkioctls 53079 1999-11-10 08:41:08Z dfr $ 451960Sn_hibma 540455Sbde# Build a list of headers that have ioctls in them. 616631Sbde# XXX should we use an ANSI cpp? 740455Sbde# XXX netipx conflicts with netns (leave out netns). 840455Sbdeioctl_includes=` 940455Sbde cd $DESTDIR/usr/include 1040455Sbde find * -name '*.h' -follow | 1140455Sbde egrep -v '^(netns)/' | 1240455Sbde xargs egrep -l \ 1340455Sbde'^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-0_]*[ ]+_IO[^a-z0-9_]' | 1440455Sbde sed -e 's/^/#include </' -e s'/$/>/' 1540455Sbde` 1640455Sbde 1740455Sbdeecho "$ioctl_includes" | 1840455Sbde cpp -I$DESTDIR/usr/include -dM | 1940455Sbde awk -v ioctl_includes="$ioctl_includes" ' 201590SrgrimesBEGIN { 2140455Sbde print "/* XXX obnoxious prerequisites. */" 2240455Sbde print "#define COMPAT_43" 231590Srgrimes print "#include <sys/param.h>" 2440455Sbde print "#include <sys/devicestat.h>" 2540455Sbde print "#include <sys/disklabel.h>" 2640455Sbde print "#include <sys/dkbad.h>" 271590Srgrimes print "#include <sys/socket.h>" 2820287Swollman print "#include <sys/time.h>" 2940455Sbde print "#include <sys/tty.h>" 3040455Sbde print "#include <net/if.h>" 3140455Sbde print "#include <net/if_var.h>" 321590Srgrimes print "#include <net/route.h>" 3340455Sbde print "#include <netatm/atm.h>" 3440455Sbde print "#include <netatm/atm_if.h>" 3540455Sbde print "#include <netatm/atm_sap.h>" 3640455Sbde print "#include <netatm/atm_sys.h>" 3716631Sbde print "#include <netinet/in.h>" 3852130Speter print "#include <netinet/ip_mroute.h>" 3940455Sbde print "#include <cam/cam.h>" 4040455Sbde print "#include <stdio.h>" 411590Srgrimes print "" 4240455Sbde print ioctl_includes 4340455Sbde print "" 441590Srgrimes print "char *" 4553079Sdfr print "ioctlname(register_t val)" 461590Srgrimes print "{" 471590Srgrimes print "" 4840455Sbde generate_case_statement = 0 4940455Sbde if (generate_case_statement) 5040455Sbde print "\tswitch(val) {" 511590Srgrimes} 521590Srgrimes 5340455Sbde/^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO/ { 541590Srgrimes 551590Srgrimes # find where the name starts 561590Srgrimes for (i = 1; i <= NF; i++) 571590Srgrimes if ($i ~ /define/) 581590Srgrimes break; 591590Srgrimes ++i; 601590Srgrimes # 6140455Sbde if (generate_case_statement) 6240455Sbde printf("\tcase %s:\n\t\treturn(\"%s\");\n", $i, $i); 6340455Sbde else 6440455Sbde printf("\tif (val == %s)\n\t\treturn(\"%s\");\n", $i, $i); 651590Srgrimes 661590Srgrimes} 671590SrgrimesEND { 6840455Sbde if (generate_case_statement) 6940455Sbde print "\t}" 701590Srgrimes print "\n\treturn(NULL);" 711590Srgrimes print "}" 721590Srgrimes} 7316631Sbde' 74