15af32e75SAxel Dörfler /* 2d024bdc9SAxel Dörfler * Copyright 2004-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3d024bdc9SAxel Dörfler * Distributed under the terms of the MIT License. 45af32e75SAxel Dörfler */ 55af32e75SAxel Dörfler 65af32e75SAxel Dörfler 724df6592SIngo Weinhold #include <errno.h> 824df6592SIngo Weinhold #include <signal.h> 924df6592SIngo Weinhold 105af32e75SAxel Dörfler #include <OS.h> 115af32e75SAxel Dörfler 12*ae901935SOliver Tappe #include <errno_private.h> 1324df6592SIngo Weinhold #include <syscalls.h> 145af32e75SAxel Dörfler 155af32e75SAxel Dörfler 165af32e75SAxel Dörfler int kill(pid_t pid,int sig)175af32e75SAxel Dörflerkill(pid_t pid, int sig) 185af32e75SAxel Dörfler { 1924df6592SIngo Weinhold status_t status; 2024df6592SIngo Weinhold 2124df6592SIngo Weinhold if (sig < 0) { 22*ae901935SOliver Tappe __set_errno(EINVAL); 2324df6592SIngo Weinhold return -1; 2424df6592SIngo Weinhold } 2524df6592SIngo Weinhold 2624df6592SIngo Weinhold status = _kern_send_signal(pid, sig, NULL, 0); 2724df6592SIngo Weinhold if (status != B_OK) { 2824df6592SIngo Weinhold // translate B_BAD_THREAD_ID/B_BAD_TEAM_ID to ESRCH 2924df6592SIngo Weinhold if (status == B_BAD_THREAD_ID || status == B_BAD_TEAM_ID) 30d024bdc9SAxel Dörfler status = ESRCH; 31d024bdc9SAxel Dörfler 32*ae901935SOliver Tappe __set_errno(status); 335af32e75SAxel Dörfler return -1; 345af32e75SAxel Dörfler } 355af32e75SAxel Dörfler 365af32e75SAxel Dörfler return 0; 375af32e75SAxel Dörfler } 38