Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 18:04:05 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 85293 for review
Message-ID:  <200510141804.j9EI45iK074331@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=85293

Change 85293 by jhb@jhb_slimer on 2005/10/14 18:03:59

	IFC @85291.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/machdep.c#81 integrate
.. //depot/projects/smpng/sys/alpha/alpha/trap.c#61 integrate
.. //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#21 integrate
.. //depot/projects/smpng/sys/alpha/osf1/osf1_signal.c#29 integrate
.. //depot/projects/smpng/sys/alpha/osf1/osf1_signal.h#3 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#44 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#35 integrate
.. //depot/projects/smpng/sys/amd64/conf/NOTES#21 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_reg.c#2 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#12 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#10 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#9 integrate
.. //depot/projects/smpng/sys/arm/arm/bcopy_page.S#4 integrate
.. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#15 integrate
.. //depot/projects/smpng/sys/arm/arm/genassym.c#6 integrate
.. //depot/projects/smpng/sys/arm/arm/machdep.c#14 integrate
.. //depot/projects/smpng/sys/arm/arm/swtch.S#13 integrate
.. //depot/projects/smpng/sys/arm/arm/trap.c#13 integrate
.. //depot/projects/smpng/sys/arm/arm/undefined.c#8 integrate
.. //depot/projects/smpng/sys/arm/conf/IQ31244#9 integrate
.. //depot/projects/smpng/sys/arm/conf/SIMICS#7 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#12 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#14 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#24 integrate
.. //depot/projects/smpng/sys/compat/ia32/ia32_signal.h#8 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#60 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#30 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_windrv.c#5 integrate
.. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#22 integrate
.. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#18 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#17 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#30 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#31 integrate
.. //depot/projects/smpng/sys/compat/ndis/winx32_wrap.S#2 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_signal.h#5 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#11 integrate
.. //depot/projects/smpng/sys/conf/NOTES#107 integrate
.. //depot/projects/smpng/sys/conf/files#152 integrate
.. //depot/projects/smpng/sys/conf/files.arm#7 integrate
.. //depot/projects/smpng/sys/conf/kern.pre.mk#48 integrate
.. //depot/projects/smpng/sys/conf/kmod.mk#50 integrate
.. //depot/projects/smpng/sys/conf/options#107 integrate
.. //depot/projects/smpng/sys/contrib/dev/oltr/if_oltr_pci.c#3 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/if_pflog.c#11 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#17 integrate
.. //depot/projects/smpng/sys/dev/aac/aac.c#51 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_cam.c#17 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_debug.c#17 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_pci.c#40 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_tables.h#5 integrate
.. //depot/projects/smpng/sys/dev/aac/aacreg.h#17 integrate
.. //depot/projects/smpng/sys/dev/aac/aacvar.h#25 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.h#39 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#57 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-dma.c#45 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.c#57 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#35 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.c#38 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#58 integrate
.. //depot/projects/smpng/sys/dev/dc/dcphy.c#1 branch
.. //depot/projects/smpng/sys/dev/dc/if_dc.c#1 branch
.. //depot/projects/smpng/sys/dev/dc/if_dcreg.h#1 branch
.. //depot/projects/smpng/sys/dev/dc/pnphy.c#1 branch
.. //depot/projects/smpng/sys/dev/ed/ax88x90reg.h#1 branch
.. //depot/projects/smpng/sys/dev/ed/dl100xxreg.h#1 branch
.. //depot/projects/smpng/sys/dev/ed/if_ed_isa.c#12 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#35 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#13 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_rtl80x9.c#1 branch
.. //depot/projects/smpng/sys/dev/ed/if_edreg.h#7 integrate
.. //depot/projects/smpng/sys/dev/ed/if_edvar.h#13 integrate
.. //depot/projects/smpng/sys/dev/ed/rtl80x9reg.h#1 branch
.. //depot/projects/smpng/sys/dev/ed/tc5299jreg.h#1 branch
.. //depot/projects/smpng/sys/dev/em/if_em.c#54 integrate
.. //depot/projects/smpng/sys/dev/exca/exca.c#16 integrate
.. //depot/projects/smpng/sys/dev/firewire/if_fwe.c#29 integrate
.. //depot/projects/smpng/sys/dev/firewire/if_fwip.c#8 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#68 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#4 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#33 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndisvar.h#15 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#11 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwireg.h#4 integrate
.. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.c#13 integrate
.. //depot/projects/smpng/sys/dev/md/md.c#69 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt.c#10 integrate
.. //depot/projects/smpng/sys/dev/nge/if_nge.c#44 integrate
.. //depot/projects/smpng/sys/dev/nge/if_ngereg.h#10 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#52 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#52 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb_isa.c#4 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb_pci.c#10 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbbvar.h#17 integrate
.. //depot/projects/smpng/sys/dev/re/if_re.c#30 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#17 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/ich.c#36 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#18 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/via82c686.c#23 integrate
.. //depot/projects/smpng/sys/dev/vge/if_vge.c#11 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx.c#22 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx_eisa.c#10 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx_pci.c#13 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vxvar.h#6 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#37 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xereg.h#3 integrate
.. //depot/projects/smpng/sys/fs/procfs/procfs_ctl.c#22 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#23 integrate
.. //depot/projects/smpng/sys/geom/geom_gpt.c#20 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#106 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#98 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#85 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#72 integrate
.. //depot/projects/smpng/sys/i386/include/trap.h#3 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#45 integrate
.. //depot/projects/smpng/sys/i386/svr4/svr4_machdep.c#16 integrate
.. //depot/projects/smpng/sys/ia64/ia32/ia32_signal.c#4 integrate
.. //depot/projects/smpng/sys/ia64/ia32/ia32_trap.c#5 integrate
.. //depot/projects/smpng/sys/ia64/ia64/machdep.c#97 integrate
.. //depot/projects/smpng/sys/ia64/ia64/nexus.c#11 integrate
.. //depot/projects/smpng/sys/ia64/ia64/trap.c#77 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#60 integrate
.. //depot/projects/smpng/sys/kern/kern_clock.c#42 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#83 integrate
.. //depot/projects/smpng/sys/kern/kern_event.c#43 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#89 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#100 integrate
.. //depot/projects/smpng/sys/kern/kern_kse.c#26 integrate
.. //depot/projects/smpng/sys/kern/kern_mac.c#42 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#19 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#109 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#27 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#80 integrate
.. //depot/projects/smpng/sys/kern/kern_uuid.c#10 integrate
.. //depot/projects/smpng/sys/kern/subr_bus.c#56 integrate
.. //depot/projects/smpng/sys/kern/subr_rman.c#24 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#78 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#60 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#62 integrate
.. //depot/projects/smpng/sys/kern/sysv_shm.c#32 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#60 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#84 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#112 integrate
.. //depot/projects/smpng/sys/modules/Makefile#108 integrate
.. //depot/projects/smpng/sys/modules/ed/Makefile#7 integrate
.. //depot/projects/smpng/sys/modules/lmc/Makefile#2 integrate
.. //depot/projects/smpng/sys/net/bpf.c#57 integrate
.. //depot/projects/smpng/sys/net/bridgestp.c#5 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#12 integrate
.. //depot/projects/smpng/sys/net/if_bridgevar.h#3 integrate
.. //depot/projects/smpng/sys/net/if_clone.c#6 integrate
.. //depot/projects/smpng/sys/net/if_disc.c#20 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#65 integrate
.. //depot/projects/smpng/sys/net/if_faith.c#29 integrate
.. //depot/projects/smpng/sys/net/if_fwsubr.c#9 integrate
.. //depot/projects/smpng/sys/net/if_gif.c#29 integrate
.. //depot/projects/smpng/sys/net/if_gre.c#25 integrate
.. //depot/projects/smpng/sys/net/if_ppp.c#36 integrate
.. //depot/projects/smpng/sys/net/if_stf.c#33 integrate
.. //depot/projects/smpng/sys/net/netisr.c#10 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#40 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#27 integrate
.. //depot/projects/smpng/sys/netgraph/ng_iface.c#25 integrate
.. //depot/projects/smpng/sys/netgraph/ng_tty.c#17 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#41 integrate
.. //depot/projects/smpng/sys/netinet/ip_carp.c#12 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#53 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#74 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#60 integrate
.. //depot/projects/smpng/sys/netinet6/esp_aesctr.c#3 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#11 integrate
.. //depot/projects/smpng/sys/pc98/conf/NOTES#43 integrate
.. //depot/projects/smpng/sys/pc98/pc98/machdep.c#5 integrate
.. //depot/projects/smpng/sys/pci/if_dc.c#72 integrate
.. //depot/projects/smpng/sys/pci/if_pcn.c#37 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#61 integrate
.. //depot/projects/smpng/sys/pci/if_sf.c#40 integrate
.. //depot/projects/smpng/sys/pci/if_sis.c#56 integrate
.. //depot/projects/smpng/sys/pci/if_sk.c#50 integrate
.. //depot/projects/smpng/sys/pci/if_ste.c#41 integrate
.. //depot/projects/smpng/sys/pci/if_ti.c#50 integrate
.. //depot/projects/smpng/sys/pci/if_tl.c#30 integrate
.. //depot/projects/smpng/sys/pci/if_vr.c#39 integrate
.. //depot/projects/smpng/sys/pci/if_wb.c#34 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#64 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/machdep.c#64 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/trap.c#47 integrate
.. //depot/projects/smpng/sys/security/mac/mac_process.c#8 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#77 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/trap.c#62 integrate
.. //depot/projects/smpng/sys/sys/cdefs.h#31 integrate
.. //depot/projects/smpng/sys/sys/event.h#19 integrate
.. //depot/projects/smpng/sys/sys/libkern.h#20 integrate
.. //depot/projects/smpng/sys/sys/param.h#87 integrate
.. //depot/projects/smpng/sys/sys/proc.h#152 integrate
.. //depot/projects/smpng/sys/sys/rman.h#15 integrate
.. //depot/projects/smpng/sys/sys/signal.h#17 integrate
.. //depot/projects/smpng/sys/sys/signalvar.h#24 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#59 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#59 integrate
.. //depot/projects/smpng/sys/sys/sysent.h#13 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#61 integrate
.. //depot/projects/smpng/sys/sys/uuid.h#6 integrate
.. //depot/projects/smpng/sys/sys/vnode.h#67 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_alloc.c#38 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#52 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#76 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#44 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_extattr.c#36 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#54 integrate
.. //depot/projects/smpng/sys/vm/uma.h#18 integrate
.. //depot/projects/smpng/sys/vm/uma_core.c#59 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#56 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#65 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/machdep.c#81 (text+ko) ====

@@ -88,7 +88,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.235 2005/04/04 21:53:51 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.236 2005/10/14 12:43:42 davidxu Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"
@@ -211,11 +211,10 @@
 #define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(vm_offset_t)) - 2)
 
 #ifdef COMPAT_43
-void osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code);
+void osendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask);
 #endif
 #ifdef COMPAT_FREEBSD4
-static void freebsd4_sendsig(sig_t catcher, int sig, sigset_t *mask,
-    u_long code);
+static void freebsd4_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask);
 #endif
 
 static void get_fpcontext(struct thread *td, mcontext_t *mcp);
@@ -1107,7 +1106,7 @@
  */
 #ifdef COMPAT_43
 void
-osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
+osendsig(sig_t catcher, ksiginfo_t *kp, sigset_t *mask)
 {
 	struct proc *p;
 	struct thread *td;
@@ -1115,10 +1114,14 @@
 	struct trapframe *frame;
 	struct sigacts *psp;
 	int oonstack, fsize, rndfsize;
+	int sig;
+	int code;
 
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = kp->ksi_signo;
+	code = kp->ksi_code;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 
@@ -1177,7 +1180,7 @@
 	/* Fill in POSIX parts */
 	ksi.si_signo = sig;
 	ksi.si_code = code;
-	ksi.si_value.sigval_ptr = NULL;				/* XXX */
+	ksi.si_value = kp->ksi_value;
 
 	/*
 	 * copy the frame out to userland.
@@ -1212,7 +1215,7 @@
 
 #ifdef COMPAT_FREEBSD4
 static void
-freebsd4_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
+freebsd4_sendsig(sig_t catcher, ksiginfo_t *kp, sigset_t *mask)
 {
 	struct proc *p;
 	struct thread *td;
@@ -1220,10 +1223,14 @@
 	struct sigacts *psp;
 	struct sigframe4 sf, *sfp;
 	int oonstack, rndfsize;
+	int sig;
+	int code;
 
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = kp->ksi_signo;
+	code = kp->ksi_code;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 
@@ -1308,9 +1315,7 @@
 		frame->tf_regs[FRAME_A1] = (u_int64_t)&(sfp->sf_si);
 
 		/* Fill in POSIX parts */
-		sf.sf_si.si_signo = sig;
-		sf.sf_si.si_code = code;
-		sf.sf_si.si_addr = (void*)frame->tf_regs[FRAME_TRAPARG_A0];
+		sf.sf_si = kp->ksi_info;
 	}
 	else
 		frame->tf_regs[FRAME_A1] = code;
@@ -1323,7 +1328,7 @@
 #endif	/* COMPAT_FREEBSD4 */
 
 void
-sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
+sendsig(sig_t catcher, ksiginfo_t *kp, sigset_t *mask)
 {
 	struct proc *p;
 	struct thread *td;
@@ -1331,21 +1336,25 @@
 	struct sigacts *psp;
 	struct sigframe sf, *sfp;
 	int oonstack, rndfsize;
+	int sig;
+	int code;
 
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = kp->ksi_signo;
+	code = kp->ksi_code;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 #ifdef COMPAT_FREEBSD4
 	if (SIGISMEMBER(psp->ps_freebsd4, sig)) {
-		freebsd4_sendsig(catcher, sig, mask, code);
+		freebsd4_sendsig(catcher, kp, mask);
 		return;
 	}
 #endif
 #ifdef COMPAT_43
 	if (SIGISMEMBER(psp->ps_osigset, sig)) {
-		osendsig(catcher, sig, mask, code);
+		osendsig(catcher, kp, mask);
 		return;
 	}
 #endif
@@ -1432,9 +1441,7 @@
 		frame->tf_regs[FRAME_A1] = (u_int64_t)&(sfp->sf_si);
 
 		/* Fill in POSIX parts */
-		sf.sf_si.si_signo = sig;
-		sf.sf_si.si_code = code;
-		sf.sf_si.si_addr = (void*)frame->tf_regs[FRAME_TRAPARG_A0];
+		sf.sf_si = kp->ksi_info;
 	}
 	else
 		frame->tf_regs[FRAME_A1] = code;
@@ -1446,25 +1453,6 @@
 }
 
 /*
- * Build siginfo_t for SA thread
- */
-void
-cpu_thread_siginfo(int sig, u_long code, siginfo_t *si)
-{
-	struct proc *p;
-	struct thread *td;
-
-	td = curthread;
-	p = td->td_proc;
-	PROC_LOCK_ASSERT(p, MA_OWNED);
-
-	bzero(si, sizeof(*si));
-	si->si_signo = sig;
-	si->si_code = code;
-	/* XXXKSE fill other fields */
-}
-
-/*
  * System call to cleanup state after a signal
  * has been taken.  Reset signal mask and
  * stack state from context left by sendsig (above).

==== //depot/projects/smpng/sys/alpha/alpha/trap.c#61 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.125 2005/09/28 07:03:01 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.126 2005/10/14 12:43:42 davidxu Exp $");
 
 /* #include "opt_fix_unaligned_vax_fp.h" */
 #include "opt_ddb.h"
@@ -264,6 +264,7 @@
 #ifdef SMP
 	register_t s;
 #endif
+	ksiginfo_t ksi;
 
 	/*
 	 * Find our per-cpu globals.
@@ -585,7 +586,12 @@
 	framep->tf_regs[FRAME_TRAPARG_A0] = a0;
 	framep->tf_regs[FRAME_TRAPARG_A1] = a1;
 	framep->tf_regs[FRAME_TRAPARG_A2] = a2;
-	trapsignal(td, i, ucode);
+	ksiginfo_init_trap(&ksi);
+	ksi.ksi_signo = i;
+	ksi.ksi_code = ucode;	/* XXX, Should be POSIX si_code */
+	ksi.ksi_addr = (void *)a0;
+	trapsignal(td, &ksi);
+
 out:
 	if (user) {
 		framep->tf_regs[FRAME_SP] = alpha_pal_rdusp();

==== //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#21 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.95 2005/07/29 19:40:38 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.96 2005/10/14 12:43:43 davidxu Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"
@@ -75,7 +75,7 @@
 
 SET_DECLARE(linux_ioctl_handler_set, struct linux_ioctl_handler);
 
-void osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code);
+void osendsig(sig_t catcher, ksiginfo_t *kp, sigset_t *mask);
 
 static int	elf_linux_fixup(register_t **stack_base,
     struct image_params *iparams);

==== //depot/projects/smpng/sys/alpha/osf1/osf1_signal.c#29 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_signal.c,v 1.42 2005/09/28 07:03:01 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_signal.c,v 1.43 2005/10/14 12:43:43 davidxu Exp $");
 
 #include "opt_compat.h"
 #ifndef COMPAT_43
@@ -459,7 +459,7 @@
  */
 
 void
-osf1_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
+osf1_sendsig(sig_t catcher, ksiginfo_t *kp, sigset_t *mask)
 {
 	int fsize, oonstack, rndfsize;
 	struct thread *td;
@@ -467,10 +467,14 @@
 	osiginfo_t *sip, ksi;
 	struct trapframe *frame;
 	struct sigacts *psp;
+	int sig;
+	int code;
 
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = kp->ksi_signo;
+	code = kp->ksi_code;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 
@@ -526,7 +530,7 @@
 	/* Fill in POSIX parts */
 	ksi.si_signo = sig;
 	ksi.si_code = code;
-	ksi.si_value.sigval_ptr = NULL;				/* XXX */
+	ksi.si_value = kp->ksi_value;
 
 	/*
 	 * copy the frame out to userland.

==== //depot/projects/smpng/sys/alpha/osf1/osf1_signal.h#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/alpha/osf1/osf1_signal.h,v 1.3 2002/03/20 18:58:46 obrien Exp $ */
+/* $FreeBSD: src/sys/alpha/osf1/osf1_signal.h,v 1.4 2005/10/14 12:43:43 davidxu Exp $ */
 
 #ifndef _OSF1_SIGNAL_H
 #define	_OSF1_SIGNAL_H
@@ -61,7 +61,7 @@
 void bsd_to_osf1_sigset(const sigset_t *, osf1_sigset_t *);
 void osf1_to_bsd_sigaltstack(const struct osf1_sigaltstack *, struct sigaltstack *);
 void osf1_to_bsd_sigset(const osf1_sigset_t *, sigset_t *);
-void osf1_sendsig(sig_t, int , sigset_t *, u_long );
+void osf1_sendsig(sig_t, struct ksiginfo *, sigset_t *);
 
 
 #endif /* !_OSF1_SIGNAL_H */

==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#44 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.640 2005/09/27 18:15:57 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.641 2005/10/14 12:43:43 davidxu Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -237,11 +237,7 @@
  * specified pc, psl.
  */
 void
-sendsig(catcher, sig, mask, code)
-	sig_t catcher;
-	int sig;
-	sigset_t *mask;
-	u_long code;
+sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
 {
 	struct sigframe sf, *sfp;
 	struct proc *p;
@@ -250,10 +246,12 @@
 	char *sp;
 	struct trapframe *regs;
 	int oonstack;
+	int sig;
 
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = ksi->ksi_signo;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 	regs = td->td_frame;
@@ -297,13 +295,13 @@
 		sf.sf_ahu.sf_action = (__siginfohandler_t *)catcher;
 
 		/* Fill in POSIX parts */
-		sf.sf_si.si_signo = sig;
-		sf.sf_si.si_code = code;
-		regs->tf_rcx = regs->tf_addr;	/* arg 4 in %rcx */
+		sf.sf_si = ksi->ksi_info;
+		sf.sf_si.si_signo = sig; /* maybe a translated signal */
+		regs->tf_rcx = (register_t)ksi->ksi_addr; /* arg 4 in %rcx */
 	} else {
 		/* Old FreeBSD-style arguments. */
-		regs->tf_rsi = code;		/* arg 2 in %rsi */
-		regs->tf_rcx = regs->tf_addr;	/* arg 4 in %rcx */
+		regs->tf_rsi = ksi->ksi_code;	/* arg 2 in %rsi */
+		regs->tf_rcx = (register_t)ksi->ksi_addr; /* arg 4 in %rcx */
 		sf.sf_ahu.sf_handler = catcher;
 	}
 	mtx_unlock(&psp->ps_mtx);
@@ -329,28 +327,6 @@
 }
 
 /*
- * Build siginfo_t for SA thread
- */
-void
-cpu_thread_siginfo(int sig, u_long code, siginfo_t *si)
-{
-	struct proc *p;
-	struct thread *td;
-	struct trapframe *regs;
-
-	td = curthread;
-	p = td->td_proc;
-	regs = td->td_frame;
-	PROC_LOCK_ASSERT(p, MA_OWNED);
-
-	bzero(si, sizeof(*si));
-	si->si_signo = sig;
-	si->si_code = code;
-	si->si_addr = (void *)regs->tf_addr;
-	/* XXXKSE fill other fields */
-}
-
-/*
  * System call to cleanup state after a signal
  * has been taken.  Reset signal mask and
  * stack state from context left by sendsig (above).
@@ -374,6 +350,7 @@
 	const ucontext_t *ucp;
 	long rflags;
 	int cs, error, ret;
+	ksiginfo_t ksi;
 
 	error = copyin(uap->sigcntxp, &uc, sizeof(uc));
 	if (error != 0)
@@ -407,7 +384,12 @@
 	cs = ucp->uc_mcontext.mc_cs;
 	if (!CS_SECURE(cs)) {
 		printf("sigreturn: cs = 0x%x\n", cs);
-		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);
 		return (EINVAL);
 	}
 

==== //depot/projects/smpng/sys/amd64/amd64/trap.c#35 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.294 2005/10/01 18:56:16 glebius Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.295 2005/10/14 12:43:43 davidxu Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -161,6 +161,8 @@
 	struct proc *p = td->td_proc;
 	u_int sticks = 0;
 	int i = 0, ucode = 0, type, code;
+	register_t addr = 0;
+	ksiginfo_t ksi;
 
 	PCPU_LAZY_INC(cnt.v_trap);
 	type = frame.tf_trapno;
@@ -241,13 +243,14 @@
 
 		sticks = td->td_sticks;
 		td->td_frame = &frame;
+		addr = frame.tf_rip;
 		if (td->td_ucred != p->p_ucred) 
 			cred_update_thread(td);
 
 		switch (type) {
 		case T_PRIVINFLT:	/* privileged instruction fault */
-			ucode = type;
 			i = SIGILL;
+			ucode = ILL_PRVOPC;
 			break;
 
 		case T_BPTFLT:		/* bpt instruction fault */
@@ -255,6 +258,7 @@
 			enable_intr();
 			frame.tf_rflags &= ~PSL_T;
 			i = SIGTRAP;
+			ucode = (type == T_TRCTRAP ? TRAP_TRACE : TRAP_BRKPT);
 			break;
 
 		case T_ARITHTRAP:	/* arithmetic trap */
@@ -265,16 +269,26 @@
 			break;
 
 		case T_PROTFLT:		/* general protection fault */
+			i = SIGBUS;
+			ucode = BUS_OBJERR;
+			break;
 		case T_STKFLT:		/* stack fault */
 		case T_SEGNPFLT:	/* segment not present fault */
+			i = SIGBUS;
+			ucode = BUS_ADRERR;
+			break;
 		case T_TSSFLT:		/* invalid TSS fault */
+			i = SIGBUS;
+			ucode = BUS_OBJERR;
+			break;
 		case T_DOUBLEFLT:	/* double fault */
 		default:
-			ucode = code + BUS_SEGM_FAULT ;
 			i = SIGBUS;
+			ucode = BUS_OBJERR;
 			break;
 
 		case T_PAGEFLT:		/* page fault */
+			addr = frame.tf_addr;
 			if (td->td_pflags & TDP_SA)
 				thread_user_enter(td);
 			i = trap_pfault(&frame, TRUE);
@@ -283,7 +297,12 @@
 			if (i == 0)
 				goto user;
 
-			ucode = T_PAGEFLT;
+			if (i == SIGSEGV)
+				ucode = SEGV_MAPERR;
+			else {
+				i = SIGSEGV; /* XXX hack */
+				ucode = SEGV_ACCERR;
+			}
 			break;
 
 		case T_DIVIDE:		/* integer divide fault */
@@ -326,12 +345,14 @@
 			/* transparent fault (due to context switch "late") */
 			if (fpudna())
 				goto userout;
-			i = SIGFPE;
-			ucode = FPE_FPU_NP_TRAP;
+			printf("pid %d killed due to lack of floating point\n",
+				p->p_pid);
+			i = SIGKILL;
+			ucode = 0;
 			break;
 
 		case T_FPOPFLT:		/* FPU operand fetch fault */
-			ucode = T_FPOPFLT;
+			ucode = ILL_COPROC;
 			i = SIGILL;
 			break;
 
@@ -472,7 +493,12 @@
 	if (*p->p_sysent->sv_transtrap)
 		i = (*p->p_sysent->sv_transtrap)(i, type);
 
-	trapsignal(td, i, ucode);
+	ksiginfo_init_trap(&ksi);
+	ksi.ksi_signo = i;
+	ksi.ksi_code = ucode;
+	ksi.ksi_trapno = type;
+	ksi.ksi_addr = (void *)addr;
+	trapsignal(td, &ksi);
 
 #ifdef DEBUG
 	if (type <= MAX_TRAP_MSG) {
@@ -696,6 +722,7 @@
 	register_t *argp;
 	u_int code;
 	int reg, regcnt;
+	ksiginfo_t ksi;
 
 	/*
 	 * note: PCPU_LAZY_INC() can only be used if we can afford
@@ -826,7 +853,12 @@
 	 */
 	if (orig_tf_rflags & PSL_T) {
 		frame.tf_rflags &= ~PSL_T;
-		trapsignal(td, SIGTRAP, 0);
+
+		ksiginfo_init_trap(&ksi);
+		ksi.ksi_signo = SIGTRAP;
+		ksi.ksi_code = TRAP_TRACE;
+		ksi.ksi_addr = (void *)frame.tf_rip;
+		trapsignal(td, &ksi);
 	}
 
 	/*

==== //depot/projects/smpng/sys/amd64/conf/NOTES#21 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.42 2005/09/08 03:29:18 scottl Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.44 2005/10/14 17:22:28 ru Exp $
 #
 
 #
@@ -76,10 +76,10 @@
 # potential increase in response times.
 # It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
 # to achieve smoother behaviour.
-# Additionally, you can enable/disable polling at runtime with the
-# sysctl variable kern.polling.enable (defaults off), and select
-# the CPU fraction reserved to userland with the sysctl variable
-# kern.polling.user_frac (default 50, range 0..100).
+# Additionally, you can enable/disable polling at runtime with help of
+# the ifconfig(8) utility, and select the CPU fraction reserved to
+# userland with the sysctl variable kern.polling.user_frac
+# (default 50, range 0..100).
 #
 # Not all device drivers support this mode of operation at the time of
 # this writing.  See polling(4) for more details.
@@ -235,9 +235,9 @@
 
 device		ath
 device		ath_hal		# Atheros HAL (includes binary component)
-device		ath_rate_onoe	# Onoe rate control for ath driver
 #device		ath_rate_amrr	# AMRR rate control for ath driver
-#device		ath_rate_sample	# SampleRate rate control for the ath driver
+#device		ath_rate_onoe	# Onoe rate control for ath driver
+device		ath_rate_sample	# SampleRate rate control for the ath driver
 #device		wlan		# 802.11 layer
 
 #

==== //depot/projects/smpng/sys/amd64/ia32/ia32_reg.c#2 (text+ko) ====

@@ -23,11 +23,11 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.1 2005/06/30 07:49:21 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.2 2005/10/04 23:26:00 peter Exp $
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.1 2005/06/30 07:49:21 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_reg.c,v 1.2 2005/10/04 23:26:00 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/exec.h>
@@ -112,12 +112,14 @@
 	if (!EFL_SECURE(regs->r_eflags, tp->tf_rflags) || !CS_SECURE(regs->r_cs))
 		return (EINVAL);
 	pcb = td->td_pcb;
+#if 0
 	load_fs(regs->r_fs);
 	pcb->pcb_fs = regs->r_fs;
 	load_es(regs->r_es);
 	pcb->pcb_es = regs->r_es;
 	load_ds(regs->r_ds);
 	pcb->pcb_ds = regs->r_ds;
+#endif
 	tp->tf_rdi = regs->r_edi;
 	tp->tf_rsi = regs->r_esi;
 	tp->tf_rbp = regs->r_ebp;
@@ -130,8 +132,10 @@
 	tp->tf_rflags = regs->r_eflags;
 	tp->tf_rsp = regs->r_esp;
 	tp->tf_ss = regs->r_ss;
+#if 0
 	load_gs(regs->r_gs);
 	pcb->pcb_gs = regs->r_gs;
+#endif
 	return (0);
 }
 

==== //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#12 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.11 2005/09/27 18:04:20 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.12 2005/10/14 12:43:43 davidxu Exp $");
 
 #include "opt_compat.h"
 
@@ -79,7 +79,7 @@
 #include <machine/cpufunc.h>
 
 #ifdef COMPAT_FREEBSD4
-static void freebsd4_ia32_sendsig(sig_t, int, sigset_t *, u_long);
+static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);
 #endif
 static void ia32_get_fpcontext(struct thread *td, struct ia32_mcontext *mcp);
 static int ia32_set_fpcontext(struct thread *td, const struct ia32_mcontext *mcp);
@@ -295,18 +295,23 @@
  */
 #ifdef COMPAT_FREEBSD4
 static void
-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)
 {
 	struct ia32_sigframe4 sf, *sfp;
+	struct ia32_siginfo siginfo;
 	struct proc *p;
 	struct thread *td;
 	struct sigacts *psp;
 	struct trapframe *regs;
 	int oonstack;
+	int sig;
 
 	td = curthread;
 	p = td->td_proc;
+	siginfo_to_ia32siginfo(&ksi->ksi_info, &siginfo);
+
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = siginfo.si_signo;
 	psp = p->p_sigacts;
 	mtx_assert(&psp->ps_mtx, MA_OWNED);
 	regs = td->td_frame;
@@ -362,13 +367,12 @@
 		sf.sf_ah = (u_int32_t)(uintptr_t)catcher;
 
 		/* Fill in POSIX parts */
+		sf.sf_si = siginfo;
 		sf.sf_si.si_signo = sig;
-		sf.sf_si.si_code = code;
-		sf.sf_si.si_addr = regs->tf_addr;
 	} else {
 		/* Old FreeBSD-style arguments. */
-		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;
 		sf.sf_ah = (u_int32_t)(uintptr_t)catcher;
 	}
 	mtx_unlock(&psp->ps_mtx);
@@ -400,23 +404,27 @@
 #endif	/* COMPAT_FREEBSD4 */
 
 void
-ia32_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
+ia32_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
 {
 	struct ia32_sigframe sf, *sfp;
+	struct ia32_siginfo siginfo;
 	struct proc *p;
 	struct thread *td;
 	struct sigacts *psp;
 	char *sp;
 	struct trapframe *regs;
 	int oonstack;
+	int sig;
 
+	siginfo_to_ia32siginfo(&ksi->ksi_info, &siginfo);
 	td = curthread;
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	sig = siginfo.si_signo;
 	psp = p->p_sigacts;
 #ifdef COMPAT_FREEBSD4
 	if (SIGISMEMBER(psp->ps_freebsd4, sig)) {
-		freebsd4_ia32_sendsig(catcher, sig, mask, code);
+		freebsd4_ia32_sendsig(catcher, ksi, mask);
 		return;
 	}
 #endif
@@ -479,13 +487,12 @@
 		sf.sf_ah = (u_int32_t)(uintptr_t)catcher;
 
 		/* Fill in POSIX parts */
+		sf.sf_si = siginfo;
 		sf.sf_si.si_signo = sig;
-		sf.sf_si.si_code = code;
-		sf.sf_si.si_addr = regs->tf_addr;
 	} else {
 		/* Old FreeBSD-style arguments. */
-		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;
 		sf.sf_ah = (u_int32_t)(uintptr_t)catcher;
 	}
 	mtx_unlock(&psp->ps_mtx);
@@ -540,6 +547,7 @@
 	struct trapframe *regs;
 	const struct ia32_ucontext4 *ucp;
 	int cs, eflags, error;
+	ksiginfo_t ksi;
 
 	error = copyin(uap->sigcntxp, &uc, sizeof(uc));
 	if (error != 0)
@@ -573,7 +581,12 @@
 	cs = ucp->uc_mcontext.mc_cs;
 	if (!CS_SECURE(cs)) {
 		printf("freebsd4_sigreturn: cs = 0x%x\n", cs);
-		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);
 		return (EINVAL);
 	}
 
@@ -617,6 +630,7 @@
 	struct trapframe *regs;
 	const struct ia32_ucontext *ucp;
 	int cs, eflags, error, ret;
+	ksiginfo_t ksi;
 
 	error = copyin(uap->sigcntxp, &uc, sizeof(uc));
 	if (error != 0)
@@ -650,7 +664,12 @@
 	cs = ucp->uc_mcontext.mc_cs;
 	if (!CS_SECURE(cs)) {
 		printf("sigreturn: cs = 0x%x\n", cs);
-		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);
 		return (EINVAL);
 	}
 
@@ -722,3 +741,18 @@
 	pcb->pcb_flags |= PCB_FULLCTX;
 	td->td_retval[1] = 0;
 }
+
+void
+siginfo_to_ia32siginfo(siginfo_t *src, struct ia32_siginfo *dst)
+{

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510141804.j9EI45iK074331>