about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha/ioperm.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-01-31 19:41:25 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-02-14 21:09:12 -0300
commit975ace4eca4990bc1948d3a7a890de7f60e7e540 (patch)
tree404ce86f6d3b1e93a5ccdf5baaf482bcc9fe7218 /sysdeps/unix/sysv/linux/alpha/ioperm.c
parentc261718b3fda4b629ee120f48e3ee50db9c793a1 (diff)
downloadglibc-975ace4eca4990bc1948d3a7a890de7f60e7e540.tar.gz
glibc-975ace4eca4990bc1948d3a7a890de7f60e7e540.tar.xz
glibc-975ace4eca4990bc1948d3a7a890de7f60e7e540.zip
alpha: Refactor syscall and Use Linux kABI for syscall return
It highly unlikely that alpha will be ported to anything else than
Linux, so this patch moves the generic unix syscall definition to
Linux and adapt it to Linux kernel ABI.

It changes the internal_syscall* macros to return a negative value
instead of the '$19' register value on the 'err' macro argument.

The macro INTERNAL_SYSCALL_DECL is no longer required, and the
INTERNAL_SYSCALL_ERROR_P macro follows the other Linux kABIs.

Checked on alpha-linux-gnu.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/ioperm.c')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index 086c782b9f..cf775674b4 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -196,12 +196,7 @@ stl_mb(unsigned int val, unsigned long addr)
 static inline void
 __sethae(unsigned long value)
 {
-  register unsigned long r16 __asm__("$16") = value;
-  register unsigned long r0 __asm__("$0") = __NR_sethae;
-  __asm__ __volatile__ ("callsys"
-			: "=r"(r0)
-			: "0"(r0), "r" (r16)
-			: inline_syscall_clobbers, "$19");
+  INLINE_SYSCALL_CALL (sethae, value);
 }
 
 extern long __pciconfig_iobase(enum __pciconfig_iobase_which __which,