home *** CD-ROM | disk | FTP | other *** search
- /* signal blocking stuff for MiNT */
-
- #include <signal.h>
- #include <errno.h>
- #include <mintbind.h>
- #include <unistd.h>
-
- extern int __mint;
- extern long _sigpending, _sigmask;
-
- /* checksigs: for TOS: this checks to see if we just unmasked any
- * pending signals
- */
- static void
- checksigs()
- {
- register int sig;
- register long send;
-
- if (send = (_sigpending & ~_sigmask)) {
- for (sig = 0; sig < NSIG; sig++) {
- if (send & (1L << sig))
- kill(0, sig);
- }
- }
- }
-
- long
- sigsetmask(mask)
- long mask;
- {
- register long omask;
-
- if (__mint)
- return Psigsetmask(mask);
-
- omask = _sigmask;
- _sigmask = mask;
- checksigs(_sigmask);
- return omask;
- }
-
- long
- sigblock(mask)
- long mask;
- {
- register long omask;
-
- if (__mint)
- return Psigblock(mask);
-
- omask = _sigmask;
- _sigmask |= mask;
- return omask;
- }
-