result = INTERNAL_SYCALL (sigaction, 3, sig, act ? __ptrvalue (&k_newact) : 0, oact ? __ptrvalue (&k_oldact) : 0);
result = INTERNAL_SYSCALL (sigaction, 3, sig, act ? __ptrvalue (&k_newact) : 0, oact ? __ptrvalue (&k_oldact) : 0);
__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact){#if __ASSUME_REALTIME_SIGNALS == 0  struct old_kernel_sigaction k_newact, k_oldact;#endif  int result;#ifdef __NR_rt_sigaction  /* First try the RT signals.  */# if __ASSUME_REALTIME_SIGNALS == 0  if (!__libc_missing_rt_sigs)# endif    {      struct kernel_sigaction kact, koact;# if __ASSUME_REALTIME_SIGNALS == 0      int saved_errno = errno;# endif      if (act)	{	  kact.k_sa_handler = act->sa_handler;	  memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));	  kact.sa_flags = act->sa_flags | SA_RESTORER;	  kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)			      ? &restore_rt : &restore);	}      /* XXX The size argument hopefully will have to be changed to the	 real size of the user-level sigset_t.  */      result = INLINE_SYSCALL (rt_sigaction, 4,			       sig, act ? __ptrvalue (&kact) : NULL,			       oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);# if __ASSUME_REALTIME_SIGNALS == 0      if (result >= 0 || errno != ENOSYS)# endif	{	  if (oact && result >= 0)	    {	      oact->sa_handler = koact.k_sa_handler;	      memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));	      oact->sa_flags = koact.sa_flags;	      oact->sa_restorer = koact.sa_restorer;	    }	  return result;	}# if __ASSUME_REALTIME_SIGNALS == 0      __set_errno (saved_errno);      __libc_missing_rt_sigs = 1;# endif    }#endif#if __ASSUME_REALTIME_SIGNALS == 0  if (act)    {      k_newact.k_sa_handler = act->sa_handler;      k_newact.sa_mask = act->sa_mask.__val[0];      k_newact.sa_flags = act->sa_flags | SA_RESTORER;      k_newact.sa_restorer = &restore;    }  result = INTERNAL_SYCALL (sigaction, 3, sig,			    act ? __ptrvalue (&k_newact) : 0,			    oact ? __ptrvalue (&k_oldact) : 0);  if (result < 0)    {      __set_errno (-result);      return -1;    }  if (oact)    {      oact->sa_handler = k_oldact.k_sa_handler;      oact->sa_mask.__val[0] = k_oldact.sa_mask;      oact->sa_flags = k_oldact.sa_flags;      oact->sa_restorer = k_oldact.sa_restorer;    }  return 0;#endif}