X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fum%2Fos-Linux%2Fprocess.c;h=c692a192957a80775f98097ee47d7b0d73dc6b12;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=c8bf7727666258d23c7aec8de67d7bcbff440bcf;hpb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;p=linux-2.6.git diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c index c8bf77276..c692a1929 100644 --- a/arch/um/os-Linux/process.c +++ b/arch/um/os-Linux/process.c @@ -7,11 +7,10 @@ #include #include #include -#include -#include #include #include #include +#include #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)