[lkml]   [2001]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: sa_sigaction signal handler: third parameter?
Orjan Friberg wrote:
> I'm trying to make life easier for a user-defined SIGSEGV handler, the
> sa_sigaction one with 3 parameters. The second parameter, the siginfo_t
> * one, is there. Problem is, I would like to pass on additional
> information to the signal handler, more specifically information about
> whether there was a protection fault, read/write etc. I've looked at
> some of the other ports (I'm working on the CRIS port BTW), and for
> example the i386 has fields in the task and sigcontext structs to keep
> this sort of information.
> Question is how to pass this information on to the signal handler.
> Looking at the code, it seems the third parameter (void *) is being used
> to send a ucontext_t * in (at least) the arm and mips cases. I followed
> a lot of threads in the archive, but couldn't find one that adressed
> what this third parameter is actually meant to be used for. Obviously,
> sending a ucontext would solve my problem, since it contains the
> sigcontext struct. Is there a Right Way to do it?

Whether or not there was a protection fault is indicated with
SEGV_MAPERR vs. SEGV_ACCERR. Unfortunately, the siginfo_t doesn't have
any place to indicate whether it's a read or a write fault. *How could
they have left that out?*

The Right Way, IMHO, would be to find some acceptable,
standard-compatible way to get the read/write flag into the siginfo_t.

-- Jamie
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:02    [W:0.036 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site