pe |void |set_caret_X
Apd |void |setdefout |NN GV* gv
Ap |HEK* |share_hek |NN const char* str|SSize_t len|U32 hash
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
: Used in perl.c
Tp |Signal_t |sighandler |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
ATp |Signal_t |csighandler |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
#define whichsig_sv(a) Perl_whichsig_sv(aTHX_ a)
#define wrap_keyword_plugin(a,b) Perl_wrap_keyword_plugin(aTHX_ a,b)
#define wrap_op_checker(a,b,c) Perl_wrap_op_checker(aTHX_ a,b,c)
-#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
+#if !(defined(PERL_USE_3ARG_SIGHANDLER))
#define csighandler Perl_csighandler
#endif
#if !defined(EBCDIC)
#define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
#define pad_sv(a) Perl_pad_sv(aTHX_ a)
#endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#define csighandler Perl_csighandler
-#endif
#if defined(HAVE_INTERP_INTERN)
#define sys_intern_clear() Perl_sys_intern_clear(aTHX)
#define sys_intern_init() Perl_sys_intern_init(aTHX)
#define warn_nocontext Perl_warn_nocontext
#define warner_nocontext Perl_warner_nocontext
#endif
+#if defined(PERL_USE_3ARG_SIGHANDLER)
+#define csighandler Perl_csighandler
+#endif
#if defined(UNLINK_ALL_VERSIONS)
#define unlnk(a) Perl_unlnk(aTHX_ a)
#endif
#define my_nl_langinfo S_my_nl_langinfo
# endif
# endif
-# if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
-#define sighandler Perl_sighandler
-# endif
# if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
#define do_exec(a) Perl_do_exec(aTHX_ a)
# endif
+# if !(defined(PERL_USE_3ARG_SIGHANDLER))
+#define sighandler Perl_sighandler
+# endif
# if !(defined(_MSC_VER))
#define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
# endif
# if defined(HAS_PIPE)
#define PerlProc_pipe_cloexec(a) Perl_PerlProc_pipe_cloexec(aTHX_ a)
# endif
-# if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#define sighandler Perl_sighandler
-# endif
# if defined(HAS_SOCKET)
#define PerlSock_accept_cloexec(a,b,c) Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
#define PerlSock_socket_cloexec(a,b,c) Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
# if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
#define pidgone(a,b) S_pidgone(aTHX_ a,b)
# endif
+# if defined(PERL_USE_3ARG_SIGHANDLER)
+#define sighandler Perl_sighandler
+# endif
# if defined(USE_C_BACKTRACE)
#define get_c_backtrace(a,b) Perl_get_c_backtrace(aTHX_ a,b)
# endif
#include "perlio.h"
#ifndef Sighandler_t
-# if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+# ifdef PERL_USE_3ARG_SIGHANDLER
typedef Signal_t (*Sighandler_t) (int, Siginfo_t*, void*);
# else
typedef Signal_t (*Sighandler_t) (int);
# include <sys/prctl.h>
#endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
Signal_t Perl_csighandler(int sig, Siginfo_t *, void *);
#else
Signal_t Perl_csighandler(int sig);
}
Signal_t
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
Perl_csighandler(int sig, Siginfo_t *sip PERL_UNUSED_DECL, void *uap PERL_UNUSED_DECL)
#else
Perl_csighandler(int sig)
#else
dTHX;
#endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+
+#ifdef PERL_USE_3ARG_SIGHANDLER
#if defined(__cplusplus) && defined(__GNUC__)
/* g++ doesn't support PERL_UNUSED_DECL, so the sip and uap
* parameters would be warned about. */
PERL_UNUSED_ARG(uap);
#endif
#endif
+
#ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
(void) rsignal(sig, PL_csighandlerp);
if (PL_sig_ignoring[sig]) return;
(PL_signals & PERL_SIGNALS_UNSAFE_FLAG))
/* Call the perl level handler now--
* with risk we may be in malloc() or being destructed etc. */
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
(*PL_sighandlerp)(sig, NULL, NULL);
#else
(*PL_sighandlerp)(sig);
}
#endif
PL_psig_pend[sig] = 0;
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
(*PL_sighandlerp)(sig, NULL, NULL);
#else
(*PL_sighandlerp)(sig);
}
Signal_t
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
Perl_sighandler(int sig, Siginfo_t *sip, void *uap)
#else
Perl_sighandler(int sig)
#endif
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+# define PERL_USE_3ARG_SIGHANDLER
+#endif
+
/* Siginfo_t:
* This is an alias for the OS's siginfo_t, except that where the OS
* doesn't support it, declare a dummy version instead. This allows us to
#define PERL_ARGS_ASSERT_MY_NL_LANGINFO
# endif
#endif
-#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
-PERL_CALLCONV Signal_t Perl_csighandler(int sig);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t Perl_sighandler(int sig);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
#if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd);
#define PERL_ARGS_ASSERT_DO_EXEC \
assert(indexp)
# endif
#endif
+#if !(defined(PERL_USE_3ARG_SIGHANDLER))
+PERL_CALLCONV Signal_t Perl_csighandler(int sig);
+#define PERL_ARGS_ASSERT_CSIGHANDLER
+PERL_CALLCONV Signal_t Perl_sighandler(int sig);
+#define PERL_ARGS_ASSERT_SIGHANDLER
+#endif
#if !(defined(_MSC_VER))
PERL_CALLCONV_NO_RET int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
__attribute__noreturn__;
assert(pipefd)
#endif
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-PERL_CALLCONV Signal_t Perl_csighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t Perl_sighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
#if defined(HAS_SOCKET)
PERL_CALLCONV int Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen)
__attribute__warn_unused_result__;
STATIC void S_pidgone(pTHX_ Pid_t pid, int status);
#define PERL_ARGS_ASSERT_PIDGONE
#endif
+#if defined(PERL_USE_3ARG_SIGHANDLER)
+PERL_CALLCONV Signal_t Perl_csighandler(int sig, Siginfo_t *info, void *uap);
+#define PERL_ARGS_ASSERT_CSIGHANDLER
+PERL_CALLCONV Signal_t Perl_sighandler(int sig, Siginfo_t *info, void *uap);
+#define PERL_ARGS_ASSERT_SIGHANDLER
+#endif
#if defined(UNLINK_ALL_VERSIONS)
PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f);
#define PERL_ARGS_ASSERT_UNLNK \