diff --git a/sys/amd64/ia32/ia32_signal.c b/sys/amd64/ia32/ia32_signal.c index eaf64f4d3a9f..a29abf05087b 100644 --- a/sys/amd64/ia32/ia32_signal.c +++ b/sys/amd64/ia32/ia32_signal.c @@ -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; } diff --git a/sys/compat/ia32/ia32_signal.h b/sys/compat/ia32/ia32_signal.h index 267d47293932..8868a7ebbbe2 100644 --- a/sys/compat/ia32/ia32_signal.h +++ b/sys/compat/ia32/ia32_signal.h @@ -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