Deleted Added
full compact
35c35
< __FBSDID("$FreeBSD: head/sys/amd64/ia32/ia32_signal.c 150631 2005-09-27 18:04:20Z peter $");
---
> __FBSDID("$FreeBSD: head/sys/amd64/ia32/ia32_signal.c 151316 2005-10-14 12:43:47Z davidxu $");
82c82
< static void freebsd4_ia32_sendsig(sig_t, int, sigset_t *, u_long);
---
> static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);
298c298
< freebsd4_ia32_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
---
> freebsd4_ia32_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
300a301
> struct ia32_siginfo siginfo;
305a307
> int sig;
308a311,312
> siginfo_to_ia32siginfo(&ksi->ksi_info, &siginfo);
>
309a314
> sig = siginfo.si_signo;
364a370
> sf.sf_si = siginfo;
366,367d371
< sf.sf_si.si_code = code;
< sf.sf_si.si_addr = regs->tf_addr;
370,371c374,375
< sf.sf_siginfo = code;
< sf.sf_addr = regs->tf_addr;
---
> sf.sf_siginfo = siginfo.si_code;
> sf.sf_addr = (u_int32_t)siginfo.si_addr;
403c407
< ia32_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
---
> ia32_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
405a410
> struct ia32_siginfo siginfo;
411a417
> int sig;
412a419
> siginfo_to_ia32siginfo(&ksi->ksi_info, &siginfo);
415a423
> sig = siginfo.si_signo;
419c427
< freebsd4_ia32_sendsig(catcher, sig, mask, code);
---
> freebsd4_ia32_sendsig(catcher, ksi, mask);
481a490
> sf.sf_si = siginfo;
483,484d491
< sf.sf_si.si_code = code;
< sf.sf_si.si_addr = regs->tf_addr;
487,488c494,495
< sf.sf_siginfo = code;
< sf.sf_addr = regs->tf_addr;
---
> sf.sf_siginfo = siginfo.si_code;
> sf.sf_addr = (u_int32_t)siginfo.si_addr;
542a550
> ksiginfo_t ksi;
576c584,589
< trapsignal(td, SIGBUS, T_PROTFLT);
---
> ksiginfo_init_trap(&ksi);
> ksi.ksi_signo = SIGBUS;
> ksi.ksi_code = BUS_OBJERR;
> ksi.ksi_trapno = T_PROTFLT;
> ksi.ksi_addr = (void *)regs->tf_rip;
> trapsignal(td, &ksi);
619a633
> ksiginfo_t ksi;
653c667,672
< trapsignal(td, SIGBUS, T_PROTFLT);
---
> ksiginfo_init_trap(&ksi);
> ksi.ksi_signo = SIGBUS;
> ksi.ksi_code = BUS_OBJERR;
> ksi.ksi_trapno = T_PROTFLT;
> ksi.ksi_addr = (void *)regs->tf_rip;
> trapsignal(td, &ksi);
724a744,758
>
> void
> siginfo_to_ia32siginfo(siginfo_t *src, struct ia32_siginfo *dst)
> {
> dst->si_signo = src->si_signo;
> dst->si_errno = src->si_errno;
> dst->si_code = src->si_code;
> dst->si_pid = src->si_pid;
> dst->si_uid = src->si_uid;
> dst->si_status = src->si_status;
> dst->si_addr = dst->si_addr;
> dst->si_value.sigval_int = src->si_value.sigval_int;
> dst->si_band = src->si_band;
> dst->__spare__[0] = src->si_trapno;
> }