Catch up to the system siginfo changes. Use a union for the ia32 layout

of siginfo just like the system one.  There are now two fields to copy
instead of one.
This commit is contained in:
Peter Wemm 2005-12-06 23:06:29 +00:00
parent 696effb697
commit 79880f7327
2 changed files with 22 additions and 3 deletions

View File

@ -754,5 +754,7 @@ siginfo_to_ia32siginfo(siginfo_t *src, struct ia32_siginfo *dst)
dst->si_addr = dst->si_addr;
dst->si_value.sigval_int = src->si_value.sival_int;
dst->si_band = src->si_band;
dst->__spare__[0] = src->si_trapno;
dst->si_trapno = src->si_trapno;
dst->si_timerid = src->si_timerid;
dst->si_overrun = src->si_overrun;
}

View File

@ -155,8 +155,25 @@ struct ia32_siginfo {
int si_status; /* exit value */
u_int32_t si_addr; /* faulting instruction */
union ia32_sigval si_value; /* signal value */
int32_t si_band; /* band event for SIGPOLL */
int __spare__[7]; /* gimme some slack */
union {
struct {
int _trapno;/* machine specific trap code */
} _fault;
struct {
int _timerid;
int _overrun;
} _timer;
struct {
int _mqd;
} _mesgq;
struct {
int _band; /* band event for SIGPOLL */
} _poll; /* was this ever used ? */
struct {
int __spare1__;
int __spare2__[7];
} __spare__;
} _reason;
};
#ifdef COMPAT_FREEBSD4