_syscall6 for klibc
klibc requires this change for unistd.h
include/asm-ppc/unistd.h +13 -2
@@ -279,6 +279,7 @@ registerunsigned long __sc_5 __asm__ ("r5" ); \ registerunsigned long __sc_6 __asm__ ("r6" ); \ registerunsigned long __sc_7 __asm__ ("r7" ); \ + registerunsigned long __sc_8 __asm__ ("r8" ); \ \ __sc_loadargs_##nr(name, args); \ __asm__ __volatile__ \
@@ -287,10 +288,10 @@ : "=&r" (__sc_0), \ "=&r" (__sc_3), "=&r" (__sc_4), \ "=&r" (__sc_5), "=&r" (__sc_6), \ - "=&r" (__sc_7) \ + "=&r" (__sc_7), "=&r" (__sc_8) \ : __sc_asm_input_##nr \ : "cr0", "ctr", "memory", \ - "r8", "r9", "r10","r11", "r12"); \ + "r9", "r10","r11", "r12"); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \
@@ -318,6 +319,9 @@#define __sc_loadargs_5 (name, arg1, arg2, arg3, arg4, arg5) \ __sc_loadargs_4(name, arg1, arg2, arg3, arg4); \ __sc_7 = (unsigned long) (arg5) +#define __sc_loadargs_6 (name, arg1, arg2, arg3, arg4, arg5, arg6) \ + __sc_loadargs_5(name, arg1, arg2, arg3, arg4, arg5); \ + __sc_8 = (unsigned long) (arg6)#define __sc_asm_input_0 "0" (__sc_0)#define __sc_asm_input_1 __sc_asm_input_0, "1" (__sc_3)
@@ -325,6 +329,7 @@#define __sc_asm_input_3 __sc_asm_input_2, "3" (__sc_5)#define __sc_asm_input_4 __sc_asm_input_3, "4" (__sc_6)#define __sc_asm_input_5 __sc_asm_input_4, "5" (__sc_7) +#define __sc_asm_input_6 __sc_asm_input_5, "6" (__sc_8)#define _syscall0 (type,name) \ type name(void) \
@@ -362,6 +367,12 @@ type name(type1 arg1, type2 arg2, type3__syscall_nr (5 , type, name, arg1, arg2, arg3, arg4, arg5); \ } +#define _syscall6 (type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \ +type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \ +{ \ + __syscall_nr(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6); \ +} +#ifdef __KERNEL__#define __NR__exit __NR_exit
--
USB is for mice, FireWire is for men!
sUse lINUX ag, nÜRNBERG
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/