PERFORCE change 101213 for review

Paolo Pisati piso at FreeBSD.org
Mon Jul 10 16:43:00 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=101213

Change 101213 by piso at piso_newluxor on 2006/07/10 16:42:13

	IFC

Affected files ...

.. //depot/projects/soc2006/intr_filter/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#5 integrate
.. //depot/projects/soc2006/intr_filter/amd64/conf/GENERIC#4 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_proto.h#5 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_syscall.h#5 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_sysent.c#5 integrate
.. //depot/projects/soc2006/intr_filter/amd64/linux32/syscalls.master#5 integrate
.. //depot/projects/soc2006/intr_filter/bsm/audit_kevents.h#2 integrate
.. //depot/projects/soc2006/intr_filter/bsm/audit_record.h#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_ioctl.c#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_ipc.c#3 integrate
.. //depot/projects/soc2006/intr_filter/compat/linux/linux_socket.c#2 integrate
.. //depot/projects/soc2006/intr_filter/compat/svr4/svr4_ipc.c#3 integrate
.. //depot/projects/soc2006/intr_filter/conf/NOTES#5 integrate
.. //depot/projects/soc2006/intr_filter/conf/files#4 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src.diff#2 delete
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_bstream.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_bstream.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_context.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_context.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_env.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_env.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_scoreboard.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_scoreboard.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_self-new.c#2 delete
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_self.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_self.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_self_context.s#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_self_info.h#1 branch
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_step.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_step.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_str.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_str.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_swap.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_swap.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_symbols.c#1 branch
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_symbols.h#1 branch
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_trace.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_trace.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_ttrace.c#2 delete
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_ttrace.h#2 delete
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_uinfo.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_uinfo.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_utable.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx_utable.h#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/pf/net/if_pflog.c#2 integrate
.. //depot/projects/soc2006/intr_filter/contrib/pf/net/if_pfsync.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/asr/MAINTAINER#2 delete
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-chipset.c#5 integrate
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-lowlevel.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ata/ata-pci.h#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/atkbdc/atkbdc_isa.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/fdc/fdc.c#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/ic/nec765.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_freebsd.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_freebsd.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_pci.c#4 integrate
.. //depot/projects/soc2006/intr_filter/dev/isp/isp_sbus.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/ispfw/asm_1040.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ispfw/asm_1080.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ispfw/asm_12160.h#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/ispfw/ispfw.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/mii/mii_physubr.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/sk/if_sk.c#3 integrate
.. //depot/projects/soc2006/intr_filter/dev/sound/pci/solo.c#2 integrate
.. //depot/projects/soc2006/intr_filter/dev/usb/if_aue.c#2 integrate
.. //depot/projects/soc2006/intr_filter/doc/Doxyfile#2 delete
.. //depot/projects/soc2006/intr_filter/doc/Makefile#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Dependencies#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-cam#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-crypto#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-dev_pci#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-dev_sound#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-dev_usb#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-geom#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-i4b#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-kern#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-libkern#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-linux#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-net80211#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-netgraph#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-netinet#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-netinet6#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-netipsec#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-opencrypto#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Doxyfile-vm#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/Makefile#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/README#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/common-Doxyfile#2 delete
.. //depot/projects/soc2006/intr_filter/doc/subsys/notreviewed.dox#2 delete
.. //depot/projects/soc2006/intr_filter/fs/devfs/devfs_vfsops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/fs/devfs/devfs_vnops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/fs/portalfs/portal_vnops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/fs/unionfs/union_vnops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/mirror/g_mirror.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/raid3/g_raid3.c#2 integrate
.. //depot/projects/soc2006/intr_filter/geom/raid3/g_raid3_ctl.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/conf/GENERIC#5 integrate
.. //depot/projects/soc2006/intr_filter/i386/conf/PAE#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_ipc.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_ipc.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_misc.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_msg.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_other.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_poll.h#2 delete
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_proto.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_syscall.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_sysent.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix_syscall.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/ibcs2_xenix_sysent.c#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/syscalls.master#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/ibcs2/syscalls.xenix#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/include/i4b_ioctl.h#2 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_proto.h#5 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_syscall.h#5 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/linux_sysent.c#5 integrate
.. //depot/projects/soc2006/intr_filter/i386/linux/syscalls.master#5 integrate
.. //depot/projects/soc2006/intr_filter/i4b/layer4/i4b_l4mgmt.c#2 integrate
.. //depot/projects/soc2006/intr_filter/ia64/conf/GENERIC#4 integrate
.. //depot/projects/soc2006/intr_filter/ia64/include/ieeefp.h#2 integrate
.. //depot/projects/soc2006/intr_filter/isa/isahint.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/bus_if.m#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/init_sysent.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_acl.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_descrip.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_environment.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_linker.c#5 integrate
.. //depot/projects/soc2006/intr_filter/kern/kern_prot.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/subr_acl_posix1e.c#1 branch
.. //depot/projects/soc2006/intr_filter/kern/subr_bus.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/subr_hints.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/sys_generic.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/syscalls.c#2 integrate
.. //depot/projects/soc2006/intr_filter/kern/syscalls.master#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/sysv_sem.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/uipc_socket2.c#4 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_subr.c#3 integrate
.. //depot/projects/soc2006/intr_filter/kern/vfs_syscalls.c#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/ispfw/Makefile#2 integrate
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_1000/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_1040/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_1040_it/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_1080/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_1080_it/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_12160/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_12160_it/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_2100/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_2200/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_2300/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/isp_2322/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/modules/ispfw/ispfw/Makefile#1 branch
.. //depot/projects/soc2006/intr_filter/net/bpf.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if.c#5 integrate
.. //depot/projects/soc2006/intr_filter/net/if_bridge.c#4 integrate
.. //depot/projects/soc2006/intr_filter/net/if_clone.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if_clone.h#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_disc.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_enc.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_faith.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_gif.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if_gre.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_loop.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_ppp.c#2 integrate
.. //depot/projects/soc2006/intr_filter/net/if_stf.c#3 integrate
.. //depot/projects/soc2006/intr_filter/net/if_vlan.c#4 integrate
.. //depot/projects/soc2006/intr_filter/net/rtsock.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#3 integrate
.. //depot/projects/soc2006/intr_filter/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/in_rmx.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_carp.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/ip_ipsec.c#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet/libalias/libalias.3#2 integrate
.. //depot/projects/soc2006/intr_filter/netinet6/in6_rmx.c#2 integrate
.. //depot/projects/soc2006/intr_filter/nfsclient/nfs_socket.c#2 integrate
.. //depot/projects/soc2006/intr_filter/nfsclient/nfs_vnops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/pc98/conf/GENERIC#4 integrate
.. //depot/projects/soc2006/intr_filter/powerpc/powerpc/mmu_oea.c#5 integrate
.. //depot/projects/soc2006/intr_filter/security/audit/audit.h#2 integrate
.. //depot/projects/soc2006/intr_filter/security/audit/audit_arg.c#2 integrate
.. //depot/projects/soc2006/intr_filter/security/audit/audit_bsm.c#2 integrate
.. //depot/projects/soc2006/intr_filter/sparc64/conf/GENERIC#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/bus.h#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/sockio.h#3 integrate
.. //depot/projects/soc2006/intr_filter/sys/syscall.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/syscall.mk#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/syscallsubr.h#4 integrate
.. //depot/projects/soc2006/intr_filter/sys/sysproto.h#2 integrate
.. //depot/projects/soc2006/intr_filter/sys/systm.h#2 integrate
.. //depot/projects/soc2006/intr_filter/ufs/ffs/ffs_vfsops.c#2 integrate
.. //depot/projects/soc2006/intr_filter/vm/vm_meter.c#3 integrate

Differences ...

==== //depot/projects/soc2006/intr_filter/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.36 2006/05/29 19:29:41 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.37 2006/07/04 14:14:16 maxim Exp $
 
 .include <bsd.own.mk>
 
@@ -10,7 +10,7 @@
 .endif
 
 # Directories to include in cscope name file and TAGS.
-CSCOPEDIRS=	coda compat conf contrib crypto ddb dev fs gnu i4b isa \
+CSCOPEDIRS=	coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \
 		isofs kern libkern modules net net80211 netatalk netatm \
 		netgraph netinet netinet6 netipx netkey netnatm netncp \
 		netsmb nfs nfsclient nfs4client rpc pccard pci posix4 sys \

==== //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#5 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.563 2006/07/02 18:22:46 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.565 2006/07/06 06:17:08 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -207,7 +207,7 @@
 
 static void	free_pv_entry(pmap_t pmap, pv_entry_t pv);
 static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
-static void	pmap_clear_ptes(vm_page_t m, long bit);
+static void	pmap_clear_write(vm_page_t m);
 
 static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
@@ -2969,47 +2969,36 @@
 }
 
 /*
- *	Clear the given bit in each of the given page's ptes.
+ * Clear the write and modified bits in each of the given page's mappings.
  */
 static __inline void
-pmap_clear_ptes(vm_page_t m, long bit)
+pmap_clear_write(vm_page_t m)
 {
 	pv_entry_t pv;
 	pmap_t pmap;
-	pt_entry_t pbits, *pte;
+	pt_entry_t oldpte, *pte;
 
-	if ((m->flags & PG_FICTITIOUS) ||
-	    (bit == PG_RW && (m->flags & PG_WRITEABLE) == 0))
+	if ((m->flags & PG_FICTITIOUS) != 0 ||
+	    (m->flags & PG_WRITEABLE) == 0)
 		return;
-
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
-	/*
-	 * Loop over all current mappings setting/clearing as appropos If
-	 * setting RO do we need to clear the VAC?
-	 */
 	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
 		pmap = PV_PMAP(pv);
 		PMAP_LOCK(pmap);
 		pte = pmap_pte(pmap, pv->pv_va);
 retry:
-		pbits = *pte;
-		if (pbits & bit) {
-			if (bit == PG_RW) {
-				if (!atomic_cmpset_long(pte, pbits,
-				    pbits & ~(PG_RW | PG_M)))
-					goto retry;
-				if (pbits & PG_M) {
-					vm_page_dirty(m);
-				}
-			} else {
-				atomic_clear_long(pte, bit);
-			}
+		oldpte = *pte;
+		if (oldpte & PG_RW) {
+			if (!atomic_cmpset_long(pte, oldpte, oldpte &
+			    ~(PG_RW | PG_M)))
+				goto retry;
+			if ((oldpte & PG_M) != 0)
+				vm_page_dirty(m);
 			pmap_invalidate_page(pmap, pv->pv_va);
 		}
 		PMAP_UNLOCK(pmap);
 	}
-	if (bit == PG_RW)
-		vm_page_flag_clear(m, PG_WRITEABLE);
+	vm_page_flag_clear(m, PG_WRITEABLE);
 }
 
 /*
@@ -3022,7 +3011,7 @@
 {
 	if ((prot & VM_PROT_WRITE) == 0) {
 		if (prot & (VM_PROT_READ | VM_PROT_EXECUTE)) {
-			pmap_clear_ptes(m, PG_RW);
+			pmap_clear_write(m);
 		} else {
 			pmap_remove_all(m);
 		}
@@ -3061,14 +3050,12 @@
 			pmap = PV_PMAP(pv);
 			PMAP_LOCK(pmap);
 			pte = pmap_pte(pmap, pv->pv_va);
-			if (pte != NULL && (*pte & PG_A) != 0) {
+			if ((*pte & PG_A) != 0) {
 				atomic_clear_long(pte, PG_A);
 				pmap_invalidate_page(pmap, pv->pv_va);
 				rtval++;
-				if (rtval > 4) {
-					PMAP_UNLOCK(pmap);
-					break;
-				}
+				if (rtval > 4)
+					pvn = NULL;
 			}
 			PMAP_UNLOCK(pmap);
 		} while ((pv = pvn) != NULL && pv != pvf);
@@ -3082,7 +3069,23 @@
 void
 pmap_clear_modify(vm_page_t m)
 {
-	pmap_clear_ptes(m, PG_M);
+	pv_entry_t pv;
+	pmap_t pmap;
+	pt_entry_t *pte;
+
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		pmap = PV_PMAP(pv);
+		PMAP_LOCK(pmap);
+		pte = pmap_pte(pmap, pv->pv_va);
+		if (*pte & PG_M) {
+			atomic_clear_long(pte, PG_M);
+			pmap_invalidate_page(pmap, pv->pv_va);
+		}
+		PMAP_UNLOCK(pmap);
+	}
 }
 
 /*
@@ -3093,7 +3096,23 @@
 void
 pmap_clear_reference(vm_page_t m)
 {
-	pmap_clear_ptes(m, PG_A);
+	pv_entry_t pv;
+	pmap_t pmap;
+	pt_entry_t *pte;
+
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		pmap = PV_PMAP(pv);
+		PMAP_LOCK(pmap);
+		pte = pmap_pte(pmap, pv->pv_va);
+		if (*pte & PG_A) {
+			atomic_clear_long(pte, PG_A);
+			pmap_invalidate_page(pmap, pv->pv_va);
+		}
+		PMAP_UNLOCK(pmap);
+	}
 }
 
 /*

==== //depot/projects/soc2006/intr_filter/amd64/conf/GENERIC#4 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.462 2006/06/26 22:03:20 babkin Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.464 2006/07/09 16:39:21 mjacob Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -28,7 +28,6 @@
 
 #options 	SCHED_ULE		# ULE scheduler
 options 	SCHED_4BSD		# 4BSD scheduler
-#options 	SCHED_CORE		# CORE scheduler
 options 	PREEMPTION		# Enable kernel thread preemption
 options 	INET			# InterNETworking
 options 	INET6			# IPv6 communications protocols
@@ -252,6 +251,7 @@
 device		md		# Memory "disks"
 device		gif		# IPv6 and IPv4 tunneling
 device		faith		# IPv6-to-IPv4 relaying (translation)
+device		firmware	# firmware assist module
 
 # The `bpf' device enables the Berkeley Packet Filter.
 # Be aware of the administrative consequences of enabling this!

==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_proto.h#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.16 2006/06/27 18:32:16 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.14 2006/06/27 18:28:49 jhb Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp 
  */
 
 #ifndef _LINUX_SYSPROTO_H_

==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_syscall.h#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.16 2006/06/27 18:32:16 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.14 2006/06/27 18:28:49 jhb Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp 
  */
 
 #define	LINUX_SYS_exit	1

==== //depot/projects/soc2006/intr_filter/amd64/linux32/linux32_sysent.c#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.16 2006/06/27 18:32:16 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.14 2006/06/27 18:28:49 jhb Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.17 2006/07/06 21:43:14 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -74,7 +74,7 @@
 	{ SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct, AUE_ACCT },	/* 51 = acct */
 	{ SYF_MPSAFE | AS(linux_umount_args), (sy_call_t *)linux_umount, AUE_UMOUNT },	/* 52 = linux_umount */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 53 = lock */
-	{ AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_IOCTL },	/* 54 = linux_ioctl */
+	{ SYF_MPSAFE | AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_IOCTL },	/* 54 = linux_ioctl */
 	{ SYF_MPSAFE | AS(linux_fcntl_args), (sy_call_t *)linux_fcntl, AUE_FCNTL },	/* 55 = linux_fcntl */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 56 = mpx */
 	{ SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP },	/* 57 = setpgid */

==== //depot/projects/soc2006/intr_filter/amd64/linux32/syscalls.master#5 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.14 2006/06/27 18:28:49 jhb Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ; System call name/number master file (or rather, slave, from LINUX).
@@ -113,7 +113,7 @@
 51	AUE_ACCT	MNOPROTO { int acct(char *path); }
 52	AUE_UMOUNT	MSTD	{ int linux_umount(char *path, l_int flags); }
 53	AUE_NULL	UNIMPL	lock
-54	AUE_IOCTL	STD	{ int linux_ioctl(l_uint fd, l_uint cmd, \
+54	AUE_IOCTL	MSTD	{ int linux_ioctl(l_uint fd, l_uint cmd, \
 				    uintptr_t arg); }
 55	AUE_FCNTL	MSTD	{ int linux_fcntl(l_uint fd, l_uint cmd, \
 				    uintptr_t arg); }

==== //depot/projects/soc2006/intr_filter/bsm/audit_kevents.h#2 (text) ====

@@ -30,8 +30,8 @@
  *
  * @APPLE_BSD_LICENSE_HEADER_END@
  *
- * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#20 $
- * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.5 2006/02/06 01:12:46 rwatson Exp $
+ * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#23 $
+ * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.6 2006/07/03 14:45:43 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_KEVENTS_H_
@@ -384,7 +384,24 @@
 #define	AUE_ACL_DELETE_FD		403	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FILE		404	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FD		405	/* FreeBSD. */
-#define	AUE_SYSARCH			406	/* FreeBSD. */
+#define	AUE_ACL_GET_LINK		406	/* FreeBSD. */
+#define	AUE_ACL_SET_LINK		407	/* FreeBSD. */
+#define	AUE_ACL_DELETE_LINK		408	/* FreeBSD. */
+#define	AUE_ACL_CHECK_LINK		409	/* FreeBSD. */
+#define	AUE_SYSARCH			410	/* FreeBSD. */
+#define	AUE_EXTATTRCTL			411	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FILE		412	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FILE		413	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FILE		414	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FILE		415	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FD		416	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FD		417	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FD		418	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FD		419	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_LINK		420	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_LINK		421	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_LINK		422	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_LINK		423	/* FreeBSD. */
 
 /*
  * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the

==== //depot/projects/soc2006/intr_filter/bsm/audit_record.h#2 (text) ====

@@ -31,12 +31,14 @@
  * @APPLE_BSD_LICENSE_HEADER_END@
  *
  * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#13 $
- * $FreeBSD: src/sys/bsm/audit_record.h,v 1.2 2006/06/05 13:00:52 rwatson Exp $
+ * $FreeBSD: src/sys/bsm/audit_record.h,v 1.3 2006/07/03 14:44:13 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_RECORD_H_
 #define _BSM_AUDIT_RECORD_H_
 
+#include <sys/time.h>			/* struct timeval */
+
 /*
  * Token type identifiers.
  */

==== //depot/projects/soc2006/intr_filter/compat/linux/linux_ioctl.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.136 2006/05/10 20:38:15 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.137 2006/07/06 21:42:36 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -43,7 +43,9 @@
 #include <sys/filedesc.h>
 #include <sys/filio.h>
 #include <sys/kbio.h>
+#include <sys/kernel.h>
 #include <sys/linker_set.h>
+#include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/proc.h>
 #include <sys/sbuf.h>
@@ -51,6 +53,7 @@
 #include <sys/sockio.h>
 #include <sys/soundcard.h>
 #include <sys/stdint.h>
+#include <sys/sx.h>
 #include <sys/tty.h>
 #include <sys/uio.h>
 #include <net/if.h>
@@ -126,6 +129,8 @@
 
 static TAILQ_HEAD(, handler_element) handlers =
 	TAILQ_HEAD_INITIALIZER(handlers);
+static struct sx linux_ioctl_sx;
+SX_SYSINIT(linux_ioctl, &linux_ioctl_sx, "linux ioctl handlers");
 
 /*
  * hdio related ioctls for VMWare support
@@ -2571,15 +2576,21 @@
 
 	/* Iterate over the ioctl handlers */
 	cmd = args->cmd & 0xffff;
+	sx_slock(&linux_ioctl_sx);
+	mtx_lock(&Giant);
 	TAILQ_FOREACH(he, &handlers, list) {
 		if (cmd >= he->low && cmd <= he->high) {
 			error = (*he->func)(td, args);
 			if (error != ENOIOCTL) {
+				mtx_unlock(&Giant);
+				sx_sunlock(&linux_ioctl_sx);
 				fdrop(fp, td);
 				return (error);
 			}
 		}
 	}
+	mtx_unlock(&Giant);
+	sx_sunlock(&linux_ioctl_sx);
 	fdrop(fp, td);
 
 	linux_msg(td, "ioctl fd=%d, cmd=0x%x ('%c',%d) is not implemented",
@@ -2601,6 +2612,7 @@
 	 * Reuse the element if the handler is already on the list, otherwise
 	 * create a new element.
 	 */
+	sx_xlock(&linux_ioctl_sx);
 	TAILQ_FOREACH(he, &handlers, list) {
 		if (he->func == h->func)
 			break;
@@ -2621,10 +2633,12 @@
 	TAILQ_FOREACH(cur, &handlers, list) {
 		if (cur->span > he->span) {
 			TAILQ_INSERT_BEFORE(cur, he, list);
+			sx_xunlock(&linux_ioctl_sx);
 			return (0);
 		}
 	}
 	TAILQ_INSERT_TAIL(&handlers, he, list);
+	sx_xunlock(&linux_ioctl_sx);
 
 	return (0);
 }
@@ -2637,13 +2651,16 @@
 	if (h == NULL || h->func == NULL)
 		return (EINVAL);
 
+	sx_xlock(&linux_ioctl_sx);
 	TAILQ_FOREACH(he, &handlers, list) {
 		if (he->func == h->func) {
 			TAILQ_REMOVE(&handlers, he, list);
+			sx_xunlock(&linux_ioctl_sx);
 			FREE(he, M_LINUX);
 			return (0);
 		}
 	}
+	sx_xunlock(&linux_ioctl_sx);
 
 	return (EINVAL);
 }

==== //depot/projects/soc2006/intr_filter/compat/linux/linux_ipc.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ipc.c,v 1.47 2006/06/27 18:28:49 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ipc.c,v 1.48 2006/07/08 19:51:37 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -494,6 +494,7 @@
 	struct l_seminfo linux_seminfo;
 	struct semid_ds semid;
 	union semun semun;
+	register_t rval;
 	int cmd, error;
 
 	switch (args->cmd & ~LINUX_IPC_64) {
@@ -524,25 +525,25 @@
 			return (error);
 		linux_to_bsd_semid_ds(&linux_semid, &semid);
 		semun.buf = &semid;
-		return kern_semctl(td, args->semid, args->semnum, cmd, &semun,
-		    UIO_SYSSPACE);
+		return (kern_semctl(td, args->semid, args->semnum, cmd, &semun,
+		    td->td_retval));
 	case LINUX_IPC_STAT:
 	case LINUX_SEM_STAT:
-		if((args->cmd & ~LINUX_IPC_64) == LINUX_IPC_STAT)
+		if ((args->cmd & ~LINUX_IPC_64) == LINUX_IPC_STAT)
 			cmd = IPC_STAT;
 		else
 			cmd = SEM_STAT;
 		semun.buf = &semid;
 		error = kern_semctl(td, args->semid, args->semnum, cmd, &semun,
-		    UIO_SYSSPACE);
+		    &rval);
 		if (error)
 			return (error);
-		td->td_retval[0] = (cmd == SEM_STAT) ?
-		    IXSEQ_TO_IPCID(args->semid, semid.sem_perm) :
-		    0;
 		bsd_to_linux_semid_ds(&semid, &linux_semid);
-		return (linux_semid_pushdown(args->cmd & LINUX_IPC_64,
-		    &linux_semid, (caddr_t)PTRIN(args->arg.buf)));
+		error = linux_semid_pushdown(args->cmd & LINUX_IPC_64,
+		    &linux_semid, (caddr_t)PTRIN(args->arg.buf));
+		if (error == 0)
+			td->td_retval[0] = (cmd == SEM_STAT) ? rval : 0;
+		return (error);
 	case LINUX_IPC_INFO:
 	case LINUX_SEM_INFO:
 		bcopy(&seminfo, &linux_seminfo, sizeof(linux_seminfo) );
@@ -567,8 +568,8 @@
 		  args->cmd & ~LINUX_IPC_64);
 		return EINVAL;
 	}
-	return kern_semctl(td, args->semid, args->semnum, cmd, &semun,
-	    UIO_USERSPACE);
+	return (kern_semctl(td, args->semid, args->semnum, cmd, &semun,
+	    td->td_retval));
 }
 
 int

==== //depot/projects/soc2006/intr_filter/compat/linux/linux_socket.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.68 2006/05/10 20:38:16 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.69 2006/07/08 20:03:38 jhb Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"
@@ -705,9 +705,6 @@
 		struct sockaddr * __restrict name;
 		socklen_t * __restrict anamelen;
 	} */ bsd_args;
-	struct close_args /* {
-		int     fd;
-	} */ c_args;
 	int error, fd;
 
 	if ((error = copyin(args, &linux_args, sizeof(linux_args))))
@@ -724,8 +721,7 @@
 	if (linux_args.addr) {
 		error = linux_sa_put(PTRIN(linux_args.addr));
 		if (error) {
-			c_args.fd = td->td_retval[0];
-			(void)close(td, &c_args);
+			(void)kern_close(td, td->td_retval[0]);
 			return (error);
 		}
 	}

==== //depot/projects/soc2006/intr_filter/compat/svr4/svr4_ipc.c#3 (text+ko) ====

@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_ipc.c,v 1.21 2006/06/27 18:31:36 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_ipc.c,v 1.23 2006/07/08 19:51:37 jhb Exp $");
 
 #include "opt_sysvipc.h"
 
@@ -209,6 +209,7 @@
 	struct svr4_semid_ds ss;
 	struct semid_ds bs;
 	union semun semun;
+	register_t rval;
 	int cmd, error;
 
 	switch (uap->cmd) {
@@ -244,21 +245,24 @@
 		cmd = IPC_STAT;
 		semun.buf = &bs;
 		error = kern_semctl(td, uap->semid, uap->semnum, cmd, &semun,
-		    UIO_SYSSPACE);
+		    &rval);
 		if (error)
-                        return error;
+                        return (error);
                 bsd_to_svr4_semid_ds(&bs, &ss);
-		return copyout(&ss, uap->arg.buf, sizeof(ss));
+		error = copyout(&ss, uap->arg.buf, sizeof(ss));
+		if (error == 0)
+			td->td_retval[0] = rval;
+		return (error);
 
 	case SVR4_IPC_SET:
 		cmd = IPC_SET;
 		error = copyin(uap->arg.buf, (caddr_t) &ss, sizeof ss);
                 if (error)
-                        return error;
+                        return (error);
                 svr4_to_bsd_semid_ds(&ss, &bs);
 		semun.buf = &bs;
-		return kern_semctl(td, uap->semid, uap->semnum, cmd, &semun,
-		    UIO_SYSSPACE);
+		return (kern_semctl(td, uap->semid, uap->semnum, cmd, &semun,
+		    td->td_retval));
 
 	case SVR4_IPC_RMID:
 		cmd = IPC_RMID;
@@ -268,8 +272,8 @@
 		return EINVAL;
 	}
 
-	return kern_semctl(td, uap->semid, uap->semnum, cmd, &uap->arg,
-	    UIO_USERSPACE);
+	return (kern_semctl(td, uap->semid, uap->semnum, cmd, &uap->arg,
+	    td->td_retval));
 }
 
 struct svr4_sys_semget_args {
@@ -500,11 +504,7 @@
 		return (kern_msgctl(td, uap->msqid, IPC_SET, &bs));
 
 	case SVR4_IPC_RMID:
-		error = copyin(uap->buf, &ss, sizeof ss);
-		if (error)
-			return error;
-		svr4_to_bsd_msqid_ds(&ss, &bs);
-		return (kern_msgctl(td, uap->msqid, IPC_RMID, &bs));
+		return (kern_msgctl(td, uap->msqid, IPC_RMID, NULL));
 
 	default:
 		return EINVAL;
@@ -658,7 +658,6 @@
 	if (uap->buf != NULL) {
 		switch (uap->cmd) {
 		case SVR4_IPC_SET:
-		case SVR4_IPC_RMID:
 		case SVR4_SHM_LOCK:
 		case SVR4_SHM_UNLOCK:
 			error = copyin(uap->buf, &ss, sizeof(ss));

==== //depot/projects/soc2006/intr_filter/conf/NOTES#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1370 2006/06/27 12:45:27 glebius Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1371 2006/07/10 05:25:18 thompsa Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -668,6 +668,7 @@
 device		pflog			#logging support interface for PF
 device		pfsync			#synchronization interface for PF
 device		carp			#Common Address Redundancy Protocol
+device		enc			#IPSec interface (needs FAST_IPSEC)
 device		ppp			#Point-to-point protocol
 options 	PPP_BSDCOMP		#PPP BSD-compress support
 options 	PPP_DEFLATE		#PPP zlib/deflate/gzip support

==== //depot/projects/soc2006/intr_filter/conf/files#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1127 2006/06/27 12:45:27 glebius Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1128 2006/07/06 23:37:39 rwatson Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1329,6 +1329,7 @@
 kern/sched_core.c		optional sched_core
 kern/sched_ule.c		optional sched_ule
 kern/serdev_if.m		optional puc | scc
+kern/subr_acl_posix1e.c		standard
 kern/subr_autoconf.c		standard
 kern/subr_blist.c		standard
 kern/subr_bus.c			standard

==== //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/Makefile#2 (text+ko) ====

@@ -15,11 +15,12 @@
 CFLAGS = -O $(OTHERCFLAGS)
 
 OBJS =		uwx_bstream.o uwx_context.o uwx_env.o uwx_scoreboard.o \
-		uwx_step.o uwx_str.o uwx_swap.o uwx_trace.o uwx_uinfo.o \
-		uwx_utable.o
+		uwx_step.o uwx_str.o uwx_swap.o uwx_symbols.o \
+		uwx_trace.o uwx_uinfo.o uwx_utable.o
 
 # SELFOBJS =				# For cross-unwind library
-SELFOBJS = 	uwx_self.o uwx_self_context.o uwx_ttrace.o
+# SELFOBJS = 	uwx_self.o uwx_self_context.o uwx_ttrace.o
+SELFOBJS = 	uwx_self.o uwx_self_context.o
 
 # SELFLIBS =				# For cross-unwind library
 SELFLIBS =	-luca
@@ -34,6 +35,9 @@
 libuwx.sl:	$(OBJS) $(SELFOBJS)
 	ld -b -o libuwx.sl $(OBJS) $(SELFOBJS) $(SELFLIBS)
 
+clean:
+	rm -f $(OBJS) $(SELFOBJS) libuwx.a libuwx.so libuwx.sl
+
 uwx_bstream.o:	uwx.h uwx_env.h uwx_bstream.h
 
 uwx_context.o:	uwx.h uwx_env.h uwx_scoreboard.h uwx_step.h uwx_trace.h
@@ -49,6 +53,8 @@
 
 uwx_swap.o:	uwx.h uwx_env.h uwx_swap.h
 
+uwx_symbols.o:	uwx.h uwx_env.h uwx_symbols.h
+
 uwx_trace.o:	uwx.h uwx_env.h uwx_uinfo.h uwx_scoreboard.h uwx_trace.h
 
 uwx_uinfo.o:	uwx.h uwx_env.h uwx_uinfo.h uwx_utable.h \
@@ -56,7 +62,8 @@
 
 uwx_utable.o:	uwx.h uwx_env.h uwx_utable.h uwx_swap.h uwx_trace.h
 
-uwx_self.o:	uwx.h uwx_env.h uwx_context.h uwx_trace.h uwx_self.h
+uwx_self.o:	uwx.h uwx_env.h uwx_context.h uwx_trace.h uwx_self.h \
+		uwx_symbols.h
 
 uwx_self_context.o:	uwx_self_context.s
 	$(CC) -c $(CFLAGS) -o uwx_self_context.o uwx_self_context.s

==== //depot/projects/soc2006/intr_filter/contrib/ia64/libuwx/src/uwx.h#2 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003 Hewlett-Packard Development Company, L.P.
+Copyright (c) 2003-2006 Hewlett-Packard Development Company, L.P.
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
 files (the "Software"), to deal in the Software without
@@ -39,11 +39,14 @@
 #define __EXTERN_C extern
 #endif
 
-#define UWX_VERSION 1		/* Version id for callback interfaces */
+#define UWX_VERSION 3		/* Version id for callback interfaces */
 
 /* Unwind environment structure (opaque) */
 struct uwx_env;
 
+/* Symbol Cache for uwx_find_symbol (opaque) */
+struct uwx_symbol_cache;
+
 /* Allocate and free callbacks */
 typedef void *(*alloc_cb)(size_t size);
 typedef void (*free_cb)(void *ptr);
@@ -58,6 +61,9 @@
 /* Put unwind express into cross-process mode */
 __EXTERN_C int uwx_set_remote(struct uwx_env *env, int is_big_endian_target);
 
+/* Put unwind express into reduced-context mode (no floating-point regs) */
+__EXTERN_C int uwx_set_nofr(struct uwx_env *env);
+
 /* Copy-in callback */
 typedef int (*copyin_cb)(
     int request,		/* request code (see below) */
@@ -107,6 +113,17 @@
 /* Step one frame */
 __EXTERN_C int uwx_step(struct uwx_env *env);
 
+/* Get module name and text base, if available, for current frame */
+__EXTERN_C int uwx_get_module_info(
+    struct uwx_env *env,	/* unwind environment */
+    char **modp,		/* load module name (out)  */
+    uint64_t *text_base);	/* base address of text segment (out)  */
+
+/* Get function start address for current frame */
+__EXTERN_C int uwx_get_funcstart(
+    struct uwx_env *env,	/* unwind environment */
+    uint64_t *funcstart);	/* function start address (out)  */
+
 /* Get symbol information, if available, for current frame */
 __EXTERN_C int uwx_get_sym_info(
     struct uwx_env *env,	/* unwind environment */
@@ -114,6 +131,22 @@
     char **symp,		/* function name (out)  */
     uint64_t *offsetp);		/* offset from start of function (out)  */
 
+/* Get symbol information, given module name and IP */
+__EXTERN_C int uwx_find_symbol(
+    struct uwx_env *env,	/* unwind environment */
+    struct uwx_symbol_cache **cachep,
+				/* ptr to symbol cache ptr (in/out) */
+    char *mod,			/* load module name */
+    uint64_t relip,		/* IP, relative to text segment  */
+    char **symp,		/* function name (out) */
+    uint64_t *offsetp);		/* offset from start of function (out) */
+
+/* Release memory used by symbol cache */
+__EXTERN_C void uwx_release_symbol_cache(
+    struct uwx_env *env,	/* unwind environment */
+    struct uwx_symbol_cache *symbol_cache);
+				/* symbol cache ptr */
+
 /* Get the value of a register from the current context */
 __EXTERN_C int uwx_get_reg(
     struct uwx_env *env,	/* unwind environment */
@@ -135,6 +168,10 @@
 /* Get the ABI context code (if uwx_step returned UWX_ABI_FRAME) */
 __EXTERN_C int uwx_get_abi_context_code(struct uwx_env *env);
 
+/* Increment/Decrement the bsp by a number of slots */
+/* (accounts for NaT collections) */
+__EXTERN_C uint64_t uwx_add_to_bsp(uint64_t bsp, int nslots);
+
 /* Return status codes for uwx_ APIs */
 #define UWX_OK			0
 #define UWX_BOTTOM		1	/* Hit bottom of stack */
@@ -158,6 +195,8 @@
 #define UWX_ERR_CANTUNWIND	(-17)	/* Can't unwind */
 #define UWX_ERR_NOCALLBACKS	(-18)	/* No callbacks registered */
 #define UWX_ERR_NOCONTEXT	(-19)	/* Context not initialized */
+#define UWX_ERR_UCACCESS	(-20)	/* Failure in libuca */
+#define UWX_ERR_NOSYM		(-21)	/* Symbol not found */
 
 /* Request codes for copyin callback */
 #define UWX_COPYIN_UINFO	1	/* Reading unwind info */
@@ -169,6 +208,7 @@
 #define UWX_LKUP_LOOKUP		1	/* Lookup IP */
 #define UWX_LKUP_FREE		2	/* Free result vector */
 #define UWX_LKUP_SYMBOLS	3	/* Lookup symbolic information */
+#define UWX_LKUP_MODULE		4	/* Get module name */

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


More information about the p4-projects mailing list