Thu Oct 26 23:11:11 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
authorroland <roland>
Mon, 30 Oct 1995 16:40:06 +0000 (16:40 +0000)
committerroland <roland>
Mon, 30 Oct 1995 16:40:06 +0000 (16:40 +0000)
* sysdeps/unix/sysv/linux/poll.c: Don't define as stub.  Use
simulation of system call using select.

* sysdeps/unix/sysv/linux/signal.c: Use POSIX implementation.

* sysdeps/unix/sysv/linux/statbuf.h: Define _STAT_VER.

* sysdeps/unix/sysv/linux/i386/sigaction.c: Correct parameter
name usage (new->act, old->oact).
Correct asm statement because of gcc strangeness.

sysdeps/unix/sysv/linux/i386/sigaction.c
sysdeps/unix/sysv/linux/poll.c
sysdeps/unix/sysv/linux/signal.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/statbuf.h

index 6986290..64c8f9a 100644 (file)
@@ -31,20 +31,20 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
   struct sigaction newact;
   int result;
 
-  if (new)
+  if (act)
     {
-      newact = *new;
-      new = &newact;
-      new->sa_restorer = ((new->sa_flags & SA_NOMASK)
-                         ? &&restore_nomask : &&restore);
+      newact = *act;
+      newact.sa_restorer = ((act->sa_flags & SA_NOMASK)
+                           ? &&restore_nomask : &&restore);
+      act = &newact;
     }
 
   asm volatile ("pushl %%ebx\n"
-               "movl %1, %%ebx\n"
+               "movl %2, %%ebx\n"
                "int $0x80\n"
                "popl %%ebx"
                : "=a" (result)
-               : "0" (SYS_ify (sigaction)), "g" (sig), "c" (new), "d" (old));
+               : "0" (SYS_ify (sigaction)), "g" (sig), "c" (act), "d" (oact));
 
   if (result < 0)
     {
@@ -56,31 +56,34 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
  restore:
   asm (
 #ifdef PIC
-       "       pushl %ebx\n"
+       "       pushl %%ebx\n"
        "       call 0f\n"
-       "0:     popl %ebx\n"
-       "       addl $_GLOBAL_OFFSET_TABLE_+[.-0b],%ebx\n"
+       "0:     popl %%ebx\n"
+       "       addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %%ebx\n"
        "       addl $8, %%esp\n"
        "       call __sigsetmask@PLT\n"
        "       addl $8, %%esp\n"
-       "       popl %ebx\n"
+       "       popl %%ebx\n"
 #else
        "       addl $4, %%esp\n"
        "       call __sigsetmask\n"
        "       addl $4, %%esp\n"
 #endif
-       "popl %eax\n"
-       "popl %ecx\n"
-       "popl %edx\n"
-       "popf\n"
-       "ret");
+       "       popl %%eax\n"
+       "       popl %%ecx\n"
+       "       popl %%edx\n"
+       "       popf\n"
+       "       ret"
+       : : );
  restore_nomask:
-  asm ("addl $4, %esp\n"
-       "popl %eax\n"
-       "popl %ecx\n"
-       "popl %edx\n"
-       "popf\n"
-       "ret");
+  asm ("       addl $4, %%esp\n"
+       "       popl %%eax\n"
+       "       popl %%ecx\n"
+       "       popl %%edx\n"
+       "       popf\n"
+       "       ret"
+       : : );
+  /* NOTREACHED */
 }
 
 weak_alias (__sigaction, sigaction)
index ff43a76..1988199 100644 (file)
@@ -1 +1 @@
-#include <sysdeps/stub/poll.c>
+#include <sysdeps/unix/bsd/poll.c>
diff --git a/sysdeps/unix/sysv/linux/signal.c b/sysdeps/unix/sysv/linux/signal.c
new file mode 100644 (file)
index 0000000..55f1108
--- /dev/null
@@ -0,0 +1 @@
+#include <sysdeps/posix/signal.c>
index ad81704..5aabdd3 100644 (file)
@@ -19,6 +19,10 @@ Cambridge, MA 02139, USA.  */
 #ifndef        _STATBUF_H
 #define        _STATBUF_H
 
+/* Current version of stat system call.  */
+#define _STAT_VER 1
+
+
 struct stat
   {
     short int st_dev;                  /* Device.  */