static NODE * do_sigpending(int nargs) { sigset_t mask; if (do_lint && get_curfunc_arg_count() > 1) lintwarn("sigpending: called with too many arguments"); sigpending(&mask); ret_mask(&mask, 0); return make_number((AWKNUM) 0); }
vpr::Uint16 SelectorImplNSPR::convertMaskNsprToVpr(const PRUint16 mask) const { vpr::Uint16 ret_mask(0); if(mask & PR_POLL_READ) ret_mask |= Read; if(mask & PR_POLL_WRITE) ret_mask |= Write; if(mask & PR_POLL_EXCEPT) ret_mask |= Except; if(mask & PR_POLL_ERR) ret_mask |= Error; if(mask & PR_POLL_NVAL) ret_mask |= Invalid; return ret_mask; }
PRUint16 SelectorImplNSPR::convertMaskVprToNspr(const vpr::Uint16 mask) const { PRUint16 ret_mask(0); if(mask & Read) ret_mask |= PR_POLL_READ; if(mask & Write) ret_mask |= PR_POLL_WRITE; if(mask & Except) ret_mask |= PR_POLL_EXCEPT; if(mask & Error) ret_mask |= PR_POLL_ERR; if(mask & Invalid) ret_mask |= PR_POLL_NVAL; return ret_mask; }
static NODE * do_sigprocmask(int nargs) { NODE *tmp; int how; sigset_t mask; sigset_t old; int ret; if (do_lint && get_curfunc_arg_count() > 1) lintwarn("sigsuspend: called with too many arguments"); tmp = (NODE *) get_scalar_argument(0, FALSE); force_string(tmp); how = str2how(tmp->stptr); ana_mask(&mask, 1); ret = sigprocmask(how, &mask, &old); ret_mask(&mask, 2); return make_number((AWKNUM) ret); }