summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/sparc
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-07-03 16:44:59 -0400
committerMike Frysinger <vapier@gentoo.org>2009-07-08 21:39:32 -0400
commitb387d762361e6c109c6a60bced003e72447b0a33 (patch)
tree990642d77fa3f84f1f0a76998ed51d3a07a0ad76 /libc/sysdeps/linux/sparc
parentad539e7bc72abfcafeb5c4556a27058fb0d398a9 (diff)
syscall: unify common syscall defines
Unify all the common syscall defines in syscalls-common.h and scrub all the duplicated code from relevant ports. This should also make converting existing ports to INLINE_SYSCALL() much easier as they don't have to get lost in all the unrelated noise, as well as creating new ports. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'libc/sysdeps/linux/sparc')
-rw-r--r--libc/sysdeps/linux/sparc/bits/syscalls.h81
1 files changed, 0 insertions, 81 deletions
diff --git a/libc/sysdeps/linux/sparc/bits/syscalls.h b/libc/sysdeps/linux/sparc/bits/syscalls.h
index 4dd161ebf..55420104b 100644
--- a/libc/sysdeps/linux/sparc/bits/syscalls.h
+++ b/libc/sysdeps/linux/sparc/bits/syscalls.h
@@ -8,11 +8,6 @@
#ifndef __ASSEMBLER__
-#include <errno.h>
-
-#define SYS_ify(syscall_name) (__NR_##syscall_name)
-
-#undef __SYSCALL_STRING
#if __WORDSIZE == 32
# define __SYSCALL_STRING \
"t 0x10\n\t" \
@@ -20,76 +15,17 @@
"mov %%o0, %0\n\t" \
"sub %%g0, %%o0, %0\n\t" \
"1:\n\t"
-# define __SYSCALL_RES_CHECK (__res < -255 || __res >= 0)
#elif __WORDSIZE == 64
# define __SYSCALL_STRING \
"t 0x6d\n\t" \
"sub %%g0, %%o0, %0\n\t" \
"movcc %%xcc, %%o0, %0\n\t"
-# define __SYSCALL_RES_CHECK (__res >= 0)
#else
# error unknown __WORDSIZE
#endif
#define __SYSCALL_CLOBBERS "cc", "memory"
-#define __SYSCALL_RETURN(type) \
- if (__SYSCALL_RES_CHECK) \
- return (type) __res; \
- __set_errno (-__res); \
- return (type) -1;
-
-#undef _syscall0
-#define _syscall0(type,name) \
-type name(void) \
-{ \
- return (type)(INLINE_SYSCALL(name,0)); \
-}
-
-#undef _syscall1
-#define _syscall1(type,name,type1,arg1) \
-type name(type1 arg1) \
-{ \
- return (type)(INLINE_SYSCALL(name,1,arg1)); \
-}
-
-#undef _syscall2
-#define _syscall2(type,name,type1,arg1,type2,arg2) \
-type name(type1 arg1,type2 arg2) \
-{ \
- return (type)(INLINE_SYSCALL(name,2,arg1,arg2)); \
-}
-
-#undef _syscall3
-#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
-type name(type1 arg1,type2 arg2,type3 arg3) \
-{ \
- return (type)(INLINE_SYSCALL(name,3,arg1,arg2,arg3)); \
-}
-
-#undef _syscall4
-#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-{ \
- return (type)(INLINE_SYSCALL(name,4,arg1,arg2,arg3,arg4)); \
-}
-
-#undef _syscall5
-#define _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) \
-{ \
- return (type)(INLINE_SYSCALL(name,5,arg1,arg2,arg3,arg4,arg5)); \
-}
-
-#undef _syscall6
-#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) \
-{ \
- return (type)(INLINE_SYSCALL(name,6,arg1,arg2,arg3,arg4,arg5,arg6)); \
-}
-
#ifndef NOT_IN_libc
#define DEBUG_SYSCALL(name) { \
char d[64];\
@@ -99,19 +35,6 @@ type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
#define DEBUG_SYSCALL(name) do{} while(0)
#endif
-#undef INLINE_SYSCALL
-#define INLINE_SYSCALL(name, nr, args...) \
- ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
- if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
- { \
- __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
- _inline_sys_result = (unsigned int) -1; \
- } \
- (int) _inline_sys_result; })
-
-#undef INTERNAL_SYSCALL_DECL
-#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-
#define INTERNAL_SYSCALL( name, err, nr, args...) \
INTERNAL_SYSCALL_NCS( __NR_##name, err, nr, args )
@@ -132,13 +55,9 @@ type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
(int)__res; \
})
-#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
((unsigned int) (val) >= 0xfffff001u)
-#undef INTERNAL_SYSCALL_ERRNO
-#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
-
# define CALL_ERRNO_LOCATION "call __errno_location;"
#define __CLONE_SYSCALL_STRING \
"ta 0x10;" \