Deleted Added
full compact
mkioctls (53669) mkioctls (54081)
1set -e
2
1set -e
2
3# $FreeBSD: head/usr.bin/kdump/mkioctls 53669 1999-11-24 15:38:35Z guido $
3# $FreeBSD: head/usr.bin/kdump/mkioctls 54081 1999-12-03 12:50:02Z marcel $
4
4
5if [ "x$1" = "x-s" ]; then
6 use_switch=1
7 shift
8else
9 use_switch=0
10fi
11
12if [ -z "$1" ]; then
13 echo "usage: sh $0 [-s] include-dir"
14 exit 1
15fi
16
5# Build a list of headers that have ioctls in them.
6# XXX should we use an ANSI cpp?
7# XXX netipx conflicts with netns (leave out netns).
8ioctl_includes=`
17# Build a list of headers that have ioctls in them.
18# XXX should we use an ANSI cpp?
19# XXX netipx conflicts with netns (leave out netns).
20ioctl_includes=`
9 cd $DESTDIR/usr/include
21 cd $1
10 find * -name '*.h' -follow |
11 egrep -v '^(netns)/' |
12 xargs egrep -l \
13'^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-0_]*[ ]+_IO[^a-z0-9_]' |
14 sed -e 's/^/#include </' -e s'/$/>/'
15`
16
17echo "$ioctl_includes" |
22 find * -name '*.h' -follow |
23 egrep -v '^(netns)/' |
24 xargs egrep -l \
25'^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-0_]*[ ]+_IO[^a-z0-9_]' |
26 sed -e 's/^/#include </' -e s'/$/>/'
27`
28
29echo "$ioctl_includes" |
18 cpp -I$DESTDIR/usr/include -dM |
19 awk -v ioctl_includes="$ioctl_includes" '
30 gcc -E -I$1 -dM - |
31 awk -v ioctl_includes="$ioctl_includes" -v use_switch="$use_switch" '
20BEGIN {
21 print "/* XXX obnoxious prerequisites. */"
22 print "#define COMPAT_43"
23 print "#include <sys/param.h>"
24 print "#include <sys/devicestat.h>"
25 print "#include <sys/disklabel.h>"
26 print "#include <sys/dkbad.h>"
27 print "#include <sys/socket.h>"

--- 18 unchanged lines hidden (view full) ---

46 print "#include <stdio.h>"
47 print ""
48 print ioctl_includes
49 print ""
50 print "char *"
51 print "ioctlname(register_t val)"
52 print "{"
53 print ""
32BEGIN {
33 print "/* XXX obnoxious prerequisites. */"
34 print "#define COMPAT_43"
35 print "#include <sys/param.h>"
36 print "#include <sys/devicestat.h>"
37 print "#include <sys/disklabel.h>"
38 print "#include <sys/dkbad.h>"
39 print "#include <sys/socket.h>"

--- 18 unchanged lines hidden (view full) ---

58 print "#include <stdio.h>"
59 print ""
60 print ioctl_includes
61 print ""
62 print "char *"
63 print "ioctlname(register_t val)"
64 print "{"
65 print ""
54 generate_case_statement = 0
55 if (generate_case_statement)
66 if (use_switch)
56 print "\tswitch(val) {"
57}
58
59/^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO/ {
60
61 # find where the name starts
62 for (i = 1; i <= NF; i++)
63 if ($i ~ /define/)
64 break;
65 ++i;
66 #
67 print "\tswitch(val) {"
68}
69
70/^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO/ {
71
72 # find where the name starts
73 for (i = 1; i <= NF; i++)
74 if ($i ~ /define/)
75 break;
76 ++i;
77 #
67 if (generate_case_statement)
78 if (use_switch)
68 printf("\tcase %s:\n\t\treturn(\"%s\");\n", $i, $i);
69 else
70 printf("\tif (val == %s)\n\t\treturn(\"%s\");\n", $i, $i);
71
72}
73END {
79 printf("\tcase %s:\n\t\treturn(\"%s\");\n", $i, $i);
80 else
81 printf("\tif (val == %s)\n\t\treturn(\"%s\");\n", $i, $i);
82
83}
84END {
74 if (generate_case_statement)
85 if (use_switch)
75 print "\t}"
76 print "\n\treturn(NULL);"
77 print "}"
78}
79'
86 print "\t}"
87 print "\n\treturn(NULL);"
88 print "}"
89}
90'