diff options
Diffstat (limited to 'src/syscall-ppc.h')
-rw-r--r-- | src/syscall-ppc.h | 63 |
1 files changed, 16 insertions, 47 deletions
diff --git a/src/syscall-ppc.h b/src/syscall-ppc.h index af218d9..ae26166 100644 --- a/src/syscall-ppc.h +++ b/src/syscall-ppc.h @@ -11,8 +11,8 @@ #define __syscall_clobbers \ "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" -#define io_syscall1(type,name,type1,arg1) \ -type name(type1 arg1) \ +#define io_syscall1(type,fname,sname,type1,arg1) \ +type fname(type1 arg1) \ { \ unsigned long __sc_ret, __sc_err; \ { \ @@ -20,7 +20,7 @@ type name(type1 arg1) \ register unsigned long __sc_3 __asm__ ("r3"); \ \ __sc_3 = (unsigned long) (arg1); \ - __sc_0 = __NR_##name; \ + __sc_0 = __NR_##sname; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ @@ -31,11 +31,11 @@ type name(type1 arg1) \ __sc_err = __sc_0; \ } \ if ( __sc_err & 0x10000000 ) return -((int)__sc_ret); \ - return (type) __sc_ret; \ + return (type) __sc_ret; \ } -#define io_syscall2(type,name,type1,arg1,type2,arg2) \ -type name(type1 arg1, type2 arg2) \ +#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ +type fname(type1 arg1, type2 arg2) \ { \ unsigned long __sc_ret, __sc_err; \ { \ @@ -45,7 +45,7 @@ type name(type1 arg1, type2 arg2) \ \ __sc_3 = (unsigned long) (arg1); \ __sc_4 = (unsigned long) (arg2); \ - __sc_0 = __NR_##name; \ + __sc_0 = __NR_##sname; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ @@ -60,8 +60,8 @@ type name(type1 arg1, type2 arg2) \ return (type) __sc_ret; \ } -#define io_syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ +#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ +type fname(type1 arg1, type2 arg2, type3 arg3) \ { \ unsigned long __sc_ret, __sc_err; \ { \ @@ -73,7 +73,7 @@ type name(type1 arg1, type2 arg2, type3 arg3) \ __sc_3 = (unsigned long) (arg1); \ __sc_4 = (unsigned long) (arg2); \ __sc_5 = (unsigned long) (arg3); \ - __sc_0 = __NR_##name; \ + __sc_0 = __NR_##sname; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ @@ -89,39 +89,8 @@ type name(type1 arg1, type2 arg2, type3 arg3) \ return (type) __sc_ret; \ } -#define io_syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - register unsigned long __sc_0 __asm__ ("r0"); \ - register unsigned long __sc_3 __asm__ ("r3"); \ - register unsigned long __sc_4 __asm__ ("r4"); \ - register unsigned long __sc_5 __asm__ ("r5"); \ - register unsigned long __sc_6 __asm__ ("r6"); \ - \ - __sc_3 = (unsigned long) (arg1); \ - __sc_4 = (unsigned long) (arg2); \ - __sc_5 = (unsigned long) (arg3); \ - __sc_6 = (unsigned long) (arg4); \ - __sc_0 = __NR_##name; \ - __asm__ __volatile__ \ - ("sc \n\t" \ - "mfcr %1 " \ - : "=&r" (__sc_3), "=&r" (__sc_0) \ - : "0" (__sc_3), "1" (__sc_0), \ - "r" (__sc_4), \ - "r" (__sc_5), \ - "r" (__sc_6) \ - : __syscall_clobbers); \ - __sc_ret = __sc_3; \ - __sc_err = __sc_0; \ - } \ - if ( __sc_err & 0x10000000 ) return -((int)__sc_ret); \ - return (type) __sc_ret; \ -} -#define io_syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ +#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ +type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ { \ unsigned long __sc_ret, __sc_err; \ { \ @@ -135,7 +104,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ __sc_4 = (unsigned long) (arg2); \ __sc_5 = (unsigned long) (arg3); \ __sc_6 = (unsigned long) (arg4); \ - __sc_0 = __NR_##name; \ + __sc_0 = __NR_##sname; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ @@ -152,8 +121,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ return (type) __sc_ret; \ } -#define io_syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ +#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ +type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ { \ unsigned long __sc_ret, __sc_err; \ { \ @@ -169,7 +138,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ __sc_5 = (unsigned long) (arg3); \ __sc_6 = (unsigned long) (arg4); \ __sc_7 = (unsigned long) (arg5); \ - __sc_0 = __NR_##name; \ + __sc_0 = __NR_##sname; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ |