From owner-p4-projects@FreeBSD.ORG Mon Jul 3 14:01:08 2006 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 E75AF16A416; Mon, 3 Jul 2006 14:01:07 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C004C16A40F for ; Mon, 3 Jul 2006 14:01:07 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB4F243D46 for ; Mon, 3 Jul 2006 14:01:06 +0000 (GMT) (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.6/8.13.6) with ESMTP id k63E1609093541 for ; Mon, 3 Jul 2006 14:01:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k63E13Y8093536 for perforce@freebsd.org; Mon, 3 Jul 2006 14:01:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 3 Jul 2006 14:01:03 GMT Message-Id: <200607031401.k63E13Y8093536@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 100497 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: Mon, 03 Jul 2006 14:01:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=100497 Change 100497 by rwatson@rwatson_zoo on 2006/07/03 14:00:08 Integrate TrustedBSD audit3 branch; see change @100493 for a summary of changes. Affected files ... .. //depot/projects/trustedbsd/audit3/MAINTAINERS#9 integrate .. //depot/projects/trustedbsd/audit3/UPDATING#11 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/FREEBSD-upgrade#6 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#6 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/VERSION#9 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#22 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_record.h#11 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/libbsm.h#13 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/config/ltmain.sh#5 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/configure#7 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#7 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#13 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_notify.c#11 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#17 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/man/audit.log.5#8 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/test/bsm/generate.c#4 integrate .. //depot/projects/trustedbsd/audit3/include/malloc_np.h#2 integrate .. //depot/projects/trustedbsd/audit3/lib/libc/stdlib/malloc.c#9 integrate .. //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#12 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/nfe.4#2 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/ng_netflow.4#6 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/ng_tag.4#2 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/sched_core.4#2 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/uplcom.4#5 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/linux32/linux32_proto.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/linux32/linux32_syscall.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/linux32/linux32_sysent.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/linux32/syscalls.master#6 integrate .. //depot/projects/trustedbsd/audit3/sys/arm/at91/at91_pio.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/arm/at91/at91_pio_rm9200.h#1 branch .. //depot/projects/trustedbsd/audit3/sys/arm/at91/at91_piovar.h#1 branch .. //depot/projects/trustedbsd/audit3/sys/arm/at91/uart_dev_at91usart.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/freebsd32/freebsd32_proto.h#17 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/freebsd32/freebsd32_syscall.h#17 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/freebsd32/freebsd32_syscalls.c#17 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/freebsd32/freebsd32_sysent.c#18 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/freebsd32/syscalls.master#19 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/linprocfs/linprocfs.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/linux/linux_ipc.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/linux/linux_util.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/Makefile#2 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/svr4_ipc.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/svr4_proto.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/svr4_syscall.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/svr4_syscallnames.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/svr4_sysent.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/svr4/syscalls.master#6 integrate .. //depot/projects/trustedbsd/audit3/sys/conf/files.ia64#7 integrate .. //depot/projects/trustedbsd/audit3/sys/conf/kern.mk#7 integrate .. //depot/projects/trustedbsd/audit3/sys/conf/kern.pre.mk#7 integrate .. //depot/projects/trustedbsd/audit3/sys/conf/kmod.mk#11 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/ata/ata-all.h#9 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/ata/ata-chipset.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/ata/atapi-cd.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/bge/if_bge.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/bge/if_bgereg.h#10 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/bktr/CHANGELOG.TXT#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/isp/isp.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/isp/isp_pci.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/isp/ispmbox.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/isp/ispreg.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/isp/ispvar.h#8 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/ispfw/asm_2322.h#1 branch .. //depot/projects/trustedbsd/audit3/sys/dev/ispfw/ispfw.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/acphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/amphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/bmtphy.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/brgphy.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/ciphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/e1000phy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/exphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/inphy.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/lxtphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/mii_physubr.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/mlphy.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/nsgphy.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/nsphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/pnaphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/qsphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/rgephy.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/rlphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/ruephy.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/tdkphy.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/tlphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/ukphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/mii/xmphy.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/puc/puc.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/puc/puc_cfg.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/puc/puc_pccard.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/puc/puc_pci.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/puc/pucdata.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/re/if_re.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/sio/sio.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/usb/if_ural.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/usb/uplcom.c#9 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/usb/usbdevs#12 integrate .. //depot/projects/trustedbsd/audit3/sys/fs/pseudofs/pseudofs_vnops.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/geom/mirror/g_mirror.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/geom/raid3/g_raid3.c#9 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/conf/XBOX#5 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/i386/pmap.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/linux/linux_proto.h#11 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/linux/linux_syscall.h#11 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/linux/linux_sysent.c#15 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/linux/syscalls.master#16 integrate .. //depot/projects/trustedbsd/audit3/sys/ia64/ia64/emulate.c#1 branch .. //depot/projects/trustedbsd/audit3/sys/ia64/ia64/trap.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/ia64/include/md_var.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/kern_thread.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/sched_4bsd.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/sched_core.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#35 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/sysv_sem.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/vfs_mount.c#17 integrate .. //depot/projects/trustedbsd/audit3/sys/modules/bktr/bktr_mem/Makefile#2 integrate .. //depot/projects/trustedbsd/audit3/sys/modules/streams/Makefile#2 integrate .. //depot/projects/trustedbsd/audit3/sys/modules/svr4/Makefile#3 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_atmsubr.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_enc.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_gif.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_stf.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_tun.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/net/if_vlan.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/if_ether.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/in_pcb.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/ip_fw2.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/ip_output.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_input.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/in6.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/in6_cksum.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/in6_pcb.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/in6_var.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/nfsclient/bootp_subr.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/nfsclient/nfs_diskless.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/pci/if_rlreg.h#8 integrate .. //depot/projects/trustedbsd/audit3/sys/powerpc/powerpc/mmu_oea.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/sys/syscallsubr.h#9 integrate .. //depot/projects/trustedbsd/audit3/tools/tools/net80211/wlanwatch/wlanwatch.c#2 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/tail/extern.h#3 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/tail/forward.c#4 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/tail/tail.1#4 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/tail/tail.c#4 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/kgmon/kgmon.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/newsyslog/newsyslog.c#7 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/config.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/connect.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/debug.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/list.c#4 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/main.c#4 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/mkpeer.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/msg.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/name.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/rmhook.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/show.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/shutdown.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/status.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/types.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/ngctl/write.c#3 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/MAINTAINERS#9 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.135 2006/06/03 01:52:11 scottl Exp $ +$FreeBSD: src/MAINTAINERS,v 1.136 2006/07/01 10:51:54 markm Exp $ Please note that the content of this file is strictly advisory. No locks listed here are valid. The only strict review requirements @@ -35,10 +35,6 @@ NEWCARD imp Pre-commit review requested. OLDCARD imp Pre-commit review requested. pci bus imp,jhb Pre-commit review requested. -telnet markm Heads-up appreciated. Try not to break it. -secure/* markm Heads-up appreciated. Try not to break it. -kerberos5 nectar Pre-commit review requested. -heimdal nectar Pre-commit review requested. cdboot jhb Pre-commit review requested. pxeboot jhb Pre-commit review requested. witness jhb Pre-commit review requested. @@ -91,8 +87,6 @@ libufs jmallett Willing to handle problems, help with work. fdc(4) joerg Just keep me informed of changes, try not to break it. sppp(4) joerg Just keep me informed of changes, try not to break it. -libc nectar Opportuntity for pre-commit review appreciated for - nsdispatch(3) and its consumers. unifdef(1) fanf Pre-commit review requested. ntp roberto Pre-commit review requested. inetd dwmalone Recommends pre-commit review. @@ -147,12 +141,7 @@ games/fortune/datfiles/Makefile:MAINTAINER= jkh gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch sbin/dhclient/Makefile.inc:MAINTAINER= mbr -sys/compat/svr4/Makefile:MAINTAINER= newton@freebsd.org -sys/dev/bktr/CHANGELOG.TXT: * MAINTAINER = Roger Hardiman sys/modules/3dfx/Makefile:MAINTAINER= cokane@FreeBSD.org -sys/modules/bktr/bktr_mem/Makefile:MAINTAINER= roger@freebsd.org -sys/modules/streams/Makefile:MAINTAINER= newton@atdot.dotat.org -sys/modules/svr4/Makefile:MAINTAINER= newton@FreeBSD.org sys/modules/urio/Makefile:MAINTAINER= Iwasa Kazmi tools/tools/sysdoc/Makefile:MAINTAINER= trhodes@FreeBSD.org usr.bin/locate/Makefile:MAINTAINER= wosch ==== //depot/projects/trustedbsd/audit3/UPDATING#11 (text+ko) ==== @@ -21,6 +21,11 @@ developers choose to disable these features on build machines to maximize performance. +20060627: + The XBOX kernel now defaults to the nfe(4) driver instead of + the nve(4) driver. Please update your configuration + accordingly. + 20060511: The machdep.* sysctls and the adjkerntz utility have been modified a bit. The new adjkerntz utility uses the new @@ -580,4 +585,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.449 2006/05/15 15:47:45 keramida Exp $ +$FreeBSD: src/UPDATING,v 1.450 2006/06/27 20:22:32 rink Exp $ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/FREEBSD-upgrade#6 (text) ==== @@ -30,15 +30,15 @@ Normally, the CVS vendor import goes along the following lines: cd ~/p4/projects/trustedbsd/openbsm - cvs -d rwatson@repoman.FreeBSD.org:/home/ncvs -q import src/contrib/openbsm \ - TrustedBSD OPENBSM_1_0_ALPHA_1 + cvs -n -d rwatson@repoman.FreeBSD.org:/home/ncvs -q import \ + src/contrib/openbsm TrustedBSD OPENBSM_1_0_ALPHA_1 -Replacing the version string as required. Use the "-n" argument to CVS to -do a test run. +Replacing the version string as required. Remove the "-n" argument once +the import is tested in order to perform the actual import. Propagation of changes to src/sys/{bsm,security/audit} is something that requires careful coordination and attention to detail. These files are not on CVS vendor branches, but do have the same local vs. vendor merge issues. -$FreeBSD: src/contrib/openbsm/FREEBSD-upgrade,v 1.4 2006/03/05 13:30:37 rwatson Exp $ +$FreeBSD: src/contrib/openbsm/FREEBSD-upgrade,v 1.5 2006/06/27 17:55:38 rwatson Exp $ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#6 (text+ko) ==== @@ -175,4 +175,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#5 $ +$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/HISTORY#6 $ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/VERSION#9 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#22 (text+ko) ==== @@ -30,7 +30,7 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#21 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#22 $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_record.h#11 (text+ko) ==== @@ -30,7 +30,7 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_record.h#10 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_record.h#11 $ */ #ifndef _BSM_AUDIT_RECORD_H_ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/libbsm.h#13 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/libbsm.h#12 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/libbsm.h#13 $ */ #ifndef _LIBBSM_H_ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/config/ltmain.sh#5 (text+ko) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/configure#7 (xtext) ==== ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#7 (text+ko) ==== @@ -3,7 +3,7 @@ AC_PREREQ(2.59) AC_INIT([OpenBSM], [1.0a7], [trustedbsd-audit@TrustesdBSD.org],[openbsm]) -AC_REVISION([$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#6 $]) +AC_REVISION([$P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/configure.ac#7 $]) AC_CONFIG_SRCDIR([bin/auditreduce/auditreduce.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config/config.h]) ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#13 (text+ko) ==== @@ -1,6 +1,6 @@ # -# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#12 $ -# $FreeBSD: src/contrib/openbsm/etc/audit_event,v 1.2 2006/03/26 01:44:35 rwatson Exp $ +# $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#13 $ +# $FreeBSD: src/contrib/openbsm/etc/audit_event,v 1.3 2006/06/27 18:09:54 rwatson Exp $ # 0:AUE_NULL:indir system call:no 1:AUE_EXIT:exit(2):pc ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_notify.c#11 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_notify.c#10 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_notify.c#11 $ */ /* ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#17 (text+ko) ==== @@ -30,7 +30,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#16 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#17 $ */ #include ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/man/audit.log.5#8 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/audit.log.5#7 $ +.\" $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/man/audit.log.5#8 $ .\" .Dd May 1, 2005 .Dt AUDIT.LOG 5 ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/test/bsm/generate.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/test/bsm/generate.c#3 $ + * $P4: //depot/projects/trustedbsd/audit3/contrib/openbsm/test/bsm/generate.c#4 $ */ /* ==== //depot/projects/trustedbsd/audit3/include/malloc_np.h#2 (text) ==== @@ -26,12 +26,16 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/include/malloc_np.h,v 1.1 2006/03/28 22:16:03 jasone Exp $ + * $FreeBSD: src/include/malloc_np.h,v 1.2 2006/06/30 20:57:41 jasone Exp $ */ #ifndef _MALLOC_NP_H_ #define _MALLOC_NP_H_ +#include +#include +__BEGIN_DECLS size_t malloc_usable_size(const void *ptr); +__END_DECLS #endif /* _MALLOC_NP_H_ */ ==== //depot/projects/trustedbsd/audit3/lib/libc/stdlib/malloc.c#9 (text+ko) ==== @@ -185,7 +185,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.127 2006/06/20 20:38:25 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.129 2006/07/01 16:51:10 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -659,9 +659,6 @@ * Data. */ -/* Used as a special "nil" return value for malloc(0). */ -static const int nil; - /* Number of CPUs. */ static unsigned ncpus; @@ -1565,82 +1562,82 @@ static inline void arena_run_reg_dalloc(arena_run_t *run, arena_bin_t *bin, void *ptr, size_t size) { + /* + * To divide by a number D that is not a power of two we multiply + * by (2^21 / D) and then right shift by 21 positions. + * + * X / D + * + * becomes + * + * (size_invs[(D >> QUANTUM_2POW_MIN) - 3] * D) >> SIZE_INV_SHIFT + */ +#define SIZE_INV_SHIFT 21 +#define SIZE_INV(s) (((1 << SIZE_INV_SHIFT) / (s << QUANTUM_2POW_MIN)) + 1) + static const unsigned size_invs[] = { + SIZE_INV(3), + SIZE_INV(4), SIZE_INV(5), SIZE_INV(6), SIZE_INV(7), + SIZE_INV(8), SIZE_INV(9), SIZE_INV(10), SIZE_INV(11), + SIZE_INV(12),SIZE_INV(13), SIZE_INV(14), SIZE_INV(15), + SIZE_INV(16),SIZE_INV(17), SIZE_INV(18), SIZE_INV(19), + SIZE_INV(20),SIZE_INV(21), SIZE_INV(22), SIZE_INV(23), + SIZE_INV(24),SIZE_INV(25), SIZE_INV(26), SIZE_INV(27), + SIZE_INV(28),SIZE_INV(29), SIZE_INV(30), SIZE_INV(31) + }; unsigned diff, regind, elm, bit; assert(run->magic == ARENA_RUN_MAGIC); + assert(((sizeof(size_invs)) / sizeof(unsigned)) + 3 + >= (SMALL_MAX_DEFAULT >> QUANTUM_2POW_MIN)); /* - * Avoid doing division with a variable divisor if possible. This - * single operation can reduce allocator throughput by around 20%! + * Avoid doing division with a variable divisor if possible. Using + * actual division here can reduce allocator throughput by over 20%! */ -#define POW2_CASE(p) \ - case (1 << (p)): \ - regind = diff >> (p); \ - break; -#define QUANTUM_CASE(n) \ - case ((n) << QUANTUM_2POW_MIN): \ - regind = diff / ((n) << QUANTUM_2POW_MIN); \ - break; - - /* - * These assertions make sure that the switch statement matches - * compile-time configuration. - */ - assert(tiny_min_2pow >= 1); - assert(QUANTUM_2POW_MIN >= 3 && QUANTUM_2POW_MIN <= 4); - assert(SMALL_MAX_2POW_DEFAULT == 9); - diff = (unsigned)((uintptr_t)ptr - (uintptr_t)run - bin->reg0_offset); - switch (size) { - POW2_CASE(1) - POW2_CASE(2) -#if (QUANTUM_2POW_MIN > 3) - POW2_CASE(3) -#endif - QUANTUM_CASE(1) - QUANTUM_CASE(2) - QUANTUM_CASE(3) - QUANTUM_CASE(4) - QUANTUM_CASE(5) - QUANTUM_CASE(6) - QUANTUM_CASE(7) - QUANTUM_CASE(8) - QUANTUM_CASE(9) - QUANTUM_CASE(10) - QUANTUM_CASE(11) - QUANTUM_CASE(12) - QUANTUM_CASE(13) - QUANTUM_CASE(14) - QUANTUM_CASE(15) - QUANTUM_CASE(16) - QUANTUM_CASE(17) - QUANTUM_CASE(18) - QUANTUM_CASE(19) - QUANTUM_CASE(20) - QUANTUM_CASE(21) - QUANTUM_CASE(22) - QUANTUM_CASE(23) - QUANTUM_CASE(24) - QUANTUM_CASE(25) - QUANTUM_CASE(26) - QUANTUM_CASE(27) - QUANTUM_CASE(28) - QUANTUM_CASE(29) - QUANTUM_CASE(30) - QUANTUM_CASE(31) - QUANTUM_CASE(32) + if ((size & (size - 1)) == 0) { + /* + * log2_table allows fast division of a power of two in the + * [1..128] range. + * + * (x / divisor) becomes (x >> log2_table[divisor - 1]). + */ + static const unsigned char log2_table[] = { + 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7 + }; -#if (QUANTUM_2POW_MIN <= 3) - POW2_CASE(9) -#endif - POW2_CASE(10) - POW2_CASE(11) - POW2_CASE(12) /* Handle up to 8 kB pages. */ - default: + if (size <= 128) + regind = (diff >> log2_table[size - 1]); + else if (size <= 32768) + regind = diff >> (8 + log2_table[(size >> 8) - 1]); + else { + /* + * The page size is too large for us to use the lookup + * table. Use real division. + */ regind = diff / size; - } -#undef POW2_CASE -#undef QUANTUM_CASE + } + } else if (size <= ((sizeof(size_invs) / sizeof(unsigned)) + << QUANTUM_2POW_MIN) + 2) { + regind = size_invs[(size >> QUANTUM_2POW_MIN) - 3] * diff; + regind >>= SIZE_INV_SHIFT; + } else { + /* + * size_invs isn't large enough to handle this size class, so + * calculate regind using actual division. This only happens + * if the user increases small_max via the 'S' runtime + * configuration option. + */ + regind = diff / size; + }; + assert(regind == diff / size); assert(regind < bin->nregs); elm = regind >> (SIZEOF_INT_2POW + 3); @@ -1649,6 +1646,8 @@ bit = regind - (elm << (SIZEOF_INT_2POW + 3)); assert((run->regs_mask[elm] & (1 << bit)) == 0); run->regs_mask[elm] |= (1 << bit); +#undef SIZE_INV +#undef SIZE_INV_SHIFT } static void @@ -2239,7 +2238,6 @@ arena_chunk_map_t mapelm; assert(ptr != NULL); - assert(ptr != &nil); assert(CHUNK_ADDR2BASE(ptr) != ptr); /* @@ -2281,8 +2279,7 @@ == (QUANTUM_CEILING(oldsize) >> opt_quantum_2pow)) goto IN_PLACE; } else { - if (oldsize > small_max && - pow2_ceil(size) == pow2_ceil(oldsize)) + if (oldsize > small_max && pow2_ceil(size) == oldsize) goto IN_PLACE; } @@ -2320,7 +2317,6 @@ assert(arena->magic == ARENA_MAGIC); assert(chunk->arena == arena); assert(ptr != NULL); - assert(ptr != &nil); assert(CHUNK_ADDR2BASE(ptr) != ptr); pageind = (((uintptr_t)ptr - (uintptr_t)chunk) >> pagesize_2pow); @@ -2353,6 +2349,7 @@ /* Medium allocation. */ size = mapelm.npages << pagesize_2pow; + assert((((uintptr_t)ptr) & (size - 1)) == 0); if (opt_junk) memset(ptr, 0x5a, size); @@ -2666,29 +2663,36 @@ ipalloc(size_t alignment, size_t size) { void *ret; - size_t pow2_size; + size_t alloc_size; /* - * Round up to the nearest power of two that is >= alignment and - * >= size. + * Take advantage of the fact that for each size class, every object is + * aligned at the smallest power of two that is non-zero in the base + * two representation of the size. For example: + * + * Size | Base 2 | Minimum alignment + * -----+----------+------------------ + * 96 | 1100000 | 32 + * 144 | 10100000 | 32 + * 192 | 11000000 | 64 + * + * Depending on runtime settings, it is possible that arena_malloc() + * will further round up to a power of two, but that never causes + * correctness issues. */ - if (size > alignment) - pow2_size = pow2_ceil(size); - else - pow2_size = alignment; - pow2_size = QUANTUM_CEILING(pow2_size); - if (pow2_size < size) { + alloc_size = (size + (alignment - 1)) & (-alignment); + if (alloc_size < size) { /* size_t overflow. */ return (NULL); } - if (pow2_size <= arena_maxclass) - ret = arena_malloc(choose_arena(), pow2_size); + if (alloc_size <= arena_maxclass) + ret = arena_malloc(choose_arena(), alloc_size); else { if (alignment <= chunk_size) ret = huge_malloc(size); else { - size_t chunksize, alloc_size, offset; + size_t chunksize, offset; chunk_node_t *node; /* @@ -2815,7 +2819,6 @@ arena_chunk_t *chunk; assert(ptr != NULL); - assert(ptr != &nil); chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr); if (chunk != ptr) { @@ -2850,7 +2853,6 @@ size_t oldsize; assert(ptr != NULL); - assert(ptr != &nil); assert(size != 0); oldsize = isalloc(ptr); @@ -2869,7 +2871,6 @@ arena_chunk_t *chunk; assert(ptr != NULL); - assert(ptr != &nil); chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr); if (chunk != ptr) { @@ -3404,10 +3405,11 @@ if (size == 0) { if (opt_sysv == false) - ret = (void *)&nil; - else + size = 1; + else { ret = NULL; - goto RETURN; + goto RETURN; + } } ret = imalloc(size); @@ -3486,10 +3488,11 @@ num_size = num * size; if (num_size == 0) { if (opt_sysv == false) - ret = (void *)&nil; - else + num_size = 1; + else { ret = NULL; - goto RETURN; + goto RETURN; + } /* * Try to avoid division here. We know that it isn't possible to * overflow during multiplication if neither operand uses any of the @@ -3524,44 +3527,49 @@ { void *ret; - if (size != 0) { - if (ptr != &nil && ptr != NULL) { - assert(malloc_initialized); + if (size == 0) { + if (opt_sysv == false) + size = 1; + else { + if (ptr != NULL) + idalloc(ptr); + ret = NULL; + goto RETURN; + } + } - ret = iralloc(ptr, size); + if (ptr != NULL) { + assert(malloc_initialized); - if (ret == NULL) { - if (opt_xmalloc) { - malloc_printf("%s: (malloc) Error in" - " ralloc(%p, %zu): out of memory\n", - _getprogname(), ptr, size); - abort(); - } - errno = ENOMEM; - } - } else { - if (malloc_init()) - ret = NULL; - else - ret = imalloc(size); + ret = iralloc(ptr, size); - if (ret == NULL) { - if (opt_xmalloc) { - malloc_printf("%s: (malloc) Error in" - " ralloc(%p, %zu): out of memory\n", - _getprogname(), ptr, size); - abort(); - } - errno = ENOMEM; + if (ret == NULL) { + if (opt_xmalloc) { + malloc_printf("%s: (malloc) Error in" + " realloc(%p, %zu): out of memory\n", + _getprogname(), ptr, size); + abort(); } + errno = ENOMEM; } } else { - if (ptr != &nil && ptr != NULL) - idalloc(ptr); + if (malloc_init()) + ret = NULL; + else + ret = imalloc(size); - ret = (void *)&nil; + if (ret == NULL) { + if (opt_xmalloc) { + malloc_printf("%s: (malloc) Error in" + " realloc(%p, %zu): out of memory\n", + _getprogname(), ptr, size); + abort(); + } + errno = ENOMEM; + } } +RETURN: UTRACE(ptr, size, ret); return (ret); } @@ -3571,7 +3579,7 @@ { UTRACE(ptr, 0, 0); - if (ptr != &nil && ptr != NULL) { + if (ptr != NULL) { assert(malloc_initialized); idalloc(ptr); @@ -3592,10 +3600,7 @@ assert(ptr != NULL); - if (ptr == &nil) - return (0); - else - return (isalloc(ptr)); + return (isalloc(ptr)); } /* ==== //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#12 (text+ko) ==== @@ -3,7 +3,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.951 2006/06/26 12:12:09 keramida Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.953 2006/07/02 01:58:33 bmah Exp $ 2000 @@ -366,11 +366,11 @@ A new loader tunable comconsole_speed to change the serial console speed has been added. - If the previous stage boot loader requested a serial console + If the previous stage boot loader requested a serial console, then the default speed is determined from the current serial port - speed, and otherwise it is set to 9600 or the value of - the kernel option BOOT_COMCONSOLE_SPEED - at compile time. &merged; + speed. Otherwise it is set to 9600 or the value of + the BOOT_COMCONSOLE_SPEED kernel option. + &merged; @@ -391,7 +391,7 @@ &man.pccbb.4;, and &man.exca.4; drivers are now buildable as kernel modules. - A &man.acpi.dock.4; driver has been added to provide + An &man.acpi.dock.4; driver has been added to provide support for controlling laptop docking station functions via ACPI. @@ -416,9 +416,11 @@ Support for the PadLock Security Co-processor in VIA C3 processors has been added to the &man.crypto.9; subsystem. + More information can be found in the &man.padlock.4; manual + page. &merged; - A bug which prevents the &man.ichsmb.4; kernel module + A bug which prevented the &man.ichsmb.4; kernel module from unloading has been fixed. Dual-core processors (such as the Intel @@ -440,7 +442,7 @@ or at runtime via &man.kldload.8; and releasing the active keyboard. &merged; - The &man.kbdmux.4; driver has been included in the + The &man.kbdmux.4; driver is now included in the GENERIC kernel by default. Also, the Boot FreeBSD with USB keyboard menu item in the boot loader menu has been removed @@ -461,22 +463,22 @@ The smbios(4) driver support for amd64 has been added. - The tnt4882(4) driver which supports National Instruments - PCI-GPIB card has been added. + The tnt4882(4) driver, which supports the National Instruments + PCI-GPIB card, has been added. The &man.uart.4; driver has been included in the GENERIC kernel by default. - When both &man.sio.4; and &man.uart.4; can handle a serial port, + When both &man.sio.4; and &man.uart.4; can handle a given serial port, &man.sio.4; will claim it. The &man.uart.4; driver now supports LOM (Lights Out Management) - and RSC (Remote System Control) devices as console. + and RSC (Remote System Control) devices as consoles. A new loader tunable hw.apic.enable_extint has been added. - This tunable can be used not to mask the ExtINT pin on the first - I/O APIC. At least one chipset for Intel Pentium III seems - to need this even though all of the pins in the 8259A's are masked. + This tunable can be used to disable masking of the ExtINT pin on the first + I/O APIC. At least one chipset for the Intel Pentium III seems + to need this, even though all of the pins in the 8259As are masked. The default is still to mask the ExtINT pin. Support has been improved for @@ -487,7 +489,7 @@ Multimedia Support - The &man.agp.4; driver now supports ATI IGP chipsets. + The &man.agp.4; driver now supports ATI AGP chipsets. &merged; The new midi(4) driver which is based on NetBSD's one @@ -561,7 +563,7 @@ The &man.ed.4; driver is now MPSAFE. - The &man.el.4; driver has been removed. + The &man.el.4; driver has been removed due to lack of use. The &man.em.4; driver now supports big-endian architectures such as sparc64. &merged; @@ -583,11 +585,12 @@ architectures such as sparc64. The &man.le.4; driver, which supports AMD Am7900 LANCE - and Am79C9xx PCnet NICs and is based on NetBSD's implementation, + and Am79C9xx PCnet NICs, has been added. While the &man.lnc.4; driver also supports these NICs, this driver has several advantages over it such as MPSAFE, ALTQ, VLAN_MTU, ifmedia, and 32-bit DMA for PCI - variants. &merged; + variants. This driver is based on NetBSD's implementation. + &merged; The &man.lge.4; driver is now MPSAFE. &merged; @@ -597,7 +600,7 @@ The &man.my.4; driver is now MPSAFE. &merged; - The &man.my.4; driver now supports &man.altq.4; + The &man.my.4; driver now supports &man.altq.4;. The &man.mxge.4; driver, which supports Myricom Myri10GE 10 Gigabit Ethernet @@ -647,14 +650,14 @@ Network Protocols - The &man.arp.8; retransmission algorithm has been - rewritten as that ARP requests are retransmitted without + The &man.arp.4; retransmission algorithm has been + rewritten so that ARP requests are retransmitted without suppression, while there is demand for such ARP entry. Due to this change, a sysctl variable net.link.ether.inet.host_down_time has been removed. &merged; - The &man.arp.8; now supports a sysctl variable + The &man.arp.4; protocol now supports a sysctl variable net.link.ether.inet.log_arp_permanent_modify to suppress logging of attempts to modify permanent ARP entries. &merged; @@ -674,7 +677,7 @@ found in RFC 1701 and RFC 1702, now supports IPv6 over GRE. The &man.if.bridge.4; driver now supports - creating span ports, which transmit a copy of every frame + creating SPAN ports, which transmit a copy of every frame received by the bridge. This feature can be enabled by using &man.ifconfig.8;. &merged; @@ -689,15 +692,15 @@ memberships (formerly 20) has been removed. The path MTU discovery for multicast packets in the &os; - &man.ip6.4; stack has been disabled by default because - notifying path MTU by a lot of routers in multicast + IPv6 stack has been disabled by default. + Path MTU notification from a large number of multicast routers can be a kind of distributed Denial-of-Service attack to a router. This feature can be re-enabled by using a new sysctl variable net.inet6.ip6.mcast_pmtu. &merged; The &man.ipfw.4; IP packet filter now supports IPv6. &merged; - The &man.ipfw.4; now supports substitution of the action + The &man.ipfw.4; firewall system now supports substitution of the action argument with the value obtained from table lookup, which allows some optimization of rulesets. This is now applicable only to pipe, >>> TRUNCATED FOR MAIL (1000 lines) <<<