mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
linux: Consolidate INLINE_SYSCALL
With all Linux ABIs using the expected Linux kABI to indicate syscalls errors, there is no need to replicate the INLINE_SYSCALL. The generic Linux sysdep.h includes errno.h even for !__ASSEMBLER__, which is ok now and it allows cleanup some archaic code that assume otherwise. Checked with a build against all affected ABIs.
This commit is contained in:
@ -45,21 +45,6 @@
|
||||
# endif
|
||||
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
|
||||
|
||||
#undef INLINE_SYSCALL
|
||||
#define INLINE_SYSCALL(name, nr, args...) \
|
||||
({ INTERNAL_SYSCALL_DECL(err); \
|
||||
unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args);\
|
||||
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
|
||||
{ \
|
||||
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
||||
resultvar = (unsigned long) -1; \
|
||||
} \
|
||||
(long) resultvar; \
|
||||
})
|
||||
|
||||
#undef INTERNAL_SYSCALL_DECL
|
||||
#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||
|
||||
#undef INTERNAL_SYSCALL
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
internal_syscall##nr(__SYSCALL_STRING, err, __NR_##name, args)
|
||||
@ -68,13 +53,6 @@
|
||||
#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
|
||||
internal_syscall##nr(__SYSCALL_STRING, err, name, args)
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERROR_P
|
||||
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||
((unsigned long int) (val) > -4096UL)
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERRNO
|
||||
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
||||
|
||||
#define internal_syscall0(string,err,name,dummy...) \
|
||||
({ \
|
||||
register long int __g1 __asm__ ("g1") = (name); \
|
||||
|
Reference in New Issue
Block a user