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 7*24df6592SIngo Weinhold #include <errno.h> 8*24df6592SIngo Weinhold #include <signal.h> 9*24df6592SIngo Weinhold 105af32e75SAxel Dörfler #include <OS.h> 115af32e75SAxel Dörfler 12*24df6592SIngo Weinhold #include <syscalls.h> 135af32e75SAxel Dörfler 145af32e75SAxel Dörfler 155af32e75SAxel Dörfler int 165af32e75SAxel Dörfler kill(pid_t pid, int sig) 175af32e75SAxel Dörfler { 18*24df6592SIngo Weinhold status_t status; 19*24df6592SIngo Weinhold 20*24df6592SIngo Weinhold if (sig < 0) { 21*24df6592SIngo Weinhold errno = EINVAL; 22*24df6592SIngo Weinhold return -1; 23*24df6592SIngo Weinhold } 24*24df6592SIngo Weinhold 25*24df6592SIngo Weinhold status = _kern_send_signal(pid, sig, NULL, 0); 26*24df6592SIngo Weinhold if (status != B_OK) { 27*24df6592SIngo Weinhold // translate B_BAD_THREAD_ID/B_BAD_TEAM_ID to ESRCH 28*24df6592SIngo Weinhold if (status == B_BAD_THREAD_ID || status == B_BAD_TEAM_ID) 29d024bdc9SAxel Dörfler status = ESRCH; 30d024bdc9SAxel Dörfler 315af32e75SAxel Dörfler errno = status; 325af32e75SAxel Dörfler return -1; 335af32e75SAxel Dörfler } 345af32e75SAxel Dörfler 355af32e75SAxel Dörfler return 0; 365af32e75SAxel Dörfler } 37