mkioctls revision 53669
140455Sbdeset -e 240455Sbde 351960Sn_hibma# $FreeBSD: head/usr.bin/kdump/mkioctls 53669 1999-11-24 15:38:35Z guido $ 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>" 3853669Sguido print "#include <netinet/ip_compat.h>" 3953669Sguido print "#include <netinet/ip_fil.h>" 4053669Sguido print "#include <netinet/ip_auth.h>" 4153669Sguido print "#include <netinet/ip_nat.h>" 4253669Sguido print "#include <netinet/ip_frag.h>" 4353669Sguido print "#include <netinet/ip_state.h>" 4452130Speter print "#include <netinet/ip_mroute.h>" 4540455Sbde print "#include <cam/cam.h>" 4640455Sbde print "#include <stdio.h>" 471590Srgrimes print "" 4840455Sbde print ioctl_includes 4940455Sbde print "" 501590Srgrimes print "char *" 5153079Sdfr print "ioctlname(register_t val)" 521590Srgrimes print "{" 531590Srgrimes print "" 5440455Sbde generate_case_statement = 0 5540455Sbde if (generate_case_statement) 5640455Sbde print "\tswitch(val) {" 571590Srgrimes} 581590Srgrimes 5940455Sbde/^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO/ { 601590Srgrimes 611590Srgrimes # find where the name starts 621590Srgrimes for (i = 1; i <= NF; i++) 631590Srgrimes if ($i ~ /define/) 641590Srgrimes break; 651590Srgrimes ++i; 661590Srgrimes # 6740455Sbde if (generate_case_statement) 6840455Sbde printf("\tcase %s:\n\t\treturn(\"%s\");\n", $i, $i); 6940455Sbde else 7040455Sbde printf("\tif (val == %s)\n\t\treturn(\"%s\");\n", $i, $i); 711590Srgrimes 721590Srgrimes} 731590SrgrimesEND { 7440455Sbde if (generate_case_statement) 7540455Sbde print "\t}" 761590Srgrimes print "\n\treturn(NULL);" 771590Srgrimes print "}" 781590Srgrimes} 7916631Sbde' 80