/* killpg() for MiNT */ #include #include #include #include #include #include "mintbind.h" extern int __mint; /* vector of signal handlers (for TOS) */ extern __Sigfunc _sig_handler[]; /* in signal.c */ /* vector giving which signals are currently blocked from delivery (for TOS) */ extern long _sigmask; /* in signal.c */ /* which signals are pending? */ extern long _sigpending; int killpg(pgrp, sig) int pgrp, sig; { long r; if (__mint == 0) { if (pgrp == 0 || pgrp == getpgrp()) return kill(getpid(), sig); errno = EINVAL; return -1; } if (pgrp < 0) { errno = ERANGE; return -1; } r = Pkill(-pgrp, sig); if (__mint < 7) { /* compensate for a bug in MiNT 0.6 */ (void)Syield(); } if (r < 0) { errno = (int) -r; return -1; } return 0; }