Esempio n. 1
0
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;
}
Esempio n. 4
0
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);
}