From b387d762361e6c109c6a60bced003e72447b0a33 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 3 Jul 2009 16:44:59 -0400 Subject: 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 --- libc/sysdeps/linux/sparc/bits/syscalls.h | 81 -------------------------------- 1 file changed, 81 deletions(-) (limited to 'libc/sysdeps/linux/sparc/bits/syscalls.h') 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 - -#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;" \ -- cgit v1.2.3