Subject: port-i386/851: Patch to pass the address of a protection fault to a signal handler
To: None <dtc@scrooge.ee.swin.oz.au>
From: Gordon W. Ross <gwr@mc.com>
List: netbsd-bugs
Date: 03/08/1995 14:38:15
Note that POSIX 1003.1B specifies what the arguments for a
signal handler should be. The handler should be called as:
void handler(int signum, siginfo_t *info, void *)
The third arg is traditionally the sigcontext_t pointer,
but its structure is not defined by the standard.
The second arg points to a siginfo_t which has: (at least)
int si_signo;
int si_code; /* SI_USER, SI_QUEUE, SI_TIMER, ... */
union sigval si_value;
/* may contain other info here. */
Several systems I looked at put the faulting address in si_value
when signaling faults for which that makes sense (i.e. SIGSEGV,
SIGBUS, SIGILL, SIGFPE). Another trick I like is to set the
si_code member to something "useful" for faults, but normally
it should just contain what NetBSD now passes as the "code".
Let's standardize!
Gordon