1
0
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:
Adhemerval Zanella
2020-01-29 17:36:58 +00:00
parent 9a973da617
commit fcb78a5505
33 changed files with 60 additions and 486 deletions

View File

@ -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); \