$NetBSD: patch-ci,v 1.1 2001/01/10 01:28:51 briggs Exp $ --- /dev/null Wed Dec 31 19:00:00 1969 +++ machdep/syscall-template-powerpc-netbsd.S Tue Jan 9 00:01:33 2001 @@ -0,0 +1,45 @@ +#include +#define COMPAT_43 +#include + +#ifdef SYS___sigsuspend14 +#define SYS_sigsuspend SYS___sigsuspend14 +#endif + +#ifdef SYS___sigaction14 +#define SYS_sigaction SYS___sigaction14 +#endif + +#ifdef SYS___sigprocmask14 +#define SYS_sigprocmask SYS___sigprocmask14 +#endif + +#undef SYSCALL + +/* Kernel syscall interface: + Input: + 0 - system call number + 3-8 - arguments, as in C + Output: + so - (summary overflow) clear iff successful + + This macro is similar to SYSCALL in asm.h, but not completely. + There's room for optimization, if we assume this will continue to + be assembled as one file. + + This macro expansions does not include the return instruction. + If there's no other work to be done, use something like: + SYSCALL(foo) ; ret + If there is other work to do (in fork, maybe?), do it after the + SYSCALL invocation. */ + +#define SYSCALL(x) \ + ENTRY(machdep_sys_ ## x) \ + li 0, SYS_ ## x ; \ + sc ; \ + bnslr ; \ + b PIC_PLT(_C_LABEL(machdep_cerror)) + +#define XSYSCALL(x) SYSCALL(x) ; blr + + XSYSCALL(SYSCALL_NAME)