# include <config.h>
#endif
+#include <inttypes.h>
+#include <stdint.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
static volatile siginfo_t sigpwr_info[MAXSIGQ];
#endif
+#if defined(SIG_ATOMIC_MAX)
+# if SIG_ATOMIC_MAX == INT64_MAX
+/* Basically FreeBSD on 64bits */
+# define PRIdSIGATOMIC PRId64
+# elif SIG_ATOMIC_MAX == UINT64_MAX
+# define PRIdSIGATOMIC PRIu64
+# elif SIG_ATOMIC_MAX == UINT32_MAX
+# define PRIdSIGATOMIC PRIu32
+# else
+/* everybody else seems to go for int */
+# define PRIdSIGATOMIC PRId32
+# endif
+#else
+# define PRIdSIGATOMIC "d"
+#endif
+
void
_ecore_signal_shutdown(void)
{
#endif
sigprocmask(SIG_BLOCK, &newset, &oldset);
if (sigchld_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGCHLD in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigchld_count, MAXSIGQ);
-#else
- WRN("%i SIGCHLD in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGCHLD in queue. max queue size %i. losing "
"siginfo for extra signals.", sigchld_count, MAXSIGQ);
-#endif
tot = sigchld_count + sigusr1_count + sigusr2_count +
sighup_count + sigquit_count + sigint_count + sigterm_count
#ifdef SIGPWR
+ sigpwr_count
#endif
;
-
+
if (sig_count != tot)
{
-#ifdef __FreeBSD__
- ERR("sig_count (%ld) != actual totals (%i) ", sig_count, tot);
-#else
- ERR("sig_count (%i) != actual totals (%i) ", sig_count, tot);
-#endif
+ ERR("sig_count (%"PRIdSIGATOMIC") != actual totals (%i) ",
+ sig_count, tot);
sig_count = tot;
}
-
+
for (n = 0; n < sigchld_count; n++)
{
pid_t pid;
sigchld_count = 0;
if (sigusr1_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGUSR1 in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigusr1_count, MAXSIGQ);
-#else
- WRN("%i SIGUSR1 in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGUSR1 in queue. max queue size %i. losing "
"siginfo for extra signals.", sigusr1_count, MAXSIGQ);
-#endif
for (n = 0; n < sigusr1_count; n++)
{
Ecore_Event_Signal_User *e;
sigusr1_count = 0;
if (sigusr2_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGUSR2 in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigusr2_count, MAXSIGQ);
-#else
- WRN("%i SIGUSR2 in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGUSR2 in queue. max queue size %i. losing "
"siginfo for extra signals.", sigusr2_count, MAXSIGQ);
-#endif
for (n = 0; n < sigusr2_count; n++)
{
Ecore_Event_Signal_User *e;
sigusr2_count = 0;
if (sighup_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGHUP in queue. max queue size %i. losing "
- "siginfo for extra signals.", sighup_count, MAXSIGQ);
-#else
- WRN("%i SIGHUP in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGHUP in queue. max queue size %i. losing "
"siginfo for extra signals.", sighup_count, MAXSIGQ);
-#endif
for (n = 0; n < sighup_count; n++)
{
Ecore_Event_Signal_Hup *e;
sighup_count = 0;
if (sigquit_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGQUIT in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGQUIT in queue. max queue size %i. losing "
"siginfo for extra signals.", sigquit_count, MAXSIGQ);
-#else
- WRN("%i SIGQUIT in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigquit_count, MAXSIGQ);
-#endif
for (n = 0; n < sigquit_count; n++)
{
Ecore_Event_Signal_Exit *e;
sigquit_count = 0;
if (sigint_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGINT in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigint_count, MAXSIGQ);
-#else
- WRN("%i SIGINT in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGINT in queue. max queue size %i. losing "
"siginfo for extra signals.", sigint_count, MAXSIGQ);
-#endif
for (n = 0; n < sigint_count; n++)
{
Ecore_Event_Signal_Exit *e;
sigint_count = 0;
if (sigterm_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGTERM in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigterm_count, MAXSIGQ);
-#else
- WRN("%i SIGTERM in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGTERM in queue. max queue size %i. losing "
"siginfo for extra signals.", sigterm_count, MAXSIGQ);
-#endif
for (n = 0; n < sigterm_count; n++)
{
Ecore_Event_Signal_Exit *e;
#ifdef SIGPWR
if (sigpwr_count > MAXSIGQ)
-#ifdef __FreeBSD__
- WRN("%ld SIGPWR in queue. max queue size %i. losing "
- "siginfo for extra signals.", sigpwr_count, MAXSIGQ);
-#else
- WRN("%i SIGPWR in queue. max queue size %i. losing "
+ WRN("%"PRIdSIGATOMIC" SIGPWR in queue. max queue size %i. losing "
"siginfo for extra signals.", sigpwr_count, MAXSIGQ);
-#endif
for (n = 0; n < sigpwr_count; n++)
{
Ecore_Event_Signal_Power *e;