fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / um / os-Linux / process.c
index c8bf772..c692a19 100644 (file)
@@ -7,11 +7,10 @@
 #include <stdio.h>
 #include <errno.h>
 #include <signal.h>
-#include <setjmp.h>
-#include <linux/unistd.h>
 #include <sys/mman.h>
 #include <sys/wait.h>
 #include <sys/mman.h>
+#include <sys/syscall.h>
 #include "ptrace_user.h"
 #include "os.h"
 #include "user.h"
@@ -143,7 +142,7 @@ void os_usr1_process(int pid)
 
 int os_getpid(void)
 {
-       return syscall(__NR_getpid);
+       return(syscall(__NR_getpid));
 }
 
 int os_getpgrp(void)
@@ -245,7 +244,17 @@ void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int))
                set_sigstack(sig_stack, pages * page_size());
                flags = SA_ONSTACK;
        }
-       if(usr1_handler) set_handler(SIGUSR1, usr1_handler, flags, -1);
+       if(usr1_handler){
+               struct sigaction sa;
+
+               sa.sa_handler = usr1_handler;
+               sigemptyset(&sa.sa_mask);
+               sa.sa_flags = flags;
+               sa.sa_restorer = NULL;
+               if(sigaction(SIGUSR1, &sa, NULL) < 0)
+                       panic("init_new_thread_stack - sigaction failed - "
+                             "errno = %d\n", errno);
+       }
 }
 
 void init_new_thread_signals(void)