X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/32b9a6d76790c73d3d2d36d9081a2581cc65d184..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/usr/libc/arch/i386/signal.c diff --git a/lunaix-os/usr/libc/arch/i386/signal.c b/lunaix-os/usr/libc/arch/i386/signal.c deleted file mode 100644 index 2434fc9..0000000 --- a/lunaix-os/usr/libc/arch/i386/signal.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "syscall.h" -#include -#include - -__LXSYSCALL1(int, sigpending, sigset_t, *set); -__LXSYSCALL1(int, sigsuspend, const sigset_t, *mask); - -__LXSYSCALL3(int, - sigprocmask, - int, - how, - const sigset_t, - *set, - sigset_t, - *oldset); - -__LXSYSCALL2(int, sys_sigaction, int, signum, struct sigaction*, action); - -__LXSYSCALL2(int, kill, pid_t, pid, int, signum); - -extern void -sigtrampoline(); - -sighandler_t -signal(int signum, sighandler_t handler) -{ - struct sigaction sa = { .sa_handler = (void*)handler, - .sa_mask = (sigset_t)-1, - .sa_sigaction = (void*)sigtrampoline }; - - sys_sigaction(signum, &sa); - - return handler; -} - -extern pid_t -getpid(); - -int -raise(int signum) -{ - return kill(getpid(), signum); -} - -int -sigaction(int signum, struct sigaction* action) -{ - return sys_sigaction(signum, action); -} - -struct siguctx -{ - void* sigact; - void (*sa_handler)(int); - unsigned char saved_frame[0]; -}; - -void -sig_dohandling(int signum, void* siginfo, void* sigctx) -{ - struct siguctx* uctx = (struct siguctx*)sigctx; - uctx->sa_handler(signum); -} \ No newline at end of file