diff options
Diffstat (limited to 'kernel/syscalls/kill.c')
-rw-r--r-- | kernel/syscalls/kill.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/syscalls/kill.c b/kernel/syscalls/kill.c index 0da229a..affade6 100644 --- a/kernel/syscalls/kill.c +++ b/kernel/syscalls/kill.c @@ -1,7 +1,15 @@ +#include <errno.h> #include <sched/scheduler.h> #include <signal.h> #include <syscalls.h> -int syscall_kill(pid_t pid, int sig) { - return kill(pid, sig); +int syscall_kill(int fd, int sig) { + vfs_fd_t *fd_ptr = get_vfs_fd(fd, NULL); + if (!fd_ptr) { + return -EBADF; + } + if (!fd_ptr->inode->send_signal) { + return -EBADF; + } + return process_signal(fd_ptr, sig); } |