*
* @APPLE_LICENSE_HEADER_START@
*
- * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
- *
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
* from sigvec in sys/kern_sig.c.
*/
-#if defined(__DYNAMIC__)
-extern int __in_sigtramp;
-#endif
-
-static int
-sigaction__ (sig, nsv, osv, bind)
- int sig;
- register struct sigaction *nsv, *osv;
- int bind;
+int
+sigaction (int sig, const struct sigaction * __restrict nsv, struct sigaction * __restrict osv)
{
extern void _sigtramp();
struct __sigaction sa;
sa.sa_mask = nsv->sa_mask;
sa.sa_flags = nsv->sa_flags;
sap = &sa;
- if (nsv->sa_handler != (void (*)())SIG_DFL && nsv->sa_handler != (void (*)())SIG_IGN) {
-#ifdef __DYNAMIC__
- if (bind && (__in_sigtramp == 0)) // XXX
- _dyld_bind_fully_image_containing_address(nsv->sa_handler);
-#endif
- }
}
if (syscall (SYS_sigaction, sig, sap, osv) < 0) {
return (-1);
return (0);
}
-
-int
-sigaction (sig, nsv, osv)
- int sig;
- register const struct sigaction *nsv;
- register struct sigaction *osv;
-{
- return sigaction__(sig, nsv, osv, 1);
-}
-
// XXX
#ifdef __DYNAMIC__
register const struct sigaction *nsv;
register struct sigaction *osv;
{
- return sigaction__(sig, nsv, osv, 0);
+ return sigaction(sig, nsv, osv);
}
#endif