Re: [Fwd: sigcontext on Linux-ppc in user space]
Ok, actually the segfault was for a more complicated function, but the simplified example still gives the wrong answer. i.e scp should point to a struct sigcontext and scp->signal should be 10 in the sample program.
John Kacur/Toronto/IBM@IBMCA
[email protected]
(416) 448-2584 (phone)
778-2584 (tie line)
"Kevin B. Hendricks" <[email protected]> on 01/25/2001 01:10:40 PM
Please respond to [email protected]
To: John Kacur/Toronto/IBM@IBMCA
cc: [email protected], [email protected]
Subject: Re: [Fwd: sigcontext on Linux-ppc in user space]
Hi,
Here is what I get from running it on my system (ppc linux with 2.2.15 kernel with some mods and glibc-2.1.3).
But no segfault.
Kevin
[kbhend@localhost ~]$ gcc -O2 -ojunk junk.c
[kbhend@localhost ~]$ ./junk
SIGUSR1 = 10
scp = 7fffe9a4scp->signal = 0
[kbhend@localhost ~]$
Quoted 29 lines · On Thursday, January 25, 2001, at 10:09 AM, [email protected] wrote:
#include <
stdio.h>
#include <signal.h>/* Function Prototypes */
voidinstall_sigusr1_handler(void);
voidsigusr_handler(int , siginfo_t *, struct sigcontext * scp);int main(void)
{ install_sigusr1_handler(); printf("SIGUSR1 = %d\n", SIGUSR1); raise(SIGUSR1); exit(0); }void
install_sigusr1_handler(void){ struct sigaction newAct; if (sigemptyset(&newAct.sa_mask) != 0) { fprintf(stderr, "Warning, sigemptyset failed.\n"); } newAct.sa_flags = 0; newAct.sa_flags |= SA_SIGINFO | SA_RESTART; newAct.sa_sigaction = (void(*)(int,siginfo_t*,void*))sigusr_handler;
Quoted 8 lines
if (sigaction(SIGUSR1, &newAct, NULL) != 0) { fprintf(stderr, "Couldn't install SIGUSR1 handler.\n"); fprintf(stderr, "Exiting.\n"); exit(1); } }void sigusr_handler(int signo,
siginfo_t*siginfp, struct sigcontext *
scp)
Quoted 6 lines
{
printf("scp = %08x\n", scp);
printf("scp->signal = %d\n", scp->signal);
}-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/