glibc/mach/shortcut.awk
Roland McGrath 9ce8b3c817 * hurd/Versions (libc: GLIBC_2.0): Add _S_catch_exception_raise_state,
_S_catch_exception_raise_state_identity,
	_hurdsig_fault_catch_exception_raise_state,
	_hurdsig_fault_catch_exception_raise_state_identity.

	* mach/shortcut.awk: Don't apply the /^}$/ rule when $proto == "".

	* sysdeps/mach/getsysstats.c (__get_avphys_pages) [HOST_VM_INFO]: Use
	__host_info with HOST_VM_INFO flavor instead of __vm_statistics.

	* sysdeps/mach/hurd/getpriority.c [TASK_SCHED_TIMESHARE_INFO]: Find
	`base_priority' in PIP->timeshare_base_info instead of PIP->taskinfo.

	* sysdeps/mach/hurd/dl-sysdep.c [FMH]: Define for i386 only.
	(fmh, unfmh): Define these functions only #if FMH.  Otherwise define
	them as no-op macros.
	[FMH] (ELF_MACHINE_USER_ADDRESS_MASK): Redefine it to zero.
	(__mmap): Uncomment uses of ELF_MACHINE_USER_ADDRESS_MASK.

	* sysdeps/powerpc/dl-machine.h
	(ELF_MACHINE_USER_ADDRESS_MASK): New macro.
2002-02-18 01:50:52 +00:00

49 lines
1.2 KiB
Awk

# 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 }
# 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;
}