8 0) echo "usage: $0 input-file <config-file>" 1>&2
13 if [ -n "$2" -a -f "$2" ]; then
27 /^#/!s/\([{}()*,]\)/ \1 /g
31 printf "#include <sys/param.h>\n"
32 printf "#include <machine/atomic.h>\n"
34 printf "#include <sys/_semaphore.h>\n"
35 printf "#include <sys/aio.h>\n"
36 printf "#include <sys/cpuset.h>\n"
37 printf "#include <sys/jail.h>\n"
38 printf "#include <sys/linker.h>\n"
39 printf "#include <sys/mac.h>\n"
40 printf "#include <sys/module.h>\n"
41 printf "#include <sys/mount.h>\n"
42 printf "#include <sys/mqueue.h>\n"
43 printf "#include <sys/msg.h>\n"
44 printf "#include <sys/poll.h>\n"
45 printf "#include <sys/proc.h>\n"
46 printf "#include <sys/resource.h>\n"
47 printf "#include <sys/sem.h>\n"
48 printf "#include <sys/shm.h>\n"
49 printf "#include <sys/signal.h>\n"
50 printf "#include <sys/signalvar.h>\n"
51 printf "#include <sys/socket.h>\n"
52 printf "#include <sys/stat.h>\n"
53 printf "#include <sys/thr.h>\n"
54 printf "#include <sys/time.h>\n"
55 printf "#include <sys/timex.h>\n"
56 printf "#include <sys/timeffc.h>\n"
57 printf "#include <sys/ucontext.h>\n"
58 printf "#include <sys/utsname.h>\n"
59 printf "#include <sys/uuid.h>\n"
60 printf "#include <sys/wait.h>\n"
62 printf "#ifndef _ACL_PRIVATE\n"
63 printf "#define _ACL_PRIVATE\n"
65 printf "#include <sys/acl.h>\n"
67 printf "#ifndef EBUSY\n"
68 printf "#define errno 0\n"
69 printf "#define EBUSY 0\n"
71 printf "#include <sys/umtx.h>\n"
73 # existing compat shims
74 printf "struct ostat;\n"
75 printf "struct nstat;\n"
76 printf "struct ostatfs;\n"
77 printf "struct osigaction;\n"
78 printf "struct osigcontext;\n"
79 printf "struct oaiocb;\n"
80 printf "union semun_old;\n"
81 printf "typedef unsigned int osigset_t;\n"
82 printf "struct msqid_ds_old;\n"
83 printf "struct shmid_ds_old;\n"
85 printf "struct ucontext4;\n"
86 printf "struct sctp_sndrcvinfo;\n"
89 NF < 4 || $1 !~ /^[0-9]+$/ {
92 $3 ~ "UNIMPL" || $3 ~ "OBSOL" || $3 ~ "NODEF" || $3 ~ "NOPROTO" ||
97 if ($3 ~ /COMPAT[0-9]*/) {
98 n = split($3, flags, /\|/)
99 for (i = 1; i <= n; i++) {
100 if (flags[i] == "COMPAT") {
102 } else if (flags[i] ~ /COMPAT[0-9]+/) {
103 sub(/COMPAT/, "freebsd", flags[i])
114 for ( i = 5; i <= NF; i++) {
117 if ($i == "," || $i == ")")
118 impl = impl " __unused"
123 printf "%s\n{ return %s; }\n", impl, r
127 printf "invalid line: "