#ifndef __LIBC12_SOURCE__
int sigaction(int, const struct sigaction * __restrict,
struct sigaction * __restrict) __RENAME(__sigaction14);
+#if defined(__minix) && defined(_SYSTEM)
+#define sigaddset(set, sig) __sigaddset((set), (sig))
+#define sigdelset(set, sig) __sigdelset((set), (sig))
+#define sigemptyset(set) __sigemptyset((set))
+#define sigfillset(set) __sigfillset((set))
+#define sigismember(set, sig) __sigismember((set), (sig))
+#else
int sigaddset(sigset_t *, int) __RENAME(__sigaddset14);
int sigdelset(sigset_t *, int) __RENAME(__sigdelset14);
int sigemptyset(sigset_t *) __RENAME(__sigemptyset14);
int sigfillset(sigset_t *) __RENAME(__sigfillset14);
int sigismember(const sigset_t *, int) __RENAME(__sigismember14);
+#endif
int sigpending(sigset_t *) __RENAME(__sigpending14);
int sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict)
__RENAME(__sigprocmask14);
#define ___errno (*__errno())
#endif
+#if !defined(__minix) || !defined(_SYSTEM)
__c99inline int
sigaddset(sigset_t *set, int signo)
{
__sigfillset(set);
return (0);
}
+#endif /* !defined(__minix) || !defined(_SYSTEM) */
#endif /* __c99inline */
#endif /* !__LIBC12_SOURCE__ */
if (r != OK) return(r);
if (svec.sa_handler == SIG_IGN) {
- (void) sigaddset(&mp->mp_ignore, m_in.sig_nr);
- (void) sigdelset(&mp->mp_sigpending, m_in.sig_nr);
- (void) sigdelset(&mp->mp_ksigpending, m_in.sig_nr);
- (void) sigdelset(&mp->mp_catch, m_in.sig_nr);
+ sigaddset(&mp->mp_ignore, m_in.sig_nr);
+ sigdelset(&mp->mp_sigpending, m_in.sig_nr);
+ sigdelset(&mp->mp_ksigpending, m_in.sig_nr);
+ sigdelset(&mp->mp_catch, m_in.sig_nr);
} else if (svec.sa_handler == SIG_DFL) {
- (void) sigdelset(&mp->mp_ignore, m_in.sig_nr);
- (void) sigdelset(&mp->mp_catch, m_in.sig_nr);
+ sigdelset(&mp->mp_ignore, m_in.sig_nr);
+ sigdelset(&mp->mp_catch, m_in.sig_nr);
} else {
- (void) sigdelset(&mp->mp_ignore, m_in.sig_nr);
- (void) sigaddset(&mp->mp_catch, m_in.sig_nr);
+ sigdelset(&mp->mp_ignore, m_in.sig_nr);
+ sigaddset(&mp->mp_catch, m_in.sig_nr);
}
mp->mp_sigact[m_in.sig_nr].sa_handler = svec.sa_handler;
- (void) sigdelset(&svec.sa_mask, SIGKILL);
- (void) sigdelset(&svec.sa_mask, SIGSTOP);
+ sigdelset(&svec.sa_mask, SIGKILL);
+ sigdelset(&svec.sa_mask, SIGSTOP);
mp->mp_sigact[m_in.sig_nr].sa_mask = svec.sa_mask;
mp->mp_sigact[m_in.sig_nr].sa_flags = svec.sa_flags;
mp->mp_sigreturn = (vir_bytes) m_in.sig_ret;
switch (m_in.sig_how) {
case SIG_BLOCK:
- (void) sigdelset((sigset_t *)&m_in.sig_set, SIGKILL);
- (void) sigdelset((sigset_t *)&m_in.sig_set, SIGSTOP);
+ sigdelset((sigset_t *)&m_in.sig_set, SIGKILL);
+ sigdelset((sigset_t *)&m_in.sig_set, SIGSTOP);
for (i = 1; i < _NSIG; i++) {
if (sigismember((sigset_t *)&m_in.sig_set, i))
- (void) sigaddset(&mp->mp_sigmask, i);
+ sigaddset(&mp->mp_sigmask, i);
}
break;
case SIG_UNBLOCK:
for (i = 1; i < _NSIG; i++) {
if (sigismember((sigset_t *)&m_in.sig_set, i))
- (void) sigdelset(&mp->mp_sigmask, i);
+ sigdelset(&mp->mp_sigmask, i);
}
check_pending(mp);
break;
case SIG_SETMASK:
- (void) sigdelset((sigset_t *) &m_in.sig_set, SIGKILL);
- (void) sigdelset((sigset_t *) &m_in.sig_set, SIGSTOP);
+ sigdelset((sigset_t *) &m_in.sig_set, SIGKILL);
+ sigdelset((sigset_t *) &m_in.sig_set, SIGSTOP);
mp->mp_sigmask = (sigset_t) m_in.sig_set;
check_pending(mp);
break;
{
mp->mp_sigmask2 = mp->mp_sigmask; /* save the old mask */
mp->mp_sigmask = (sigset_t) m_in.sig_set;
- (void) sigdelset(&mp->mp_sigmask, SIGKILL);
- (void) sigdelset(&mp->mp_sigmask, SIGSTOP);
+ sigdelset(&mp->mp_sigmask, SIGKILL);
+ sigdelset(&mp->mp_sigmask, SIGSTOP);
mp->mp_flags |= SIGSUSPENDED;
check_pending(mp);
return(SUSPEND);
int r;
mp->mp_sigmask = (sigset_t) m_in.sig_set;
- (void) sigdelset(&mp->mp_sigmask, SIGKILL);
- (void) sigdelset(&mp->mp_sigmask, SIGSTOP);
+ sigdelset(&mp->mp_sigmask, SIGKILL);
+ sigdelset(&mp->mp_sigmask, SIGSTOP);
r = sys_sigreturn(who_e, (struct sigmsg *) m_in.sig_context);
check_pending(mp);
* the process itself could block/ignore debugger signals.
*/
- (void) sigaddset(&rmp->mp_sigtrace, signo);
+ sigaddset(&rmp->mp_sigtrace, signo);
if (!(rmp->mp_flags & STOPPED))
stop_proc(rmp, signo); /* a signal causes it to stop */
#endif
if (rmp->mp_flags & VFS_CALL) {
- (void) sigaddset(&rmp->mp_sigpending, signo);
+ sigaddset(&rmp->mp_sigpending, signo);
if(ksig)
- (void) sigaddset(&rmp->mp_ksigpending, signo);
+ sigaddset(&rmp->mp_ksigpending, signo);
if (!(rmp->mp_flags & PM_SIG_PENDING)) {
/* No delay calls: VFS_CALL implies the process called us. */
}
if (!badignore && sigismember(&rmp->mp_sigmask, signo)) {
/* Signal should be blocked. */
- (void) sigaddset(&rmp->mp_sigpending, signo);
+ sigaddset(&rmp->mp_sigpending, signo);
if(ksig)
- (void) sigaddset(&rmp->mp_ksigpending, signo);
+ sigaddset(&rmp->mp_ksigpending, signo);
return;
}
* (except SIGKILL) in order not to confuse the debugger. The signals
* will be delivered using the check_pending() calls in do_trace().
*/
- (void) sigaddset(&rmp->mp_sigpending, signo);
+ sigaddset(&rmp->mp_sigpending, signo);
if(ksig)
- (void) sigaddset(&rmp->mp_ksigpending, signo);
+ sigaddset(&rmp->mp_ksigpending, signo);
return;
}
#endif /* USE_TRACE */
if (!(rmp->mp_flags & UNPAUSED)) {
/* not yet unpaused; continue later */
- (void) sigaddset(&rmp->mp_sigpending, signo);
+ sigaddset(&rmp->mp_sigpending, signo);
if(ksig)
- (void) sigaddset(&rmp->mp_ksigpending, signo);
+ sigaddset(&rmp->mp_ksigpending, signo);
return;
}
if (sigismember(&rmp->mp_sigpending, i) &&
!sigismember(&rmp->mp_sigmask, i)) {
ksig = sigismember(&rmp->mp_ksigpending, i);
- (void) sigdelset(&rmp->mp_sigpending, i);
- (void) sigdelset(&rmp->mp_ksigpending, i);
+ sigdelset(&rmp->mp_sigpending, i);
+ sigdelset(&rmp->mp_ksigpending, i);
sig_proc(rmp, i, FALSE /*trace*/, ksig);
if (rmp->mp_flags & VFS_CALL)
rmp->mp_sigmask |= rmp->mp_sigact[signo].sa_mask;
if (sigflags & SA_NODEFER)
- (void) sigdelset(&rmp->mp_sigmask, signo);
+ sigdelset(&rmp->mp_sigmask, signo);
else
- (void) sigaddset(&rmp->mp_sigmask, signo);
+ sigaddset(&rmp->mp_sigmask, signo);
if (sigflags & SA_RESETHAND) {
- (void) sigdelset(&rmp->mp_catch, signo);
+ sigdelset(&rmp->mp_catch, signo);
rmp->mp_sigact[signo].sa_handler = SIG_DFL;
}
- (void) sigdelset(&rmp->mp_sigpending, signo);
- (void) sigdelset(&rmp->mp_ksigpending, signo);
+ sigdelset(&rmp->mp_sigpending, signo);
+ sigdelset(&rmp->mp_ksigpending, signo);
if(vm_push_sig(rmp->mp_endpoint, &cur_sp) != OK)
return(FALSE);