diff options
Diffstat (limited to 'script/gen-manual-mach.sh')
-rwxr-xr-x | script/gen-manual-mach.sh | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/script/gen-manual-mach.sh b/script/gen-manual-mach.sh index b740af9..e973bce 100755 --- a/script/gen-manual-mach.sh +++ b/script/gen-manual-mach.sh @@ -1,13 +1,19 @@ #!/bin/bash out=generated/manual-mach.inc.h -(mig -user /dev/stdout -server /dev/null -header /dev/null /usr/include/mach/{thread_act,mach_vm}.defs | - unifdef -U__MigTypeCheck | - grep -v '#define USING_VOUCHERS' | +(mig -user /dev/stdout -server /dev/null -header /dev/stdout /usr/include/mach/{thread_act,mach_vm}.defs | + egrep -v '^(#ifndef|#define|#endif).*_user_' | + egrep -v '#include "stdout"' | + unifdef -D__MigTypeCheck | sed -E 's/(mach_msg|memcpy)\(/manual_\1(/g; s/^\)/, mach_port_t reply_port)/; - s/mig_external kern_return_t /static kern_return_t manual_/; s/_kernelrpc_//; + s/^([a-z].*)?kern_return_t[[:blank:]]+([a-z])/\1kern_return_t manual_\2/; + s/mig_external/static/; + s/__defined/_manual__defined/g; s/mig_get_reply_port\(\)/reply_port/g' | - awk 'BEGIN { on = 1 } - /^\/\* Routine / { on = /thread_[gs]et_state|vm_remap/; } - on { print }' > $out) || rm -f $out + awk 'BEGIN { on = 1; } + /^\/\* Routine / || + (/__MIG_check__Reply__/ && /^#[ie]/) { on = /thread_[gs]et_state|vm_remap/; } + on { print; } + /#endif.*__AfterMigUserHeader/ { on = 1; } + ' > $out) || rm -f $out |