summaryrefslogtreecommitdiff
path: root/src/syscall-ppc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/syscall-ppc.h')
-rw-r--r--src/syscall-ppc.h63
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 " \