home *** CD-ROM | disk | FTP | other *** search
- /* killpg() for MiNT */
-
- #include <stdlib.h>
- #include <errno.h>
- #include <osbind.h>
- #include <signal.h>
- #include <unistd.h>
- #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;
- }
-
-