From owner-p4-projects@FreeBSD.ORG Sat Jun 9 16:44:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DD6916A46B; Sat, 9 Jun 2007 16:44:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 663B116A468 for ; Sat, 9 Jun 2007 16:44:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 59C7713C45B for ; Sat, 9 Jun 2007 16:44:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l59Gint8039071 for ; Sat, 9 Jun 2007 16:44:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l59Gik2I039018 for perforce@freebsd.org; Sat, 9 Jun 2007 16:44:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 9 Jun 2007 16:44:46 GMT Message-Id: <200706091644.l59Gik2I039018@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 121277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jun 2007 16:44:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=121277 Change 121277 by rwatson@rwatson_zoo on 2007/06/09 16:44:03 Integrate TrustedBSD audit3 branch. Affected files ... .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/cpu_switch.S#5 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/genassym.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/io_apic.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/machdep.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/conf/GENERIC#10 integrate .. //depot/projects/trustedbsd/priv/sys/arm/arm/busdma_machdep.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/arm/include/pcpu.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_atomic.c#1 branch .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/atomic.h#1 branch .. //depot/projects/trustedbsd/priv/sys/conf/NOTES#15 integrate .. //depot/projects/trustedbsd/priv/sys/conf/options#12 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/fil.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/i386/atomic.S#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/ia64/atomic.S#1 branch .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/sys/asm_linkage.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/sys/atomic.h#2 delete .. //depot/projects/trustedbsd/priv/sys/dev/an/if_an.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ah_osdep.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ah_osdep.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/onoe/onoe.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/onoe/onoe.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_ath.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_ath_pci.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_athioctl.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_athrate.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/bce/if_bce.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/dev/bce/if_bcereg.h#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/cardbus/cardbus_cis.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/dcons/dcons.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/dcons/dcons_crom.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/dcons/dcons_os.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/dcons/dcons_os.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/de/if_de.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/firewire.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/firewirereg.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwdev.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwdma.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwmem.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwohci.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwohci_pci.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwohcivar.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/if_fwe.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/if_fwevar.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/if_fwip.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/if_fwipvar.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/sbp.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/sbp_targ.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/hatm/if_hatm_intr.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/isp/isp_freebsd.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/brgphy.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/brgphyreg.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/ciphy.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/ciphyreg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/miidevs#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/rlphy.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mmc/mmc.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mxge/if_mxge.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/dev/nve/if_nve.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/pdq/pdq_ifsubr.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/pdq/pdqreg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/puc/puc.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/puc/pucdata.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sbsh/if_sbsh.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97_patch.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/usb/uaudio.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_axe.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_cdce.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_cdcereg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_cue.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_kue.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_rue.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_rum.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_udav.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_ural.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uark.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ubsa.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ubser.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ucom.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ucycom.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/udbp.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ufm.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ufoma.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uftdi.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ugen.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uhid.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uhub.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uipaq.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ukbd.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ulpt.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/umass.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/umct.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/umodem.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ums.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uplcom.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/urio.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/usb.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/usb.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/usbdevs#11 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uscanner.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uvisor.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/uvscom.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs_vnops.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/geom/part/g_part.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/geom/part/g_part_apm.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/geom/part/g_part_gpt.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/i386/conf/GENERIC#10 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/genassym.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/io_apic.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/machdep.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/swtch.s#3 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/conf/GENERIC#6 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/ia64/machdep.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/ia64/pmap.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/init_main.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_exit.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_fork.c#12 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_mutex.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_prot.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_thr.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_umtx.c#13 integrate .. //depot/projects/trustedbsd/priv/sys/kern/sched_4bsd.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/sched_ule.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/vfs_bio.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/modules/zfs/Makefile#4 integrate .. //depot/projects/trustedbsd/priv/sys/net/if_fwsubr.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/net/pfil.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/_ieee80211.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_acl.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_ccmp.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_none.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_tkip.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_wep.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_freebsd.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_freebsd.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_input.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ioctl.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ioctl.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_node.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_node.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_output.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_proto.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_proto.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_var.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_xauth.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/ip_carp.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_asconf.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_input.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_pcb.c#12 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_sysctl.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_timer.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_hostcache.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_syncache.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/pc98/conf/GENERIC#8 integrate .. //depot/projects/trustedbsd/priv/sys/pc98/pc98/machdep.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/conf/GENERIC#8 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/busdma_machdep.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/vm_machdep.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit.c#14 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit.h#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_arg.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_syscalls.c#12 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/conf/GENERIC#8 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/fhc/fhc.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/pci/psycho.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/sbus/sbus.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/sun4v/conf/GENERIC#6 integrate .. //depot/projects/trustedbsd/priv/sys/sys/mutex.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/sys/param.h#11 integrate .. //depot/projects/trustedbsd/priv/sys/sys/pcpu.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/sys/proc.h#10 integrate .. //depot/projects/trustedbsd/priv/sys/sys/syscallsubr.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/sys/thr.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/sys/ucred.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/sys/umtx.h#6 integrate Differences ... ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/cpu_switch.S#5 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.157 2007/06/05 00:16:43 jeff Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.158 2007/06/06 07:35:07 davidxu Exp $ */ #include @@ -203,9 +203,7 @@ movq %rbx, (%rax) movq %rbx, PCPU(RSP0) - movl TD_TID(%rsi), %eax movq %r8, PCPU(CURPCB) - movl %eax, PCPU(CURTID) movq %rsi, PCPU(CURTHREAD) /* into next thread */ testl $PCB_32BIT,PCB_FLAGS(%r8) ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/genassym.c#6 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.162 2007/06/05 00:13:49 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.163 2007/06/06 07:35:07 davidxu Exp $"); #include "opt_compat.h" #include "opt_kstack_pages.h" @@ -194,7 +194,6 @@ ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap)); ASSYM(PC_TSSP, offsetof(struct pcpu, pc_tssp)); ASSYM(PC_RSP0, offsetof(struct pcpu, pc_rsp0)); -ASSYM(PC_CURTID, offsetof(struct pcpu, pc_curtid)); ASSYM(LA_VER, offsetof(struct LAPIC, version)); ASSYM(LA_TPR, offsetof(struct LAPIC, tpr)); ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/io_apic.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.30 2007/05/08 21:29:12 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.31 2007/06/05 18:57:48 jhb Exp $"); #include "opt_isa.h" @@ -492,7 +492,7 @@ intbase = next_ioapic_base; printf("ioapic%u: Assuming intbase of %d\n", io->io_id, intbase); - } else if (intbase != next_ioapic_base) + } else if (intbase != next_ioapic_base && bootverbose) printf("ioapic%u: WARNING: intbase %d != expected base %d\n", io->io_id, intbase, next_ioapic_base); io->io_intbase = intbase; ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/machdep.c#10 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.674 2007/06/05 00:00:49 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.675 2007/06/06 07:35:07 davidxu Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1179,7 +1179,6 @@ PCPU_SET(prvspace, pc); PCPU_SET(curthread, &thread0); PCPU_SET(curpcb, thread0.td_pcb); - PCPU_SET(curtid, thread0.td_tid); PCPU_SET(tssp, &common_tss[0]); /* ==== //depot/projects/trustedbsd/priv/sys/amd64/conf/GENERIC#10 (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.478 2007/05/28 14:38:42 simokawa Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.479 2007/06/08 20:29:05 rwatson Exp $ cpu HAMMER ident GENERIC @@ -60,6 +60,7 @@ options KBD_INSTALL_CDEV # install a CDEV entry in /dev options ADAPTIVE_GIANT # Giant mutex is adaptive. options STOP_NMI # Stop CPUS using NMI instead of IPI +options AUDIT # Security event auditing # Debugging for use in -current options KDB # Enable kernel debugger support. ==== //depot/projects/trustedbsd/priv/sys/arm/arm/busdma_machdep.c#6 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.31 2007/05/29 06:30:25 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.32 2007/06/07 21:51:09 cognet Exp $"); /* * ARM bus dma support routines @@ -674,8 +674,8 @@ CTR4(KTR_BUSDMA, "lowaddr= %d Maxmem= %d, boundary= %d, " "alignment= %d", dmat->lowaddr, ptoa((vm_paddr_t)Maxmem), dmat->boundary, dmat->alignment); - CTR3(KTR_BUSDMA, "map= %p, nobouncemap= %p, pagesneeded= %d", - map, &nobounce_dmamap, map->pagesneeded); + CTR2(KTR_BUSDMA, "map= %p, pagesneeded= %d", + map, map->pagesneeded); /* * Count the number of bounce pages * needed in order to complete this transfer @@ -1384,8 +1384,7 @@ struct bounce_page *bpage; KASSERT(dmat->bounce_zone != NULL, ("no bounce zone in dma tag")); - KASSERT(map != NULL && map != &nobounce_dmamap, - ("add_bounce_page: bad map %p", map)); + KASSERT(map != NULL, ("add_bounce_page: bad map %p", map)); bz = dmat->bounce_zone; if (map->pagesneeded == 0) ==== //depot/projects/trustedbsd/priv/sys/arm/include/pcpu.h#4 (text+ko) ==== @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * from: FreeBSD: src/sys/i386/include/globaldata.h,v 1.27 2001/04/27 - * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.5 2007/06/04 21:38:45 attilio Exp $ + * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.6 2007/06/06 23:23:47 jeff Exp $ */ #ifndef _MACHINE_PCPU_H_ @@ -58,7 +58,7 @@ * with respect to preemption. */ #define PCPU_ADD(member, value) (__pcpu.pc_ ## member += (value)) -#define PCPU_INC(member) PCPU_LAZY_ADD(member, 1) +#define PCPU_INC(member) PCPU_ADD(member, 1) #define PCPU_PTR(member) (&__pcpu.pc_ ## member) #define PCPU_SET(member,value) (__pcpu.pc_ ## member = (value)) ==== //depot/projects/trustedbsd/priv/sys/conf/NOTES#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1428 2007/06/05 00:12:36 jeff Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1429 2007/06/08 21:36:52 attilio Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -226,11 +226,6 @@ # and WITNESS options. options MUTEX_NOINLINE -# MUTEX_WAKE_ALL changes the mutex unlock algorithm to wake all waiters -# when a contested mutex is released rather than just awaking the highest -# priority waiter. -options MUTEX_WAKE_ALL - # RWLOCK_NOINLINE forces rwlock operations to call functions to perform each # operation rather than inlining the simple cases. This can be used to # shrink the size of the kernel text segment. Note that this behavior is ==== //depot/projects/trustedbsd/priv/sys/conf/options#12 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.590 2007/06/05 00:12:36 jeff Exp $ +# $FreeBSD: src/sys/conf/options,v 1.591 2007/06/08 21:36:52 attilio Exp $ # # On the handling of kernel options # @@ -124,7 +124,6 @@ MFI_DECODE_LOG opt_mfi.h MPROF_BUFFERS opt_mprof.h MPROF_HASH_SIZE opt_mprof.h -MUTEX_WAKE_ALL NO_ADAPTIVE_MUTEXES opt_adaptive_mutexes.h NO_ADAPTIVE_RWLOCKS NSWBUF_MIN opt_swap.h ==== //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/fil.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $ */ +/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.52 2007/06/09 09:28:36 darrenr Exp $ */ /* * Copyright (C) 1993-2003 by Darren Reed. @@ -155,7 +155,7 @@ #if !defined(lint) static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed"; -static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $"; +static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.52 2007/06/09 09:28:36 darrenr Exp $"; /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.78 2006/03/29 11:19:54 darrenr Exp $"; */ #endif @@ -766,6 +766,7 @@ * source of the original packet then this packet is * not correct. */ + icmp6 = fin->fin_dp; ip6 = (ip6_t *)((char *)icmp6 + ICMPERR_ICMPHLEN); if (IP6_NEQ(&fin->fin_fi.fi_dst, (i6addr_t *)&ip6->ip6_src)) ==== //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#3 (text+ko) ==== @@ -31,296 +31,7 @@ #define _ASM #include -#if defined(_KERNEL) - /* - * Legacy kernel interfaces; they will go away (eventually). - */ - ANSI_PRAGMA_WEAK2(cas8,atomic_cas_8,function) - ANSI_PRAGMA_WEAK2(cas32,atomic_cas_32,function) - ANSI_PRAGMA_WEAK2(cas64,atomic_cas_64,function) - ANSI_PRAGMA_WEAK2(caslong,atomic_cas_ulong,function) - ANSI_PRAGMA_WEAK2(casptr,atomic_cas_ptr,function) - ANSI_PRAGMA_WEAK2(atomic_and_long,atomic_and_ulong,function) - ANSI_PRAGMA_WEAK2(atomic_or_long,atomic_or_ulong,function) -#endif - - ENTRY(atomic_inc_8) - ALTENTRY(atomic_inc_uchar) - lock - incb (%rdi) - ret - SET_SIZE(atomic_inc_uchar) - SET_SIZE(atomic_inc_8) - - ENTRY(atomic_inc_16) - ALTENTRY(atomic_inc_ushort) - lock - incw (%rdi) - ret - SET_SIZE(atomic_inc_ushort) - SET_SIZE(atomic_inc_16) - - ENTRY(atomic_inc_32) - ALTENTRY(atomic_inc_uint) - lock - incl (%rdi) - ret - SET_SIZE(atomic_inc_uint) - SET_SIZE(atomic_inc_32) - - ENTRY(atomic_inc_64) - ALTENTRY(atomic_inc_ulong) - lock - incq (%rdi) - ret - SET_SIZE(atomic_inc_ulong) - SET_SIZE(atomic_inc_64) - - ENTRY(atomic_inc_8_nv) - ALTENTRY(atomic_inc_uchar_nv) - movb (%rdi), %al // %al = old value -1: - leaq 1(%rax), %rcx // %cl = new value - lock - cmpxchgb %cl, (%rdi) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_inc_uchar_nv) - SET_SIZE(atomic_inc_8_nv) - - ENTRY(atomic_inc_16_nv) - ALTENTRY(atomic_inc_ushort_nv) - movw (%rdi), %ax // %ax = old value -1: - leaq 1(%rax), %rcx // %cx = new value - lock - cmpxchgw %cx, (%rdi) // try to stick it in - jne 1b - movzwl %cx, %eax // return new value - ret - SET_SIZE(atomic_inc_ushort_nv) - SET_SIZE(atomic_inc_16_nv) - - ENTRY(atomic_inc_32_nv) - ALTENTRY(atomic_inc_uint_nv) - movl (%rdi), %eax // %eax = old value -1: - leaq 1(%rax), %rcx // %ecx = new value - lock - cmpxchgl %ecx, (%rdi) // try to stick it in - jne 1b - movl %ecx, %eax // return new value - ret - SET_SIZE(atomic_inc_uint_nv) - SET_SIZE(atomic_inc_32_nv) - - ENTRY(atomic_inc_64_nv) - ALTENTRY(atomic_inc_ulong_nv) - movq (%rdi), %rax // %rax = old value -1: - leaq 1(%rax), %rcx // %rcx = new value - lock - cmpxchgq %rcx, (%rdi) // try to stick it in - jne 1b - movq %rcx, %rax // return new value - ret - SET_SIZE(atomic_inc_ulong_nv) - SET_SIZE(atomic_inc_64_nv) - - ENTRY(atomic_dec_8) - ALTENTRY(atomic_dec_uchar) - lock - decb (%rdi) - ret - SET_SIZE(atomic_dec_uchar) - SET_SIZE(atomic_dec_8) - - ENTRY(atomic_dec_16) - ALTENTRY(atomic_dec_ushort) - lock - decw (%rdi) - ret - SET_SIZE(atomic_dec_ushort) - SET_SIZE(atomic_dec_16) - - ENTRY(atomic_dec_32) - ALTENTRY(atomic_dec_uint) - lock - decl (%rdi) - ret - SET_SIZE(atomic_dec_uint) - SET_SIZE(atomic_dec_32) - - ENTRY(atomic_dec_64) - ALTENTRY(atomic_dec_ulong) - lock - decq (%rdi) - ret - SET_SIZE(atomic_dec_ulong) - SET_SIZE(atomic_dec_64) - - ENTRY(atomic_dec_8_nv) - ALTENTRY(atomic_dec_uchar_nv) - movb (%rdi), %al // %al = old value -1: - leaq -1(%rax), %rcx // %cl = new value - lock - cmpxchgb %cl, (%rdi) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_dec_uchar_nv) - SET_SIZE(atomic_dec_8_nv) - - ENTRY(atomic_dec_16_nv) - ALTENTRY(atomic_dec_ushort_nv) - movw (%rdi), %ax // %ax = old value -1: - leaq -1(%rax), %rcx // %cx = new value - lock - cmpxchgw %cx, (%rdi) // try to stick it in - jne 1b - movzwl %cx, %eax // return new value - ret - SET_SIZE(atomic_dec_ushort_nv) - SET_SIZE(atomic_dec_16_nv) - - ENTRY(atomic_dec_32_nv) - ALTENTRY(atomic_dec_uint_nv) - movl (%rdi), %eax // %eax = old value -1: - leaq -1(%rax), %rcx // %ecx = new value - lock - cmpxchgl %ecx, (%rdi) // try to stick it in - jne 1b - movl %ecx, %eax // return new value - ret - SET_SIZE(atomic_dec_uint_nv) - SET_SIZE(atomic_dec_32_nv) - - ENTRY(atomic_dec_64_nv) - ALTENTRY(atomic_dec_ulong_nv) - movq (%rdi), %rax // %rax = old value -1: - leaq -1(%rax), %rcx // %rcx = new value - lock - cmpxchgq %rcx, (%rdi) // try to stick it in - jne 1b - movq %rcx, %rax // return new value - ret - SET_SIZE(atomic_dec_ulong_nv) - SET_SIZE(atomic_dec_64_nv) - - ENTRY(atomic_or_8) - ALTENTRY(atomic_or_uchar) - lock - orb %sil, (%rdi) - ret - SET_SIZE(atomic_or_uchar) - SET_SIZE(atomic_or_8) - - ENTRY(atomic_or_16) - ALTENTRY(atomic_or_ushort) - lock - orw %si, (%rdi) - ret - SET_SIZE(atomic_or_ushort) - SET_SIZE(atomic_or_16) - - ENTRY(atomic_or_32) - ALTENTRY(atomic_or_uint) - lock - orl %esi, (%rdi) - ret - SET_SIZE(atomic_or_uint) - SET_SIZE(atomic_or_32) - - ENTRY(atomic_or_64) - ALTENTRY(atomic_or_ulong) - lock - orq %rsi, (%rdi) - ret - SET_SIZE(atomic_or_ulong) - SET_SIZE(atomic_or_64) - - ENTRY(atomic_and_8) - ALTENTRY(atomic_and_uchar) - lock - andb %sil, (%rdi) - ret - SET_SIZE(atomic_and_uchar) - SET_SIZE(atomic_and_8) - - ENTRY(atomic_and_16) - ALTENTRY(atomic_and_ushort) - lock - andw %si, (%rdi) - ret - SET_SIZE(atomic_and_ushort) - SET_SIZE(atomic_and_16) - - ENTRY(atomic_and_32) - ALTENTRY(atomic_and_uint) - lock - andl %esi, (%rdi) - ret - SET_SIZE(atomic_and_uint) - SET_SIZE(atomic_and_32) - - ENTRY(atomic_and_64) - ALTENTRY(atomic_and_ulong) - lock - andq %rsi, (%rdi) - ret - SET_SIZE(atomic_and_ulong) - SET_SIZE(atomic_and_64) - - ENTRY(atomic_add_8_nv) - ALTENTRY(atomic_add_char_nv) - movb (%rdi), %al // %al = old value -1: - movb %sil, %cl - addb %al, %cl // %cl = new value - lock - cmpxchgb %cl, (%rdi) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_add_char_nv) - SET_SIZE(atomic_add_8_nv) - - ENTRY(atomic_add_16_nv) - ALTENTRY(atomic_add_short_nv) - movw (%rdi), %ax // %ax = old value -1: - movw %si, %cx - addw %ax, %cx // %cx = new value - lock - cmpxchgw %cx, (%rdi) // try to stick it in - jne 1b - movzwl %cx, %eax // return new value - ret - SET_SIZE(atomic_add_short_nv) - SET_SIZE(atomic_add_16_nv) - - ENTRY(atomic_add_32_nv) - ALTENTRY(atomic_add_int_nv) - movl (%rdi), %eax -1: - movl %esi, %ecx - addl %eax, %ecx - lock - cmpxchgl %ecx, (%rdi) - jne 1b - movl %ecx, %eax - ret - SET_SIZE(atomic_add_int_nv) - SET_SIZE(atomic_add_32_nv) - ENTRY(atomic_add_64_nv) - ALTENTRY(atomic_add_ptr_nv) - ALTENTRY(atomic_add_long_nv) movq (%rdi), %rax 1: movq %rsi, %rcx @@ -330,68 +41,9 @@ jne 1b movq %rcx, %rax ret - SET_SIZE(atomic_add_long_nv) - SET_SIZE(atomic_add_ptr_nv) SET_SIZE(atomic_add_64_nv) - ENTRY(atomic_and_8_nv) - ALTENTRY(atomic_and_uchar_nv) - movb (%rdi), %al // %al = old value -1: - movb %sil, %cl - andb %al, %cl // %cl = new value - lock - cmpxchgb %cl, (%rdi) // try to stick it in - jne 1b - movzbl %cl, %eax // return new value - ret - SET_SIZE(atomic_and_uchar_nv) - SET_SIZE(atomic_and_8_nv) - - ENTRY(atomic_and_16_nv) - ALTENTRY(atomic_and_ushort_nv) - movw (%rdi), %ax // %ax = old value -1: - movw %si, %cx - andw %ax, %cx // %cx = new value - lock - cmpxchgw %cx, (%rdi) // try to stick it in - jne 1b - movzwl %cx, %eax // return new value - ret - SET_SIZE(atomic_and_ushort_nv) - SET_SIZE(atomic_and_16_nv) - - ENTRY(atomic_and_32_nv) - ALTENTRY(atomic_and_uint_nv) - movl (%rdi), %eax -1: - movl %esi, %ecx - andl %eax, %ecx - lock - cmpxchgl %ecx, (%rdi) - jne 1b - movl %ecx, %eax - ret - SET_SIZE(atomic_and_uint_nv) - SET_SIZE(atomic_and_32_nv) - - ENTRY(atomic_and_64_nv) - ALTENTRY(atomic_and_ulong_nv) - movq (%rdi), %rax -1: - movq %rsi, %rcx - andq %rax, %rcx - lock - cmpxchgq %rcx, (%rdi) - jne 1b - movq %rcx, %rax - ret - SET_SIZE(atomic_and_ulong_nv) - SET_SIZE(atomic_and_64_nv) - ENTRY(atomic_or_8_nv) - ALTENTRY(atomic_or_uchar_nv) movb (%rdi), %al // %al = old value 1: movb %sil, %cl @@ -401,160 +53,16 @@ jne 1b movzbl %cl, %eax // return new value ret - SET_SIZE(atomic_and_uchar_nv) - SET_SIZE(atomic_and_8_nv) + SET_SIZE(atomic_or_8_nv) - ENTRY(atomic_or_16_nv) - ALTENTRY(atomic_or_ushort_nv) - movw (%rdi), %ax // %ax = old value -1: - movw %si, %cx - orw %ax, %cx // %cx = new value - lock - cmpxchgw %cx, (%rdi) // try to stick it in - jne 1b - movzwl %cx, %eax // return new value - ret - SET_SIZE(atomic_or_ushort_nv) - SET_SIZE(atomic_or_16_nv) - - ENTRY(atomic_or_32_nv) - ALTENTRY(atomic_or_uint_nv) - movl (%rdi), %eax -1: - movl %esi, %ecx - orl %eax, %ecx - lock - cmpxchgl %ecx, (%rdi) - jne 1b - movl %ecx, %eax - ret - SET_SIZE(atomic_or_uint_nv) - SET_SIZE(atomic_or_32_nv) - - ENTRY(atomic_or_64_nv) - ALTENTRY(atomic_or_ulong_nv) - movq (%rdi), %rax -1: - movq %rsi, %rcx - orq %rax, %rcx - lock - cmpxchgq %rcx, (%rdi) - jne 1b - movq %rcx, %rax - ret - SET_SIZE(atomic_or_ulong_nv) - SET_SIZE(atomic_or_64_nv) - - ENTRY(atomic_cas_8) - ALTENTRY(atomic_cas_uchar) - movzbl %sil, %eax - lock - cmpxchgb %dl, (%rdi) - ret - SET_SIZE(atomic_cas_uchar) - SET_SIZE(atomic_cas_8) - - ENTRY(atomic_cas_16) - ALTENTRY(atomic_cas_ushort) - movzwl %si, %eax - lock - cmpxchgw %dx, (%rdi) - ret - SET_SIZE(atomic_cas_ushort) - SET_SIZE(atomic_cas_16) - - ENTRY(atomic_cas_32) - ALTENTRY(atomic_cas_uint) - movl %esi, %eax - lock - cmpxchgl %edx, (%rdi) - ret - SET_SIZE(atomic_cas_uint) - SET_SIZE(atomic_cas_32) - ENTRY(atomic_cas_64) - ALTENTRY(atomic_cas_ulong) - ALTENTRY(atomic_cas_ptr) movq %rsi, %rax lock cmpxchgq %rdx, (%rdi) ret - SET_SIZE(atomic_cas_ptr) - SET_SIZE(atomic_cas_ulong) SET_SIZE(atomic_cas_64) - ENTRY(atomic_swap_8) - ALTENTRY(atomic_swap_uchar) - movzbl %sil, %eax - lock - xchgb %al, (%rdi) - ret - SET_SIZE(atomic_swap_uchar) - SET_SIZE(atomic_swap_8) - - ENTRY(atomic_swap_16) - ALTENTRY(atomic_swap_ushort) - movzwl %si, %eax - lock - xchgw %ax, (%rdi) - ret - SET_SIZE(atomic_swap_ushort) - SET_SIZE(atomic_swap_16) - - ENTRY(atomic_swap_32) - ALTENTRY(atomic_swap_uint) - movl %esi, %eax - lock - xchgl %eax, (%rdi) - ret - SET_SIZE(atomic_swap_uint) - SET_SIZE(atomic_swap_32) - - ENTRY(atomic_swap_64) - ALTENTRY(atomic_swap_ulong) - ALTENTRY(atomic_swap_ptr) - movq %rsi, %rax - lock - xchgq %rax, (%rdi) - ret - SET_SIZE(atomic_swap_ptr) - SET_SIZE(atomic_swap_ulong) - SET_SIZE(atomic_swap_64) - - ENTRY(atomic_set_long_excl) - xorl %eax, %eax - lock - btsq %rsi, (%rdi) - jnc 1f - decl %eax // return -1 -1: - ret - SET_SIZE(atomic_set_long_excl) - - ENTRY(atomic_clear_long_excl) - xorl %eax, %eax - lock - btrq %rsi, (%rdi) - jc 1f - decl %eax // return -1 -1: - ret - SET_SIZE(atomic_clear_long_excl) - - ENTRY(membar_enter) - ALTENTRY(membar_exit) - mfence - ret - SET_SIZE(membar_exit) - SET_SIZE(membar_enter) - ENTRY(membar_producer) sfence ret SET_SIZE(membar_producer) - - ENTRY(membar_consumer) - lfence - ret - SET_SIZE(membar_consumer) ==== //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/i386/atomic.S#3 (text+ko) ==== @@ -31,327 +31,6 @@ #define _ASM #include -#if defined(_KERNEL) - /* - * Legacy kernel interfaces; they will go away (eventually). - */ - ANSI_PRAGMA_WEAK2(cas8,atomic_cas_8,function) - ANSI_PRAGMA_WEAK2(cas32,atomic_cas_32,function) - ANSI_PRAGMA_WEAK2(cas64,atomic_cas_64,function) - ANSI_PRAGMA_WEAK2(caslong,atomic_cas_ulong,function) - ANSI_PRAGMA_WEAK2(casptr,atomic_cas_ptr,function) - ANSI_PRAGMA_WEAK2(atomic_and_long,atomic_and_ulong,function) - ANSI_PRAGMA_WEAK2(atomic_or_long,atomic_or_ulong,function) -#endif - - ENTRY(atomic_inc_8) - ALTENTRY(atomic_inc_uchar) - movl 4(%esp), %eax - lock - incb (%eax) - ret - SET_SIZE(atomic_inc_uchar) - SET_SIZE(atomic_inc_8) - - ENTRY(atomic_inc_16) - ALTENTRY(atomic_inc_ushort) - movl 4(%esp), %eax - lock - incw (%eax) - ret - SET_SIZE(atomic_inc_ushort) - SET_SIZE(atomic_inc_16) - - ENTRY(atomic_inc_32) - ALTENTRY(atomic_inc_uint) - ALTENTRY(atomic_inc_ulong) - movl 4(%esp), %eax - lock - incl (%eax) - ret - SET_SIZE(atomic_inc_ulong) - SET_SIZE(atomic_inc_uint) - SET_SIZE(atomic_inc_32) - - ENTRY(atomic_inc_8_nv) - ALTENTRY(atomic_inc_uchar_nv) - movl 4(%esp), %edx // %edx = target address - movb (%edx), %al // %al = old value -1: >>> TRUNCATED FOR MAIL (1000 lines) <<<