diff options
Diffstat (limited to 'mach/shortcut.awk')
-rw-r--r-- | mach/shortcut.awk | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/mach/shortcut.awk b/mach/shortcut.awk deleted file mode 100644 index ea283d49ba..0000000000 --- a/mach/shortcut.awk +++ /dev/null @@ -1,50 +0,0 @@ -# Icky intimate knowledge of MiG output. - -BEGIN { print "/* This file is generated by shortcut.awk. */"; - echo=1; - inproto=0; proto=""; arglist=""; - } - -$1 == "LINTLIBRARY" { print "#include <mach.h>"; next } - -$1 == "weak_alias" { next } - -# Copy the first line of the definition, but -# replace the function name (RPC) with CALL. -$NF == rpc \ - { - for (i = 1; i < NF; ++i) printf "%s ", $i; - print call; - next; - } - -# Collect the lines of the prototype in PROTO, and extract the parameter -# names into ARGLIST. -NF == 1 && $1 == ")" { inproto=0 } -inproto { proto = proto $0; - arg = $NF; - gsub(/[^a-zA-Z0-9_,]/, "", arg); - arglist = arglist arg; - } -NF == 1 && $1 == "(" { inproto=1 } - -/^{$/ { echo=0; } - -echo == 1 { print $0; } - -/^}$/ && proto != "" \ - { - print "{"; - print " kern_return_t err;"; - print " extern kern_return_t " syscall " (" proto ");"; - print " extern kern_return_t " rpc " (" proto ");"; - print " err = " syscall " (" arglist ");"; - print " if (err == MACH_SEND_INTERRUPTED)"; - print " err = " rpc " (" arglist ");"; - print " return err;" - print "}"; - print "weak_alias (" call ", " alias ")"; - # Declare RPC so the weak_alias that follows will work. - print "extern __typeof (" call ") " rpc ";"; - echo = 1; - } |