about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386/sigaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/sigaction.c')
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
index bfc8b2c2e2..9ee69e8054 100644
--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -131,14 +131,9 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
       k_newact.sa_restorer = &restore;
     }
 
-  asm volatile ("pushl %%ebx\n\t"
-		"movl %2, %%ebx\n\t"
-		ENTER_KERNEL_STR "\n\t"
-		"popl %%ebx"
-		: "=a" (result)
-		: "0" (SYS_ify (sigaction)), "mr" (sig),
-		  "c" (act ? __ptrvalue (&k_newact) : 0),
-		  "d" (oact ? __ptrvalue (&k_oldact) : 0));
+  result = INTERNAL_SYCALL (sigaction, 3, sig,
+			    act ? __ptrvalue (&k_newact) : 0,
+			    oact ? __ptrvalue (&k_oldact) : 0);
 
   if (result < 0)
     {