From: Roland McGrath Date: Sun, 15 Dec 2002 23:58:41 +0000 (+0000) Subject: 2002-12-15 Roland McGrath X-Git-Tag: v4.5.18~955 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2638cb435670dce7889e76715115810bc351abaf;p=strace 2002-12-15 Roland McGrath * signal.c [LINUX && I386]: Provide SA_RESTORER constant if not defined. If the bit is set, print the sa_restorer field of sigaction. --- diff --git a/signal.c b/signal.c index 7f39fe9a..31cde2ad 100644 --- a/signal.c +++ b/signal.c @@ -174,6 +174,14 @@ static struct xlat sigvec_flags[] = { #ifdef HAVE_SIGACTION +#if defined LINUX && defined I386 +/* The libc headers do not define this constant since it should only be + used by the implementation. So wwe define it here. */ +# ifndef SA_RESTORER +# define SA_RESTORER 0x04000000 +# endif +#endif + static struct xlat sigact_flags[] = { #ifdef SA_RESTORER { SA_RESTORER, "SA_RESTORER" }, @@ -1084,6 +1092,10 @@ struct tcb *tcp; tprintf(", "); if (!printflags(sigact_flags, sa.sa_flags)) tprintf("0"); +#ifdef SA_RESTORER + if (sa.sa_flags & SA_RESTORER) + tprintf(", %p", sa.sa_restorer); +#endif tprintf("}"); } } @@ -1771,6 +1783,10 @@ sys_rt_sigaction(tcp) tprintf(", "); if (!printflags(sigact_flags, sa.sa_flags)) tprintf("0"); +#ifdef SA_RESTORER + if (sa.sa_flags & SA_RESTORER) + tprintf(", %p", sa.sa_restorer); +#endif tprintf("}"); } }