Ap |HEK* |share_hek |NN const char* str|SSize_t len|U32 hash
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
: 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
+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
#else
Tp |Signal_t |sighandler |int sig
ATp |Signal_t |csighandler |int sig
#ifndef Sighandler_t
# if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-typedef Signal_t (*Sighandler_t) (int, siginfo_t*, void*);
+typedef Signal_t (*Sighandler_t) (int, Siginfo_t*, void*);
# else
typedef Signal_t (*Sighandler_t) (int);
# endif
#endif
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Signal_t Perl_csighandler(int sig, siginfo_t *, void *);
+Signal_t Perl_csighandler(int sig, Siginfo_t *, void *);
#else
Signal_t Perl_csighandler(int sig);
#endif
Signal_t
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Perl_csighandler(int sig, siginfo_t *sip PERL_UNUSED_DECL, void *uap PERL_UNUSED_DECL)
+Perl_csighandler(int sig, Siginfo_t *sip PERL_UNUSED_DECL, void *uap PERL_UNUSED_DECL)
#else
Perl_csighandler(int sig)
#endif
Signal_t
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Perl_sighandler(int sig, siginfo_t *sip, void *uap)
+Perl_sighandler(int sig, Siginfo_t *sip, void *uap)
#else
Perl_sighandler(int sig)
#endif
# define USE_ENVIRON_ARRAY
#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
+ * have signal handler functions which always have a Siginfo_t parameter
+ * regardless of platform, (and which will just be passed a NULL value
+ * where the OS doesn't support HAS_SIGACTION).
+ */
+
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+ typedef siginfo_t Siginfo_t;
+#else
+ typedef struct {
+ int si_signo;
+ } Siginfo_t;
+#endif
+
+
/*
* initialise to avoid floating-point exceptions from overflow, etc
*/
#endif
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-PERL_CALLCONV Signal_t Perl_csighandler(int sig, siginfo_t *info, void *uap);
+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);
+PERL_CALLCONV Signal_t Perl_sighandler(int sig, Siginfo_t *info, void *uap);
#define PERL_ARGS_ASSERT_SIGHANDLER
#endif
#if defined(HAS_SOCKET)