aboutsummaryrefslogtreecommitdiff
path: root/script/gen-manual-mach.sh
diff options
context:
space:
mode:
Diffstat (limited to 'script/gen-manual-mach.sh')
-rwxr-xr-xscript/gen-manual-mach.sh20
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