From owner-svn-src-projects@FreeBSD.ORG Sun Nov 20 21:47:28 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F39E2106564A; Sun, 20 Nov 2011 21:47:27 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE7B58FC08; Sun, 20 Nov 2011 21:47:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAKLlRAH010720; Sun, 20 Nov 2011 21:47:27 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAKLlR0i010700; Sun, 20 Nov 2011 21:47:27 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201111202147.pAKLlR0i010700@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 20 Nov 2011 21:47:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227772 - in projects/pseries: amd64/amd64 amd64/conf amd64/ia32 amd64/include amd64/linux32 arm/arm arm/at91 arm/conf arm/econa arm/include arm/mv arm/sa11x0 arm/xscale/i80321 arm/xsca... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Nov 2011 21:47:28 -0000 Author: nwhitehorn Date: Sun Nov 20 21:47:25 2011 New Revision: 227772 URL: http://svn.freebsd.org/changeset/base/227772 Log: IFC @ r227771. Of particular interest here are virtio drivers, which should be useful for the QEMU pSeries emulation. Added: projects/pseries/boot/fdt/dts/p1020rdb.dts - copied unchanged from r227771, head/sys/boot/fdt/dts/p1020rdb.dts projects/pseries/boot/fdt/dts/p2020ds.dts - copied unchanged from r227771, head/sys/boot/fdt/dts/p2020ds.dts projects/pseries/boot/fdt/dts/p3041ds.dts - copied unchanged from r227771, head/sys/boot/fdt/dts/p3041ds.dts projects/pseries/boot/fdt/dts/xlp-basic.dts - copied unchanged from r227771, head/sys/boot/fdt/dts/xlp-basic.dts projects/pseries/boot/i386/common/edd.h - copied unchanged from r227771, head/sys/boot/i386/common/edd.h projects/pseries/boot/powerpc/ps3/ps3bus.h - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3bus.h projects/pseries/boot/powerpc/ps3/ps3cdrom.c - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3cdrom.c projects/pseries/boot/powerpc/ps3/ps3devdesc.h - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3devdesc.h projects/pseries/boot/powerpc/ps3/ps3disk.c - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3disk.c projects/pseries/boot/powerpc/ps3/ps3repo.c - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3repo.c projects/pseries/boot/powerpc/ps3/ps3repo.h - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3repo.h projects/pseries/boot/powerpc/ps3/ps3stor.c - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3stor.c projects/pseries/boot/powerpc/ps3/ps3stor.h - copied unchanged from r227771, head/sys/boot/powerpc/ps3/ps3stor.h projects/pseries/dev/adb/adb_buttons.c - copied unchanged from r227771, head/sys/dev/adb/adb_buttons.c projects/pseries/dev/cesa/ - copied from r227771, head/sys/dev/cesa/ projects/pseries/dev/esp/am53c974reg.h - copied unchanged from r227771, head/sys/dev/esp/am53c974reg.h projects/pseries/dev/esp/esp_pci.c - copied unchanged from r227771, head/sys/dev/esp/esp_pci.c projects/pseries/dev/fdt/fdt_mips.c - copied unchanged from r227771, head/sys/dev/fdt/fdt_mips.c projects/pseries/dev/fxp/inphy.c - copied unchanged from r227771, head/sys/dev/fxp/inphy.c projects/pseries/dev/fxp/inphyreg.h - copied unchanged from r227771, head/sys/dev/fxp/inphyreg.h projects/pseries/dev/mii/mii_bitbang.c - copied unchanged from r227771, head/sys/dev/mii/mii_bitbang.c projects/pseries/dev/mii/mii_bitbang.h - copied unchanged from r227771, head/sys/dev/mii/mii_bitbang.h projects/pseries/dev/netmap/ - copied from r227771, head/sys/dev/netmap/ projects/pseries/dev/qlxgb/ - copied from r227771, head/sys/dev/qlxgb/ projects/pseries/dev/rt/ - copied from r227771, head/sys/dev/rt/ projects/pseries/dev/sfxge/ - copied from r227771, head/sys/dev/sfxge/ projects/pseries/dev/tws/ - copied from r227771, head/sys/dev/tws/ projects/pseries/dev/usb/net/if_usie.c - copied unchanged from r227771, head/sys/dev/usb/net/if_usie.c projects/pseries/dev/usb/net/if_usievar.h - copied unchanged from r227771, head/sys/dev/usb/net/if_usievar.h projects/pseries/dev/usb/net/ruephy.c - copied unchanged from r227771, head/sys/dev/usb/net/ruephy.c projects/pseries/dev/usb/net/ruephyreg.h - copied unchanged from r227771, head/sys/dev/usb/net/ruephyreg.h projects/pseries/dev/virtio/ - copied from r227771, head/sys/dev/virtio/ projects/pseries/dev/xl/xlphy.c - copied unchanged from r227771, head/sys/dev/xl/xlphy.c projects/pseries/kern/kern_ffclock.c - copied unchanged from r227771, head/sys/kern/kern_ffclock.c projects/pseries/kern/subr_syscall.c - copied unchanged from r227771, head/sys/kern/subr_syscall.c projects/pseries/kern/sys_procdesc.c - copied unchanged from r227771, head/sys/kern/sys_procdesc.c projects/pseries/libkern/iconv_ucs.c - copied unchanged from r227771, head/sys/libkern/iconv_ucs.c projects/pseries/libkern/strnlen.c - copied unchanged from r227771, head/sys/libkern/strnlen.c projects/pseries/mips/conf/XLP - copied unchanged from r227771, head/sys/mips/conf/XLP projects/pseries/mips/conf/XLP64 - copied unchanged from r227771, head/sys/mips/conf/XLP64 projects/pseries/mips/conf/XLPN32 - copied unchanged from r227771, head/sys/mips/conf/XLPN32 projects/pseries/mips/conf/std.XLP - copied unchanged from r227771, head/sys/mips/conf/std.XLP projects/pseries/mips/include/fdt.h - copied unchanged from r227771, head/sys/mips/include/fdt.h projects/pseries/mips/include/ofw_machdep.h - copied unchanged from r227771, head/sys/mips/include/ofw_machdep.h projects/pseries/mips/nlm/ - copied from r227771, head/sys/mips/nlm/ projects/pseries/modules/qlxgb/ - copied from r227771, head/sys/modules/qlxgb/ projects/pseries/modules/sfxge/ - copied from r227771, head/sys/modules/sfxge/ projects/pseries/modules/tws/ - copied from r227771, head/sys/modules/tws/ projects/pseries/modules/usb/usie/ - copied from r227771, head/sys/modules/usb/usie/ projects/pseries/modules/virtio/ - copied from r227771, head/sys/modules/virtio/ projects/pseries/net/netmap.h - copied unchanged from r227771, head/sys/net/netmap.h projects/pseries/net/netmap_user.h - copied unchanged from r227771, head/sys/net/netmap_user.h projects/pseries/powerpc/ps3/ps3cdrom.c - copied unchanged from r227771, head/sys/powerpc/ps3/ps3cdrom.c projects/pseries/sys/_ffcounter.h - copied unchanged from r227771, head/sys/sys/_ffcounter.h projects/pseries/sys/procdesc.h - copied unchanged from r227771, head/sys/sys/procdesc.h projects/pseries/sys/timeffc.h - copied unchanged from r227771, head/sys/sys/timeffc.h Deleted: projects/pseries/boot/zfs/zfstest.c projects/pseries/dev/mii/exphy.c projects/pseries/dev/mii/inphy.c projects/pseries/dev/mii/inphyreg.h projects/pseries/dev/mii/ruephy.c projects/pseries/dev/mii/ruephyreg.h Modified: projects/pseries/amd64/amd64/exception.S projects/pseries/amd64/amd64/genassym.c projects/pseries/amd64/amd64/intr_machdep.c projects/pseries/amd64/amd64/machdep.c projects/pseries/amd64/amd64/minidump_machdep.c projects/pseries/amd64/amd64/mp_machdep.c projects/pseries/amd64/amd64/pmap.c projects/pseries/amd64/amd64/support.S projects/pseries/amd64/amd64/sys_machdep.c projects/pseries/amd64/amd64/trap.c projects/pseries/amd64/amd64/uma_machdep.c projects/pseries/amd64/conf/DEFAULTS projects/pseries/amd64/conf/GENERIC projects/pseries/amd64/conf/NOTES projects/pseries/amd64/ia32/ia32_syscall.c projects/pseries/amd64/include/_stdint.h projects/pseries/amd64/include/ieeefp.h projects/pseries/amd64/include/md_var.h projects/pseries/amd64/include/param.h projects/pseries/amd64/include/proc.h projects/pseries/amd64/include/segments.h projects/pseries/amd64/include/signal.h projects/pseries/amd64/include/trap.h projects/pseries/amd64/include/ucontext.h projects/pseries/amd64/linux32/linux32_machdep.c projects/pseries/amd64/linux32/linux32_proto.h projects/pseries/amd64/linux32/linux32_syscall.h projects/pseries/amd64/linux32/linux32_syscalls.c projects/pseries/amd64/linux32/linux32_sysent.c projects/pseries/amd64/linux32/linux32_systrace_args.c projects/pseries/amd64/linux32/linux32_sysvec.c projects/pseries/amd64/linux32/syscalls.master projects/pseries/arm/arm/busdma_machdep.c projects/pseries/arm/arm/elf_machdep.c projects/pseries/arm/arm/elf_trampoline.c projects/pseries/arm/arm/irq_dispatch.S projects/pseries/arm/arm/machdep.c projects/pseries/arm/arm/pmap.c projects/pseries/arm/arm/sys_machdep.c projects/pseries/arm/arm/trap.c projects/pseries/arm/arm/vm_machdep.c projects/pseries/arm/at91/at91.c projects/pseries/arm/at91/at91_mci.c projects/pseries/arm/at91/at91_pio.c projects/pseries/arm/at91/at91_rtc.c projects/pseries/arm/at91/at91_spi.c projects/pseries/arm/at91/at91_ssc.c projects/pseries/arm/at91/at91_twi.c projects/pseries/arm/at91/uart_dev_at91usart.c projects/pseries/arm/conf/AVILA projects/pseries/arm/conf/BWCT projects/pseries/arm/conf/CAMBRIA projects/pseries/arm/conf/CNS11XXNAS projects/pseries/arm/conf/CRB projects/pseries/arm/conf/DB-78XXX projects/pseries/arm/conf/DB-88F5XXX projects/pseries/arm/conf/DB-88F6XXX projects/pseries/arm/conf/DEFAULTS projects/pseries/arm/conf/DOCKSTAR projects/pseries/arm/conf/EP80219 projects/pseries/arm/conf/GUMSTIX projects/pseries/arm/conf/HL200 projects/pseries/arm/conf/HL201 projects/pseries/arm/conf/IQ31244 projects/pseries/arm/conf/KB920X projects/pseries/arm/conf/LN2410SBC projects/pseries/arm/conf/NSLU projects/pseries/arm/conf/QILA9G20 projects/pseries/arm/conf/SAM9G20EK projects/pseries/arm/conf/SHEEVAPLUG projects/pseries/arm/conf/SIMICS projects/pseries/arm/conf/TS7800 projects/pseries/arm/econa/econa.c projects/pseries/arm/econa/if_ece.c projects/pseries/arm/include/asmacros.h projects/pseries/arm/include/ieeefp.h projects/pseries/arm/include/param.h projects/pseries/arm/include/proc.h projects/pseries/arm/include/sysarch.h projects/pseries/arm/include/vmparam.h projects/pseries/arm/mv/common.c projects/pseries/arm/mv/files.mv projects/pseries/arm/mv/gpio.c projects/pseries/arm/mv/mv_machdep.c projects/pseries/arm/sa11x0/sa11x0_irq.S projects/pseries/arm/xscale/i80321/iq31244_7seg.c projects/pseries/arm/xscale/i80321/iq80321.c projects/pseries/arm/xscale/i8134x/i81342.c projects/pseries/arm/xscale/i8134x/iq81342_7seg.c projects/pseries/arm/xscale/ixp425/avila_ata.c projects/pseries/arm/xscale/ixp425/avila_gpio.c projects/pseries/arm/xscale/ixp425/cambria_gpio.c projects/pseries/arm/xscale/ixp425/if_npe.c projects/pseries/arm/xscale/ixp425/ixp425.c projects/pseries/arm/xscale/pxa/pxa_obio.c projects/pseries/arm/xscale/pxa/pxa_smi.c projects/pseries/arm/xscale/pxa/pxa_space.c projects/pseries/boot/arm/at91/boot2/boot2.c projects/pseries/boot/arm/ixp425/boot2/boot2.c projects/pseries/boot/common/disk.c projects/pseries/boot/common/loader.8 projects/pseries/boot/common/ufsread.c projects/pseries/boot/common/util.c projects/pseries/boot/fdt/dts/db88f6281.dts projects/pseries/boot/fdt/dts/sheevaplug.dts projects/pseries/boot/forth/loader.conf projects/pseries/boot/forth/loader.conf.5 projects/pseries/boot/forth/menu.4th projects/pseries/boot/forth/menu.4th.8 projects/pseries/boot/i386/Makefile.inc projects/pseries/boot/i386/boot2/Makefile projects/pseries/boot/i386/boot2/boot2.c projects/pseries/boot/i386/btx/lib/btxv86.h projects/pseries/boot/i386/common/cons.c projects/pseries/boot/i386/common/drv.c projects/pseries/boot/i386/gptboot/Makefile projects/pseries/boot/i386/gptboot/gptboot.c projects/pseries/boot/i386/gptzfsboot/Makefile projects/pseries/boot/i386/libi386/Makefile projects/pseries/boot/i386/libi386/bioscd.c projects/pseries/boot/i386/libi386/biosdisk.c projects/pseries/boot/i386/libi386/biosmem.c projects/pseries/boot/i386/libi386/biospci.c projects/pseries/boot/i386/libi386/biossmap.c projects/pseries/boot/i386/libi386/libi386.h projects/pseries/boot/i386/libi386/vidconsole.c projects/pseries/boot/i386/loader/Makefile projects/pseries/boot/i386/zfsboot/Makefile projects/pseries/boot/i386/zfsboot/zfsboot.c projects/pseries/boot/ia64/common/exec.c projects/pseries/boot/ofw/Makefile.inc projects/pseries/boot/pc98/boot2/boot2.c projects/pseries/boot/pc98/btx/lib/btxv86.h projects/pseries/boot/pc98/libpc98/bioscd.c projects/pseries/boot/pc98/libpc98/vidconsole.c projects/pseries/boot/pc98/loader/main.c projects/pseries/boot/powerpc/Makefile.inc projects/pseries/boot/powerpc/boot1.chrp/generate-hfs.sh projects/pseries/boot/powerpc/ps3/Makefile projects/pseries/boot/powerpc/ps3/conf.c projects/pseries/boot/powerpc/ps3/devicename.c projects/pseries/boot/powerpc/ps3/lv1call.S projects/pseries/boot/powerpc/ps3/lv1call.h projects/pseries/boot/powerpc/ps3/main.c projects/pseries/boot/powerpc/ps3/version projects/pseries/boot/uboot/Makefile.inc projects/pseries/boot/zfs/zfsimpl.c projects/pseries/cam/ata/ata_da.c projects/pseries/cam/ata/ata_pmp.c projects/pseries/cam/cam_ccb.h projects/pseries/cam/cam_periph.c projects/pseries/cam/cam_queue.c projects/pseries/cam/cam_sim.c projects/pseries/cam/cam_sim.h projects/pseries/cam/cam_xpt.c projects/pseries/cam/cam_xpt.h projects/pseries/cam/scsi/scsi_all.c projects/pseries/cam/scsi/scsi_all.h projects/pseries/cam/scsi/scsi_cd.c projects/pseries/cam/scsi/scsi_ch.c projects/pseries/cam/scsi/scsi_ch.h projects/pseries/cam/scsi/scsi_da.c projects/pseries/cam/scsi/scsi_low.c projects/pseries/cam/scsi/scsi_sa.c projects/pseries/cam/scsi/scsi_ses.c projects/pseries/cam/scsi/scsi_targ_bh.c projects/pseries/cddl/boot/zfs/zfssubr.c projects/pseries/cddl/compat/opensolaris/sys/file.h projects/pseries/cddl/contrib/opensolaris/common/acl/acl_common.c projects/pseries/cddl/contrib/opensolaris/common/acl/acl_common.h projects/pseries/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/pseries/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/pseries/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/pseries/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/pseries/cddl/contrib/opensolaris/uts/sparc/dtrace/fasttrap_isa.c projects/pseries/cddl/dev/cyclic/cyclic.c projects/pseries/cddl/dev/dtrace/dtrace_debug.c projects/pseries/cddl/dev/dtrace/i386/dtrace_asm.S projects/pseries/cddl/dev/fbt/fbt.c projects/pseries/cddl/dev/systrace/systrace.c projects/pseries/compat/freebsd32/freebsd32.h projects/pseries/compat/freebsd32/freebsd32_ioctl.c projects/pseries/compat/freebsd32/freebsd32_misc.c projects/pseries/compat/freebsd32/freebsd32_proto.h projects/pseries/compat/freebsd32/freebsd32_syscall.h projects/pseries/compat/freebsd32/freebsd32_syscalls.c projects/pseries/compat/freebsd32/freebsd32_sysent.c projects/pseries/compat/freebsd32/freebsd32_systrace_args.c projects/pseries/compat/freebsd32/freebsd32_util.h projects/pseries/compat/freebsd32/syscalls.master projects/pseries/compat/ia32/ia32_sysvec.c projects/pseries/compat/linprocfs/linprocfs.c projects/pseries/compat/linux/linux_emul.c projects/pseries/compat/linux/linux_file.c projects/pseries/compat/linux/linux_file.h projects/pseries/compat/linux/linux_fork.c projects/pseries/compat/linux/linux_futex.c projects/pseries/compat/linux/linux_ioctl.c projects/pseries/compat/linux/linux_ipc.c projects/pseries/compat/linux/linux_mib.c projects/pseries/compat/linux/linux_misc.c projects/pseries/compat/linux/linux_signal.c projects/pseries/compat/linux/linux_socket.c projects/pseries/compat/linux/linux_stats.c projects/pseries/compat/linux/linux_uid16.c projects/pseries/compat/svr4/svr4_fcntl.c projects/pseries/compat/svr4/svr4_filio.c projects/pseries/compat/svr4/svr4_ioctl.c projects/pseries/compat/svr4/svr4_ipc.c projects/pseries/compat/svr4/svr4_misc.c projects/pseries/compat/svr4/svr4_proto.h projects/pseries/compat/svr4/svr4_signal.c projects/pseries/compat/svr4/svr4_socket.c projects/pseries/compat/svr4/svr4_stat.c projects/pseries/compat/svr4/svr4_stream.c projects/pseries/compat/svr4/svr4_syscall.h projects/pseries/compat/svr4/svr4_syscallnames.c projects/pseries/compat/svr4/svr4_sysent.c projects/pseries/compat/svr4/syscalls.master projects/pseries/compat/x86bios/x86bios.c projects/pseries/conf/Makefile.mips projects/pseries/conf/NOTES projects/pseries/conf/files projects/pseries/conf/files.amd64 projects/pseries/conf/files.arm projects/pseries/conf/files.i386 projects/pseries/conf/files.mips projects/pseries/conf/files.powerpc projects/pseries/conf/kern.pre.mk projects/pseries/conf/makeLINT.sed projects/pseries/conf/newvers.sh projects/pseries/conf/options projects/pseries/conf/options.amd64 projects/pseries/conf/options.mips projects/pseries/contrib/pf/net/if_pflog.c projects/pseries/contrib/pf/net/if_pfsync.c projects/pseries/contrib/pf/net/pf.c projects/pseries/contrib/pf/net/pf_ioctl.c projects/pseries/contrib/pf/net/pf_table.c projects/pseries/contrib/pf/net/pfvar.h projects/pseries/crypto/aesni/aesni_wrap.c projects/pseries/ddb/db_break.c projects/pseries/dev/aac/aac.c projects/pseries/dev/aac/aac_cam.c projects/pseries/dev/aac/aac_linux.c projects/pseries/dev/acpi_support/acpi_wmi.c projects/pseries/dev/acpica/Osd/OsdInterrupt.c projects/pseries/dev/acpica/Osd/OsdMemory.c projects/pseries/dev/acpica/Osd/OsdSchedule.c projects/pseries/dev/acpica/Osd/OsdSynch.c projects/pseries/dev/acpica/acpi.c projects/pseries/dev/acpica/acpi_cmbat.c projects/pseries/dev/acpica/acpi_ec.c projects/pseries/dev/acpica/acpi_hpet.c projects/pseries/dev/acpica/acpi_hpet.h projects/pseries/dev/acpica/acpi_pci_link.c projects/pseries/dev/acpica/acpi_pcib_acpi.c projects/pseries/dev/acpica/acpi_perf.c projects/pseries/dev/acpica/acpi_powerres.c projects/pseries/dev/acpica/acpi_smbat.c projects/pseries/dev/acpica/acpi_thermal.c projects/pseries/dev/acpica/acpi_video.c projects/pseries/dev/acpica/acpivar.h projects/pseries/dev/adb/adb_kbd.c projects/pseries/dev/ae/if_ae.c projects/pseries/dev/age/if_age.c projects/pseries/dev/ahci/ahci.c projects/pseries/dev/ahci/ahci.h projects/pseries/dev/aic7xxx/aicasm/aicasm.c projects/pseries/dev/aic7xxx/aicasm/aicasm.h projects/pseries/dev/aic7xxx/aicasm/aicasm_gram.y projects/pseries/dev/aic7xxx/aicasm/aicasm_macro_gram.y projects/pseries/dev/aic7xxx/aicasm/aicasm_macro_scan.l projects/pseries/dev/aic7xxx/aicasm/aicasm_scan.l projects/pseries/dev/aic7xxx/aicasm/aicasm_symbol.c projects/pseries/dev/aic7xxx/aicasm/aicasm_symbol.h projects/pseries/dev/alc/if_alc.c projects/pseries/dev/ale/if_ale.c projects/pseries/dev/amr/amr.c projects/pseries/dev/amr/amr_cam.c projects/pseries/dev/amr/amr_linux.c projects/pseries/dev/an/if_an.c projects/pseries/dev/arcmsr/arcmsr.c projects/pseries/dev/asr/asr.c projects/pseries/dev/ata/ata-all.c projects/pseries/dev/ata/ata-disk.c projects/pseries/dev/ata/ata-isa.c projects/pseries/dev/ata/ata-pci.c projects/pseries/dev/ata/ata-pci.h projects/pseries/dev/ata/chipsets/ata-acard.c projects/pseries/dev/ata/chipsets/ata-acerlabs.c projects/pseries/dev/ata/chipsets/ata-intel.c projects/pseries/dev/ata/chipsets/ata-nvidia.c projects/pseries/dev/ata/chipsets/ata-promise.c projects/pseries/dev/ata/chipsets/ata-siliconimage.c projects/pseries/dev/ath/ah_osdep.c projects/pseries/dev/ath/ath_dfs/null/dfs_null.c projects/pseries/dev/ath/ath_hal/ah.c projects/pseries/dev/ath/ath_hal/ah.h projects/pseries/dev/ath/ath_hal/ah_desc.h projects/pseries/dev/ath/ath_hal/ah_devid.h projects/pseries/dev/ath/ath_hal/ah_eeprom.h projects/pseries/dev/ath/ath_hal/ah_eeprom_9287.c projects/pseries/dev/ath/ath_hal/ah_eeprom_v14.c projects/pseries/dev/ath/ath_hal/ah_eeprom_v14.h projects/pseries/dev/ath/ath_hal/ah_eeprom_v4k.c projects/pseries/dev/ath/ath_hal/ah_internal.h projects/pseries/dev/ath/ath_hal/ah_regdomain.c projects/pseries/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h projects/pseries/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h projects/pseries/dev/ath/ath_hal/ar5210/ar5210.h projects/pseries/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pseries/dev/ath/ath_hal/ar5210/ar5210_beacon.c projects/pseries/dev/ath/ath_hal/ar5211/ar5211.h projects/pseries/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pseries/dev/ath/ath_hal/ar5211/ar5211_beacon.c projects/pseries/dev/ath/ath_hal/ar5212/ar5112.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212.h projects/pseries/dev/ath/ath_hal/ar5212/ar5212_ani.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212_beacon.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/pseries/dev/ath/ath_hal/ar5212/ar5212reg.h projects/pseries/dev/ath/ath_hal/ar5312/ar5312_attach.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416.h projects/pseries/dev/ath/ath_hal/ar5416/ar5416.ini projects/pseries/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_beacon.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_recv.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416desc.h projects/pseries/dev/ath/ath_hal/ar5416/ar5416phy.h projects/pseries/dev/ath/ath_hal/ar5416/ar5416reg.h projects/pseries/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/pseries/dev/ath/ath_hal/ar9001/ar9160_attach.c projects/pseries/dev/ath/ath_hal/ar9002/ar9280.c projects/pseries/dev/ath/ath_hal/ar9002/ar9280.h projects/pseries/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/pseries/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/pseries/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/pseries/dev/ath/ath_rate/amrr/amrr.c projects/pseries/dev/ath/ath_rate/onoe/onoe.c projects/pseries/dev/ath/ath_rate/sample/sample.c projects/pseries/dev/ath/ath_rate/sample/sample.h projects/pseries/dev/ath/if_ath.c projects/pseries/dev/ath/if_ath_ahb.c projects/pseries/dev/ath/if_ath_debug.c projects/pseries/dev/ath/if_ath_debug.h projects/pseries/dev/ath/if_ath_keycache.c projects/pseries/dev/ath/if_ath_keycache.h projects/pseries/dev/ath/if_ath_misc.h projects/pseries/dev/ath/if_ath_pci.c projects/pseries/dev/ath/if_ath_sysctl.c projects/pseries/dev/ath/if_ath_tx.c projects/pseries/dev/ath/if_ath_tx.h projects/pseries/dev/ath/if_ath_tx_ht.c projects/pseries/dev/ath/if_ath_tx_ht.h projects/pseries/dev/ath/if_athdfs.h projects/pseries/dev/ath/if_athioctl.h projects/pseries/dev/ath/if_athrate.h projects/pseries/dev/ath/if_athvar.h projects/pseries/dev/atkbdc/atkbd.c projects/pseries/dev/atkbdc/psm.c projects/pseries/dev/bce/if_bce.c projects/pseries/dev/bce/if_bcereg.h projects/pseries/dev/bge/if_bge.c projects/pseries/dev/bge/if_bgereg.h projects/pseries/dev/bktr/bktr_core.c projects/pseries/dev/bktr/bktr_os.c projects/pseries/dev/bktr/bktr_reg.h projects/pseries/dev/bm/if_bm.c projects/pseries/dev/bm/if_bmreg.h projects/pseries/dev/bm/if_bmvar.h projects/pseries/dev/bwi/bwiphy.c projects/pseries/dev/bwi/if_bwi.c projects/pseries/dev/bwn/if_bwn.c projects/pseries/dev/bxe/bxe_link.c projects/pseries/dev/bxe/if_bxe.c projects/pseries/dev/cardbus/cardbus.c projects/pseries/dev/cardbus/cardbus_cis.c projects/pseries/dev/cas/if_cas.c projects/pseries/dev/cas/if_casvar.h projects/pseries/dev/cfe/cfe_console.c projects/pseries/dev/ciss/ciss.c projects/pseries/dev/coretemp/coretemp.c projects/pseries/dev/cs/if_cs.c projects/pseries/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c projects/pseries/dev/cxgbe/t4_main.c projects/pseries/dev/dc/dcphy.c projects/pseries/dev/dc/if_dc.c projects/pseries/dev/dc/if_dcreg.h projects/pseries/dev/dcons/dcons_os.c projects/pseries/dev/e1000/e1000_82575.c projects/pseries/dev/e1000/if_em.c projects/pseries/dev/e1000/if_igb.c projects/pseries/dev/e1000/if_lem.c projects/pseries/dev/esp/esp_sbus.c projects/pseries/dev/esp/ncr53c9x.c projects/pseries/dev/esp/ncr53c9xreg.h projects/pseries/dev/esp/ncr53c9xvar.h projects/pseries/dev/et/if_et.c projects/pseries/dev/fb/machfb.c projects/pseries/dev/fb/vesa.c projects/pseries/dev/fdc/fdc.c projects/pseries/dev/fdt/fdtbus.c projects/pseries/dev/firewire/fwmem.c projects/pseries/dev/firewire/if_fwe.c projects/pseries/dev/firewire/if_fwip.c projects/pseries/dev/firewire/sbp.c projects/pseries/dev/firewire/sbp_targ.c projects/pseries/dev/gem/if_gem.c projects/pseries/dev/gem/if_gem_pci.c projects/pseries/dev/gem/if_gemreg.h projects/pseries/dev/gpio/gpiobus.c projects/pseries/dev/gpio/gpioc.c projects/pseries/dev/hifn/hifn7751.c projects/pseries/dev/hptiop/hptiop.c projects/pseries/dev/hwpmc/hwpmc_logging.c projects/pseries/dev/hwpmc/hwpmc_mips24k.c projects/pseries/dev/hwpmc/hwpmc_mips24k.h projects/pseries/dev/hwpmc/hwpmc_mod.c projects/pseries/dev/ichwd/ichwd.c projects/pseries/dev/iicbus/ad7417.c projects/pseries/dev/iicbus/iic.c projects/pseries/dev/iicbus/max6690.c projects/pseries/dev/iir/iir.c projects/pseries/dev/ipmi/ipmi.c projects/pseries/dev/ipmi/ipmi_linux.c projects/pseries/dev/iscsi/initiator/isc_soc.c projects/pseries/dev/iscsi/initiator/isc_subr.c projects/pseries/dev/iscsi/initiator/iscsi.c projects/pseries/dev/iscsi/initiator/iscsi_subr.c projects/pseries/dev/iscsi/initiator/iscsivar.h projects/pseries/dev/isp/DriverManual.txt projects/pseries/dev/isp/isp.c projects/pseries/dev/isp/isp_freebsd.c projects/pseries/dev/isp/isp_freebsd.h projects/pseries/dev/isp/isp_pci.c projects/pseries/dev/isp/ispvar.h projects/pseries/dev/iwn/if_iwn.c projects/pseries/dev/ixgbe/ixgbe.c projects/pseries/dev/kbd/kbd.c projects/pseries/dev/kbdmux/kbdmux.c projects/pseries/dev/ksyms/ksyms.c projects/pseries/dev/le/lebuffer_sbus.c projects/pseries/dev/lge/if_lge.c projects/pseries/dev/lge/if_lgereg.h projects/pseries/dev/lmc/if_lmc.c projects/pseries/dev/malo/if_malo.c projects/pseries/dev/malo/if_malo_pci.c projects/pseries/dev/md/md.c projects/pseries/dev/mfi/mfi.c projects/pseries/dev/mfi/mfi_cam.c projects/pseries/dev/mfi/mfi_debug.c projects/pseries/dev/mfi/mfi_disk.c projects/pseries/dev/mfi/mfi_linux.c projects/pseries/dev/mfi/mfi_pci.c projects/pseries/dev/mfi/mfireg.h projects/pseries/dev/mfi/mfivar.h projects/pseries/dev/mii/brgphy.c projects/pseries/dev/mii/mii.c projects/pseries/dev/mii/mii_physubr.c projects/pseries/dev/mii/miidevs projects/pseries/dev/mii/miivar.h projects/pseries/dev/mly/mly.c projects/pseries/dev/mmc/mmc.c projects/pseries/dev/mmc/mmcsd.c projects/pseries/dev/mps/mps_sas.c projects/pseries/dev/mpt/mpilib/mpi_ioc.h projects/pseries/dev/mpt/mpt.c projects/pseries/dev/mpt/mpt.h projects/pseries/dev/mpt/mpt_cam.c projects/pseries/dev/mpt/mpt_debug.c projects/pseries/dev/mpt/mpt_pci.c projects/pseries/dev/mpt/mpt_raid.c projects/pseries/dev/mpt/mpt_raid.h projects/pseries/dev/mpt/mpt_user.c projects/pseries/dev/msk/if_msk.c projects/pseries/dev/msk/if_mskreg.h projects/pseries/dev/mvs/mvs.c projects/pseries/dev/mvs/mvs_pci.c projects/pseries/dev/mvs/mvs_soc.c projects/pseries/dev/mwl/if_mwl.c projects/pseries/dev/mwl/mwlhal.c projects/pseries/dev/mxge/eth_z8e.h projects/pseries/dev/mxge/ethp_z8e.h projects/pseries/dev/mxge/if_mxge.c projects/pseries/dev/mxge/rss_eth_z8e.h projects/pseries/dev/mxge/rss_ethp_z8e.h projects/pseries/dev/nfe/if_nfe.c projects/pseries/dev/nge/if_nge.c projects/pseries/dev/nge/if_ngereg.h projects/pseries/dev/nmdm/nmdm.c projects/pseries/dev/nve/if_nve.c projects/pseries/dev/ofw/ofw_console.c projects/pseries/dev/ofw/ofw_fdt.c projects/pseries/dev/ofw/openfirm.c projects/pseries/dev/pccard/pccard.c projects/pseries/dev/pccbb/pccbb.c projects/pseries/dev/pccbb/pccbb_isa.c projects/pseries/dev/pci/pci.c projects/pseries/dev/pci/pci_pci.c projects/pseries/dev/pci/pci_subr.c projects/pseries/dev/pci/pcib_private.h projects/pseries/dev/pci/pcivar.h projects/pseries/dev/ppbus/ppb_base.c projects/pseries/dev/ppbus/ppb_msq.c projects/pseries/dev/ppbus/ppbconf.c projects/pseries/dev/ppc/ppc.c projects/pseries/dev/puc/puc.c projects/pseries/dev/puc/pucdata.c projects/pseries/dev/quicc/quicc_core.c projects/pseries/dev/re/if_re.c projects/pseries/dev/rndtest/rndtest.c projects/pseries/dev/safe/safe.c projects/pseries/dev/scc/scc_core.c projects/pseries/dev/sdhci/sdhci.c projects/pseries/dev/sge/if_sge.c projects/pseries/dev/siba/siba_bwn.c projects/pseries/dev/siba/siba_core.c projects/pseries/dev/siis/siis.c projects/pseries/dev/sio/sio.c projects/pseries/dev/sio/sio_pci.c projects/pseries/dev/sis/if_sis.c projects/pseries/dev/sis/if_sisreg.h projects/pseries/dev/smc/if_smc.c projects/pseries/dev/snp/snp.c projects/pseries/dev/sound/midi/midi.c projects/pseries/dev/sound/pci/envy24.c projects/pseries/dev/sound/pci/envy24ht.c projects/pseries/dev/sound/pci/hda/hdac.c projects/pseries/dev/sound/pci/maestro.c projects/pseries/dev/sound/pci/spicds.c projects/pseries/dev/sound/pcm/ac97.c projects/pseries/dev/sound/pcm/dsp.c projects/pseries/dev/sound/pcm/feeder.c projects/pseries/dev/sound/pcm/mixer.c projects/pseries/dev/sound/usb/uaudio.c projects/pseries/dev/ste/if_ste.c projects/pseries/dev/ste/if_stereg.h projects/pseries/dev/stge/if_stge.c projects/pseries/dev/stge/if_stgereg.h projects/pseries/dev/streams/streams.c projects/pseries/dev/sym/sym_hipd.c projects/pseries/dev/syscons/scmouse.c projects/pseries/dev/syscons/scterm-teken.c projects/pseries/dev/syscons/syscons.c projects/pseries/dev/syscons/syscons.h projects/pseries/dev/tdfx/tdfx_linux.c projects/pseries/dev/tdfx/tdfx_pci.c projects/pseries/dev/ti/if_ti.c projects/pseries/dev/ti/if_tireg.h projects/pseries/dev/tl/if_tl.c projects/pseries/dev/tl/if_tlreg.h projects/pseries/dev/twa/tw_osl_freebsd.c projects/pseries/dev/twe/twe_freebsd.c projects/pseries/dev/uart/uart_bus_pci.c projects/pseries/dev/uart/uart_core.c projects/pseries/dev/uart/uart_dev_ns8250.c projects/pseries/dev/uart/uart_kbd_sun.c projects/pseries/dev/ubsec/ubsec.c projects/pseries/dev/usb/controller/at91dci.c projects/pseries/dev/usb/controller/atmegadci.c projects/pseries/dev/usb/controller/avr32dci.c projects/pseries/dev/usb/controller/ehci.c projects/pseries/dev/usb/controller/musb_otg.c projects/pseries/dev/usb/controller/ohci.c projects/pseries/dev/usb/controller/uhci.c projects/pseries/dev/usb/controller/usb_controller.c projects/pseries/dev/usb/controller/uss820dci.c projects/pseries/dev/usb/controller/xhci.c projects/pseries/dev/usb/controller/xhcireg.h projects/pseries/dev/usb/input/atp.c projects/pseries/dev/usb/input/uep.c projects/pseries/dev/usb/input/uhid.c projects/pseries/dev/usb/input/ukbd.c projects/pseries/dev/usb/input/ums.c projects/pseries/dev/usb/misc/udbp.c projects/pseries/dev/usb/net/if_aue.c projects/pseries/dev/usb/net/if_axe.c projects/pseries/dev/usb/net/if_axereg.h projects/pseries/dev/usb/net/if_cdce.c projects/pseries/dev/usb/net/if_cue.c projects/pseries/dev/usb/net/if_ipheth.c projects/pseries/dev/usb/net/if_kue.c projects/pseries/dev/usb/net/if_mos.c projects/pseries/dev/usb/net/if_rue.c projects/pseries/dev/usb/net/if_udav.c projects/pseries/dev/usb/net/uhso.c projects/pseries/dev/usb/net/usb_ethernet.c projects/pseries/dev/usb/net/usb_ethernet.h projects/pseries/dev/usb/quirk/usb_quirk.c projects/pseries/dev/usb/serial/u3g.c projects/pseries/dev/usb/serial/ubsa.c projects/pseries/dev/usb/serial/ubser.c projects/pseries/dev/usb/serial/uchcom.c projects/pseries/dev/usb/serial/ufoma.c projects/pseries/dev/usb/serial/uftdi.c projects/pseries/dev/usb/serial/ulpt.c projects/pseries/dev/usb/serial/umcs.c projects/pseries/dev/usb/serial/umodem.c projects/pseries/dev/usb/serial/umoscom.c projects/pseries/dev/usb/serial/uplcom.c projects/pseries/dev/usb/serial/usb_serial.c projects/pseries/dev/usb/serial/uslcom.c projects/pseries/dev/usb/serial/uvisor.c projects/pseries/dev/usb/serial/uvscom.c projects/pseries/dev/usb/storage/umass.c projects/pseries/dev/usb/storage/urio.c projects/pseries/dev/usb/storage/ustorage_fs.c projects/pseries/dev/usb/template/usb_template.c projects/pseries/dev/usb/usb.h projects/pseries/dev/usb/usb_busdma.c projects/pseries/dev/usb/usb_compat_linux.c projects/pseries/dev/usb/usb_dev.c projects/pseries/dev/usb/usb_device.c projects/pseries/dev/usb/usb_device.h projects/pseries/dev/usb/usb_freebsd.h projects/pseries/dev/usb/usb_generic.c projects/pseries/dev/usb/usb_hub.c projects/pseries/dev/usb/usb_ioctl.h projects/pseries/dev/usb/usb_msctest.c projects/pseries/dev/usb/usb_msctest.h projects/pseries/dev/usb/usb_process.c projects/pseries/dev/usb/usb_request.c projects/pseries/dev/usb/usb_transfer.c projects/pseries/dev/usb/usb_util.c projects/pseries/dev/usb/usb_util.h projects/pseries/dev/usb/usbdevs projects/pseries/dev/usb/usbdi.h projects/pseries/dev/usb/wlan/if_rum.c projects/pseries/dev/usb/wlan/if_run.c projects/pseries/dev/usb/wlan/if_uath.c projects/pseries/dev/usb/wlan/if_upgt.c projects/pseries/dev/usb/wlan/if_ural.c projects/pseries/dev/usb/wlan/if_urtw.c projects/pseries/dev/usb/wlan/if_zyd.c projects/pseries/dev/vge/if_vge.c projects/pseries/dev/vge/if_vgereg.h projects/pseries/dev/vkbd/vkbd.c projects/pseries/dev/vr/if_vr.c projects/pseries/dev/vte/if_vte.c projects/pseries/dev/vxge/include/vxgehal-config.h projects/pseries/dev/vxge/include/vxgehal-ll.h projects/pseries/dev/vxge/vxgehal/vxgehal-ring.c projects/pseries/dev/wb/if_wb.c projects/pseries/dev/wb/if_wbreg.h projects/pseries/dev/wi/if_wi.c projects/pseries/dev/xe/if_xe.c projects/pseries/dev/xen/balloon/balloon.c projects/pseries/dev/xen/blkback/blkback.c projects/pseries/dev/xen/blkfront/blkfront.c projects/pseries/dev/xen/blkfront/block.h projects/pseries/dev/xen/console/console.c projects/pseries/dev/xen/control/control.c projects/pseries/dev/xen/netfront/netfront.c projects/pseries/dev/xl/if_xl.c projects/pseries/dev/xl/if_xlreg.h projects/pseries/fs/cd9660/iso.h projects/pseries/fs/coda/coda_psdev.c projects/pseries/fs/devfs/devfs_devs.c projects/pseries/fs/devfs/devfs_rule.c projects/pseries/fs/devfs/devfs_vnops.c projects/pseries/fs/ext2fs/ext2_alloc.c projects/pseries/fs/fdescfs/fdesc_vnops.c projects/pseries/fs/fifofs/fifo_vnops.c projects/pseries/fs/msdosfs/msdosfs_conv.c projects/pseries/fs/msdosfs/msdosfsmount.h projects/pseries/fs/nfs/nfs_commonacl.c projects/pseries/fs/nfs/nfs_commonkrpc.c projects/pseries/fs/nfs/nfs_commonport.c projects/pseries/fs/nfs/nfs_commonsubs.c projects/pseries/fs/nfs/nfs_var.h projects/pseries/fs/nfs/nfsclstate.h projects/pseries/fs/nfs/nfsdport.h projects/pseries/fs/nfs/nfsport.h projects/pseries/fs/nfsclient/nfs_clnode.c projects/pseries/fs/nfsclient/nfs_clport.c projects/pseries/fs/nfsclient/nfs_clrpcops.c projects/pseries/fs/nfsclient/nfs_clstate.c projects/pseries/fs/nfsclient/nfs_clsubs.c projects/pseries/fs/nfsclient/nfs_clvfsops.c projects/pseries/fs/nfsclient/nfs_clvnops.c projects/pseries/fs/nfsclient/nfsnode.h projects/pseries/fs/nfsserver/nfs_nfsdcache.c projects/pseries/fs/nfsserver/nfs_nfsdkrpc.c projects/pseries/fs/nfsserver/nfs_nfsdport.c projects/pseries/fs/nfsserver/nfs_nfsdserv.c projects/pseries/fs/nfsserver/nfs_nfsdsocket.c projects/pseries/fs/nfsserver/nfs_nfsdstate.c projects/pseries/fs/nfsserver/nfs_nfsdsubs.c projects/pseries/fs/ntfs/ntfs.h projects/pseries/fs/ntfs/ntfs_subr.c projects/pseries/fs/nullfs/null_subr.c projects/pseries/fs/nullfs/null_vfsops.c projects/pseries/fs/nullfs/null_vnops.c projects/pseries/fs/nwfs/nwfs_mount.h projects/pseries/fs/portalfs/portal_vfsops.c projects/pseries/fs/portalfs/portal_vnops.c projects/pseries/fs/procfs/procfs.c projects/pseries/fs/procfs/procfs_ctl.c projects/pseries/fs/procfs/procfs_ioctl.c projects/pseries/fs/procfs/procfs_status.c projects/pseries/fs/pseudofs/pseudofs_vncache.c projects/pseries/fs/pseudofs/pseudofs_vnops.c projects/pseries/fs/smbfs/smbfs.h projects/pseries/fs/smbfs/smbfs_node.c projects/pseries/fs/smbfs/smbfs_smb.c projects/pseries/fs/smbfs/smbfs_subr.c projects/pseries/fs/tmpfs/tmpfs_vfsops.c projects/pseries/fs/tmpfs/tmpfs_vnops.c projects/pseries/fs/udf/udf_vnops.c projects/pseries/fs/unionfs/union_vnops.c projects/pseries/geom/cache/g_cache.c projects/pseries/geom/concat/g_concat.c projects/pseries/geom/concat/g_concat.h projects/pseries/geom/eli/g_eli.c projects/pseries/geom/eli/g_eli.h projects/pseries/geom/gate/g_gate.c projects/pseries/geom/geom.h projects/pseries/geom/geom_bsd.c projects/pseries/geom/geom_ccd.c projects/pseries/geom/geom_disk.c projects/pseries/geom/geom_event.c projects/pseries/geom/geom_pc98.c projects/pseries/geom/geom_sunlabel.c projects/pseries/geom/geom_vfs.c projects/pseries/geom/journal/g_journal.c projects/pseries/geom/label/g_label_gpt.c projects/pseries/geom/mirror/g_mirror.c projects/pseries/geom/mountver/g_mountver.c projects/pseries/geom/multipath/g_multipath.c projects/pseries/geom/multipath/g_multipath.h projects/pseries/geom/nop/g_nop.c projects/pseries/geom/part/g_part.c projects/pseries/geom/part/g_part_gpt.c projects/pseries/geom/part/g_part_vtoc8.c projects/pseries/geom/raid/g_raid.c projects/pseries/geom/raid/md_intel.c projects/pseries/geom/raid/md_nvidia.c projects/pseries/geom/raid/md_promise.c projects/pseries/geom/raid/tr_raid1.c projects/pseries/geom/raid/tr_raid1e.c projects/pseries/geom/raid3/g_raid3.c projects/pseries/geom/sched/g_sched.c projects/pseries/geom/sched/gs_rr.c projects/pseries/geom/shsec/g_shsec.c projects/pseries/geom/stripe/g_stripe.c projects/pseries/geom/uzip/g_uzip.c projects/pseries/geom/vinum/geom_vinum.c projects/pseries/geom/vinum/geom_vinum_drive.c projects/pseries/geom/vinum/geom_vinum_list.c projects/pseries/geom/vinum/geom_vinum_subr.c projects/pseries/geom/virstor/g_virstor.c projects/pseries/geom/zero/g_zero.c projects/pseries/gnu/fs/xfs/FreeBSD/support/debug.c projects/pseries/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/pseries/gnu/fs/xfs/xfs_dfrag.c projects/pseries/i386/Makefile projects/pseries/i386/conf/DEFAULTS projects/pseries/i386/conf/GENERIC projects/pseries/i386/conf/XBOX projects/pseries/i386/conf/XEN projects/pseries/i386/i386/genassym.c projects/pseries/i386/i386/intr_machdep.c projects/pseries/i386/i386/machdep.c projects/pseries/i386/i386/mp_machdep.c projects/pseries/i386/i386/pmap.c projects/pseries/i386/i386/support.s projects/pseries/i386/i386/sys_machdep.c projects/pseries/i386/i386/trap.c projects/pseries/i386/ibcs2/ibcs2_fcntl.c projects/pseries/i386/ibcs2/ibcs2_ioctl.c projects/pseries/i386/ibcs2/ibcs2_ipc.c projects/pseries/i386/ibcs2/ibcs2_isc_sysent.c projects/pseries/i386/ibcs2/ibcs2_misc.c projects/pseries/i386/ibcs2/ibcs2_other.c projects/pseries/i386/ibcs2/ibcs2_proto.h projects/pseries/i386/ibcs2/ibcs2_signal.c projects/pseries/i386/ibcs2/ibcs2_socksys.c projects/pseries/i386/ibcs2/ibcs2_syscall.h projects/pseries/i386/ibcs2/ibcs2_sysent.c projects/pseries/i386/ibcs2/ibcs2_xenix.c projects/pseries/i386/ibcs2/ibcs2_xenix.h projects/pseries/i386/ibcs2/ibcs2_xenix_sysent.c projects/pseries/i386/ibcs2/imgact_coff.c projects/pseries/i386/ibcs2/syscalls.master projects/pseries/i386/include/ieeefp.h projects/pseries/i386/include/param.h projects/pseries/i386/include/proc.h projects/pseries/i386/include/segments.h projects/pseries/i386/include/signal.h projects/pseries/i386/include/trap.h projects/pseries/i386/include/ucontext.h projects/pseries/i386/linux/linux_machdep.c projects/pseries/i386/linux/linux_proto.h projects/pseries/i386/linux/linux_syscall.h projects/pseries/i386/linux/linux_syscalls.c projects/pseries/i386/linux/linux_sysent.c projects/pseries/i386/linux/linux_systrace_args.c projects/pseries/i386/linux/syscalls.master projects/pseries/i386/xen/mptable.c projects/pseries/i386/xen/pmap.c projects/pseries/ia64/conf/DEFAULTS projects/pseries/ia64/conf/GENERIC projects/pseries/ia64/ia32/ia32_signal.c projects/pseries/ia64/ia32/ia32_trap.c projects/pseries/ia64/ia64/busdma_machdep.c projects/pseries/ia64/ia64/clock.c projects/pseries/ia64/ia64/dump_machdep.c projects/pseries/ia64/ia64/efi.c projects/pseries/ia64/ia64/interrupt.c projects/pseries/ia64/ia64/locore.S projects/pseries/ia64/ia64/machdep.c projects/pseries/ia64/ia64/mca.c projects/pseries/ia64/ia64/nexus.c projects/pseries/ia64/ia64/pmap.c projects/pseries/ia64/ia64/sapic.c projects/pseries/ia64/ia64/sscdisk.c projects/pseries/ia64/ia64/trap.c projects/pseries/ia64/ia64/unwind.c projects/pseries/ia64/include/efi.h projects/pseries/ia64/include/ieeefp.h projects/pseries/ia64/include/param.h projects/pseries/ia64/include/pmap.h projects/pseries/ia64/include/proc.h projects/pseries/ia64/include/sf_buf.h projects/pseries/kern/Make.tags.inc projects/pseries/kern/capabilities.conf projects/pseries/kern/imgact_elf.c projects/pseries/kern/init_main.c projects/pseries/kern/init_sysent.c projects/pseries/kern/kern_acct.c projects/pseries/kern/kern_clock.c projects/pseries/kern/kern_conf.c projects/pseries/kern/kern_context.c projects/pseries/kern/kern_cpu.c projects/pseries/kern/kern_cpuset.c projects/pseries/kern/kern_ctf.c projects/pseries/kern/kern_descrip.c projects/pseries/kern/kern_dtrace.c projects/pseries/kern/kern_environment.c projects/pseries/kern/kern_et.c projects/pseries/kern/kern_event.c projects/pseries/kern/kern_exec.c projects/pseries/kern/kern_exit.c projects/pseries/kern/kern_fail.c projects/pseries/kern/kern_fork.c projects/pseries/kern/kern_intr.c projects/pseries/kern/kern_jail.c projects/pseries/kern/kern_kthread.c projects/pseries/kern/kern_ktr.c projects/pseries/kern/kern_ktrace.c projects/pseries/kern/kern_linker.c projects/pseries/kern/kern_lock.c projects/pseries/kern/kern_lockf.c projects/pseries/kern/kern_loginclass.c projects/pseries/kern/kern_malloc.c projects/pseries/kern/kern_mib.c projects/pseries/kern/kern_module.c projects/pseries/kern/kern_mutex.c projects/pseries/kern/kern_ntptime.c projects/pseries/kern/kern_poll.c projects/pseries/kern/kern_proc.c projects/pseries/kern/kern_prot.c projects/pseries/kern/kern_racct.c projects/pseries/kern/kern_rctl.c projects/pseries/kern/kern_resource.c projects/pseries/kern/kern_rmlock.c projects/pseries/kern/kern_rwlock.c projects/pseries/kern/kern_shutdown.c projects/pseries/kern/kern_sig.c projects/pseries/kern/kern_sx.c projects/pseries/kern/kern_synch.c projects/pseries/kern/kern_sysctl.c projects/pseries/kern/kern_tc.c projects/pseries/kern/kern_thr.c projects/pseries/kern/kern_thread.c projects/pseries/kern/kern_time.c projects/pseries/kern/kern_timeout.c projects/pseries/kern/kern_umtx.c projects/pseries/kern/kern_uuid.c projects/pseries/kern/makesyscalls.sh projects/pseries/kern/p1003_1b.c projects/pseries/kern/posix4_mib.c projects/pseries/kern/sched_4bsd.c projects/pseries/kern/sched_ule.c projects/pseries/kern/subr_acl_nfs4.c projects/pseries/kern/subr_bus.c projects/pseries/kern/subr_devstat.c projects/pseries/kern/subr_firmware.c projects/pseries/kern/subr_kdb.c projects/pseries/kern/subr_kobj.c projects/pseries/kern/subr_lock.c projects/pseries/kern/subr_mchain.c projects/pseries/kern/subr_pcpu.c projects/pseries/kern/subr_prf.c projects/pseries/kern/subr_prof.c projects/pseries/kern/subr_rman.c projects/pseries/kern/subr_rtc.c projects/pseries/kern/subr_sbuf.c projects/pseries/kern/subr_sleepqueue.c projects/pseries/kern/subr_smp.c projects/pseries/kern/subr_stack.c projects/pseries/kern/subr_taskqueue.c projects/pseries/kern/subr_trap.c projects/pseries/kern/subr_turnstile.c projects/pseries/kern/subr_uio.c projects/pseries/kern/subr_witness.c projects/pseries/kern/sys_capability.c projects/pseries/kern/sys_generic.c projects/pseries/kern/sys_pipe.c projects/pseries/kern/sys_process.c projects/pseries/kern/sys_socket.c projects/pseries/kern/syscalls.c projects/pseries/kern/syscalls.master projects/pseries/kern/systrace_args.c projects/pseries/kern/sysv_msg.c projects/pseries/kern/sysv_sem.c projects/pseries/kern/sysv_shm.c projects/pseries/kern/tty.c projects/pseries/kern/tty_pts.c projects/pseries/kern/uipc_mqueue.c projects/pseries/kern/uipc_sem.c projects/pseries/kern/uipc_shm.c projects/pseries/kern/uipc_sockbuf.c projects/pseries/kern/uipc_socket.c projects/pseries/kern/uipc_syscalls.c projects/pseries/kern/uipc_usrreq.c projects/pseries/kern/vfs_acl.c projects/pseries/kern/vfs_aio.c projects/pseries/kern/vfs_bio.c projects/pseries/kern/vfs_cache.c projects/pseries/kern/vfs_default.c projects/pseries/kern/vfs_extattr.c projects/pseries/kern/vfs_init.c projects/pseries/kern/vfs_lookup.c projects/pseries/kern/vfs_mount.c projects/pseries/kern/vfs_mountroot.c projects/pseries/kern/vfs_subr.c projects/pseries/kern/vfs_syscalls.c projects/pseries/kern/vfs_vnops.c projects/pseries/kern/vnode_if.src projects/pseries/kgssapi/gss_impl.c projects/pseries/kgssapi/krb5/krb5_mech.c projects/pseries/libkern/iconv.c projects/pseries/mips/atheros/if_arge.c projects/pseries/mips/cavium/if_octm.c projects/pseries/mips/cavium/octe/ethernet-common.c projects/pseries/mips/cavium/octe/ethernet.c projects/pseries/mips/cavium/octeon_ebt3000_cf.c projects/pseries/mips/cavium/octeon_mp.c projects/pseries/mips/cavium/octeon_pcmap_regs.h projects/pseries/mips/cavium/usb/octusb.c projects/pseries/mips/conf/DEFAULTS projects/pseries/mips/conf/OCTEON1 projects/pseries/mips/conf/RT305X projects/pseries/mips/conf/RT305X.hints projects/pseries/mips/idt/if_kr.c projects/pseries/mips/include/asm.h projects/pseries/mips/include/bus.h projects/pseries/mips/include/cpufunc.h projects/pseries/mips/include/cpuregs.h projects/pseries/mips/include/ieeefp.h projects/pseries/mips/include/intr_machdep.h projects/pseries/mips/include/md_var.h projects/pseries/mips/include/param.h projects/pseries/mips/include/proc.h projects/pseries/mips/malta/gt_pci.c projects/pseries/mips/mips/busdma_machdep.c projects/pseries/mips/mips/cache.c projects/pseries/mips/mips/cache_mipsNN.c projects/pseries/mips/mips/cpu.c projects/pseries/mips/mips/dump_machdep.c projects/pseries/mips/mips/elf64_machdep.c projects/pseries/mips/mips/elf_machdep.c projects/pseries/mips/mips/elf_trampoline.c projects/pseries/mips/mips/exception.S projects/pseries/mips/mips/locore.S projects/pseries/mips/mips/machdep.c projects/pseries/mips/mips/mem.c projects/pseries/mips/mips/pm_machdep.c projects/pseries/mips/mips/pmap.c projects/pseries/mips/mips/trap.c projects/pseries/modules/Makefile projects/pseries/modules/ath/Makefile projects/pseries/modules/ath_ahb/Makefile projects/pseries/modules/ath_pci/Makefile projects/pseries/modules/dcons/Makefile projects/pseries/modules/esp/Makefile projects/pseries/modules/fxp/Makefile projects/pseries/modules/ipfw/Makefile projects/pseries/modules/libiconv/Makefile projects/pseries/modules/libmchain/Makefile projects/pseries/modules/mii/Makefile projects/pseries/modules/netgraph/ipfw/Makefile projects/pseries/modules/portalfs/Makefile projects/pseries/modules/sio/Makefile projects/pseries/modules/usb/Makefile projects/pseries/modules/usb/rue/Makefile projects/pseries/modules/xl/Makefile projects/pseries/modules/zfs/Makefile projects/pseries/net/bpf.c projects/pseries/net/bpf_filter.c projects/pseries/net/flowtable.c projects/pseries/net/if.c projects/pseries/net/if.h projects/pseries/net/if_arcsubr.c projects/pseries/net/if_atmsubr.c projects/pseries/net/if_bridge.c projects/pseries/net/if_enc.c projects/pseries/net/if_epair.c projects/pseries/net/if_ethersubr.c projects/pseries/net/if_fwsubr.c projects/pseries/net/if_gif.c projects/pseries/net/if_gre.c projects/pseries/net/if_iso88025subr.c projects/pseries/net/if_lagg.c projects/pseries/net/if_llatbl.h projects/pseries/net/if_mib.c projects/pseries/net/if_spppfr.c projects/pseries/net/if_spppsubr.c projects/pseries/net/if_stf.c projects/pseries/net/if_tap.c projects/pseries/net/if_tun.c projects/pseries/net/if_var.h projects/pseries/net/if_vlan.c projects/pseries/net/netisr.c projects/pseries/net/radix.h projects/pseries/net/radix_mpath.c projects/pseries/net/raw_cb.c projects/pseries/net/raw_cb.h projects/pseries/net/raw_usrreq.c projects/pseries/net/route.c projects/pseries/net/route.h projects/pseries/net/rtsock.c projects/pseries/net/vnet.c projects/pseries/net80211/ieee80211.h projects/pseries/net80211/ieee80211_acl.c projects/pseries/net80211/ieee80211_ageq.c projects/pseries/net80211/ieee80211_dfs.c projects/pseries/net80211/ieee80211_freebsd.c projects/pseries/net80211/ieee80211_ht.c projects/pseries/net80211/ieee80211_hwmp.c projects/pseries/net80211/ieee80211_input.c projects/pseries/net80211/ieee80211_ioctl.c projects/pseries/net80211/ieee80211_ioctl.h projects/pseries/net80211/ieee80211_mesh.c projects/pseries/net80211/ieee80211_output.c projects/pseries/net80211/ieee80211_power.c projects/pseries/net80211/ieee80211_proto.c projects/pseries/net80211/ieee80211_proto.h projects/pseries/net80211/ieee80211_scan.h projects/pseries/net80211/ieee80211_scan_sta.c projects/pseries/net80211/ieee80211_sta.c projects/pseries/net80211/ieee80211_tdma.c projects/pseries/net80211/ieee80211_var.h projects/pseries/netgraph/atm/ng_atm.c projects/pseries/netgraph/atm/ngatmbase.c projects/pseries/netgraph/atm/uni/ng_uni.c projects/pseries/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c projects/pseries/netgraph/bluetooth/socket/ng_btsocket_l2cap.c projects/pseries/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c projects/pseries/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c projects/pseries/netgraph/bluetooth/socket/ng_btsocket_sco.c projects/pseries/netgraph/netgraph.h projects/pseries/netgraph/ng_async.c projects/pseries/netgraph/ng_atmllc.c projects/pseries/netgraph/ng_base.c projects/pseries/netgraph/ng_bpf.c projects/pseries/netgraph/ng_bridge.c projects/pseries/netgraph/ng_cisco.c projects/pseries/netgraph/ng_deflate.c projects/pseries/netgraph/ng_ether.c projects/pseries/netgraph/ng_fec.c projects/pseries/netgraph/ng_gif_demux.c projects/pseries/netgraph/ng_hub.c projects/pseries/netgraph/ng_iface.c projects/pseries/netgraph/ng_ipfw.c projects/pseries/netgraph/ng_ksocket.c projects/pseries/netgraph/ng_l2tp.c projects/pseries/netgraph/ng_mppc.c projects/pseries/netgraph/ng_parse.c projects/pseries/netgraph/ng_ppp.c projects/pseries/netgraph/ng_pppoe.c projects/pseries/netgraph/ng_pred1.c projects/pseries/netgraph/ng_sample.c projects/pseries/netgraph/ng_socket.c projects/pseries/netgraph/ng_sppp.c projects/pseries/netgraph/ng_tag.c projects/pseries/netinet/accf_http.c projects/pseries/netinet/if_ether.c projects/pseries/netinet/igmp.c projects/pseries/netinet/in.c projects/pseries/netinet/in.h projects/pseries/netinet/in_debug.c projects/pseries/netinet/in_mcast.c projects/pseries/netinet/in_pcb.c projects/pseries/netinet/in_pcb.h projects/pseries/netinet/in_proto.c projects/pseries/netinet/in_var.h projects/pseries/netinet/ip_carp.c projects/pseries/netinet/ip_divert.c projects/pseries/netinet/ip_fw.h projects/pseries/netinet/ip_input.c projects/pseries/netinet/ip_mroute.c projects/pseries/netinet/ip_output.c projects/pseries/netinet/ipfw/dn_heap.c projects/pseries/netinet/ipfw/dummynet.txt projects/pseries/netinet/ipfw/ip_dn_io.c projects/pseries/netinet/ipfw/ip_fw2.c projects/pseries/netinet/ipfw/ip_fw_dynamic.c projects/pseries/netinet/ipfw/ip_fw_log.c projects/pseries/netinet/ipfw/ip_fw_pfil.c projects/pseries/netinet/ipfw/ip_fw_private.h projects/pseries/netinet/ipfw/ip_fw_sockopt.c projects/pseries/netinet/ipfw/ip_fw_table.c projects/pseries/netinet/libalias/alias_sctp.c projects/pseries/netinet/raw_ip.c projects/pseries/netinet/sctp.h projects/pseries/netinet/sctp_asconf.c projects/pseries/netinet/sctp_bsd_addr.c projects/pseries/netinet/sctp_cc_functions.c projects/pseries/netinet/sctp_constants.h projects/pseries/netinet/sctp_header.h projects/pseries/netinet/sctp_indata.c projects/pseries/netinet/sctp_input.c projects/pseries/netinet/sctp_output.c projects/pseries/netinet/sctp_output.h projects/pseries/netinet/sctp_pcb.c projects/pseries/netinet/sctp_pcb.h projects/pseries/netinet/sctp_structs.h projects/pseries/netinet/sctp_sysctl.c projects/pseries/netinet/sctp_sysctl.h projects/pseries/netinet/sctp_timer.c projects/pseries/netinet/sctp_timer.h projects/pseries/netinet/sctp_uio.h projects/pseries/netinet/sctp_usrreq.c projects/pseries/netinet/sctp_var.h projects/pseries/netinet/sctputil.c projects/pseries/netinet/tcp.h projects/pseries/netinet/tcp_hostcache.c projects/pseries/netinet/tcp_input.c projects/pseries/netinet/tcp_output.c projects/pseries/netinet/tcp_reass.c projects/pseries/netinet/tcp_subr.c projects/pseries/netinet/tcp_syncache.c projects/pseries/netinet/tcp_syncache.h projects/pseries/netinet/tcp_timer.c projects/pseries/netinet/tcp_usrreq.c projects/pseries/netinet/tcp_var.h projects/pseries/netinet/udp_usrreq.c projects/pseries/netinet/udp_var.h projects/pseries/netinet6/icmp6.c projects/pseries/netinet6/in6.c projects/pseries/netinet6/in6.h projects/pseries/netinet6/in6_mcast.c projects/pseries/netinet6/in6_pcb.c projects/pseries/netinet6/in6_proto.c projects/pseries/netinet6/in6_src.c projects/pseries/netinet6/ip6_forward.c projects/pseries/netinet6/ip6_input.c projects/pseries/netinet6/ip6_mroute.c projects/pseries/netinet6/ip6_output.c projects/pseries/netinet6/ip6_var.h projects/pseries/netinet6/mld6.c projects/pseries/netinet6/nd6.c projects/pseries/netinet6/nd6.h projects/pseries/netinet6/nd6_nbr.c projects/pseries/netinet6/nd6_rtr.c projects/pseries/netinet6/sctp6_usrreq.c projects/pseries/netinet6/send.c projects/pseries/netinet6/udp6_usrreq.c projects/pseries/netipsec/key.c projects/pseries/netipx/ipx_proto.c projects/pseries/netipx/spx_reass.c projects/pseries/netncp/ncp_lib.h projects/pseries/netsmb/smb_conn.c projects/pseries/netsmb/smb_conn.h projects/pseries/netsmb/smb_rq.c projects/pseries/netsmb/smb_smb.c projects/pseries/netsmb/smb_subr.c projects/pseries/nfs/nfs_lock.c projects/pseries/nfs/nfs_nfssvc.c projects/pseries/nfsclient/nfs_bio.c projects/pseries/nfsclient/nfs_krpc.c projects/pseries/nfsclient/nfs_node.c projects/pseries/nfsclient/nfs_vfsops.c projects/pseries/nfsclient/nfs_vnops.c projects/pseries/nfsclient/nfsnode.h projects/pseries/nfsserver/nfs_serv.c projects/pseries/nfsserver/nfs_srvkrpc.c projects/pseries/nlm/nlm_prot_impl.c projects/pseries/ofed/drivers/infiniband/ulp/sdp/Kconfig projects/pseries/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/pseries/ofed/include/linux/linux_compat.c projects/pseries/ofed/include/linux/linux_idr.c projects/pseries/ofed/include/linux/linux_radix.c projects/pseries/opencrypto/cryptodev.c projects/pseries/pc98/cbus/pckbd.c projects/pseries/pc98/cbus/sio.c projects/pseries/pc98/conf/DEFAULTS projects/pseries/pc98/conf/GENERIC projects/pseries/pc98/pc98/machdep.c projects/pseries/pci/if_rl.c projects/pseries/pci/if_rlreg.h projects/pseries/powerpc/aim/locore32.S projects/pseries/powerpc/aim/locore64.S projects/pseries/powerpc/aim/machdep.c projects/pseries/powerpc/aim/mmu_oea.c projects/pseries/powerpc/aim/mmu_oea64.c projects/pseries/powerpc/aim/mp_cpudep.c projects/pseries/powerpc/aim/slb.c projects/pseries/powerpc/aim/trap.c projects/pseries/powerpc/aim/trap_subr32.S projects/pseries/powerpc/aim/trap_subr64.S projects/pseries/powerpc/booke/locore.S projects/pseries/powerpc/booke/platform_bare.c projects/pseries/powerpc/booke/pmap.c projects/pseries/powerpc/booke/trap.c projects/pseries/powerpc/conf/DEFAULTS projects/pseries/powerpc/conf/GENERIC projects/pseries/powerpc/conf/GENERIC64 projects/pseries/powerpc/conf/MPC85XX projects/pseries/powerpc/fpu/fpu_emu.c projects/pseries/powerpc/include/ieeefp.h projects/pseries/powerpc/include/param.h projects/pseries/powerpc/include/pcpu.h projects/pseries/powerpc/include/pmap.h projects/pseries/powerpc/include/proc.h projects/pseries/powerpc/mambo/mambo_console.c projects/pseries/powerpc/mpc85xx/atpic.c projects/pseries/powerpc/ofw/ofw_real.c projects/pseries/powerpc/ofw/ofw_syscons.c projects/pseries/powerpc/ofw/rtas.c projects/pseries/powerpc/powermac/dbdma.c projects/pseries/powerpc/powermac/fcu.c projects/pseries/powerpc/powermac/powermac_thermal.c projects/pseries/powerpc/powermac/smu.c projects/pseries/powerpc/powermac/smusat.c projects/pseries/powerpc/powerpc/bus_machdep.c projects/pseries/powerpc/powerpc/busdma_machdep.c projects/pseries/powerpc/powerpc/exec_machdep.c projects/pseries/powerpc/powerpc/intr_machdep.c projects/pseries/powerpc/powerpc/mmu_if.m projects/pseries/powerpc/powerpc/platform.c projects/pseries/powerpc/powerpc/pmap_dispatch.c projects/pseries/powerpc/ps3/ps3disk.c projects/pseries/rpc/clnt_dg.c projects/pseries/rpc/rpcsec_gss/svc_rpcsec_gss.c projects/pseries/security/audit/audit.c projects/pseries/security/audit/audit.h projects/pseries/security/audit/audit_arg.c projects/pseries/security/audit/audit_bsm.c projects/pseries/security/audit/audit_pipe.c projects/pseries/security/audit/audit_private.h projects/pseries/security/audit/audit_syscalls.c projects/pseries/security/mac/mac_framework.h projects/pseries/security/mac/mac_policy.h projects/pseries/security/mac/mac_posix_sem.c projects/pseries/security/mac/mac_posix_shm.c projects/pseries/security/mac/mac_syscalls.c projects/pseries/security/mac_biba/mac_biba.c projects/pseries/security/mac_bsdextended/mac_bsdextended.c projects/pseries/security/mac_ifoff/mac_ifoff.c projects/pseries/security/mac_lomac/mac_lomac.c projects/pseries/security/mac_mls/mac_mls.c projects/pseries/security/mac_partition/mac_partition.c projects/pseries/security/mac_portacl/mac_portacl.c projects/pseries/security/mac_seeotheruids/mac_seeotheruids.c projects/pseries/security/mac_stub/mac_stub.c projects/pseries/security/mac_test/mac_test.c projects/pseries/sparc64/central/central.c projects/pseries/sparc64/conf/DEFAULTS projects/pseries/sparc64/conf/GENERIC projects/pseries/sparc64/ebus/ebus.c projects/pseries/sparc64/fhc/fhc.c projects/pseries/sparc64/include/asmacros.h projects/pseries/sparc64/include/atomic.h projects/pseries/sparc64/include/bus.h projects/pseries/sparc64/include/bus_private.h projects/pseries/sparc64/include/ieeefp.h projects/pseries/sparc64/include/param.h projects/pseries/sparc64/include/pcpu.h projects/pseries/sparc64/include/proc.h projects/pseries/sparc64/pci/apb.c projects/pseries/sparc64/pci/fire.c projects/pseries/sparc64/pci/firevar.h projects/pseries/sparc64/pci/ofw_pcib_subr.c projects/pseries/sparc64/pci/psycho.c projects/pseries/sparc64/pci/psychovar.h projects/pseries/sparc64/pci/sbbc.c projects/pseries/sparc64/pci/schizo.c projects/pseries/sparc64/pci/schizovar.h projects/pseries/sparc64/sbus/dma_sbus.c projects/pseries/sparc64/sbus/lsi64854.c projects/pseries/sparc64/sbus/lsi64854var.h projects/pseries/sparc64/sbus/sbus.c projects/pseries/sparc64/sparc64/bus_machdep.c projects/pseries/sparc64/sparc64/counter.c projects/pseries/sparc64/sparc64/dump_machdep.c projects/pseries/sparc64/sparc64/exception.S projects/pseries/sparc64/sparc64/genassym.c projects/pseries/sparc64/sparc64/identcpu.c projects/pseries/sparc64/sparc64/intr_machdep.c projects/pseries/sparc64/sparc64/iommu.c projects/pseries/sparc64/sparc64/machdep.c projects/pseries/sparc64/sparc64/mp_machdep.c projects/pseries/sparc64/sparc64/nexus.c projects/pseries/sparc64/sparc64/pmap.c projects/pseries/sparc64/sparc64/swtch.S projects/pseries/sparc64/sparc64/sys_machdep.c projects/pseries/sparc64/sparc64/tick.c projects/pseries/sparc64/sparc64/trap.c projects/pseries/sparc64/sparc64/tsb.c projects/pseries/sparc64/sparc64/upa.c projects/pseries/sys/buf.h projects/pseries/sys/bus.h projects/pseries/sys/capability.h projects/pseries/sys/cdefs.h projects/pseries/sys/conf.h projects/pseries/sys/event.h projects/pseries/sys/fcntl.h projects/pseries/sys/file.h projects/pseries/sys/filedesc.h projects/pseries/sys/iconv.h projects/pseries/sys/interrupt.h projects/pseries/sys/kbio.h projects/pseries/sys/kdb.h projects/pseries/sys/kobj.h projects/pseries/sys/ktrace.h projects/pseries/sys/libkern.h projects/pseries/sys/lock.h projects/pseries/sys/lockmgr.h projects/pseries/sys/mchain.h projects/pseries/sys/mount.h projects/pseries/sys/msgbuf.h projects/pseries/sys/mutex.h projects/pseries/sys/namei.h projects/pseries/sys/param.h projects/pseries/sys/pcpu.h projects/pseries/sys/pipe.h projects/pseries/sys/pmc.h projects/pseries/sys/pmclog.h projects/pseries/sys/posix4.h projects/pseries/sys/proc.h projects/pseries/sys/racct.h projects/pseries/sys/resourcevar.h projects/pseries/sys/rmlock.h projects/pseries/sys/rwlock.h projects/pseries/sys/sdt.h projects/pseries/sys/selinfo.h projects/pseries/sys/sem.h projects/pseries/sys/signalvar.h projects/pseries/sys/sockbuf.h projects/pseries/sys/stack.h projects/pseries/sys/sx.h projects/pseries/sys/syscall.h projects/pseries/sys/syscall.mk projects/pseries/sys/syscallsubr.h projects/pseries/sys/sysctl.h projects/pseries/sys/sysent.h projects/pseries/sys/sysproto.h projects/pseries/sys/systm.h projects/pseries/sys/timetc.h projects/pseries/sys/uio.h projects/pseries/sys/unistd.h projects/pseries/sys/user.h projects/pseries/sys/vnode.h projects/pseries/teken/demo/Makefile projects/pseries/teken/libteken/Symbol.map projects/pseries/teken/stress/teken_stress.c projects/pseries/teken/teken_subr.h projects/pseries/tools/makeobjops.awk projects/pseries/ufs/ffs/ffs_alloc.c projects/pseries/ufs/ffs/ffs_balloc.c projects/pseries/ufs/ffs/ffs_extern.h projects/pseries/ufs/ffs/ffs_inode.c projects/pseries/ufs/ffs/ffs_snapshot.c projects/pseries/ufs/ffs/ffs_softdep.c projects/pseries/ufs/ffs/ffs_vfsops.c projects/pseries/ufs/ffs/ffs_vnops.c projects/pseries/ufs/ffs/fs.h projects/pseries/ufs/ufs/dinode.h projects/pseries/ufs/ufs/extattr.h projects/pseries/ufs/ufs/inode.h projects/pseries/ufs/ufs/ufs_extattr.c projects/pseries/ufs/ufs/ufs_vnops.c projects/pseries/ufs/ufs/ufsmount.h projects/pseries/vm/device_pager.c projects/pseries/vm/memguard.c projects/pseries/vm/memguard.h projects/pseries/vm/redzone.c projects/pseries/vm/swap_pager.c projects/pseries/vm/swap_pager.h projects/pseries/vm/uma.h projects/pseries/vm/uma_core.c projects/pseries/vm/vm_contig.c projects/pseries/vm/vm_extern.h projects/pseries/vm/vm_fault.c projects/pseries/vm/vm_kern.c projects/pseries/vm/vm_map.c projects/pseries/vm/vm_mmap.c projects/pseries/vm/vm_object.c projects/pseries/vm/vm_object.h projects/pseries/vm/vm_page.c projects/pseries/vm/vm_page.h projects/pseries/vm/vm_pageout.c projects/pseries/vm/vm_pager.c projects/pseries/vm/vm_pager.h projects/pseries/vm/vm_phys.c projects/pseries/vm/vm_phys.h projects/pseries/vm/vm_reserv.c projects/pseries/vm/vm_reserv.h projects/pseries/vm/vm_unix.c projects/pseries/vm/vnode_pager.c projects/pseries/x86/acpica/acpi_apm.c projects/pseries/x86/acpica/madt.c projects/pseries/x86/acpica/srat.c projects/pseries/x86/bios/vpd.c projects/pseries/x86/include/mptable.h projects/pseries/x86/x86/busdma_machdep.c projects/pseries/x86/x86/io_apic.c projects/pseries/x86/x86/mca.c projects/pseries/x86/x86/mptable.c projects/pseries/x86/x86/mptable_pci.c projects/pseries/x86/x86/tsc.c projects/pseries/xen/xenbus/xenbusb.c projects/pseries/xen/xenbus/xenbusb_back.c projects/pseries/xen/xenbus/xenbusb_front.c projects/pseries/xen/xenstore/xenstore.c Directory Properties: projects/pseries/ (props changed) projects/pseries/boot/ (props changed) projects/pseries/boot/powerpc/boot1.chrp/ (props changed) projects/pseries/cddl/contrib/opensolaris/ (props changed) projects/pseries/conf/ (props changed) projects/pseries/contrib/pf/ (props changed) Modified: projects/pseries/amd64/amd64/exception.S ============================================================================== --- projects/pseries/amd64/amd64/exception.S Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/exception.S Sun Nov 20 21:47:25 2011 (r227772) @@ -380,8 +380,11 @@ IDTVEC(fast_syscall) movl $TF_HASSEGS,TF_FLAGS(%rsp) cld FAKE_MCOUNT(TF_RIP(%rsp)) - movq %rsp,%rdi - call syscall + movq PCPU(CURTHREAD),%rdi + movq %rsp,TD_FRAME(%rdi) + movl TF_RFLAGS(%rsp),%esi + andl $PSL_T,%esi + call amd64_syscall 1: movq PCPU(CURPCB),%rax /* Disable interrupts before testing PCB_FULL_IRET. */ cli @@ -390,29 +393,25 @@ IDTVEC(fast_syscall) /* Check for and handle AST's on return to userland. */ movq PCPU(CURTHREAD),%rax testl $TDF_ASTPENDING | TDF_NEEDRESCHED,TD_FLAGS(%rax) - je 2f - sti - movq %rsp, %rdi - call ast - jmp 1b -2: /* Restore preserved registers. */ + jne 2f + /* Restore preserved registers. */ MEXITCOUNT movq TF_RDI(%rsp),%rdi /* bonus; preserve arg 1 */ movq TF_RSI(%rsp),%rsi /* bonus: preserve arg 2 */ movq TF_RDX(%rsp),%rdx /* return value 2 */ movq TF_RAX(%rsp),%rax /* return value 1 */ - movq TF_RBX(%rsp),%rbx /* C preserved */ - movq TF_RBP(%rsp),%rbp /* C preserved */ - movq TF_R12(%rsp),%r12 /* C preserved */ - movq TF_R13(%rsp),%r13 /* C preserved */ - movq TF_R14(%rsp),%r14 /* C preserved */ - movq TF_R15(%rsp),%r15 /* C preserved */ movq TF_RFLAGS(%rsp),%r11 /* original %rflags */ movq TF_RIP(%rsp),%rcx /* original %rip */ - movq TF_RSP(%rsp),%r9 /* user stack pointer */ - movq %r9,%rsp /* original %rsp */ + movq TF_RSP(%rsp),%rsp /* user stack pointer */ swapgs sysretq + +2: /* AST scheduled. */ + sti + movq %rsp,%rdi + call ast + jmp 1b + 3: /* Requested full context restore, use doreti for that. */ MEXITCOUNT jmp doreti Modified: projects/pseries/amd64/amd64/genassym.c ============================================================================== --- projects/pseries/amd64/amd64/genassym.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/genassym.c Sun Nov 20 21:47:25 2011 (r227772) @@ -87,6 +87,7 @@ ASSYM(TD_PCB, offsetof(struct thread, td ASSYM(TD_PFLAGS, offsetof(struct thread, td_pflags)); ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_TID, offsetof(struct thread, td_tid)); +ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TDF_ASTPENDING, TDF_ASTPENDING); ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED); @@ -201,7 +202,6 @@ ASSYM(UC_EFLAGS, offsetof(ucontext_t, uc ASSYM(ENOENT, ENOENT); ASSYM(EFAULT, EFAULT); ASSYM(ENAMETOOLONG, ENAMETOOLONG); -ASSYM(MAXCPU, MAXCPU); ASSYM(MAXCOMLEN, MAXCOMLEN); ASSYM(MAXPATHLEN, MAXPATHLEN); ASSYM(PC_SIZEOF, sizeof(struct pcpu)); Modified: projects/pseries/amd64/amd64/intr_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/intr_machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/intr_machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -80,6 +80,11 @@ static STAILQ_HEAD(, pic) pics; static int assign_cpu; #endif +u_long intrcnt[INTRCNT_COUNT]; +char intrnames[INTRCNT_COUNT * (MAXCOMLEN + 1)]; +size_t sintrcnt = sizeof(intrcnt); +size_t sintrnames = sizeof(intrnames); + static int intr_assign_cpu(void *arg, u_char cpu); static void intr_disable_src(void *arg); static void intr_init(void *__dummy); Modified: projects/pseries/amd64/amd64/machdep.c ============================================================================== --- projects/pseries/amd64/amd64/machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -421,7 +421,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, * MPSAFE */ int -sigreturn(td, uap) +sys_sigreturn(td, uap) struct thread *td; struct sigreturn_args /* { const struct __ucontext *sigcntxp; @@ -517,7 +517,7 @@ int freebsd4_sigreturn(struct thread *td, struct freebsd4_sigreturn_args *uap) { - return sigreturn(td, (struct sigreturn_args *)uap); + return sys_sigreturn(td, (struct sigreturn_args *)uap); } #endif @@ -609,7 +609,7 @@ void cpu_halt(void) { for (;;) - __asm__ ("hlt"); + halt(); } void (*cpu_idle_hook)(void) = NULL; /* ACPI idle hook. */ @@ -630,6 +630,8 @@ cpu_idle_acpi(int busy) state = (int *)PCPU_PTR(monitorbuf); *state = STATE_SLEEPING; + + /* See comments in cpu_idle_hlt(). */ disable_intr(); if (sched_runnable()) enable_intr(); @@ -647,9 +649,22 @@ cpu_idle_hlt(int busy) state = (int *)PCPU_PTR(monitorbuf); *state = STATE_SLEEPING; + /* - * We must absolutely guarentee that hlt is the next instruction - * after sti or we introduce a timing window. + * Since we may be in a critical section from cpu_idle(), if + * an interrupt fires during that critical section we may have + * a pending preemption. If the CPU halts, then that thread + * may not execute until a later interrupt awakens the CPU. + * To handle this race, check for a runnable thread after + * disabling interrupts and immediately return if one is + * found. Also, we must absolutely guarentee that hlt is + * the next instruction after sti. This ensures that any + * interrupt that fires after the call to disable_intr() will + * immediately awaken the CPU from hlt. Finally, please note + * that on x86 this works fine because of interrupts enabled only + * after the instruction following sti takes place, while IF is set + * to 1 immediately, allowing hlt instruction to acknowledge the + * interrupt. */ disable_intr(); if (sched_runnable()) @@ -675,11 +690,19 @@ cpu_idle_mwait(int busy) state = (int *)PCPU_PTR(monitorbuf); *state = STATE_MWAIT; - if (!sched_runnable()) { - cpu_monitor(state, 0, 0); - if (*state == STATE_MWAIT) - cpu_mwait(0, MWAIT_C1); + + /* See comments in cpu_idle_hlt(). */ + disable_intr(); + if (sched_runnable()) { + enable_intr(); + *state = STATE_RUNNING; + return; } + cpu_monitor(state, 0, 0); + if (*state == STATE_MWAIT) + __asm __volatile("sti; mwait" : : "a" (MWAIT_C1), "c" (0)); + else + enable_intr(); *state = STATE_RUNNING; } @@ -691,6 +714,12 @@ cpu_idle_spin(int busy) state = (int *)PCPU_PTR(monitorbuf); *state = STATE_RUNNING; + + /* + * The sched_runnable() call is racy but as long as there is + * a loop missing it one time will have just a little impact if any + * (and it is much better than missing the check at all). + */ for (i = 0; i < 1000; i++) { if (sched_runnable()) return; @@ -1309,7 +1338,7 @@ getmemsize(caddr_t kmdp, u_int64_t first { int i, physmap_idx, pa_indx, da_indx; vm_paddr_t pa, physmap[PHYSMAP_SIZE]; - u_long physmem_tunable; + u_long physmem_tunable, memtest; pt_entry_t *pte; struct bios_smap *smapbase, *smap, *smapend; u_int32_t smapsize; @@ -1372,6 +1401,13 @@ getmemsize(caddr_t kmdp, u_int64_t first Maxmem = atop(physmem_tunable); /* + * By default keep the memtest enabled. Use a general name so that + * one could eventually do more with the code than just disable it. + */ + memtest = 1; + TUNABLE_ULONG_FETCH("hw.memtest.tests", &memtest); + + /* * Don't allow MAXMEM or hw.physmem to extend the amount of memory * in the system. */ @@ -1433,6 +1469,8 @@ getmemsize(caddr_t kmdp, u_int64_t first goto do_dump_avail; page_bad = FALSE; + if (memtest == 0) + goto skip_memtest; /* * map page into kernel: valid, read/write,non-cacheable @@ -1470,6 +1508,7 @@ getmemsize(caddr_t kmdp, u_int64_t first */ *(int *)ptr = tmp; +skip_memtest: /* * Adjust array of valid/good pages. */ @@ -2008,7 +2047,8 @@ int fill_fpregs(struct thread *td, struct fpreg *fpregs) { - KASSERT(td == curthread || TD_IS_SUSPENDED(td), + KASSERT(td == curthread || TD_IS_SUSPENDED(td) || + P_SHOULDSTOP(td->td_proc), ("not suspended thread %p", td)); fpugetregs(td); fill_fpregs_xmm(&td->td_pcb->pcb_user_save, fpregs); Modified: projects/pseries/amd64/amd64/minidump_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/minidump_machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/minidump_machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -27,6 +27,7 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_pmap.h" #include "opt_watchdog.h" #include Modified: projects/pseries/amd64/amd64/mp_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/mp_machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/mp_machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -1049,7 +1049,7 @@ start_ap(int apic_id) u_int xhits_gbl[MAXCPU]; u_int xhits_pg[MAXCPU]; u_int xhits_rng[MAXCPU]; -SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); +static SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, global, CTLFLAG_RW, &xhits_gbl, sizeof(xhits_gbl), "IU", ""); SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, page, CTLFLAG_RW, &xhits_pg, Modified: projects/pseries/amd64/amd64/pmap.c ============================================================================== --- projects/pseries/amd64/amd64/pmap.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/pmap.c Sun Nov 20 21:47:25 2011 (r227772) @@ -182,7 +182,7 @@ static vm_paddr_t dmaplimit; vm_offset_t kernel_vm_end = VM_MIN_KERNEL_ADDRESS; pt_entry_t pg_nx; -SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); +static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); static int pat_works = 1; SYSCTL_INT(_vm_pmap, OID_AUTO, pat_works, CTLFLAG_RD, &pat_works, 1, @@ -805,7 +805,7 @@ pmap_shpgperproc_proc(SYSCTL_HANDLER_ARG SYSCTL_PROC(_vm_pmap, OID_AUTO, shpgperproc, CTLTYPE_INT|CTLFLAG_RW, &shpgperproc, 0, pmap_shpgperproc_proc, "IU", "Page share factor per proc"); -SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0, +static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0, "2MB page mapping counters"); static u_long pmap_pde_demotions; @@ -824,7 +824,7 @@ static u_long pmap_pde_promotions; SYSCTL_ULONG(_vm_pmap_pde, OID_AUTO, promotions, CTLFLAG_RD, &pmap_pde_promotions, 0, "2MB page promotions"); -SYSCTL_NODE(_vm_pmap, OID_AUTO, pdpe, CTLFLAG_RD, 0, +static SYSCTL_NODE(_vm_pmap, OID_AUTO, pdpe, CTLFLAG_RD, 0, "1GB page mapping counters"); static u_long pmap_pdpe_demotions; @@ -1635,7 +1635,6 @@ int pmap_pinit(pmap_t pmap) { vm_page_t pml4pg; - static vm_pindex_t color; int i; PMAP_LOCK_INIT(pmap); @@ -1643,8 +1642,8 @@ pmap_pinit(pmap_t pmap) /* * allocate the page directory page */ - while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ | - VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) + while ((pml4pg = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | + VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) VM_WAIT; pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg)); @@ -2123,7 +2122,7 @@ pmap_collect(pmap_t locked_pmap, struct KASSERT((tpte & PG_W) == 0, ("pmap_collect: wired pte %#lx", tpte)); if (tpte & PG_A) - vm_page_flag_set(m, PG_REFERENCED); + vm_page_aflag_set(m, PGA_REFERENCED); if ((tpte & (PG_M | PG_RW)) == (PG_M | PG_RW)) vm_page_dirty(m); free = NULL; @@ -2137,7 +2136,7 @@ pmap_collect(pmap_t locked_pmap, struct } if (TAILQ_EMPTY(&m->md.pv_list) && TAILQ_EMPTY(&pa_to_pvh(VM_PAGE_TO_PHYS(m))->pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); } } @@ -2188,7 +2187,6 @@ get_pv_entry(pmap_t pmap, int try) { static const struct timeval printinterval = { 60, 0 }; static struct timeval lastprint; - static vm_pindex_t colour; struct vpgqueues *pq; int bit, field; pv_entry_t pv; @@ -2228,7 +2226,7 @@ retry: } } /* No free items, allocate another chunk */ - m = vm_page_alloc(NULL, colour, (pq == &vm_page_queues[PQ_ACTIVE] ? + m = vm_page_alloc(NULL, 0, (pq == &vm_page_queues[PQ_ACTIVE] ? VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL) | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED); if (m == NULL) { @@ -2255,7 +2253,6 @@ retry: } PV_STAT(pc_chunk_count++); PV_STAT(pc_chunk_allocs++); - colour++; dump_add_page(m->phys_addr); pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; @@ -2320,7 +2317,7 @@ pmap_pv_demote_pde(pmap_t pmap, vm_offse va_last = va + NBPDR - PAGE_SIZE; do { m++; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_pv_demote_pde: page %p is not managed", m)); va += PAGE_SIZE; pmap_insert_entry(pmap, va, m); @@ -2391,7 +2388,7 @@ pmap_remove_entry(pmap_t pmap, vm_page_t if (TAILQ_EMPTY(&m->md.pv_list)) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); if (TAILQ_EMPTY(&pvh->pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); } } @@ -2615,10 +2612,10 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t if ((oldpde & (PG_M | PG_RW)) == (PG_M | PG_RW)) vm_page_dirty(m); if (oldpde & PG_A) - vm_page_flag_set(m, PG_REFERENCED); + vm_page_aflag_set(m, PGA_REFERENCED); if (TAILQ_EMPTY(&m->md.pv_list) && TAILQ_EMPTY(&pvh->pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); } } if (pmap == kernel_pmap) { @@ -2659,7 +2656,7 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t if ((oldpte & (PG_M | PG_RW)) == (PG_M | PG_RW)) vm_page_dirty(m); if (oldpte & PG_A) - vm_page_flag_set(m, PG_REFERENCED); + vm_page_aflag_set(m, PGA_REFERENCED); pmap_remove_entry(pmap, m, va); } return (pmap_unuse_pt(pmap, va, ptepde, free)); @@ -2847,7 +2844,7 @@ pmap_remove_all(vm_page_t m) vm_offset_t va; vm_page_t free; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_remove_all: page %p is not managed", m)); free = NULL; vm_page_lock_queues(); @@ -2872,7 +2869,7 @@ pmap_remove_all(vm_page_t m) if (tpte & PG_W) pmap->pm_stats.wired_count--; if (tpte & PG_A) - vm_page_flag_set(m, PG_REFERENCED); + vm_page_aflag_set(m, PGA_REFERENCED); /* * Update the vm_page_t clean and reference bits. @@ -2885,7 +2882,7 @@ pmap_remove_all(vm_page_t m) free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); vm_page_unlock_queues(); pmap_free_zero_pages(free); } @@ -3194,8 +3191,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS, ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)", va)); - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || - (m->oflags & VPO_BUSY) != 0, + KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 || + VM_OBJECT_LOCKED(m->object), ("pmap_enter: page %p is not busy", m)); mpte = NULL; @@ -3276,7 +3273,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, /* * Enter on the PV list if part of our managed memory. */ - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0) { + if ((m->oflags & VPO_UNMANAGED) == 0) { KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva, ("pmap_enter: managed mapping within the clean submap")); if (pv == NULL) @@ -3301,7 +3298,7 @@ validate: if ((prot & VM_PROT_WRITE) != 0) { newpte |= PG_RW; if ((newpte & PG_MANAGED) != 0) - vm_page_flag_set(m, PG_WRITEABLE); + vm_page_aflag_set(m, PGA_WRITEABLE); } if ((prot & VM_PROT_EXECUTE) == 0) newpte |= pg_nx; @@ -3325,7 +3322,7 @@ validate: origpte = pte_load_store(pte, newpte); if (origpte & PG_A) { if (origpte & PG_MANAGED) - vm_page_flag_set(om, PG_REFERENCED); + vm_page_aflag_set(om, PGA_REFERENCED); if (opa != VM_PAGE_TO_PHYS(m) || ((origpte & PG_NX) == 0 && (newpte & PG_NX))) invlva = TRUE; @@ -3339,7 +3336,7 @@ validate: if ((origpte & PG_MANAGED) != 0 && TAILQ_EMPTY(&om->md.pv_list) && TAILQ_EMPTY(&pa_to_pvh(opa)->pv_list)) - vm_page_flag_clear(om, PG_WRITEABLE); + vm_page_aflag_clear(om, PGA_WRITEABLE); if (invlva) pmap_invalidate_page(pmap, va); } else @@ -3389,7 +3386,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t } newpde = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 1) | PG_PS | PG_V; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0) { + if ((m->oflags & VPO_UNMANAGED) == 0) { newpde |= PG_MANAGED; /* @@ -3498,7 +3495,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ vm_paddr_t pa; KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva || - (m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0, + (m->oflags & VPO_UNMANAGED) != 0, ("pmap_enter_quick_locked: managed mapping within the clean submap")); mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); @@ -3556,7 +3553,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ /* * Enter on the PV list if part of our managed memory. */ - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && + if ((m->oflags & VPO_UNMANAGED) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { free = NULL; @@ -3581,7 +3578,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ /* * Now validate mapping with RO protection */ - if (m->flags & (PG_FICTITIOUS|PG_UNMANAGED)) + if ((m->oflags & VPO_UNMANAGED) != 0) pte_store(pte, pa | PG_V | PG_U); else pte_store(pte, pa | PG_V | PG_U | PG_MANAGED); @@ -3958,7 +3955,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p int loops = 0; boolean_t rv; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_page_exists_quick: page %p is not managed", m)); rv = FALSE; vm_page_lock_queues(); @@ -3999,7 +3996,7 @@ pmap_page_wired_mappings(vm_page_t m) int count; count = 0; - if ((m->flags & PG_FICTITIOUS) != 0) + if ((m->oflags & VPO_UNMANAGED) != 0) return (count); vm_page_lock_queues(); count = pmap_pvh_wired_mappings(&m->md, count); @@ -4041,7 +4038,7 @@ pmap_page_is_mapped(vm_page_t m) { boolean_t rv; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0) + if ((m->oflags & VPO_UNMANAGED) != 0) return (FALSE); vm_page_lock_queues(); rv = !TAILQ_EMPTY(&m->md.pv_list) || @@ -4147,7 +4144,7 @@ pmap_remove_pages(pmap_t pmap) if (TAILQ_EMPTY(&pvh->pv_list)) { for (mt = m; mt < &m[NBPDR / PAGE_SIZE]; mt++) if (TAILQ_EMPTY(&mt->md.pv_list)) - vm_page_flag_clear(mt, PG_WRITEABLE); + vm_page_aflag_clear(mt, PGA_WRITEABLE); } mpte = pmap_lookup_pt_page(pmap, pv->pv_va); if (mpte != NULL) { @@ -4165,7 +4162,7 @@ pmap_remove_pages(pmap_t pmap) if (TAILQ_EMPTY(&m->md.pv_list)) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); if (TAILQ_EMPTY(&pvh->pv_list)) - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); } } pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); @@ -4199,17 +4196,17 @@ pmap_is_modified(vm_page_t m) { boolean_t rv; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_is_modified: page %p is not managed", m)); /* - * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be - * concurrently set while the object is locked. Thus, if PG_WRITEABLE + * If the page is not VPO_BUSY, then PGA_WRITEABLE cannot be + * concurrently set while the object is locked. Thus, if PGA_WRITEABLE * is clear, no PTEs can have PG_M set. */ VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); if ((m->oflags & VPO_BUSY) == 0 && - (m->flags & PG_WRITEABLE) == 0) + (m->aflags & PGA_WRITEABLE) == 0) return (FALSE); vm_page_lock_queues(); rv = pmap_is_modified_pvh(&m->md) || @@ -4280,7 +4277,7 @@ pmap_is_referenced(vm_page_t m) { boolean_t rv; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_is_referenced: page %p is not managed", m)); vm_page_lock_queues(); rv = pmap_is_referenced_pvh(&m->md) || @@ -4328,17 +4325,17 @@ pmap_remove_write(vm_page_t m) pt_entry_t oldpte, *pte; vm_offset_t va; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_remove_write: page %p is not managed", m)); /* - * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by - * another thread while the object is locked. Thus, if PG_WRITEABLE + * If the page is not VPO_BUSY, then PGA_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PGA_WRITEABLE * is clear, no page table entries need updating. */ VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); if ((m->oflags & VPO_BUSY) == 0 && - (m->flags & PG_WRITEABLE) == 0) + (m->aflags & PGA_WRITEABLE) == 0) return; vm_page_lock_queues(); pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); @@ -4370,7 +4367,7 @@ retry: } PMAP_UNLOCK(pmap); } - vm_page_flag_clear(m, PG_WRITEABLE); + vm_page_aflag_clear(m, PGA_WRITEABLE); vm_page_unlock_queues(); } @@ -4397,7 +4394,7 @@ pmap_ts_referenced(vm_page_t m) vm_offset_t va; int rtval = 0; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_ts_referenced: page %p is not managed", m)); pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); vm_page_lock_queues(); @@ -4471,18 +4468,18 @@ pmap_clear_modify(vm_page_t m) pt_entry_t oldpte, *pte; vm_offset_t va; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_clear_modify: page %p is not managed", m)); VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); KASSERT((m->oflags & VPO_BUSY) == 0, ("pmap_clear_modify: page %p is busy", m)); /* - * If the page is not PG_WRITEABLE, then no PTEs can have PG_M set. + * If the page is not PGA_WRITEABLE, then no PTEs can have PG_M set. * If the object containing the page is locked and the page is not - * VPO_BUSY, then PG_WRITEABLE cannot be concurrently set. + * VPO_BUSY, then PGA_WRITEABLE cannot be concurrently set. */ - if ((m->flags & PG_WRITEABLE) == 0) + if ((m->aflags & PGA_WRITEABLE) == 0) return; vm_page_lock_queues(); pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); @@ -4548,7 +4545,7 @@ pmap_clear_reference(vm_page_t m) pt_entry_t *pte; vm_offset_t va; - KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_clear_reference: page %p is not managed", m)); vm_page_lock_queues(); pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); Modified: projects/pseries/amd64/amd64/support.S ============================================================================== --- projects/pseries/amd64/amd64/support.S Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/support.S Sun Nov 20 21:47:25 2011 (r227772) @@ -38,18 +38,6 @@ #include "assym.s" - .data - ALIGN_DATA - .globl intrcnt, eintrcnt -intrcnt: - .space INTRCNT_COUNT * 8 -eintrcnt: - - .globl intrnames, eintrnames -intrnames: - .space INTRCNT_COUNT * (MAXCOMLEN + 1) -eintrnames: - .text /* Modified: projects/pseries/amd64/amd64/sys_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/sys_machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/sys_machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -203,6 +203,10 @@ sysarch(td, uap) case I386_SET_IOPERM: default: +#ifdef KTRACE + if (KTRPOINT(td, KTR_CAPFAIL)) + ktrcapfail(CAPFAIL_SYSCALL, 0, 0); +#endif return (ECAPMODE); } } Modified: projects/pseries/amd64/amd64/trap.c ============================================================================== --- projects/pseries/amd64/amd64/trap.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/trap.c Sun Nov 20 21:47:25 2011 (r227772) @@ -125,7 +125,7 @@ void dblfault_handler(struct trapframe * static int trap_pfault(struct trapframe *, int); static void trap_fatal(struct trapframe *, vm_offset_t); -#define MAX_TRAP_MSG 30 +#define MAX_TRAP_MSG 33 static char *trap_msg[] = { "", /* 0 unused */ "privileged instruction fault", /* 1 T_PRIVINFLT */ @@ -158,6 +158,9 @@ static char *trap_msg[] = { "machine check trap", /* 28 T_MCHK */ "SIMD floating-point exception", /* 29 T_XMMFLT */ "reserved (unknown) fault", /* 30 T_RESERVED */ + "", /* 31 unused (reserved) */ + "DTrace pid return trap", /* 32 T_DTRACE_RET */ + "DTrace fasttrap probe trap", /* 33 T_DTRACE_PROBE */ }; #ifdef KDB @@ -245,28 +248,26 @@ trap(struct trapframe *frame) * handled the trap and modified the trap frame so that this * function can return normally. */ - if (dtrace_trap_func != NULL) - if ((*dtrace_trap_func)(frame, type)) - goto out; if (type == T_DTRACE_PROBE || type == T_DTRACE_RET || type == T_BPTFLT) { struct reg regs; - + fill_frame_regs(frame, ®s); if (type == T_DTRACE_PROBE && dtrace_fasttrap_probe_ptr != NULL && dtrace_fasttrap_probe_ptr(®s) == 0) - goto out; - if (type == T_BPTFLT && + goto out; + else if (type == T_BPTFLT && dtrace_pid_probe_ptr != NULL && dtrace_pid_probe_ptr(®s) == 0) - goto out; - if (type == T_DTRACE_RET && + goto out; + else if (type == T_DTRACE_RET && dtrace_return_probe_ptr != NULL && dtrace_return_probe_ptr(®s) == 0) goto out; - } + if (dtrace_trap_func != NULL && (*dtrace_trap_func)(frame, type)) + goto out; #endif if ((frame->tf_rflags & PSL_I) == 0) { @@ -674,6 +675,19 @@ trap_pfault(frame, usermode) goto nogo; map = &vm->vm_map; + + /* + * When accessing a usermode address, kernel must be + * ready to accept the page fault, and provide a + * handling routine. Since accessing the address + * without the handler is a bug, do not try to handle + * it normally, and panic immediately. + */ + if (!usermode && (td->td_intr_nesting_level != 0 || + PCPU_GET(curpcb)->pcb_onfault == NULL)) { + trap_fatal(frame, eva); + return (-1); + } } /* @@ -883,41 +897,37 @@ cpu_fetch_syscall_args(struct thread *td return (error); } +#include "../../kern/subr_syscall.c" + /* - * syscall - system call request C handler - * - * A system call is essentially treated as a trap. + * System call handler for native binaries. The trap frame is already + * set up by the assembler trampoline and a pointer to it is saved in + * td_frame. */ void -syscall(struct trapframe *frame) +amd64_syscall(struct thread *td, int traced) { - struct thread *td; struct syscall_args sa; - register_t orig_tf_rflags; int error; ksiginfo_t ksi; #ifdef DIAGNOSTIC - if (ISPL(frame->tf_cs) != SEL_UPL) { + if (ISPL(td->td_frame->tf_cs) != SEL_UPL) { panic("syscall"); /* NOT REACHED */ } #endif - orig_tf_rflags = frame->tf_rflags; - td = curthread; - td->td_frame = frame; - error = syscallenter(td, &sa); /* * Traced syscall. */ - if (orig_tf_rflags & PSL_T) { - frame->tf_rflags &= ~PSL_T; + if (__predict_false(traced)) { + td->td_frame->tf_rflags &= ~PSL_T; ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGTRAP; ksi.ksi_code = TRAP_TRACE; - ksi.ksi_addr = (void *)frame->tf_rip; + ksi.ksi_addr = (void *)td->td_frame->tf_rip; trapsignal(td, &ksi); } Modified: projects/pseries/amd64/amd64/uma_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/uma_machdep.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/amd64/uma_machdep.c Sun Nov 20 21:47:25 2011 (r227772) @@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$"); void * uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) { - static vm_pindex_t colour; vm_page_t m; vm_paddr_t pa; void *va; @@ -50,13 +49,13 @@ uma_small_alloc(uma_zone_t zone, int byt *flags = UMA_SLAB_PRIV; if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT | VM_ALLOC_WIRED; + pflags = VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED; else - pflags = VM_ALLOC_SYSTEM | VM_ALLOC_WIRED; + pflags = VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED; if (wait & M_ZERO) pflags |= VM_ALLOC_ZERO; for (;;) { - m = vm_page_alloc(NULL, colour++, pflags | VM_ALLOC_NOOBJ); + m = vm_page_alloc(NULL, 0, pflags); if (m == NULL) { if (wait & M_NOWAIT) return (NULL); Modified: projects/pseries/amd64/conf/DEFAULTS ============================================================================== --- projects/pseries/amd64/conf/DEFAULTS Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/conf/DEFAULTS Sun Nov 20 21:47:25 2011 (r227772) @@ -22,3 +22,6 @@ options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR options NEW_PCIB + +# Allow mounting non-MPSAFE filesystems +options VFS_ALLOW_NONMPSAFE Modified: projects/pseries/amd64/conf/GENERIC ============================================================================== --- projects/pseries/amd64/conf/GENERIC Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/conf/GENERIC Sun Nov 20 21:47:25 2011 (r227772) @@ -37,7 +37,7 @@ options MD_ROOT # MD is a potential r options NFSCL # New Network Filesystem Client options NFSD # New Network Filesystem Server options NFSLOCKD # Network Lock Manager -options NFS_ROOT # NFS usable as /, requires NFSCLIENT +options NFS_ROOT # NFS usable as /, requires NFSCL options MSDOSFS # MSDOS Filesystem options CD9660 # ISO 9660 Filesystem options PROCFS # Process filesystem (requires PSEUDOFS) @@ -65,8 +65,11 @@ options MAC # TrustedBSD MAC Framewor #options KDTRACE_HOOKS # Kernel DTrace hooks options INCLUDE_CONFIG_FILE # Include this file in kernel -# Debugging for use in -current +# Debugging support. Always need this: options KDB # Enable kernel debugger support. +# For minimum debugger support (stable branch) use: +#options KDB_TRACE # Print a stack trace for a panic. +# For full debugger support use this instead: options DDB # Support DDB. options GDB # Support remote GDB. options DEADLKRES # Enable the deadlock resolver @@ -104,7 +107,7 @@ options AHC_REG_PRETTY_PRINT # Print re device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. -device amd # AMD 53C974 (Tekram DC-390(T)) +device esp # AMD Am53C974 (Tekram DC-390(T)) device hptiop # Highpoint RocketRaid 3xxx series device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module @@ -151,6 +154,7 @@ device mlx # Mylex DAC960 family #XXX pointer/int warnings #device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID +device tws # LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller @@ -186,10 +190,7 @@ device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Requires scbus and da -# If you've got a "dumb" serial or parallel PCI card that is -# supported by the puc(4) glue driver, uncomment the following -# line to enable it (connects to sio, uart and/or ppc drivers): -#device puc +device puc # Multi I/O cards and multi-channel UARTs # PCI Ethernet NICs. device bxe # Broadcom BCM57710/BCM57711/BCM57711E 10Gb Ethernet @@ -329,11 +330,12 @@ device uath # Atheros AR5523 wireless device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs +device zyd # ZyDAS zd1211/zd1211b wireless NICs # FireWire support device firewire # FireWire bus code -device sbp # SCSI over FireWire (Requires scbus and da) +# sbp(4) works for some systems but causes boot failure on others +#device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) device fwip # IP over FireWire (RFC 2734,3146) device dcons # Dumb console driver @@ -346,3 +348,8 @@ device snd_hda # Intel High Definition device snd_ich # Intel, NVidia and other ICH AC'97 Audio device snd_uaudio # USB Audio device snd_via8233 # VIA VT8233x Audio + +# MMC/SD +device mmc # MMC/SD bus +device mmcsd # MMC/SD memory card +device sdhci # Generic PCI SD Host Controller Modified: projects/pseries/amd64/conf/NOTES ============================================================================== --- projects/pseries/amd64/conf/NOTES Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/conf/NOTES Sun Nov 20 21:47:25 2011 (r227772) @@ -490,6 +490,14 @@ options ENABLE_ALART # Control alarm o # options PMAP_SHPGPERPROC=201 +# +# Number of initial kernel page table pages used for early bootstrap. +# This number should include enough pages to map the kernel and any +# modules or other data loaded with the kernel by the loader. Each +# page table page maps 2MB. +# +options NKPT=31 + ##################################################################### # ABI Emulation Modified: projects/pseries/amd64/ia32/ia32_syscall.c ============================================================================== --- projects/pseries/amd64/ia32/ia32_syscall.c Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/ia32/ia32_syscall.c Sun Nov 20 21:47:25 2011 (r227772) @@ -163,6 +163,8 @@ ia32_fetch_syscall_args(struct thread *t return (error); } +#include "../../kern/subr_syscall.c" + void ia32_syscall(struct trapframe *frame) { Modified: projects/pseries/amd64/include/_stdint.h ============================================================================== --- projects/pseries/amd64/include/_stdint.h Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/include/_stdint.h Sun Nov 20 21:47:25 2011 (r227772) @@ -150,8 +150,8 @@ #define PTRDIFF_MAX INT64_MAX /* Limits of sig_atomic_t. */ -#define SIG_ATOMIC_MIN INT32_MIN -#define SIG_ATOMIC_MAX INT32_MAX +#define SIG_ATOMIC_MIN LONG_MIN +#define SIG_ATOMIC_MAX LONG_MAX /* Limit of size_t. */ #define SIZE_MAX UINT64_MAX Modified: projects/pseries/amd64/include/ieeefp.h ============================================================================== --- projects/pseries/amd64/include/ieeefp.h Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/include/ieeefp.h Sun Nov 20 21:47:25 2011 (r227772) @@ -39,6 +39,8 @@ #define _MACHINE_IEEEFP_H_ /* + * Deprecated historical FPU control interface + * * IEEE floating point type, constant and function definitions. * XXX: {FP,SSE}*FLD and {FP,SSE}*OFF are undocumented pollution. */ @@ -287,13 +289,16 @@ __fpgetsticky(void) #define fpsetprec(m) __fpsetprec(m) #define fpsetround(m) __fpsetround(m) -/* Suppress prototypes in the MI header. */ -#define _IEEEFP_INLINED_ 1 - #else /* !(!__IEEEFP_NOINLINES__ && __GNUCLIKE_ASM) */ /* Augment the userland declarations. */ __BEGIN_DECLS +extern fp_rnd_t fpgetround(void); +extern fp_rnd_t fpsetround(fp_rnd_t); +extern fp_except_t fpgetmask(void); +extern fp_except_t fpsetmask(fp_except_t); +extern fp_except_t fpgetsticky(void); +extern fp_except_t fpsetsticky(fp_except_t); fp_prec_t fpgetprec(void); fp_prec_t fpsetprec(fp_prec_t); __END_DECLS Modified: projects/pseries/amd64/include/md_var.h ============================================================================== --- projects/pseries/amd64/include/md_var.h Sun Nov 20 20:05:47 2011 (r227771) +++ projects/pseries/amd64/include/md_var.h Sun Nov 20 21:47:25 2011 (r227772) @@ -75,6 +75,7 @@ struct fpreg; struct dbreg; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Nov 20 23:52:33 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FA13106564A; Sun, 20 Nov 2011 23:52:33 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from alto.onthenet.com.au (alto.OntheNet.com.au [203.13.68.12]) by mx1.freebsd.org (Postfix) with ESMTP id 3AE738FC0C; Sun, 20 Nov 2011 23:52:33 +0000 (UTC) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by alto.onthenet.com.au (Postfix) with ESMTPS id 32E8D11C3A; Mon, 21 Nov 2011 09:34:47 +1000 (EST) Received: from Peter-Grehans-MacBook-Pro.local (c-67-161-203-10.hsd1.co.comcast.net [67.161.203.10]) by dommail.onthenet.com.au (MOS 4.2.4-GA) with ESMTP id BAK79906 (AUTH peterg@ptree32.com.au); Mon, 21 Nov 2011 09:34:44 +1000 Message-ID: <4EC98E99.9000601@freebsd.org> Date: Sun, 20 Nov 2011 16:34:49 -0700 From: Peter Grehan User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.24) Gecko/20111103 Thunderbird/3.1.16 MIME-Version: 1.0 To: Nathan Whitehorn References: <201111202147.pAKLlR0i010700@svn.freebsd.org> In-Reply-To: <201111202147.pAKLlR0i010700@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Junkmail-Info: RCVD_IN_PBL,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,SPF_SOFTFAIL X-Junkmail-Status: score=29/51, host=dommail.onthenet.com.au Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r227772 - in projects/pseries: amd64/amd64 amd64/conf amd64/ia32 amd64/include amd64/linux32 arm/arm arm/at91 arm/conf arm/econa arm/include arm/mv arm/sa11x0 arm/xscale/i80321 arm/xsca... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Nov 2011 23:52:33 -0000 Hi Nathan, > IFC @ r227771. Of particular interest here are virtio drivers, which > should be useful for the QEMU pSeries emulation. One thing to look out for is that the virtio spec has PCI register access in host-order, so you may need to switch in big-endian bus ops. later, Peter. From owner-svn-src-projects@FreeBSD.ORG Mon Nov 21 05:41:03 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF99D106566B; Mon, 21 Nov 2011 05:41:03 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from agogare.doit.wisc.edu (agogare.doit.wisc.edu [144.92.197.211]) by mx1.freebsd.org (Postfix) with ESMTP id A088B8FC0A; Mon, 21 Nov 2011 05:41:03 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LUZ00400UCE0T00@smtpauth2.wiscmail.wisc.edu>; Sun, 20 Nov 2011 22:41:02 -0600 (CST) Received: from comporellon.tachypleus.net ([unknown] [76.210.72.96]) by smtpauth2.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LUZ00CV1UCCGT20@smtpauth2.wiscmail.wisc.edu>; Sun, 20 Nov 2011 22:41:01 -0600 (CST) Date: Sun, 20 Nov 2011 22:41:00 -0600 From: Nathan Whitehorn In-reply-to: <4EC98E99.9000601@freebsd.org> To: Peter Grehan Message-id: <4EC9D65C.6050106@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.72.96 X-Spam-PmxInfo: Server=avs-13, Version=5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.11.21.43315, SenderIP=76.210.72.96 References: <201111202147.pAKLlR0i010700@svn.freebsd.org> <4EC98E99.9000601@freebsd.org> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:8.0) Gecko/20111113 Thunderbird/8.0 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r227772 - in projects/pseries: amd64/amd64 amd64/conf amd64/ia32 amd64/include amd64/linux32 arm/arm arm/at91 arm/conf arm/econa arm/include arm/mv arm/sa11x0 arm/xscale/i80321 arm/xsca... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Nov 2011 05:41:03 -0000 On 11/20/11 17:34, Peter Grehan wrote: > Hi Nathan, > >> IFC @ r227771. Of particular interest here are virtio drivers, which >> should be useful for the QEMU pSeries emulation. > > One thing to look out for is that the virtio spec has PCI register > access in host-order, so you may need to switch in big-endian bus ops. > > later, > > Peter. Is it worth making some generic way to avoid regular bus accessors? It also needs to avoid regular bus dma calls, since the spec indicates finger-of-God accesses that bypass any emulated IOMMU that busdma would ordinarily try to use. -Nathan From owner-svn-src-projects@FreeBSD.ORG Mon Nov 21 19:03:10 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14776106566C; Mon, 21 Nov 2011 19:03:10 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from alto.onthenet.com.au (alto.OntheNet.com.au [203.13.68.12]) by mx1.freebsd.org (Postfix) with ESMTP id C19BF8FC36; Mon, 21 Nov 2011 19:03:09 +0000 (UTC) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by alto.onthenet.com.au (Postfix) with ESMTPS id E83C611DBB; Tue, 22 Nov 2011 05:03:07 +1000 (EST) Received: from Peter-Grehans-MacBook-Pro.local (c-67-161-203-10.hsd1.co.comcast.net [67.161.203.10]) by dommail.onthenet.com.au (MOS 4.2.4-GA) with ESMTP id BAL29681 (AUTH peterg@ptree32.com.au); Tue, 22 Nov 2011 05:03:05 +1000 Message-ID: <4ECAA067.7060906@freebsd.org> Date: Mon, 21 Nov 2011 12:03:03 -0700 From: Peter Grehan User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.24) Gecko/20111103 Thunderbird/3.1.16 MIME-Version: 1.0 To: Nathan Whitehorn References: <201111202147.pAKLlR0i010700@svn.freebsd.org> <4EC98E99.9000601@freebsd.org> <4EC9D65C.6050106@freebsd.org> In-Reply-To: <4EC9D65C.6050106@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Junkmail-Info: RCVD_IN_PBL,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,SPF_SOFTFAIL X-Junkmail-Status: score=29/51, host=dommail.onthenet.com.au Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org, bv Subject: Re: svn commit: r227772 - in projects/pseries: amd64/amd64 amd64/conf amd64/ia32 amd64/include amd64/linux32 arm/arm arm/at91 arm/conf arm/econa arm/include arm/mv arm/sa11x0 arm/xscale/i80321 arm/xsca... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Nov 2011 19:03:10 -0000 Hi Nathan, (cc'ing Bryan, virtio author) >> One thing to look out for is that the virtio spec has PCI register >> access in host-order, so you may need to switch in big-endian bus ops. ... > Is it worth making some generic way to avoid regular bus accessors? It > also needs to avoid regular bus dma calls, since the spec indicates > finger-of-God accesses that bypass any emulated IOMMU that busdma would > ordinarily try to use. The PCI interface for virtio specifies i/o space for device register access - that still needs bus space on x86 to get the right instructions issued. But, there's also a recent proposal to have additional BARs accessed via MMIO and not i/o. At least on x86 this still fits in fine with the standard PCI driver model. Is the p-series i/f a memory-mapped local-bus style of access, or is it via a pseudo PCI bus ? later, Peter. From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 02:28:01 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C513D1065674; Tue, 22 Nov 2011 02:28:01 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B02078FC15; Tue, 22 Nov 2011 02:28:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAM2S1os070150; Tue, 22 Nov 2011 02:28:01 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAM2S14S070131; Tue, 22 Nov 2011 02:28:01 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201111220228.pAM2S14S070131@svn.freebsd.org> From: Peter Grehan Date: Tue, 22 Nov 2011 02:28:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227811 - in projects/bhyve: . bin/cat bin/ln bin/mkdir bin/mv bin/ps bin/rm bin/sh bin/test cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/c... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 02:28:01 -0000 Author: grehan Date: Tue Nov 22 02:27:59 2011 New Revision: 227811 URL: http://svn.freebsd.org/changeset/base/227811 Log: IFC @ r227804 Pull in the virtio drivers from head. Added: projects/bhyve/contrib/binutils/ld/emulparams/elf64ppc_fbsd.sh - copied unchanged from r227804, head/contrib/binutils/ld/emulparams/elf64ppc_fbsd.sh projects/bhyve/include/_xlocale_ctype.h - copied unchanged from r227804, head/include/_xlocale_ctype.h projects/bhyve/include/xlocale.h - copied unchanged from r227804, head/include/xlocale.h projects/bhyve/lib/libc/locale/DESIGN.xlocale - copied unchanged from r227804, head/lib/libc/locale/DESIGN.xlocale projects/bhyve/lib/libc/locale/ctype.c - copied unchanged from r227804, head/lib/libc/locale/ctype.c projects/bhyve/lib/libc/locale/duplocale.3 - copied unchanged from r227804, head/lib/libc/locale/duplocale.3 projects/bhyve/lib/libc/locale/freelocale.3 - copied unchanged from r227804, head/lib/libc/locale/freelocale.3 projects/bhyve/lib/libc/locale/newlocale.3 - copied unchanged from r227804, head/lib/libc/locale/newlocale.3 projects/bhyve/lib/libc/locale/querylocale.3 - copied unchanged from r227804, head/lib/libc/locale/querylocale.3 projects/bhyve/lib/libc/locale/uselocale.3 - copied unchanged from r227804, head/lib/libc/locale/uselocale.3 projects/bhyve/lib/libc/locale/xlocale.3 - copied unchanged from r227804, head/lib/libc/locale/xlocale.3 projects/bhyve/lib/libc/locale/xlocale.c - copied unchanged from r227804, head/lib/libc/locale/xlocale.c projects/bhyve/lib/libc/locale/xlocale_private.h - copied unchanged from r227804, head/lib/libc/locale/xlocale_private.h projects/bhyve/lib/libc/sys/ffclock.2 - copied unchanged from r227804, head/lib/libc/sys/ffclock.2 projects/bhyve/lib/libc/sys/posix_fadvise.2 - copied unchanged from r227804, head/lib/libc/sys/posix_fadvise.2 projects/bhyve/share/man/man4/netmap.4 - copied unchanged from r227804, head/share/man/man4/netmap.4 projects/bhyve/share/man/man4/qlxgb.4 - copied unchanged from r227804, head/share/man/man4/qlxgb.4 projects/bhyve/share/man/man4/sfxge.4 - copied unchanged from r227804, head/share/man/man4/sfxge.4 projects/bhyve/share/man/man4/virtio.4 - copied unchanged from r227804, head/share/man/man4/virtio.4 projects/bhyve/share/man/man4/virtio_balloon.4 - copied unchanged from r227804, head/share/man/man4/virtio_balloon.4 projects/bhyve/share/man/man4/virtio_blk.4 - copied unchanged from r227804, head/share/man/man4/virtio_blk.4 projects/bhyve/share/man/man4/vtnet.4 - copied unchanged from r227804, head/share/man/man4/vtnet.4 projects/bhyve/sys/boot/fdt/dts/p1020rdb.dts - copied unchanged from r227804, head/sys/boot/fdt/dts/p1020rdb.dts projects/bhyve/sys/boot/fdt/dts/p2020ds.dts - copied unchanged from r227804, head/sys/boot/fdt/dts/p2020ds.dts projects/bhyve/sys/boot/fdt/dts/p3041ds.dts - copied unchanged from r227804, head/sys/boot/fdt/dts/p3041ds.dts projects/bhyve/sys/dev/cesa/ - copied from r227804, head/sys/dev/cesa/ projects/bhyve/sys/dev/esp/am53c974reg.h - copied unchanged from r227804, head/sys/dev/esp/am53c974reg.h projects/bhyve/sys/dev/esp/esp_pci.c - copied unchanged from r227804, head/sys/dev/esp/esp_pci.c projects/bhyve/sys/dev/mii/mii_bitbang.c - copied unchanged from r227804, head/sys/dev/mii/mii_bitbang.c projects/bhyve/sys/dev/mii/mii_bitbang.h - copied unchanged from r227804, head/sys/dev/mii/mii_bitbang.h projects/bhyve/sys/dev/netmap/ - copied from r227804, head/sys/dev/netmap/ projects/bhyve/sys/dev/qlxgb/ - copied from r227804, head/sys/dev/qlxgb/ projects/bhyve/sys/dev/sfxge/ - copied from r227804, head/sys/dev/sfxge/ projects/bhyve/sys/dev/virtio/ - copied from r227804, head/sys/dev/virtio/ projects/bhyve/sys/kern/kern_ffclock.c - copied unchanged from r227804, head/sys/kern/kern_ffclock.c projects/bhyve/sys/libkern/iconv_ucs.c - copied unchanged from r227804, head/sys/libkern/iconv_ucs.c projects/bhyve/sys/mips/conf/std.XLP - copied unchanged from r227804, head/sys/mips/conf/std.XLP projects/bhyve/sys/mips/nlm/hal/nlm_hal.c - copied unchanged from r227804, head/sys/mips/nlm/hal/nlm_hal.c projects/bhyve/sys/modules/qlxgb/ - copied from r227804, head/sys/modules/qlxgb/ projects/bhyve/sys/modules/sfxge/ - copied from r227804, head/sys/modules/sfxge/ projects/bhyve/sys/modules/virtio/ - copied from r227804, head/sys/modules/virtio/ projects/bhyve/sys/net/netmap.h - copied unchanged from r227804, head/sys/net/netmap.h projects/bhyve/sys/net/netmap_user.h - copied unchanged from r227804, head/sys/net/netmap_user.h projects/bhyve/sys/sys/_ffcounter.h - copied unchanged from r227804, head/sys/sys/_ffcounter.h projects/bhyve/sys/sys/timeffc.h - copied unchanged from r227804, head/sys/sys/timeffc.h projects/bhyve/tools/regression/bin/sh/builtins/for1.0 - copied unchanged from r227804, head/tools/regression/bin/sh/builtins/for1.0 projects/bhyve/tools/regression/bin/sh/parameters/optind1.0 - copied unchanged from r227804, head/tools/regression/bin/sh/parameters/optind1.0 projects/bhyve/tools/regression/lib/libc/gen/test-arc4random.c - copied unchanged from r227804, head/tools/regression/lib/libc/gen/test-arc4random.c projects/bhyve/tools/tools/netmap/ - copied from r227804, head/tools/tools/netmap/ Deleted: projects/bhyve/sys/mips/nlm/uart_bus_xlp_iodi.c Modified: projects/bhyve/Makefile projects/bhyve/Makefile.inc1 projects/bhyve/ObsoleteFiles.inc projects/bhyve/UPDATING projects/bhyve/bin/cat/cat.c projects/bhyve/bin/ln/ln.c projects/bhyve/bin/mkdir/mkdir.c projects/bhyve/bin/mv/mv.c projects/bhyve/bin/ps/print.c projects/bhyve/bin/ps/ps.1 projects/bhyve/bin/rm/rm.c projects/bhyve/bin/sh/arith_yacc.c projects/bhyve/bin/sh/options.c projects/bhyve/bin/sh/sh.1 projects/bhyve/bin/test/test.c projects/bhyve/cddl/contrib/opensolaris/cmd/zdb/zdb.8 projects/bhyve/cddl/contrib/opensolaris/cmd/zfs/zfs.8 projects/bhyve/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/bhyve/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/bhyve/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1 projects/bhyve/cddl/lib/libzfs/Makefile projects/bhyve/cddl/sbin/zfs/Makefile projects/bhyve/cddl/sbin/zpool/Makefile projects/bhyve/cddl/usr.bin/zinject/Makefile projects/bhyve/cddl/usr.bin/ztest/Makefile projects/bhyve/cddl/usr.sbin/zdb/Makefile projects/bhyve/contrib/bind9/CHANGES projects/bhyve/contrib/bind9/bin/named/query.c projects/bhyve/contrib/bind9/lib/dns/rbtdb.c projects/bhyve/contrib/bind9/version projects/bhyve/contrib/gcc/config/arm/arm.c projects/bhyve/contrib/gcc/config/rs6000/freebsd.h projects/bhyve/contrib/gdtoa/gdtoaimp.h projects/bhyve/contrib/gdtoa/strtod.c projects/bhyve/contrib/gdtoa/strtodg.c projects/bhyve/contrib/gdtoa/strtof.c projects/bhyve/contrib/gdtoa/strtorQ.c projects/bhyve/contrib/gdtoa/strtord.c projects/bhyve/contrib/gdtoa/strtorx.c projects/bhyve/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/bhyve/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/bhyve/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/bhyve/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/bhyve/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h projects/bhyve/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/bhyve/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/bhyve/contrib/tzcode/stdtime/localtime.c projects/bhyve/contrib/tzdata/australasia projects/bhyve/contrib/tzdata/backward projects/bhyve/contrib/tzdata/europe projects/bhyve/contrib/tzdata/northamerica projects/bhyve/contrib/tzdata/zone.tab projects/bhyve/etc/defaults/periodic.conf projects/bhyve/etc/devfs.conf projects/bhyve/etc/periodic/daily/310.accounting projects/bhyve/etc/periodic/daily/800.scrub-zfs projects/bhyve/etc/rc.d/dhclient projects/bhyve/etc/rc.d/nfsd projects/bhyve/etc/rc.d/routing projects/bhyve/etc/rc.d/syscons projects/bhyve/etc/rc.resume projects/bhyve/etc/rc.subr projects/bhyve/games/bcd/bcd.c projects/bhyve/games/caesar/caesar.c projects/bhyve/games/fortune/datfiles/fortunes projects/bhyve/games/fortune/fortune/fortune.c projects/bhyve/games/fortune/unstr/unstr.c projects/bhyve/games/grdc/grdc.c projects/bhyve/games/morse/morse.c projects/bhyve/games/number/number.c projects/bhyve/gnu/lib/libstdc++/config.h projects/bhyve/gnu/usr.bin/binutils/ld/Makefile.powerpc projects/bhyve/gnu/usr.bin/binutils/ld/Makefile.powerpc64 projects/bhyve/include/Makefile projects/bhyve/include/ctype.h projects/bhyve/include/locale.h projects/bhyve/include/runetype.h projects/bhyve/include/stdio.h projects/bhyve/include/stdlib.h projects/bhyve/include/wchar.h projects/bhyve/include/wctype.h projects/bhyve/lib/clang/clang.build.mk projects/bhyve/lib/clang/include/llvm/Config/config.h projects/bhyve/lib/clang/include/llvm/Config/llvm-config.h projects/bhyve/lib/libc/amd64/gen/setjmp.S projects/bhyve/lib/libc/amd64/gen/sigsetjmp.S projects/bhyve/lib/libc/gdtoa/machdep_ldisQ.c projects/bhyve/lib/libc/gdtoa/machdep_ldisd.c projects/bhyve/lib/libc/gdtoa/machdep_ldisx.c projects/bhyve/lib/libc/gen/arc4random.c projects/bhyve/lib/libc/gen/fnmatch.c projects/bhyve/lib/libc/gen/getutxent.3 projects/bhyve/lib/libc/gen/glob.c projects/bhyve/lib/libc/gen/pututxline.c projects/bhyve/lib/libc/i386/gen/setjmp.S projects/bhyve/lib/libc/i386/gen/sigsetjmp.S projects/bhyve/lib/libc/locale/Makefile.inc projects/bhyve/lib/libc/locale/Symbol.map projects/bhyve/lib/libc/locale/ascii.c projects/bhyve/lib/libc/locale/big5.c projects/bhyve/lib/libc/locale/btowc.c projects/bhyve/lib/libc/locale/collate.c projects/bhyve/lib/libc/locale/collate.h projects/bhyve/lib/libc/locale/collcmp.c projects/bhyve/lib/libc/locale/euc.c projects/bhyve/lib/libc/locale/gb18030.c projects/bhyve/lib/libc/locale/gb2312.c projects/bhyve/lib/libc/locale/gbk.c projects/bhyve/lib/libc/locale/lmessages.c projects/bhyve/lib/libc/locale/lmessages.h projects/bhyve/lib/libc/locale/lmonetary.c projects/bhyve/lib/libc/locale/lmonetary.h projects/bhyve/lib/libc/locale/lnumeric.c projects/bhyve/lib/libc/locale/lnumeric.h projects/bhyve/lib/libc/locale/localeconv.3 projects/bhyve/lib/libc/locale/localeconv.c projects/bhyve/lib/libc/locale/mblen.c projects/bhyve/lib/libc/locale/mblocal.h projects/bhyve/lib/libc/locale/mbrlen.c projects/bhyve/lib/libc/locale/mbrtowc.c projects/bhyve/lib/libc/locale/mbsinit.c projects/bhyve/lib/libc/locale/mbsnrtowcs.c projects/bhyve/lib/libc/locale/mbsrtowcs.c projects/bhyve/lib/libc/locale/mbstowcs.c projects/bhyve/lib/libc/locale/mbtowc.c projects/bhyve/lib/libc/locale/mskanji.c projects/bhyve/lib/libc/locale/nextwctype.c projects/bhyve/lib/libc/locale/nl_langinfo.c projects/bhyve/lib/libc/locale/none.c projects/bhyve/lib/libc/locale/runetype.c projects/bhyve/lib/libc/locale/setlocale.c projects/bhyve/lib/libc/locale/setrunelocale.c projects/bhyve/lib/libc/locale/table.c projects/bhyve/lib/libc/locale/tolower.c projects/bhyve/lib/libc/locale/toupper.c projects/bhyve/lib/libc/locale/utf8.c projects/bhyve/lib/libc/locale/wcrtomb.c projects/bhyve/lib/libc/locale/wcsftime.c projects/bhyve/lib/libc/locale/wcsnrtombs.c projects/bhyve/lib/libc/locale/wcsrtombs.c projects/bhyve/lib/libc/locale/wcstod.c projects/bhyve/lib/libc/locale/wcstof.c projects/bhyve/lib/libc/locale/wcstoimax.c projects/bhyve/lib/libc/locale/wcstol.c projects/bhyve/lib/libc/locale/wcstold.c projects/bhyve/lib/libc/locale/wcstoll.c projects/bhyve/lib/libc/locale/wcstombs.c projects/bhyve/lib/libc/locale/wcstoul.c projects/bhyve/lib/libc/locale/wcstoull.c projects/bhyve/lib/libc/locale/wcstoumax.c projects/bhyve/lib/libc/locale/wctob.c projects/bhyve/lib/libc/locale/wctomb.c projects/bhyve/lib/libc/locale/wctrans.c projects/bhyve/lib/libc/locale/wctype.c projects/bhyve/lib/libc/locale/wcwidth.c projects/bhyve/lib/libc/net/sctp_sys_calls.c projects/bhyve/lib/libc/regex/regcomp.c projects/bhyve/lib/libc/stdio/Symbol.map projects/bhyve/lib/libc/stdio/asprintf.c projects/bhyve/lib/libc/stdio/fgetwc.c projects/bhyve/lib/libc/stdio/fgetwln.c projects/bhyve/lib/libc/stdio/fgetws.c projects/bhyve/lib/libc/stdio/fprintf.c projects/bhyve/lib/libc/stdio/fputwc.c projects/bhyve/lib/libc/stdio/fputws.c projects/bhyve/lib/libc/stdio/fscanf.c projects/bhyve/lib/libc/stdio/fwprintf.c projects/bhyve/lib/libc/stdio/fwscanf.c projects/bhyve/lib/libc/stdio/getwc.c projects/bhyve/lib/libc/stdio/getwchar.c projects/bhyve/lib/libc/stdio/local.h projects/bhyve/lib/libc/stdio/printf.c projects/bhyve/lib/libc/stdio/printfcommon.h projects/bhyve/lib/libc/stdio/putwc.c projects/bhyve/lib/libc/stdio/putwchar.c projects/bhyve/lib/libc/stdio/scanf.c projects/bhyve/lib/libc/stdio/snprintf.c projects/bhyve/lib/libc/stdio/sprintf.c projects/bhyve/lib/libc/stdio/sscanf.c projects/bhyve/lib/libc/stdio/swprintf.c projects/bhyve/lib/libc/stdio/swscanf.c projects/bhyve/lib/libc/stdio/ungetwc.c projects/bhyve/lib/libc/stdio/vasprintf.c projects/bhyve/lib/libc/stdio/vdprintf.c projects/bhyve/lib/libc/stdio/vfprintf.c projects/bhyve/lib/libc/stdio/vfscanf.c projects/bhyve/lib/libc/stdio/vfwprintf.c projects/bhyve/lib/libc/stdio/vfwscanf.c projects/bhyve/lib/libc/stdio/vprintf.c projects/bhyve/lib/libc/stdio/vscanf.c projects/bhyve/lib/libc/stdio/vsnprintf.c projects/bhyve/lib/libc/stdio/vsprintf.c projects/bhyve/lib/libc/stdio/vsscanf.c projects/bhyve/lib/libc/stdio/vswprintf.c projects/bhyve/lib/libc/stdio/vswscanf.c projects/bhyve/lib/libc/stdio/vwprintf.c projects/bhyve/lib/libc/stdio/vwscanf.c projects/bhyve/lib/libc/stdio/wprintf.c projects/bhyve/lib/libc/stdio/wscanf.c projects/bhyve/lib/libc/stdlib/Symbol.map projects/bhyve/lib/libc/stdlib/atof.c projects/bhyve/lib/libc/stdlib/atoi.c projects/bhyve/lib/libc/stdlib/atol.c projects/bhyve/lib/libc/stdlib/atoll.c projects/bhyve/lib/libc/stdlib/realpath.c projects/bhyve/lib/libc/stdlib/strfmon.c projects/bhyve/lib/libc/stdlib/strtoimax.c projects/bhyve/lib/libc/stdlib/strtol.c projects/bhyve/lib/libc/stdlib/strtoll.c projects/bhyve/lib/libc/stdlib/strtoul.c projects/bhyve/lib/libc/stdlib/strtoull.c projects/bhyve/lib/libc/stdlib/strtoumax.c projects/bhyve/lib/libc/stdtime/strftime.c projects/bhyve/lib/libc/stdtime/strptime.c projects/bhyve/lib/libc/stdtime/timelocal.c projects/bhyve/lib/libc/stdtime/timelocal.h projects/bhyve/lib/libc/string/Symbol.map projects/bhyve/lib/libc/string/strcasecmp.c projects/bhyve/lib/libc/string/strcasestr.c projects/bhyve/lib/libc/string/strcoll.c projects/bhyve/lib/libc/string/strxfrm.c projects/bhyve/lib/libc/string/wcscoll.c projects/bhyve/lib/libc/string/wcswidth.c projects/bhyve/lib/libc/string/wcsxfrm.c projects/bhyve/lib/libc/sys/Makefile.inc projects/bhyve/lib/libc/sys/Symbol.map projects/bhyve/lib/libc/sys/flock.2 projects/bhyve/lib/libc/sys/getsockopt.2 projects/bhyve/lib/libc/sys/madvise.2 projects/bhyve/lib/libc/sys/stat.2 projects/bhyve/lib/libkiconv/xlat16_iconv.c projects/bhyve/lib/libpam/Makefile.inc projects/bhyve/lib/libpam/modules/Makefile.inc projects/bhyve/lib/libpam/modules/pam_lastlog/pam_lastlog.c projects/bhyve/lib/libpam/modules/pam_ssh/pam_ssh.c projects/bhyve/lib/libpam/modules/pam_unix/pam_unix.8 projects/bhyve/lib/libpam/modules/pam_unix/pam_unix.c projects/bhyve/lib/librt/timer.c projects/bhyve/lib/libthr/thread/thr_umtx.c projects/bhyve/lib/libusb/Makefile projects/bhyve/lib/libusb/libusb.3 projects/bhyve/lib/libusb/libusb.h projects/bhyve/lib/libusb/libusb10_desc.c projects/bhyve/lib/libusb/libusb20_desc.c projects/bhyve/lib/libusb/libusb20_desc.h projects/bhyve/lib/msun/src/math.h projects/bhyve/libexec/rshd/rshd.c projects/bhyve/libexec/rtld-elf/rtld.c projects/bhyve/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/bhyve/release/doc/share/misc/dev.archlist.txt projects/bhyve/release/generate-release.sh projects/bhyve/release/ia64/mkisoimages.sh projects/bhyve/rescue/rescue/Makefile projects/bhyve/sbin/atm/atmconfig/atmconfig_device.c projects/bhyve/sbin/atm/atmconfig/diag.c projects/bhyve/sbin/atm/atmconfig/main.c projects/bhyve/sbin/badsect/badsect.c projects/bhyve/sbin/bsdlabel/bsdlabel.c projects/bhyve/sbin/camcontrol/camcontrol.c projects/bhyve/sbin/ccdconfig/ccdconfig.c projects/bhyve/sbin/devfs/rule.c projects/bhyve/sbin/dmesg/dmesg.c projects/bhyve/sbin/dumpfs/dumpfs.c projects/bhyve/sbin/fdisk/fdisk.8 projects/bhyve/sbin/fdisk/fdisk.c projects/bhyve/sbin/fdisk_pc98/fdisk.8 projects/bhyve/sbin/ffsinfo/Makefile projects/bhyve/sbin/ffsinfo/ffsinfo.c projects/bhyve/sbin/fsck/fsck.c projects/bhyve/sbin/fsck/preen.c projects/bhyve/sbin/fsck_msdosfs/dir.c projects/bhyve/sbin/fsirand/fsirand.c projects/bhyve/sbin/geom/class/multipath/geom_multipath.c projects/bhyve/sbin/geom/class/multipath/gmultipath.8 projects/bhyve/sbin/geom/class/part/gpart.8 projects/bhyve/sbin/growfs/growfs.c projects/bhyve/sbin/gvinum/gvinum.c projects/bhyve/sbin/hastd/hast.conf.5 projects/bhyve/sbin/hastd/parse.y projects/bhyve/sbin/hastd/primary.c projects/bhyve/sbin/hastd/secondary.c projects/bhyve/sbin/ifconfig/af_inet.c projects/bhyve/sbin/ifconfig/ifconfig.8 projects/bhyve/sbin/ifconfig/ifieee80211.c projects/bhyve/sbin/init/init.c projects/bhyve/sbin/ipfw/ipfw.8 projects/bhyve/sbin/ipfw/main.c projects/bhyve/sbin/md5/md5.1 projects/bhyve/sbin/md5/md5.c projects/bhyve/sbin/mount/mount.c projects/bhyve/sbin/mount/mount_fs.c projects/bhyve/sbin/mount_cd9660/mount_cd9660.c projects/bhyve/sbin/mount_nfs/mount_nfs.8 projects/bhyve/sbin/mount_nfs/mount_nfs.c projects/bhyve/sbin/mount_nullfs/mount_nullfs.c projects/bhyve/sbin/mount_udf/mount_udf.c projects/bhyve/sbin/natd/natd.c projects/bhyve/sbin/newfs/mkfs.c projects/bhyve/sbin/newfs/newfs.h projects/bhyve/sbin/newfs_msdos/newfs_msdos.c projects/bhyve/sbin/rcorder/rcorder.c projects/bhyve/sbin/recoverdisk/recoverdisk.c projects/bhyve/sbin/shutdown/shutdown.c projects/bhyve/sbin/swapon/swapon.c projects/bhyve/sbin/tunefs/tunefs.c projects/bhyve/sbin/umount/umount.c projects/bhyve/secure/usr.bin/openssl/man/ca.1 projects/bhyve/share/man/man4/Makefile projects/bhyve/share/man/man4/altq.4 projects/bhyve/share/man/man4/esp.4 projects/bhyve/share/man/man4/ip.4 projects/bhyve/share/man/man4/mps.4 projects/bhyve/share/man/man4/mtio.4 projects/bhyve/share/man/man4/mvs.4 projects/bhyve/share/man/man4/tcp.4 projects/bhyve/share/man/man4/ti.4 projects/bhyve/share/man/man4/u3g.4 projects/bhyve/share/man/man4/uark.4 projects/bhyve/share/man/man4/ubsa.4 projects/bhyve/share/man/man4/ubser.4 projects/bhyve/share/man/man4/uchcom.4 projects/bhyve/share/man/man4/ucycom.4 projects/bhyve/share/man/man4/ufoma.4 projects/bhyve/share/man/man4/uftdi.4 projects/bhyve/share/man/man4/uipaq.4 projects/bhyve/share/man/man4/umcs.4 projects/bhyve/share/man/man4/umct.4 projects/bhyve/share/man/man4/umodem.4 projects/bhyve/share/man/man4/uplcom.4 projects/bhyve/share/man/man4/uslcom.4 projects/bhyve/share/man/man4/uvisor.4 projects/bhyve/share/man/man4/uvscom.4 projects/bhyve/share/man/man7/release.7 projects/bhyve/share/man/man9/Makefile projects/bhyve/share/man/man9/VOP_VPTOCNP.9 projects/bhyve/share/man/man9/kobj.9 projects/bhyve/share/man/man9/kqueue.9 projects/bhyve/share/man/man9/lock.9 projects/bhyve/share/man/man9/mutex.9 projects/bhyve/share/man/man9/rmlock.9 projects/bhyve/share/man/man9/rwlock.9 projects/bhyve/share/man/man9/stack.9 projects/bhyve/share/man/man9/sx.9 projects/bhyve/share/misc/bsd-family-tree projects/bhyve/share/misc/committers-ports.dot projects/bhyve/share/misc/committers-src.dot projects/bhyve/share/mk/bsd.lib.mk projects/bhyve/share/mk/bsd.own.mk projects/bhyve/share/monetdef/zh_CN.UTF-8.src projects/bhyve/sys/amd64/amd64/machdep.c projects/bhyve/sys/amd64/amd64/mp_machdep.c projects/bhyve/sys/amd64/amd64/pmap.c projects/bhyve/sys/amd64/amd64/trap.c projects/bhyve/sys/amd64/amd64/uma_machdep.c projects/bhyve/sys/amd64/conf/DEFAULTS projects/bhyve/sys/amd64/conf/GENERIC projects/bhyve/sys/amd64/include/_stdint.h projects/bhyve/sys/amd64/include/segments.h projects/bhyve/sys/amd64/include/signal.h projects/bhyve/sys/amd64/include/trap.h projects/bhyve/sys/amd64/include/ucontext.h projects/bhyve/sys/amd64/linux32/linux32_proto.h projects/bhyve/sys/amd64/linux32/linux32_syscall.h projects/bhyve/sys/amd64/linux32/linux32_syscalls.c projects/bhyve/sys/amd64/linux32/linux32_sysent.c projects/bhyve/sys/amd64/linux32/linux32_systrace_args.c projects/bhyve/sys/amd64/linux32/linux32_sysvec.c projects/bhyve/sys/amd64/linux32/syscalls.master projects/bhyve/sys/arm/arm/busdma_machdep.c projects/bhyve/sys/arm/arm/vm_machdep.c projects/bhyve/sys/arm/at91/at91.c projects/bhyve/sys/arm/conf/DB-88F6XXX projects/bhyve/sys/arm/conf/DEFAULTS projects/bhyve/sys/arm/conf/GUMSTIX projects/bhyve/sys/arm/conf/SHEEVAPLUG projects/bhyve/sys/arm/econa/econa.c projects/bhyve/sys/arm/mv/files.mv projects/bhyve/sys/arm/xscale/i80321/iq31244_7seg.c projects/bhyve/sys/arm/xscale/i80321/iq80321.c projects/bhyve/sys/arm/xscale/i8134x/i81342.c projects/bhyve/sys/arm/xscale/i8134x/iq81342_7seg.c projects/bhyve/sys/arm/xscale/ixp425/avila_ata.c projects/bhyve/sys/arm/xscale/ixp425/if_npe.c projects/bhyve/sys/arm/xscale/ixp425/ixp425.c projects/bhyve/sys/arm/xscale/pxa/pxa_obio.c projects/bhyve/sys/arm/xscale/pxa/pxa_smi.c projects/bhyve/sys/arm/xscale/pxa/pxa_space.c projects/bhyve/sys/boot/common/loader.8 projects/bhyve/sys/boot/fdt/dts/db88f6281.dts projects/bhyve/sys/boot/fdt/dts/sheevaplug.dts projects/bhyve/sys/boot/forth/loader.conf projects/bhyve/sys/boot/i386/libi386/bioscd.c projects/bhyve/sys/boot/i386/loader/Makefile projects/bhyve/sys/boot/ia64/common/exec.c projects/bhyve/sys/boot/ofw/Makefile.inc projects/bhyve/sys/boot/powerpc/Makefile.inc projects/bhyve/sys/boot/uboot/Makefile.inc projects/bhyve/sys/cam/ata/ata_da.c projects/bhyve/sys/cam/ata/ata_pmp.c projects/bhyve/sys/cam/cam_periph.c projects/bhyve/sys/cam/cam_queue.c projects/bhyve/sys/cam/cam_sim.c projects/bhyve/sys/cam/cam_sim.h projects/bhyve/sys/cam/cam_xpt.c projects/bhyve/sys/cam/scsi/scsi_cd.c projects/bhyve/sys/cam/scsi/scsi_ch.c projects/bhyve/sys/cam/scsi/scsi_ch.h projects/bhyve/sys/cam/scsi/scsi_da.c projects/bhyve/sys/cam/scsi/scsi_low.c projects/bhyve/sys/cam/scsi/scsi_sa.c projects/bhyve/sys/cam/scsi/scsi_ses.c projects/bhyve/sys/cam/scsi/scsi_targ_bh.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/bhyve/sys/cddl/dev/cyclic/cyclic.c projects/bhyve/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/bhyve/sys/cddl/dev/fbt/fbt.c projects/bhyve/sys/cddl/dev/systrace/systrace.c projects/bhyve/sys/compat/freebsd32/freebsd32.h projects/bhyve/sys/compat/freebsd32/freebsd32_misc.c projects/bhyve/sys/compat/freebsd32/freebsd32_proto.h projects/bhyve/sys/compat/freebsd32/freebsd32_syscall.h projects/bhyve/sys/compat/freebsd32/freebsd32_syscalls.c projects/bhyve/sys/compat/freebsd32/freebsd32_sysent.c projects/bhyve/sys/compat/freebsd32/freebsd32_systrace_args.c projects/bhyve/sys/compat/freebsd32/syscalls.master projects/bhyve/sys/compat/ia32/ia32_sysvec.c projects/bhyve/sys/compat/linux/linux_file.c projects/bhyve/sys/compat/linux/linux_file.h projects/bhyve/sys/compat/linux/linux_futex.c projects/bhyve/sys/compat/linux/linux_mib.c projects/bhyve/sys/compat/svr4/svr4_fcntl.c projects/bhyve/sys/compat/svr4/svr4_proto.h projects/bhyve/sys/compat/svr4/svr4_syscall.h projects/bhyve/sys/compat/svr4/svr4_syscallnames.c projects/bhyve/sys/compat/svr4/svr4_sysent.c projects/bhyve/sys/compat/svr4/syscalls.master projects/bhyve/sys/compat/x86bios/x86bios.c projects/bhyve/sys/conf/NOTES projects/bhyve/sys/conf/files projects/bhyve/sys/conf/files.amd64 projects/bhyve/sys/conf/newvers.sh projects/bhyve/sys/conf/options projects/bhyve/sys/contrib/pf/net/if_pfsync.c projects/bhyve/sys/contrib/pf/net/pf.c projects/bhyve/sys/crypto/aesni/aesni_wrap.c projects/bhyve/sys/dev/aac/aac.c projects/bhyve/sys/dev/aac/aac_cam.c projects/bhyve/sys/dev/acpi_support/acpi_wmi.c projects/bhyve/sys/dev/acpica/Osd/OsdInterrupt.c projects/bhyve/sys/dev/acpica/Osd/OsdMemory.c projects/bhyve/sys/dev/acpica/Osd/OsdSchedule.c projects/bhyve/sys/dev/acpica/Osd/OsdSynch.c projects/bhyve/sys/dev/acpica/acpi.c projects/bhyve/sys/dev/acpica/acpi_cmbat.c projects/bhyve/sys/dev/acpica/acpi_ec.c projects/bhyve/sys/dev/acpica/acpi_pci_link.c projects/bhyve/sys/dev/acpica/acpi_perf.c projects/bhyve/sys/dev/acpica/acpi_powerres.c projects/bhyve/sys/dev/acpica/acpi_smbat.c projects/bhyve/sys/dev/acpica/acpi_thermal.c projects/bhyve/sys/dev/acpica/acpi_video.c projects/bhyve/sys/dev/ae/if_ae.c projects/bhyve/sys/dev/ahci/ahci.c projects/bhyve/sys/dev/amr/amr.c projects/bhyve/sys/dev/amr/amr_cam.c projects/bhyve/sys/dev/an/if_an.c projects/bhyve/sys/dev/ata/ata-all.c projects/bhyve/sys/dev/ata/ata-disk.c projects/bhyve/sys/dev/ata/ata-pci.c projects/bhyve/sys/dev/ata/chipsets/ata-promise.c projects/bhyve/sys/dev/ata/chipsets/ata-siliconimage.c projects/bhyve/sys/dev/ath/ah_osdep.c projects/bhyve/sys/dev/ath/ath_hal/ah.c projects/bhyve/sys/dev/ath/ath_hal/ah.h projects/bhyve/sys/dev/ath/ath_hal/ah_devid.h projects/bhyve/sys/dev/ath/ath_hal/ah_internal.h projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416phy.h projects/bhyve/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/bhyve/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/bhyve/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/bhyve/sys/dev/ath/ath_rate/amrr/amrr.c projects/bhyve/sys/dev/ath/ath_rate/onoe/onoe.c projects/bhyve/sys/dev/ath/ath_rate/sample/sample.c projects/bhyve/sys/dev/ath/ath_rate/sample/sample.h projects/bhyve/sys/dev/ath/if_ath.c projects/bhyve/sys/dev/ath/if_ath_ahb.c projects/bhyve/sys/dev/ath/if_ath_debug.c projects/bhyve/sys/dev/ath/if_ath_debug.h projects/bhyve/sys/dev/ath/if_ath_keycache.c projects/bhyve/sys/dev/ath/if_ath_keycache.h projects/bhyve/sys/dev/ath/if_ath_misc.h projects/bhyve/sys/dev/ath/if_ath_pci.c projects/bhyve/sys/dev/ath/if_ath_sysctl.c projects/bhyve/sys/dev/ath/if_ath_tx.c projects/bhyve/sys/dev/ath/if_ath_tx.h projects/bhyve/sys/dev/ath/if_ath_tx_ht.c projects/bhyve/sys/dev/ath/if_ath_tx_ht.h projects/bhyve/sys/dev/ath/if_athioctl.h projects/bhyve/sys/dev/ath/if_athrate.h projects/bhyve/sys/dev/ath/if_athvar.h projects/bhyve/sys/dev/atkbdc/psm.c projects/bhyve/sys/dev/bce/if_bce.c projects/bhyve/sys/dev/bge/if_bge.c projects/bhyve/sys/dev/bge/if_bgereg.h projects/bhyve/sys/dev/bktr/bktr_os.c projects/bhyve/sys/dev/bktr/bktr_reg.h projects/bhyve/sys/dev/bm/if_bm.c projects/bhyve/sys/dev/bm/if_bmreg.h projects/bhyve/sys/dev/bm/if_bmvar.h projects/bhyve/sys/dev/bwn/if_bwn.c projects/bhyve/sys/dev/bxe/if_bxe.c projects/bhyve/sys/dev/cardbus/cardbus.c projects/bhyve/sys/dev/ciss/ciss.c projects/bhyve/sys/dev/cs/if_cs.c projects/bhyve/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c projects/bhyve/sys/dev/cxgbe/t4_main.c projects/bhyve/sys/dev/dc/dcphy.c projects/bhyve/sys/dev/dc/if_dc.c projects/bhyve/sys/dev/dc/if_dcreg.h projects/bhyve/sys/dev/dcons/dcons_os.c projects/bhyve/sys/dev/e1000/if_em.c projects/bhyve/sys/dev/e1000/if_igb.c projects/bhyve/sys/dev/esp/esp_sbus.c projects/bhyve/sys/dev/esp/ncr53c9x.c projects/bhyve/sys/dev/esp/ncr53c9xreg.h projects/bhyve/sys/dev/esp/ncr53c9xvar.h projects/bhyve/sys/dev/fb/vesa.c projects/bhyve/sys/dev/fdc/fdc.c projects/bhyve/sys/dev/firewire/fwmem.c projects/bhyve/sys/dev/firewire/if_fwe.c projects/bhyve/sys/dev/firewire/if_fwip.c projects/bhyve/sys/dev/firewire/sbp.c projects/bhyve/sys/dev/firewire/sbp_targ.c projects/bhyve/sys/dev/gpio/gpiobus.c projects/bhyve/sys/dev/hifn/hifn7751.c projects/bhyve/sys/dev/hwpmc/hwpmc_mips24k.c projects/bhyve/sys/dev/iicbus/ad7417.c projects/bhyve/sys/dev/iicbus/max6690.c projects/bhyve/sys/dev/iir/iir.c projects/bhyve/sys/dev/ipmi/ipmi.c projects/bhyve/sys/dev/iscsi/initiator/isc_subr.c projects/bhyve/sys/dev/iscsi/initiator/iscsi.c projects/bhyve/sys/dev/iscsi/initiator/iscsivar.h projects/bhyve/sys/dev/isp/DriverManual.txt projects/bhyve/sys/dev/isp/isp.c projects/bhyve/sys/dev/isp/isp_freebsd.c projects/bhyve/sys/dev/isp/isp_freebsd.h projects/bhyve/sys/dev/isp/isp_pci.c projects/bhyve/sys/dev/kbd/kbd.c projects/bhyve/sys/dev/lmc/if_lmc.c projects/bhyve/sys/dev/malo/if_malo.c projects/bhyve/sys/dev/malo/if_malo_pci.c projects/bhyve/sys/dev/md/md.c projects/bhyve/sys/dev/mfi/mfi.c projects/bhyve/sys/dev/mfi/mfi_cam.c projects/bhyve/sys/dev/mfi/mfi_debug.c projects/bhyve/sys/dev/mfi/mfi_disk.c projects/bhyve/sys/dev/mfi/mfi_pci.c projects/bhyve/sys/dev/mfi/mfivar.h projects/bhyve/sys/dev/mii/brgphy.c projects/bhyve/sys/dev/mii/mii.c projects/bhyve/sys/dev/mii/miidevs projects/bhyve/sys/dev/mii/miivar.h projects/bhyve/sys/dev/mmc/mmc.c projects/bhyve/sys/dev/mps/mps_sas.c projects/bhyve/sys/dev/mpt/mpt.c projects/bhyve/sys/dev/msk/if_msk.c projects/bhyve/sys/dev/msk/if_mskreg.h projects/bhyve/sys/dev/mvs/mvs.c projects/bhyve/sys/dev/mvs/mvs_pci.c projects/bhyve/sys/dev/mvs/mvs_soc.c projects/bhyve/sys/dev/mwl/if_mwl.c projects/bhyve/sys/dev/mwl/mwlhal.c projects/bhyve/sys/dev/nge/if_nge.c projects/bhyve/sys/dev/nge/if_ngereg.h projects/bhyve/sys/dev/nmdm/nmdm.c projects/bhyve/sys/dev/ofw/openfirm.c projects/bhyve/sys/dev/pccard/pccard.c projects/bhyve/sys/dev/pccbb/pccbb.c projects/bhyve/sys/dev/pccbb/pccbb_isa.c projects/bhyve/sys/dev/ppbus/ppb_base.c projects/bhyve/sys/dev/ppbus/ppbconf.c projects/bhyve/sys/dev/ppc/ppc.c projects/bhyve/sys/dev/puc/puc.c projects/bhyve/sys/dev/puc/pucdata.c projects/bhyve/sys/dev/quicc/quicc_core.c projects/bhyve/sys/dev/re/if_re.c projects/bhyve/sys/dev/rndtest/rndtest.c projects/bhyve/sys/dev/rt/if_rt.c projects/bhyve/sys/dev/safe/safe.c projects/bhyve/sys/dev/scc/scc_core.c projects/bhyve/sys/dev/sdhci/sdhci.c projects/bhyve/sys/dev/siba/siba_core.c projects/bhyve/sys/dev/siis/siis.c projects/bhyve/sys/dev/sio/sio_pci.c projects/bhyve/sys/dev/sis/if_sis.c projects/bhyve/sys/dev/sis/if_sisreg.h projects/bhyve/sys/dev/smc/if_smc.c projects/bhyve/sys/dev/sound/midi/midi.c projects/bhyve/sys/dev/sound/pci/envy24.c projects/bhyve/sys/dev/sound/pci/envy24ht.c projects/bhyve/sys/dev/sound/pci/maestro.c projects/bhyve/sys/dev/sound/pci/spicds.c projects/bhyve/sys/dev/sound/pcm/ac97.c projects/bhyve/sys/dev/sound/pcm/feeder.c projects/bhyve/sys/dev/sound/pcm/mixer.c projects/bhyve/sys/dev/sound/usb/uaudio.c projects/bhyve/sys/dev/ste/if_ste.c projects/bhyve/sys/dev/ste/if_stereg.h projects/bhyve/sys/dev/stge/if_stge.c projects/bhyve/sys/dev/stge/if_stgereg.h projects/bhyve/sys/dev/syscons/scterm-teken.c projects/bhyve/sys/dev/syscons/syscons.c projects/bhyve/sys/dev/tdfx/tdfx_pci.c projects/bhyve/sys/dev/ti/if_ti.c projects/bhyve/sys/dev/ti/if_tireg.h projects/bhyve/sys/dev/tl/if_tl.c projects/bhyve/sys/dev/tl/if_tlreg.h projects/bhyve/sys/dev/twa/tw_osl_freebsd.c projects/bhyve/sys/dev/twe/twe_freebsd.c projects/bhyve/sys/dev/tws/tws_services.c projects/bhyve/sys/dev/tws/tws_services.h projects/bhyve/sys/dev/uart/uart_core.c projects/bhyve/sys/dev/uart/uart_dev_ns8250.c projects/bhyve/sys/dev/ubsec/ubsec.c projects/bhyve/sys/dev/usb/controller/at91dci.c projects/bhyve/sys/dev/usb/controller/atmegadci.c projects/bhyve/sys/dev/usb/controller/avr32dci.c projects/bhyve/sys/dev/usb/controller/ehci.c projects/bhyve/sys/dev/usb/controller/musb_otg.c projects/bhyve/sys/dev/usb/controller/ohci.c projects/bhyve/sys/dev/usb/controller/uhci.c projects/bhyve/sys/dev/usb/controller/usb_controller.c projects/bhyve/sys/dev/usb/controller/uss820dci.c projects/bhyve/sys/dev/usb/controller/xhci.c projects/bhyve/sys/dev/usb/input/atp.c projects/bhyve/sys/dev/usb/input/uep.c projects/bhyve/sys/dev/usb/input/uhid.c projects/bhyve/sys/dev/usb/input/ukbd.c projects/bhyve/sys/dev/usb/input/ums.c projects/bhyve/sys/dev/usb/misc/udbp.c projects/bhyve/sys/dev/usb/net/if_aue.c projects/bhyve/sys/dev/usb/net/if_axe.c projects/bhyve/sys/dev/usb/net/if_cdce.c projects/bhyve/sys/dev/usb/net/if_cue.c projects/bhyve/sys/dev/usb/net/if_ipheth.c projects/bhyve/sys/dev/usb/net/if_kue.c projects/bhyve/sys/dev/usb/net/if_mos.c projects/bhyve/sys/dev/usb/net/if_rue.c projects/bhyve/sys/dev/usb/net/if_udav.c projects/bhyve/sys/dev/usb/net/if_usie.c projects/bhyve/sys/dev/usb/net/uhso.c projects/bhyve/sys/dev/usb/net/usb_ethernet.c projects/bhyve/sys/dev/usb/quirk/usb_quirk.c projects/bhyve/sys/dev/usb/serial/u3g.c projects/bhyve/sys/dev/usb/serial/ubsa.c projects/bhyve/sys/dev/usb/serial/ubser.c projects/bhyve/sys/dev/usb/serial/uchcom.c projects/bhyve/sys/dev/usb/serial/ufoma.c projects/bhyve/sys/dev/usb/serial/uftdi.c projects/bhyve/sys/dev/usb/serial/ulpt.c projects/bhyve/sys/dev/usb/serial/umcs.c projects/bhyve/sys/dev/usb/serial/umodem.c projects/bhyve/sys/dev/usb/serial/umoscom.c projects/bhyve/sys/dev/usb/serial/uplcom.c projects/bhyve/sys/dev/usb/serial/usb_serial.c projects/bhyve/sys/dev/usb/serial/uslcom.c projects/bhyve/sys/dev/usb/serial/uvisor.c projects/bhyve/sys/dev/usb/serial/uvscom.c projects/bhyve/sys/dev/usb/storage/umass.c projects/bhyve/sys/dev/usb/storage/urio.c projects/bhyve/sys/dev/usb/storage/ustorage_fs.c projects/bhyve/sys/dev/usb/template/usb_template.c projects/bhyve/sys/dev/usb/usb.h projects/bhyve/sys/dev/usb/usb_busdma.c projects/bhyve/sys/dev/usb/usb_compat_linux.c projects/bhyve/sys/dev/usb/usb_dev.c projects/bhyve/sys/dev/usb/usb_device.c projects/bhyve/sys/dev/usb/usb_generic.c projects/bhyve/sys/dev/usb/usb_hub.c projects/bhyve/sys/dev/usb/usb_ioctl.h projects/bhyve/sys/dev/usb/usb_msctest.c projects/bhyve/sys/dev/usb/usb_process.c projects/bhyve/sys/dev/usb/usb_request.c projects/bhyve/sys/dev/usb/usb_transfer.c projects/bhyve/sys/dev/usb/usb_util.c projects/bhyve/sys/dev/usb/usb_util.h projects/bhyve/sys/dev/usb/usbdevs projects/bhyve/sys/dev/usb/wlan/if_rum.c projects/bhyve/sys/dev/usb/wlan/if_run.c projects/bhyve/sys/dev/usb/wlan/if_uath.c projects/bhyve/sys/dev/usb/wlan/if_upgt.c projects/bhyve/sys/dev/usb/wlan/if_ural.c projects/bhyve/sys/dev/usb/wlan/if_urtw.c projects/bhyve/sys/dev/usb/wlan/if_zyd.c projects/bhyve/sys/dev/wb/if_wb.c projects/bhyve/sys/dev/wb/if_wbreg.h projects/bhyve/sys/dev/wi/if_wi.c projects/bhyve/sys/dev/xe/if_xe.c projects/bhyve/sys/dev/xen/balloon/balloon.c projects/bhyve/sys/dev/xen/blkback/blkback.c projects/bhyve/sys/dev/xen/blkfront/blkfront.c projects/bhyve/sys/dev/xl/if_xl.c projects/bhyve/sys/dev/xl/if_xlreg.h projects/bhyve/sys/fs/devfs/devfs_rule.c projects/bhyve/sys/fs/devfs/devfs_vnops.c projects/bhyve/sys/fs/ext2fs/ext2_alloc.c projects/bhyve/sys/fs/msdosfs/msdosfs_conv.c projects/bhyve/sys/fs/nfs/nfs_var.h projects/bhyve/sys/fs/nfs/nfsclstate.h projects/bhyve/sys/fs/nfsclient/nfs_clrpcops.c projects/bhyve/sys/fs/nfsclient/nfs_clstate.c projects/bhyve/sys/fs/nfsclient/nfs_clvfsops.c projects/bhyve/sys/fs/nfsclient/nfs_clvnops.c projects/bhyve/sys/fs/ntfs/ntfs_subr.c projects/bhyve/sys/fs/nullfs/null_subr.c projects/bhyve/sys/fs/nullfs/null_vnops.c projects/bhyve/sys/fs/nwfs/nwfs_mount.h projects/bhyve/sys/fs/procfs/procfs_status.c projects/bhyve/sys/fs/pseudofs/pseudofs_vncache.c projects/bhyve/sys/fs/pseudofs/pseudofs_vnops.c projects/bhyve/sys/fs/smbfs/smbfs.h projects/bhyve/sys/fs/smbfs/smbfs_node.c projects/bhyve/sys/fs/smbfs/smbfs_smb.c projects/bhyve/sys/fs/smbfs/smbfs_subr.c projects/bhyve/sys/fs/tmpfs/tmpfs.h projects/bhyve/sys/fs/tmpfs/tmpfs_vfsops.c projects/bhyve/sys/fs/tmpfs/tmpfs_vnops.c projects/bhyve/sys/fs/udf/udf_vnops.c projects/bhyve/sys/geom/cache/g_cache.c projects/bhyve/sys/geom/concat/g_concat.c projects/bhyve/sys/geom/concat/g_concat.h projects/bhyve/sys/geom/eli/g_eli.c projects/bhyve/sys/geom/eli/g_eli.h projects/bhyve/sys/geom/gate/g_gate.c projects/bhyve/sys/geom/geom_disk.c projects/bhyve/sys/geom/geom_event.c projects/bhyve/sys/geom/geom_vfs.c projects/bhyve/sys/geom/journal/g_journal.c projects/bhyve/sys/geom/mirror/g_mirror.c projects/bhyve/sys/geom/mountver/g_mountver.c projects/bhyve/sys/geom/multipath/g_multipath.c projects/bhyve/sys/geom/multipath/g_multipath.h projects/bhyve/sys/geom/nop/g_nop.c projects/bhyve/sys/geom/part/g_part.c projects/bhyve/sys/geom/raid/tr_raid1.c projects/bhyve/sys/geom/raid/tr_raid1e.c projects/bhyve/sys/geom/raid3/g_raid3.c projects/bhyve/sys/geom/sched/gs_rr.c projects/bhyve/sys/geom/shsec/g_shsec.c projects/bhyve/sys/geom/stripe/g_stripe.c projects/bhyve/sys/geom/uzip/g_uzip.c projects/bhyve/sys/geom/vinum/geom_vinum.c projects/bhyve/sys/geom/virstor/g_virstor.c projects/bhyve/sys/geom/zero/g_zero.c projects/bhyve/sys/gnu/fs/xfs/FreeBSD/support/debug.c projects/bhyve/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/bhyve/sys/i386/conf/DEFAULTS projects/bhyve/sys/i386/conf/GENERIC projects/bhyve/sys/i386/i386/machdep.c projects/bhyve/sys/i386/i386/mp_machdep.c projects/bhyve/sys/i386/i386/pmap.c projects/bhyve/sys/i386/i386/trap.c projects/bhyve/sys/i386/ibcs2/ibcs2_fcntl.c projects/bhyve/sys/i386/ibcs2/ibcs2_proto.h projects/bhyve/sys/i386/ibcs2/ibcs2_syscall.h projects/bhyve/sys/i386/ibcs2/ibcs2_sysent.c projects/bhyve/sys/i386/ibcs2/syscalls.master projects/bhyve/sys/i386/include/segments.h projects/bhyve/sys/i386/include/signal.h projects/bhyve/sys/i386/include/trap.h projects/bhyve/sys/i386/include/ucontext.h projects/bhyve/sys/i386/linux/linux_proto.h projects/bhyve/sys/i386/linux/linux_syscall.h projects/bhyve/sys/i386/linux/linux_syscalls.c projects/bhyve/sys/i386/linux/linux_sysent.c projects/bhyve/sys/i386/linux/linux_systrace_args.c projects/bhyve/sys/i386/linux/syscalls.master projects/bhyve/sys/i386/xen/pmap.c projects/bhyve/sys/ia64/conf/DEFAULTS projects/bhyve/sys/ia64/conf/GENERIC projects/bhyve/sys/ia64/ia64/busdma_machdep.c projects/bhyve/sys/ia64/ia64/machdep.c projects/bhyve/sys/ia64/ia64/mca.c projects/bhyve/sys/ia64/ia64/pmap.c projects/bhyve/sys/ia64/ia64/sapic.c projects/bhyve/sys/ia64/ia64/sscdisk.c projects/bhyve/sys/ia64/ia64/unwind.c projects/bhyve/sys/kern/init_main.c projects/bhyve/sys/kern/init_sysent.c projects/bhyve/sys/kern/kern_clock.c projects/bhyve/sys/kern/kern_conf.c projects/bhyve/sys/kern/kern_cpu.c projects/bhyve/sys/kern/kern_ctf.c projects/bhyve/sys/kern/kern_descrip.c projects/bhyve/sys/kern/kern_dtrace.c projects/bhyve/sys/kern/kern_et.c projects/bhyve/sys/kern/kern_fail.c projects/bhyve/sys/kern/kern_jail.c projects/bhyve/sys/kern/kern_ktr.c projects/bhyve/sys/kern/kern_linker.c projects/bhyve/sys/kern/kern_lock.c projects/bhyve/sys/kern/kern_lockf.c projects/bhyve/sys/kern/kern_malloc.c projects/bhyve/sys/kern/kern_mutex.c projects/bhyve/sys/kern/kern_poll.c projects/bhyve/sys/kern/kern_proc.c projects/bhyve/sys/kern/kern_rctl.c projects/bhyve/sys/kern/kern_resource.c projects/bhyve/sys/kern/kern_rmlock.c projects/bhyve/sys/kern/kern_rwlock.c projects/bhyve/sys/kern/kern_shutdown.c projects/bhyve/sys/kern/kern_sig.c projects/bhyve/sys/kern/kern_sx.c projects/bhyve/sys/kern/kern_synch.c projects/bhyve/sys/kern/kern_tc.c projects/bhyve/sys/kern/kern_thr.c projects/bhyve/sys/kern/kern_thread.c projects/bhyve/sys/kern/kern_timeout.c projects/bhyve/sys/kern/kern_umtx.c projects/bhyve/sys/kern/makesyscalls.sh projects/bhyve/sys/kern/sched_4bsd.c projects/bhyve/sys/kern/subr_bus.c projects/bhyve/sys/kern/subr_devstat.c projects/bhyve/sys/kern/subr_firmware.c projects/bhyve/sys/kern/subr_kdb.c projects/bhyve/sys/kern/subr_kobj.c projects/bhyve/sys/kern/subr_lock.c projects/bhyve/sys/kern/subr_mchain.c projects/bhyve/sys/kern/subr_pcpu.c projects/bhyve/sys/kern/subr_prof.c projects/bhyve/sys/kern/subr_rman.c projects/bhyve/sys/kern/subr_rtc.c projects/bhyve/sys/kern/subr_sleepqueue.c projects/bhyve/sys/kern/subr_smp.c projects/bhyve/sys/kern/subr_stack.c projects/bhyve/sys/kern/subr_turnstile.c projects/bhyve/sys/kern/subr_uio.c projects/bhyve/sys/kern/subr_witness.c projects/bhyve/sys/kern/sys_generic.c projects/bhyve/sys/kern/syscalls.c projects/bhyve/sys/kern/syscalls.master projects/bhyve/sys/kern/systrace_args.c projects/bhyve/sys/kern/uipc_mqueue.c projects/bhyve/sys/kern/uipc_socket.c projects/bhyve/sys/kern/uipc_usrreq.c projects/bhyve/sys/kern/vfs_bio.c projects/bhyve/sys/kern/vfs_cache.c projects/bhyve/sys/kern/vfs_default.c projects/bhyve/sys/kern/vfs_mount.c projects/bhyve/sys/kern/vfs_subr.c projects/bhyve/sys/kern/vfs_syscalls.c projects/bhyve/sys/kern/vfs_vnops.c projects/bhyve/sys/kern/vnode_if.src projects/bhyve/sys/libkern/iconv.c projects/bhyve/sys/mips/cavium/usb/octusb.c projects/bhyve/sys/mips/conf/AR91XX_BASE projects/bhyve/sys/mips/conf/DEFAULTS projects/bhyve/sys/mips/conf/XLP projects/bhyve/sys/mips/conf/XLP64 projects/bhyve/sys/mips/conf/XLPN32 projects/bhyve/sys/mips/include/asm.h projects/bhyve/sys/mips/include/cpufunc.h projects/bhyve/sys/mips/include/cpuregs.h projects/bhyve/sys/mips/mips/busdma_machdep.c projects/bhyve/sys/mips/mips/cache.c projects/bhyve/sys/mips/mips/pmap.c projects/bhyve/sys/mips/nlm/cms.c projects/bhyve/sys/mips/nlm/files.xlp projects/bhyve/sys/mips/nlm/hal/bridge.h projects/bhyve/sys/mips/nlm/hal/cop2.h projects/bhyve/sys/mips/nlm/hal/cpucontrol.h projects/bhyve/sys/mips/nlm/hal/fmn.c projects/bhyve/sys/mips/nlm/hal/fmn.h projects/bhyve/sys/mips/nlm/hal/haldefs.h projects/bhyve/sys/mips/nlm/hal/iomap.h projects/bhyve/sys/mips/nlm/hal/mips-extns.h projects/bhyve/sys/mips/nlm/hal/mmu.h projects/bhyve/sys/mips/nlm/hal/pcibus.h projects/bhyve/sys/mips/nlm/hal/pic.h projects/bhyve/sys/mips/nlm/hal/uart.h projects/bhyve/sys/mips/nlm/mpreset.S projects/bhyve/sys/mips/nlm/msgring.h projects/bhyve/sys/mips/nlm/std.xlp projects/bhyve/sys/mips/nlm/uart_pci_xlp.c projects/bhyve/sys/mips/nlm/usb_init.c projects/bhyve/sys/mips/nlm/xlp.h projects/bhyve/sys/mips/nlm/xlp_machdep.c projects/bhyve/sys/mips/nlm/xlp_pci.c projects/bhyve/sys/modules/Makefile projects/bhyve/sys/modules/ath/Makefile projects/bhyve/sys/modules/ath_ahb/Makefile projects/bhyve/sys/modules/ath_pci/Makefile projects/bhyve/sys/modules/esp/Makefile projects/bhyve/sys/modules/ipfw/Makefile projects/bhyve/sys/modules/libiconv/Makefile projects/bhyve/sys/modules/libmchain/Makefile projects/bhyve/sys/modules/mii/Makefile projects/bhyve/sys/net/bpf.c projects/bhyve/sys/net/bpf.h projects/bhyve/sys/net/flowtable.c projects/bhyve/sys/net/if.c projects/bhyve/sys/net/if_arcsubr.c projects/bhyve/sys/net/if_atmsubr.c projects/bhyve/sys/net/if_bridge.c projects/bhyve/sys/net/if_enc.c projects/bhyve/sys/net/if_epair.c projects/bhyve/sys/net/if_ethersubr.c projects/bhyve/sys/net/if_fwsubr.c projects/bhyve/sys/net/if_gif.c projects/bhyve/sys/net/if_gre.c projects/bhyve/sys/net/if_iso88025subr.c projects/bhyve/sys/net/if_lagg.c projects/bhyve/sys/net/if_mib.c projects/bhyve/sys/net/if_spppfr.c projects/bhyve/sys/net/if_spppsubr.c projects/bhyve/sys/net/if_stf.c projects/bhyve/sys/net/if_tap.c projects/bhyve/sys/net/if_tun.c projects/bhyve/sys/net/if_var.h projects/bhyve/sys/net/if_vlan.c projects/bhyve/sys/net/netisr.c projects/bhyve/sys/net/raw_cb.c projects/bhyve/sys/net/rtsock.c projects/bhyve/sys/net/vnet.c projects/bhyve/sys/net80211/ieee80211.h projects/bhyve/sys/net80211/ieee80211_acl.c projects/bhyve/sys/net80211/ieee80211_dfs.c projects/bhyve/sys/net80211/ieee80211_freebsd.c projects/bhyve/sys/net80211/ieee80211_hwmp.c projects/bhyve/sys/net80211/ieee80211_input.c projects/bhyve/sys/net80211/ieee80211_ioctl.c projects/bhyve/sys/net80211/ieee80211_ioctl.h projects/bhyve/sys/net80211/ieee80211_mesh.c projects/bhyve/sys/net80211/ieee80211_output.c projects/bhyve/sys/net80211/ieee80211_power.c projects/bhyve/sys/net80211/ieee80211_proto.h projects/bhyve/sys/net80211/ieee80211_scan.h projects/bhyve/sys/net80211/ieee80211_sta.c projects/bhyve/sys/net80211/ieee80211_var.h projects/bhyve/sys/netgraph/atm/ng_atm.c projects/bhyve/sys/netgraph/atm/ngatmbase.c projects/bhyve/sys/netgraph/atm/uni/ng_uni.c projects/bhyve/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c projects/bhyve/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c projects/bhyve/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c projects/bhyve/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c projects/bhyve/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c projects/bhyve/sys/netgraph/netgraph.h projects/bhyve/sys/netgraph/ng_async.c projects/bhyve/sys/netgraph/ng_atmllc.c projects/bhyve/sys/netgraph/ng_base.c projects/bhyve/sys/netgraph/ng_bpf.c projects/bhyve/sys/netgraph/ng_bridge.c projects/bhyve/sys/netgraph/ng_cisco.c projects/bhyve/sys/netgraph/ng_deflate.c projects/bhyve/sys/netgraph/ng_fec.c projects/bhyve/sys/netgraph/ng_gif_demux.c projects/bhyve/sys/netgraph/ng_hub.c projects/bhyve/sys/netgraph/ng_iface.c projects/bhyve/sys/netgraph/ng_ksocket.c projects/bhyve/sys/netgraph/ng_l2tp.c projects/bhyve/sys/netgraph/ng_mppc.c projects/bhyve/sys/netgraph/ng_parse.c projects/bhyve/sys/netgraph/ng_ppp.c projects/bhyve/sys/netgraph/ng_pppoe.c projects/bhyve/sys/netgraph/ng_pred1.c projects/bhyve/sys/netgraph/ng_sample.c projects/bhyve/sys/netgraph/ng_socket.c projects/bhyve/sys/netgraph/ng_sppp.c projects/bhyve/sys/netgraph/ng_tag.c projects/bhyve/sys/netinet/accf_http.c projects/bhyve/sys/netinet/if_ether.c projects/bhyve/sys/netinet/igmp.c projects/bhyve/sys/netinet/in.c projects/bhyve/sys/netinet/in_mcast.c projects/bhyve/sys/netinet/in_pcb.c projects/bhyve/sys/netinet/in_pcb.h projects/bhyve/sys/netinet/ip_carp.c projects/bhyve/sys/netinet/ip_divert.c projects/bhyve/sys/netinet/ip_mroute.c projects/bhyve/sys/netinet/ip_output.c projects/bhyve/sys/netinet/ipfw/dn_heap.c projects/bhyve/sys/netinet/ipfw/dummynet.txt projects/bhyve/sys/netinet/ipfw/ip_dn_io.c projects/bhyve/sys/netinet/ipfw/ip_fw2.c projects/bhyve/sys/netinet/ipfw/ip_fw_dynamic.c projects/bhyve/sys/netinet/ipfw/ip_fw_log.c projects/bhyve/sys/netinet/ipfw/ip_fw_pfil.c projects/bhyve/sys/netinet/ipfw/ip_fw_sockopt.c projects/bhyve/sys/netinet/ipfw/ip_fw_table.c projects/bhyve/sys/netinet/libalias/alias_sctp.c projects/bhyve/sys/netinet/sctp.h projects/bhyve/sys/netinet/sctp_output.c projects/bhyve/sys/netinet/sctp_pcb.c projects/bhyve/sys/netinet/sctp_pcb.h projects/bhyve/sys/netinet/sctp_structs.h projects/bhyve/sys/netinet/sctp_sysctl.c projects/bhyve/sys/netinet/sctp_sysctl.h projects/bhyve/sys/netinet/sctp_uio.h projects/bhyve/sys/netinet/sctp_usrreq.c projects/bhyve/sys/netinet/sctputil.c projects/bhyve/sys/netinet/tcp_hostcache.c projects/bhyve/sys/netinet/tcp_input.c projects/bhyve/sys/netinet/tcp_output.c projects/bhyve/sys/netinet/tcp_reass.c projects/bhyve/sys/netinet/tcp_syncache.c projects/bhyve/sys/netinet6/icmp6.c projects/bhyve/sys/netinet6/in6.c projects/bhyve/sys/netinet6/in6_mcast.c projects/bhyve/sys/netinet6/in6_pcb.c projects/bhyve/sys/netinet6/in6_src.c projects/bhyve/sys/netinet6/ip6_mroute.c projects/bhyve/sys/netinet6/ip6_output.c projects/bhyve/sys/netinet6/mld6.c projects/bhyve/sys/netinet6/nd6.c projects/bhyve/sys/netinet6/nd6.h projects/bhyve/sys/netinet6/nd6_rtr.c projects/bhyve/sys/netinet6/send.c projects/bhyve/sys/netipx/ipx_proto.c projects/bhyve/sys/netipx/spx_reass.c projects/bhyve/sys/netsmb/smb_conn.c projects/bhyve/sys/netsmb/smb_conn.h projects/bhyve/sys/netsmb/smb_rq.c projects/bhyve/sys/netsmb/smb_smb.c projects/bhyve/sys/netsmb/smb_subr.c projects/bhyve/sys/nfs/nfs_lock.c projects/bhyve/sys/nfsclient/nfs_krpc.c projects/bhyve/sys/nfsclient/nfs_vfsops.c projects/bhyve/sys/nlm/nlm_prot_impl.c projects/bhyve/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/bhyve/sys/ofed/include/linux/linux_idr.c projects/bhyve/sys/ofed/include/linux/linux_radix.c projects/bhyve/sys/pc98/conf/DEFAULTS projects/bhyve/sys/pc98/conf/GENERIC projects/bhyve/sys/pci/if_rl.c projects/bhyve/sys/pci/if_rlreg.h projects/bhyve/sys/powerpc/aim/machdep.c projects/bhyve/sys/powerpc/aim/mmu_oea.c projects/bhyve/sys/powerpc/aim/mp_cpudep.c projects/bhyve/sys/powerpc/aim/slb.c projects/bhyve/sys/powerpc/aim/trap_subr32.S projects/bhyve/sys/powerpc/aim/trap_subr64.S projects/bhyve/sys/powerpc/conf/DEFAULTS projects/bhyve/sys/powerpc/conf/GENERIC projects/bhyve/sys/powerpc/fpu/fpu_emu.c projects/bhyve/sys/powerpc/include/pcpu.h projects/bhyve/sys/powerpc/ofw/ofw_real.c projects/bhyve/sys/powerpc/ofw/ofw_syscons.c projects/bhyve/sys/powerpc/ofw/rtas.c projects/bhyve/sys/powerpc/powermac/dbdma.c projects/bhyve/sys/powerpc/powermac/fcu.c projects/bhyve/sys/powerpc/powermac/powermac_thermal.c projects/bhyve/sys/powerpc/powermac/smu.c projects/bhyve/sys/powerpc/powermac/smusat.c projects/bhyve/sys/powerpc/powerpc/busdma_machdep.c projects/bhyve/sys/powerpc/powerpc/intr_machdep.c projects/bhyve/sys/powerpc/powerpc/platform.c projects/bhyve/sys/powerpc/powerpc/pmap_dispatch.c projects/bhyve/sys/powerpc/ps3/ps3disk.c projects/bhyve/sys/powerpc/ps3/ps3pic.c projects/bhyve/sys/rpc/clnt_dg.c projects/bhyve/sys/security/audit/audit.c projects/bhyve/sys/security/mac_biba/mac_biba.c projects/bhyve/sys/security/mac_bsdextended/mac_bsdextended.c projects/bhyve/sys/security/mac_ifoff/mac_ifoff.c projects/bhyve/sys/security/mac_lomac/mac_lomac.c projects/bhyve/sys/security/mac_mls/mac_mls.c projects/bhyve/sys/security/mac_partition/mac_partition.c projects/bhyve/sys/security/mac_portacl/mac_portacl.c projects/bhyve/sys/security/mac_seeotheruids/mac_seeotheruids.c projects/bhyve/sys/security/mac_stub/mac_stub.c projects/bhyve/sys/security/mac_test/mac_test.c projects/bhyve/sys/sparc64/conf/DEFAULTS projects/bhyve/sys/sparc64/conf/GENERIC projects/bhyve/sys/sparc64/include/pcpu.h projects/bhyve/sys/sparc64/sbus/dma_sbus.c projects/bhyve/sys/sparc64/sbus/lsi64854.c projects/bhyve/sys/sparc64/sbus/lsi64854var.h projects/bhyve/sys/sparc64/sparc64/identcpu.c projects/bhyve/sys/sparc64/sparc64/iommu.c projects/bhyve/sys/sparc64/sparc64/tick.c projects/bhyve/sys/sys/bus.h projects/bhyve/sys/sys/cdefs.h projects/bhyve/sys/sys/event.h projects/bhyve/sys/sys/fcntl.h projects/bhyve/sys/sys/file.h projects/bhyve/sys/sys/iconv.h projects/bhyve/sys/sys/kobj.h projects/bhyve/sys/sys/lock.h projects/bhyve/sys/sys/lockmgr.h projects/bhyve/sys/sys/mchain.h projects/bhyve/sys/sys/mutex.h projects/bhyve/sys/sys/param.h projects/bhyve/sys/sys/proc.h projects/bhyve/sys/sys/rmlock.h projects/bhyve/sys/sys/rwlock.h projects/bhyve/sys/sys/sdt.h projects/bhyve/sys/sys/stack.h projects/bhyve/sys/sys/sx.h projects/bhyve/sys/sys/syscall.h projects/bhyve/sys/sys/syscall.mk projects/bhyve/sys/sys/syscallsubr.h projects/bhyve/sys/sys/sysproto.h projects/bhyve/sys/sys/timepps.h projects/bhyve/sys/sys/uio.h projects/bhyve/sys/sys/unistd.h projects/bhyve/sys/sys/user.h projects/bhyve/sys/sys/vnode.h projects/bhyve/sys/tools/makeobjops.awk projects/bhyve/sys/ufs/ffs/ffs_softdep.c projects/bhyve/sys/ufs/ffs/fs.h projects/bhyve/sys/ufs/ufs/dinode.h projects/bhyve/sys/ufs/ufs/extattr.h projects/bhyve/sys/ufs/ufs/ufs_vnops.c projects/bhyve/sys/vm/device_pager.c projects/bhyve/sys/vm/memguard.c projects/bhyve/sys/vm/redzone.c projects/bhyve/sys/vm/vm_contig.c projects/bhyve/sys/vm/vm_extern.h projects/bhyve/sys/vm/vm_kern.c projects/bhyve/sys/vm/vm_map.c projects/bhyve/sys/vm/vm_object.c projects/bhyve/sys/vm/vm_object.h projects/bhyve/sys/vm/vm_page.c projects/bhyve/sys/vm/vm_page.h projects/bhyve/sys/vm/vm_pager.c projects/bhyve/sys/vm/vm_pager.h projects/bhyve/sys/vm/vm_phys.c projects/bhyve/sys/vm/vm_phys.h projects/bhyve/sys/vm/vm_reserv.c projects/bhyve/sys/vm/vm_reserv.h projects/bhyve/sys/vm/vnode_pager.c projects/bhyve/sys/x86/acpica/acpi_apm.c projects/bhyve/sys/x86/acpica/madt.c projects/bhyve/sys/x86/bios/vpd.c projects/bhyve/sys/x86/x86/busdma_machdep.c projects/bhyve/sys/x86/x86/io_apic.c projects/bhyve/sys/x86/x86/mca.c projects/bhyve/tools/regression/fifo/fifo_misc/fifo_misc.c projects/bhyve/tools/regression/lib/libc/gen/Makefile projects/bhyve/tools/tools/README projects/bhyve/tools/tools/netrate/netblast/netblast.c projects/bhyve/tools/tools/netrate/netreceive/netreceive.c projects/bhyve/tools/tools/netrate/netsend/netsend.c projects/bhyve/usr.bin/at/at.c projects/bhyve/usr.bin/at/parsetime.c projects/bhyve/usr.bin/banner/banner.c projects/bhyve/usr.bin/c99/c99.c projects/bhyve/usr.bin/calendar/calendar.1 projects/bhyve/usr.bin/calendar/calendar.c projects/bhyve/usr.bin/calendar/calendars/calendar.birthday projects/bhyve/usr.bin/calendar/calendars/calendar.freebsd projects/bhyve/usr.bin/calendar/io.c projects/bhyve/usr.bin/calendar/parsedata.c projects/bhyve/usr.bin/cap_mkdb/cap_mkdb.c projects/bhyve/usr.bin/catman/catman.c projects/bhyve/usr.bin/checknr/checknr.c projects/bhyve/usr.bin/chpass/chpass.h projects/bhyve/usr.bin/chpass/table.c projects/bhyve/usr.bin/cmp/extern.h projects/bhyve/usr.bin/col/col.c projects/bhyve/usr.bin/colcrt/colcrt.c projects/bhyve/usr.bin/column/column.c projects/bhyve/usr.bin/comm/comm.1 projects/bhyve/usr.bin/comm/comm.c projects/bhyve/usr.bin/compress/compress.c projects/bhyve/usr.bin/compress/doc/NOTES projects/bhyve/usr.bin/cpuset/cpuset.c projects/bhyve/usr.bin/csplit/csplit.c projects/bhyve/usr.bin/cut/cut.c projects/bhyve/usr.bin/dc/Makefile projects/bhyve/usr.bin/dc/dc.c projects/bhyve/usr.bin/du/du.c projects/bhyve/usr.bin/enigma/enigma.c projects/bhyve/usr.bin/expand/expand.c projects/bhyve/usr.bin/fold/fold.c projects/bhyve/usr.bin/fstat/fstat.c projects/bhyve/usr.bin/fstat/fuser.c projects/bhyve/usr.bin/getent/getent.c projects/bhyve/usr.bin/id/id.c projects/bhyve/usr.bin/join/join.c projects/bhyve/usr.bin/lam/lam.c projects/bhyve/usr.bin/last/last.c projects/bhyve/usr.bin/lock/lock.c projects/bhyve/usr.bin/logger/logger.c projects/bhyve/usr.bin/look/look.c projects/bhyve/usr.bin/m4/gnum4.c projects/bhyve/usr.bin/m4/main.c projects/bhyve/usr.bin/make/globals.h projects/bhyve/usr.bin/make/make.1 projects/bhyve/usr.bin/ministat/ministat.c projects/bhyve/usr.bin/mt/mt.c projects/bhyve/usr.bin/paste/paste.c projects/bhyve/usr.bin/pr/extern.h projects/bhyve/usr.bin/pr/pr.c projects/bhyve/usr.bin/procstat/procstat.1 projects/bhyve/usr.bin/procstat/procstat_vm.c projects/bhyve/usr.bin/quota/quota.c projects/bhyve/usr.bin/rs/rs.c projects/bhyve/usr.bin/ruptime/ruptime.c projects/bhyve/usr.bin/rusers/rusers.c projects/bhyve/usr.bin/rwall/rwall.c projects/bhyve/usr.bin/rwho/rwho.c projects/bhyve/usr.bin/sed/sed.1 projects/bhyve/usr.bin/seq/seq.c projects/bhyve/usr.bin/split/split.c projects/bhyve/usr.bin/tail/forward.c projects/bhyve/usr.bin/tail/tail.c projects/bhyve/usr.bin/talk/ctl.c projects/bhyve/usr.bin/talk/init_disp.c projects/bhyve/usr.bin/talk/invite.c projects/bhyve/usr.bin/talk/talk.h projects/bhyve/usr.bin/tcopy/tcopy.c projects/bhyve/usr.bin/tee/tee.c projects/bhyve/usr.bin/tr/tr.c projects/bhyve/usr.bin/tsort/tsort.c projects/bhyve/usr.bin/ul/ul.c projects/bhyve/usr.bin/uname/uname.c projects/bhyve/usr.bin/unexpand/unexpand.c projects/bhyve/usr.bin/unifdef/unifdef.c projects/bhyve/usr.bin/uniq/uniq.c projects/bhyve/usr.bin/units/units.c projects/bhyve/usr.bin/usbhidaction/usbhidaction.c projects/bhyve/usr.bin/usbhidctl/usbhid.c projects/bhyve/usr.bin/uuencode/uuencode.c projects/bhyve/usr.bin/vis/vis.c projects/bhyve/usr.bin/w/w.c projects/bhyve/usr.bin/wall/wall.c projects/bhyve/usr.bin/wc/wc.c projects/bhyve/usr.bin/whereis/whereis.c projects/bhyve/usr.bin/which/which.c projects/bhyve/usr.bin/who/who.1 projects/bhyve/usr.bin/who/who.c projects/bhyve/usr.bin/whois/whois.c projects/bhyve/usr.bin/xinstall/xinstall.c projects/bhyve/usr.bin/xlint/xlint/xlint.c projects/bhyve/usr.bin/xstr/xstr.c projects/bhyve/usr.sbin/apm/apm.c projects/bhyve/usr.sbin/boot0cfg/boot0cfg.8 projects/bhyve/usr.sbin/boot0cfg/boot0cfg.c projects/bhyve/usr.sbin/cdcontrol/cdcontrol.c projects/bhyve/usr.sbin/chown/chown.c projects/bhyve/usr.sbin/chroot/chroot.c projects/bhyve/usr.sbin/config/mkmakefile.c projects/bhyve/usr.sbin/devinfo/devinfo.c projects/bhyve/usr.sbin/fdread/fdread.c projects/bhyve/usr.sbin/memcontrol/memcontrol.c projects/bhyve/usr.sbin/mergemaster/mergemaster.8 projects/bhyve/usr.sbin/mergemaster/mergemaster.sh projects/bhyve/usr.sbin/mixer/mixer.c projects/bhyve/usr.sbin/moused/moused.c projects/bhyve/usr.sbin/mptable/mptable.c projects/bhyve/usr.sbin/mtree/mtree.5 projects/bhyve/usr.sbin/pc-sysinstall/backend-query/sys-mem.sh projects/bhyve/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh projects/bhyve/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/bhyve/usr.sbin/pc-sysinstall/backend/functions-networking.sh projects/bhyve/usr.sbin/pc-sysinstall/backend/functions-unmount.sh projects/bhyve/usr.sbin/pc-sysinstall/backend/parseconfig.sh projects/bhyve/usr.sbin/pkg_install/lib/version.c projects/bhyve/usr.sbin/pmccontrol/pmccontrol.c projects/bhyve/usr.sbin/pmcstat/pmcpl_calltree.c projects/bhyve/usr.sbin/pmcstat/pmcpl_gprof.c projects/bhyve/usr.sbin/pmcstat/pmcstat.c projects/bhyve/usr.sbin/pmcstat/pmcstat_log.c projects/bhyve/usr.sbin/portsnap/portsnap/portsnap.sh projects/bhyve/usr.sbin/pwd_mkdb/pwd_mkdb.c projects/bhyve/usr.sbin/rip6query/rip6query.c projects/bhyve/usr.sbin/rmt/rmt.c projects/bhyve/usr.sbin/snapinfo/snapinfo.c projects/bhyve/usr.sbin/spray/spray.c projects/bhyve/usr.sbin/timed/timed/readmsg.c projects/bhyve/usr.sbin/timed/timed/timed.c projects/bhyve/usr.sbin/tzsetup/tzsetup.c Directory Properties: projects/bhyve/ (props changed) projects/bhyve/cddl/contrib/opensolaris/ (props changed) projects/bhyve/contrib/bind9/ (props changed) projects/bhyve/contrib/binutils/ (props changed) projects/bhyve/contrib/bzip2/ (props changed) projects/bhyve/contrib/com_err/ (props changed) projects/bhyve/contrib/compiler-rt/ (props changed) projects/bhyve/contrib/dialog/ (props changed) projects/bhyve/contrib/ee/ (props changed) projects/bhyve/contrib/expat/ (props changed) projects/bhyve/contrib/file/ (props changed) projects/bhyve/contrib/gcc/ (props changed) projects/bhyve/contrib/gdb/ (props changed) projects/bhyve/contrib/gdtoa/ (props changed) projects/bhyve/contrib/gnu-sort/ (props changed) projects/bhyve/contrib/groff/ (props changed) projects/bhyve/contrib/less/ (props changed) projects/bhyve/contrib/libpcap/ (props changed) projects/bhyve/contrib/libstdc++/ (props changed) projects/bhyve/contrib/llvm/ (props changed) projects/bhyve/contrib/llvm/tools/clang/ (props changed) projects/bhyve/contrib/ncurses/ (props changed) projects/bhyve/contrib/netcat/ (props changed) projects/bhyve/contrib/ntp/ (props changed) projects/bhyve/contrib/one-true-awk/ (props changed) projects/bhyve/contrib/openbsm/ (props changed) projects/bhyve/contrib/openpam/ (props changed) projects/bhyve/contrib/openresolv/ (props changed) projects/bhyve/contrib/pf/ (props changed) projects/bhyve/contrib/sendmail/ (props changed) projects/bhyve/contrib/tcpdump/ (props changed) projects/bhyve/contrib/tcsh/ (props changed) projects/bhyve/contrib/tnftp/ (props changed) projects/bhyve/contrib/top/ (props changed) projects/bhyve/contrib/top/install-sh (props changed) projects/bhyve/contrib/tzcode/stdtime/ (props changed) projects/bhyve/contrib/tzcode/zic/ (props changed) projects/bhyve/contrib/tzdata/ (props changed) projects/bhyve/contrib/wpa/ (props changed) projects/bhyve/contrib/xz/ (props changed) projects/bhyve/crypto/heimdal/ (props changed) projects/bhyve/crypto/openssh/ (props changed) projects/bhyve/crypto/openssl/ (props changed) projects/bhyve/gnu/lib/ (props changed) projects/bhyve/gnu/usr.bin/binutils/ (props changed) projects/bhyve/gnu/usr.bin/cc/cc_tools/ (props changed) projects/bhyve/gnu/usr.bin/gdb/ (props changed) projects/bhyve/lib/libc/ (props changed) projects/bhyve/lib/libc/stdtime/ (props changed) projects/bhyve/lib/libutil/ (props changed) projects/bhyve/lib/libz/ (props changed) projects/bhyve/sbin/ (props changed) projects/bhyve/sbin/ipfw/ (props changed) projects/bhyve/share/mk/bsd.arch.inc.mk (props changed) projects/bhyve/share/zoneinfo/ (props changed) projects/bhyve/sys/ (props changed) projects/bhyve/sys/amd64/include/xen/ (props changed) projects/bhyve/sys/boot/ (props changed) projects/bhyve/sys/boot/i386/efi/ (props changed) projects/bhyve/sys/boot/ia64/efi/ (props changed) projects/bhyve/sys/boot/ia64/ski/ (props changed) projects/bhyve/sys/boot/powerpc/boot1.chrp/ (props changed) projects/bhyve/sys/boot/powerpc/ofw/ (props changed) projects/bhyve/sys/cddl/contrib/opensolaris/ (props changed) projects/bhyve/sys/conf/ (props changed) projects/bhyve/sys/contrib/dev/acpica/ (props changed) projects/bhyve/sys/contrib/octeon-sdk/ (props changed) projects/bhyve/sys/contrib/pf/ (props changed) projects/bhyve/sys/contrib/x86emu/ (props changed) projects/bhyve/usr.bin/calendar/ (props changed) projects/bhyve/usr.bin/csup/ (props changed) projects/bhyve/usr.bin/procstat/ (props changed) projects/bhyve/usr.sbin/ndiscvt/ (props changed) projects/bhyve/usr.sbin/rtadvctl/ (props changed) projects/bhyve/usr.sbin/rtadvd/ (props changed) projects/bhyve/usr.sbin/rtsold/ (props changed) projects/bhyve/usr.sbin/zic/ (props changed) Modified: projects/bhyve/Makefile ============================================================================== --- projects/bhyve/Makefile Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/Makefile Tue Nov 22 02:27:59 2011 (r227811) @@ -182,10 +182,12 @@ buildworld: upgrade_checks # # In the following, the first 'rm' in a series will usually remove all # files and directories. If it does not, then there are probably some -# files with chflags set, so this unsets them and tries the 'rm' a +# files with file flags set, so this unsets them and tries the 'rm' a # second time. There are situations where this target will be cleaning # some directories via more than one method, but that duplication is -# needed to correctly handle all the possible situations. +# needed to correctly handle all the possible situations. Removing all +# files without file flags set in the first 'rm' instance saves time, +# because 'chflags' will need to operate on fewer files afterwards. # BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR} cleanworld: Modified: projects/bhyve/Makefile.inc1 ============================================================================== --- projects/bhyve/Makefile.inc1 Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/Makefile.inc1 Tue Nov 22 02:27:59 2011 (r227811) @@ -291,7 +291,7 @@ LIB32CPUFLAGS= -mcpu=powerpc LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE} .endif LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc \ - LD="${LD} -m elf32ppc" + LD="${LD} -m elf32ppc_fbsd" .endif @@ -313,7 +313,8 @@ LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${OBJTR LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} -DNO_CPU_CFLAGS -DCOMPAT_32BIT \ -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO \ - -DWITHOUT_HTML -DNO_CTF -DNO_LINT DESTDIR=${LIB32TMP} + -DWITHOUT_HTML -DNO_CTF -DNO_LINT -ECC -ECXX -EAS -ELD \ + DESTDIR=${LIB32TMP} LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*} -DNO_INCS .endif @@ -1229,12 +1230,13 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam ${_lib_libthr} \ + lib/libopie ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ ${_cddl_lib_libumem} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ - ${_secure_lib_libssl} + ${_secure_lib_libssl} \ + lib/libpam .if ${MK_LIBTHR} != "no" _lib_libthr= lib/libthr @@ -1322,7 +1324,7 @@ ${_lib}__PL: .PHONY .endif .endfor -.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs} +.for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs} ${_lib}__L: .PHONY .if exists(${.CURDIR}/${_lib}) ${_+_}@${ECHODIR} "===> ${_lib} (obj,depend,all,install)"; \ @@ -1334,17 +1336,6 @@ ${_lib}__L: .PHONY .endif .endfor -# libpam is special: we need to build static PAM modules before -# static PAM library, and dynamic PAM library before dynamic PAM -# modules. -lib/libpam__L: .PHONY - ${_+_}@${ECHODIR} "===> lib/libpam (obj,depend,all,install)"; \ - cd ${.CURDIR}/lib/libpam; \ - ${MAKE} DIRPRFX=lib/libpam/ obj; \ - ${MAKE} DIRPRFX=lib/libpam/ depend; \ - ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \ - ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET install - _prereq_libs: ${_prereq_libs:S/$/__PL/} _startup_libs: ${_startup_libs:S/$/__L/} _prebuild_libs: ${_prebuild_libs:S/$/__L/} Modified: projects/bhyve/ObsoleteFiles.inc ============================================================================== --- projects/bhyve/ObsoleteFiles.inc Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/ObsoleteFiles.inc Tue Nov 22 02:27:59 2011 (r227811) @@ -44,10 +44,12 @@ OLD_FILES+=usr/share/man/man8/sysinstall OLD_FILES+=usr/lib/libftpio.a OLD_FILES+=usr/lib/libftpio.so OLD_LIBS+=usr/lib/libftpio.so.8 +OLD_FILES+=usr/lib/libftpio_p.a .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libftpio.a OLD_FILES+=usr/lib32/libftpio.so OLD_LIBS+=usr/lib32/libftpio.so.8 +OLD_FILES+=usr/lib32/libftpio_p.a .endif OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz @@ -77,11 +79,22 @@ OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 .endif +# 20110817: no more acd.4, ad.4, afd.4 and ast.4 +OLD_FILES+=usr/share/man/man4/acd.4.gz +OLD_FILES+=usr/share/man/man4/ad.4.gz +OLD_FILES+=usr/share/man/man4/afd.4.gz +OLD_FILES+=usr/share/man/man4/ast.4.gz # 20110718: no longer useful in the age of rc.d OLD_FILES+=usr/sbin/named.reconfig OLD_FILES+=usr/sbin/named.reload +OLD_FILES+=usr/share/man/man8/named.reconfig.8.gz +OLD_FILES+=usr/share/man/man8/named.reload.8.gz # 20110716: bind 9.8.0 import OLD_LIBS+=usr/lib/liblwres.so.50 +OLD_FILES+=usr/share/doc/bind9/KNOWN-DEFECTS +OLD_FILES+=usr/share/doc/bind9/NSEC3-NOTES +OLD_FILES+=usr/share/doc/bind9/README.idnkit +OLD_FILES+=usr/share/doc/bind9/README.pkcs11 # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. Modified: projects/bhyve/UPDATING ============================================================================== --- projects/bhyve/UPDATING Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/UPDATING Tue Nov 22 02:27:59 2011 (r227811) @@ -22,6 +22,16 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20111108: + The option VFS_ALLOW_NONMPSAFE option has been added in order to + explicitely support non-MPSAFE filesystems. + It is on by default for all supported platform at this present + time. + +20111101: + The broken amd(4) driver has been replaced with esp(4) in the amd64, + i386 and pc98 GENERIC kernel configuration files. + 20110930: sysinstall has been removed Modified: projects/bhyve/bin/cat/cat.c ============================================================================== --- projects/bhyve/bin/cat/cat.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/cat/cat.c Tue Nov 22 02:27:59 2011 (r227811) @@ -64,9 +64,9 @@ __FBSDID("$FreeBSD$"); #include #include -int bflag, eflag, nflag, sflag, tflag, vflag; -int rval; -const char *filename; +static int bflag, eflag, nflag, sflag, tflag, vflag; +static int rval; +static const char *filename; static void usage(void); static void scanfiles(char *argv[], int cooked); Modified: projects/bhyve/bin/ln/ln.c ============================================================================== --- projects/bhyve/bin/ln/ln.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/ln/ln.c Tue Nov 22 02:27:59 2011 (r227811) @@ -54,16 +54,16 @@ __FBSDID("$FreeBSD$"); #include #include -int fflag; /* Unlink existing files. */ -int Fflag; /* Remove empty directories also. */ -int hflag; /* Check new name for symlink first. */ -int iflag; /* Interactive mode. */ -int Pflag; /* Create hard links to symlinks. */ -int sflag; /* Symbolic, not hard, link. */ -int vflag; /* Verbose output. */ -int wflag; /* Warn if symlink target does not +static int fflag; /* Unlink existing files. */ +static int Fflag; /* Remove empty directories also. */ +static int hflag; /* Check new name for symlink first. */ +static int iflag; /* Interactive mode. */ +static int Pflag; /* Create hard links to symlinks. */ +static int sflag; /* Symbolic, not hard, link. */ +static int vflag; /* Verbose output. */ +static int wflag; /* Warn if symlink target does not * exist, and -f is not enabled. */ -char linkch; +static char linkch; int linkit(const char *, const char *, int); void usage(void); Modified: projects/bhyve/bin/mkdir/mkdir.c ============================================================================== --- projects/bhyve/bin/mkdir/mkdir.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/mkdir/mkdir.c Tue Nov 22 02:27:59 2011 (r227811) @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); static int build(char *, mode_t); static void usage(void); -int vflag; +static int vflag; int main(int argc, char *argv[]) Modified: projects/bhyve/bin/mv/mv.c ============================================================================== --- projects/bhyve/bin/mv/mv.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/mv/mv.c Tue Nov 22 02:27:59 2011 (r227811) @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); /* Exit code for a failed exec. */ #define EXEC_FAILED 127 -int fflg, iflg, nflg, vflg; +static int fflg, iflg, nflg, vflg; static int copy(const char *, const char *); static int do_move(const char *, const char *); Modified: projects/bhyve/bin/ps/print.c ============================================================================== --- projects/bhyve/bin/ps/print.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/ps/print.c Tue Nov 22 02:27:59 2011 (r227811) @@ -362,7 +362,7 @@ tdev(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV) - str = strdup("??"); + str = strdup("-"); else asprintf(&str, "%#jx", (uintmax_t)dev); @@ -379,7 +379,7 @@ tname(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) - str = strdup("?? "); + str = strdup("- "); else { if (strncmp(ttname, "tty", 3) == 0 || strncmp(ttname, "cua", 3) == 0) @@ -403,7 +403,7 @@ longtname(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) - ttname = "??"; + ttname = "-"; return (strdup(ttname)); } Modified: projects/bhyve/bin/ps/ps.1 ============================================================================== --- projects/bhyve/bin/ps/ps.1 Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/ps/ps.1 Tue Nov 22 02:27:59 2011 (r227811) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd October 1, 2011 +.Dd October 30, 2011 .Dt PS 1 .Os .Sh NAME @@ -437,6 +437,10 @@ This is followed by a .Ql - if the process can no longer reach that controlling terminal (i.e., it has been revoked). +A +.Ql - +without a preceding two letter abbreviation or pseudo-terminal device number +indicates a process which never had a controlling terminal. The full pathname of the controlling terminal is available via the .Cm tty keyword. Modified: projects/bhyve/bin/rm/rm.c ============================================================================== --- projects/bhyve/bin/rm/rm.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/rm/rm.c Tue Nov 22 02:27:59 2011 (r227811) @@ -57,10 +57,10 @@ __FBSDID("$FreeBSD$"); #include #include -int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok; -int rflag, Iflag; -uid_t uid; -volatile sig_atomic_t info; +static int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok; +static int rflag, Iflag; +static uid_t uid; +static volatile sig_atomic_t info; int check(char *, char *, struct stat *); int check2(char **); Modified: projects/bhyve/bin/sh/arith_yacc.c ============================================================================== --- projects/bhyve/bin/sh/arith_yacc.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/sh/arith_yacc.c Tue Nov 22 02:27:59 2011 (r227811) @@ -131,11 +131,11 @@ static arith_t do_binop(int op, arith_t yyerror("divide error"); return op == ARITH_REM ? a % b : a / b; case ARITH_MUL: - return a * b; + return (uintmax_t)a * (uintmax_t)b; case ARITH_ADD: - return a + b; + return (uintmax_t)a + (uintmax_t)b; case ARITH_SUB: - return a - b; + return (uintmax_t)a - (uintmax_t)b; case ARITH_LSHIFT: return a << b; case ARITH_RSHIFT: Modified: projects/bhyve/bin/sh/options.c ============================================================================== --- projects/bhyve/bin/sh/options.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/sh/options.c Tue Nov 22 02:27:59 2011 (r227811) @@ -401,9 +401,10 @@ setcmd(int argc, char **argv) void getoptsreset(const char *value) { - if (number(value) == 1) { + while (*value == '0') + value++; + if (strcmp(value, "1") == 0) shellparam.reset = 1; - } } /* Modified: projects/bhyve/bin/sh/sh.1 ============================================================================== --- projects/bhyve/bin/sh/sh.1 Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/sh/sh.1 Tue Nov 22 02:27:59 2011 (r227811) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd July 10, 2011 +.Dd November 5, 2011 .Dt SH 1 .Os .Sh NAME @@ -1160,6 +1160,11 @@ of alphabetics, numerics, and underscore The first letter of a variable name must not be numeric. A parameter can also be denoted by a number or a special character as explained below. +.Pp +Assignments are expanded differently from other words: +tilde expansion is also performed after the equals sign and after any colon +and usernames are also terminated by colons, +and field splitting and pathname expansion are not performed. .Ss Positional Parameters A positional parameter is a parameter denoted by a number greater than zero. The shell sets these initially to the values of its command line @@ -1273,11 +1278,15 @@ used in tilde expansion and as a default built-in. .It Va IFS Input Field Separators. -This is normally set to +The default value is .Aq space , .Aq tab , and -.Aq newline . +.Aq newline +in that order. +This default also applies if +.Va IFS +is unset, but not if it is set to the empty string. See the .Sx White Space Splitting section for more details. @@ -1423,12 +1432,12 @@ part of the name. If a parameter expansion occurs inside double-quotes: .Bl -enum .It -Pathname expansion is not performed on the results of the -expansion. -.It Field splitting is not performed on the results of the expansion, with the exception of the special parameter .Va @ . +.It +Pathname expansion is not performed on the results of the +expansion. .El .Pp In addition, a parameter expansion can be modified by using one of the @@ -1641,16 +1650,51 @@ and contain integer constants. .Pp The result of the expression is substituted in decimal. .Ss White Space Splitting (Field Splitting) -After parameter expansion, command substitution, and +In certain contexts, +after parameter expansion, command substitution, and arithmetic expansion the shell scans the results of expansions and substitutions that did not occur in double-quotes for field splitting and multiple fields can result. .Pp -The shell treats each character of the +Characters in +.Va IFS +that are whitespace +.Po +.Aq space , +.Aq tab , +and +.Aq newline +.Pc +are treated differently from other characters in +.Va IFS . +.Pp +Whitespace in +.Va IFS +at the beginning or end of a word is discarded. +.Pp +Subsequently, a field is delimited by either +.Bl -enum +.It +a non-whitespace character in +.Va IFS +with any whitespace in +.Va IFS +surrounding it, or +.It +one or more whitespace characters in +.Va IFS . +.El +.Pp +If a word ends with a non-whitespace character in +.Va IFS , +there is no empty field after this character. +.Pp +If no field is delimited, the word is discarded. +In particular, if a word consists solely of an unquoted substitution +and the result of the substitution is null, +it is removed by field splitting even if .Va IFS -variable as a delimiter and uses -the delimiters to split the results of parameter expansion and command -substitution into fields. +is null. .Ss Pathname Expansion (File Name Generation) Unless the .Fl f Modified: projects/bhyve/bin/test/test.c ============================================================================== --- projects/bhyve/bin/test/test.c Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/bin/test/test.c Tue Nov 22 02:27:59 2011 (r227811) @@ -118,7 +118,7 @@ enum token_types { PAREN }; -struct t_op { +static struct t_op { const char *op_text; short op_num, op_type; } const ops [] = { @@ -165,10 +165,10 @@ struct t_op { {0, 0, 0} }; -struct t_op const *t_wp_op; -int nargc; -char **t_wp; -int parenlevel; +static struct t_op const *t_wp_op; +static int nargc; +static char **t_wp; +static int parenlevel; static int aexpr(enum token); static int binop(void); Modified: projects/bhyve/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- projects/bhyve/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Tue Nov 22 02:27:59 2011 (r227811) @@ -3,7 +3,8 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] -.TH zdb 1M "31 Oct 2005" "SunOS 5.11" "System Administration Commands" +.\" Portions Copyright 2011 Martin Matuska +.TH ZDB 8 "Oct 31, 2005" .SH NAME zdb \- ZFS debugger .SH SYNOPSIS @@ -15,70 +16,50 @@ zdb \- ZFS debugger .SH DESCRIPTION .sp .LP -The \fBzdb\fR command is used by support engineers to diagnose failures and gather statistics. Since the \fBZFS\fR file system is always consistent on disk and is self-repairing, \fBzdb\fR should only be run under the direction by a support engineer. +The \fBzdb\fR command is used by support engineers to diagnose failures and +gather statistics. Since the \fBZFS\fR file system is always consistent on disk +and is self-repairing, \fBzdb\fR should only be run under the direction by a +support engineer. .sp .LP -If no arguments are specified, \fBzdb\fR, performs basic consistency checks on the pool and associated datasets, and report any problems detected. +If no arguments are specified, \fBzdb\fR, performs basic consistency checks on +the pool and associated datasets, and report any problems detected. .sp .LP -Any options supported by this command are internal to Sun and subject to change at any time. +Any options supported by this command are internal to Sun and subject to change +at any time. .SH EXIT STATUS .sp .LP The following exit values are returned: .sp .ne 2 -.mk .na \fB\fB0\fR\fR .ad .RS 5n -.rt The pool is consistent. .RE .sp .ne 2 -.mk .na \fB\fB1\fR\fR .ad .RS 5n -.rt An error was detected. .RE .sp .ne 2 -.mk .na \fB\fB2\fR\fR .ad .RS 5n -.rt Invalid command line options were specified. .RE -.SH ATTRIBUTES -.sp -.LP -See \fBattributes\fR(5) for descriptions of the following attributes: -.sp - -.sp -.TS -tab() box; -cw(2.75i) |cw(2.75i) -lw(2.75i) |lw(2.75i) -. -ATTRIBUTE TYPEATTRIBUTE VALUE -_ -AvailabilitySUNWzfsu -_ -Interface StabilityUnstable -.TE - .SH SEE ALSO .sp .LP -\fBzfs\fR(1M), \fBzpool\fR(1M), \fBattributes\fR(5) +zfs(8), zpool(8) Modified: projects/bhyve/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- projects/bhyve/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Nov 22 01:32:57 2011 (r227810) +++ projects/bhyve/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Nov 22 02:27:59 2011 (r227811) @@ -8,7 +8,9 @@ .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .\" Copyright 2011 Nexenta Systems, Inc. All rights reserved. .\" Copyright 2011 by Delphix. All rights reserved. -.TH zfs 1M "24 Sep 2009" "SunOS 5.11" "System Administration Commands" +.\" Portions Copyright 2011 Pawel Jakub Dawidek +.\" Portions Copyright 2011 Martin Matuska +.TH ZFS 8 "September 24, 2009" FreeBSD .SH NAME zfs \- configures ZFS file systems .SH SYNOPSIS @@ -39,7 +41,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR]... +\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR]... \fIfilesystem@snapname\fR|\fIvolume@snapname\fR .fi @@ -60,7 +62,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBrename\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR +\fBzfs\fR \fBrename\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR .fi @@ -125,7 +127,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBmount\fR +\fBzfs\fR \fBmount\fR .fi .LP @@ -170,7 +172,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBallow\fR [\fB-ldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] \fIperm\fR|\fI@setname\fR[,...] +\fBzfs\fR \fBallow\fR [\fB-ldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] \fIperm\fR|\fI@setname\fR[,...] \fIfilesystem\fR|\fIvolume\fR .fi @@ -191,7 +193,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBunallow\fR [\fB-rldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] [\fIperm\fR|@\fIsetname\fR[,... ]] +\fBzfs\fR \fBunallow\fR [\fB-rldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] [\fIperm\fR|@\fIsetname\fR[,... ]] \fIfilesystem\fR|\fIvolume\fR .fi @@ -225,17 +227,22 @@ zfs \- configures ZFS file systems \fBzfs\fR \fBrelease\fR [\fB-r\fR] \fItag\fR \fIsnapshot\fR... .fi -\fBzfs\fR \fBjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR +.LP +.nf +\fBzfs\fR \fBjail\fR \fIjailid\fR \fIfilesystem\fR .fi + .LP .nf -\fBzfs\fR \fBunjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR +\fBzfs\fR \fBunjail\fR \fIjailid\fR \fIfilesystem\fR .fi .SH DESCRIPTION .sp .LP -The \fBzfs\fR command configures \fBZFS\fR datasets within a \fBZFS\fR storage pool, as described in \fBzpool\fR(1M). A dataset is identified by a unique path within the \fBZFS\fR namespace. For example: +The \fBzfs\fR command configures \fBZFS\fR datasets within a \fBZFS\fR storage +pool, as described in \fBzpool\fR(8). A dataset is identified by a unique path +within the \fBZFS\fR namespace. For example: .sp .in +2 .nf @@ -252,115 +259,164 @@ where the maximum length of a dataset na A dataset can be one of the following: .sp .ne 2 -.mk .na \fB\fIfile system\fR\fR .ad .sp .6 .RS 4n -A \fBZFS\fR dataset of type \fBfilesystem\fR can be mounted within the standard system namespace and behaves like other file systems. While \fBZFS\fR file systems are designed to be \fBPOSIX\fR compliant, known issues exist that prevent compliance in some cases. Applications that depend on standards conformance might fail due to nonstandard behavior when checking file system free space. +A \fBZFS\fR dataset of type \fBfilesystem\fR can be mounted within the standard +system namespace and behaves like other file systems. While \fBZFS\fR file +systems are designed to be \fBPOSIX\fR compliant, known issues exist that +prevent compliance in some cases. Applications that depend on standards +conformance might fail due to nonstandard behavior when checking file system +free space. .RE .sp .ne 2 -.mk .na \fB\fIvolume\fR\fR .ad .sp .6 .RS 4n -A logical volume exported as a raw or block device. This type of dataset should only be used under special circumstances. File systems are typically used in most environments. +A logical volume exported as a raw or block device. This type of dataset should +only be used under special circumstances. File systems are typically used in +most environments. .RE .sp .ne 2 -.mk .na \fB\fIsnapshot\fR\fR .ad .sp .6 .RS 4n -A read-only version of a file system or volume at a given point in time. It is specified as \fIfilesystem@name\fR or \fIvolume@name\fR. +A read-only version of a file system or volume at a given point in time. It is +specified as \fIfilesystem@name\fR or \fIvolume@name\fR. .RE .SS "ZFS File System Hierarchy" .sp .LP -A \fBZFS\fR storage pool is a logical collection of devices that provide space for datasets. A storage pool is also the root of the \fBZFS\fR file system hierarchy. +A \fBZFS\fR storage pool is a logical collection of devices that provide space +for datasets. A storage pool is also the root of the \fBZFS\fR file system +hierarchy. .sp .LP -The root of the pool can be accessed as a file system, such as mounting and unmounting, taking snapshots, and setting properties. The physical storage characteristics, however, are managed by the \fBzpool\fR(1M) command. +The root of the pool can be accessed as a file system, such as mounting and +unmounting, taking snapshots, and setting properties. The physical storage +characteristics, however, are managed by the \fBzpool\fR(8) command. .sp .LP -See \fBzpool\fR(1M) for more information on creating and administering pools. +See \fBzpool\fR(8) for more information on creating and administering pools. .SS "Snapshots" .sp .LP -A snapshot is a read-only copy of a file system or volume. Snapshots can be created extremely quickly, and initially consume no additional space within the pool. As data within the active dataset changes, the snapshot consumes more data than would otherwise be shared with the active dataset. +A snapshot is a read-only copy of a file system or volume. Snapshots can be +created extremely quickly, and initially consume no additional space within the +pool. As data within the active dataset changes, the snapshot consumes more +data than would otherwise be shared with the active dataset. .sp .LP -Snapshots can have arbitrary names. Snapshots of volumes can be cloned or rolled back, but cannot be accessed independently. +Snapshots can have arbitrary names. Snapshots of volumes can be cloned or +rolled back, but cannot be accessed independently. .sp .LP -File system snapshots can be accessed under the \fB\&.zfs/snapshot\fR directory in the root of the file system. Snapshots are automatically mounted on demand and may be unmounted at regular intervals. The visibility of the \fB\&.zfs\fR directory can be controlled by the \fBsnapdir\fR property. +File system snapshots can be accessed under the \fB\&.zfs/snapshot\fR directory +in the root of the file system. Snapshots are automatically mounted on demand +and may be unmounted at regular intervals. The visibility of the \fB\&.zfs\fR +directory can be controlled by the \fBsnapdir\fR property. .SS "Clones" .sp .LP -A clone is a writable volume or file system whose initial contents are the same as another dataset. As with snapshots, creating a clone is nearly instantaneous, and initially consumes no additional space. -.sp -.LP -Clones can only be created from a snapshot. When a snapshot is cloned, it creates an implicit dependency between the parent and child. Even though the clone is created somewhere else in the dataset hierarchy, the original snapshot cannot be destroyed as long as a clone exists. The \fBorigin\fR property exposes this dependency, and the \fBdestroy\fR command lists any such dependencies, if they exist. -.sp -.LP -The clone parent-child dependency relationship can be reversed by using the \fBpromote\fR subcommand. This causes the "origin" file system to become a clone of the specified file system, which makes it possible to destroy the file system that the clone was created from. +A clone is a writable volume or file system whose initial contents are the same +as another dataset. As with snapshots, creating a clone is nearly +instantaneous, and initially consumes no additional space. +.sp +.LP +Clones can only be created from a snapshot. When a snapshot is cloned, it +creates an implicit dependency between the parent and child. Even though the +clone is created somewhere else in the dataset hierarchy, the original snapshot +cannot be destroyed as long as a clone exists. The \fBorigin\fR property +exposes this dependency, and the \fBdestroy\fR command lists any such +dependencies, if they exist. +.sp +.LP +The clone parent-child dependency relationship can be reversed by using the +\fBpromote\fR subcommand. This causes the "origin" file system to become a +clone of the specified file system, which makes it possible to destroy the file +system that the clone was created from. .SS "Mount Points" .sp .LP -Creating a \fBZFS\fR file system is a simple operation, so the number of file systems per system is likely to be numerous. To cope with this, \fBZFS\fR automatically manages mounting and unmounting file systems without the need to edit the \fB/etc/vfstab\fR file. All automatically managed file systems are mounted by \fBZFS\fR at boot time. +Creating a \fBZFS\fR file system is a simple operation, so the number of file +systems per system is likely to be numerous. To cope with this, \fBZFS\fR +automatically manages mounting and unmounting file systems without the need to +edit the \fB/etc/fstab\fR file. All automatically managed file systems are +mounted by \fBZFS\fR at boot time. .sp .LP -By default, file systems are mounted under \fB/\fIpath\fR\fR, where \fIpath\fR is the name of the file system in the \fBZFS\fR namespace. Directories are created and destroyed as needed. +By default, file systems are mounted under \fB/\fIpath\fR\fR, where \fIpath\fR +is the name of the file system in the \fBZFS\fR namespace. Directories are +created and destroyed as needed. .sp .LP -A file system can also have a mount point set in the \fBmountpoint\fR property. This directory is created as needed, and \fBZFS\fR automatically mounts the file system when the \fBzfs mount -a\fR command is invoked (without editing \fB/etc/vfstab\fR). The \fBmountpoint\fR property can be inherited, so if \fBpool/home\fR has a mount point of \fB/export/stuff\fR, then \fBpool/home/user\fR automatically inherits a mount point of \fB/export/stuff/user\fR. +A file system can also have a mount point set in the \fBmountpoint\fR property. +This directory is created as needed, and \fBZFS\fR automatically mounts the +file system when the \fBzfs mount -a\fR command is invoked (without editing +\fB/etc/fstab\fR). The \fBmountpoint\fR property can be inherited, so if +\fBpool/home\fR has a mount point of \fB/export/stuff\fR, then +\fBpool/home/user\fR automatically inherits a mount point of +\fB/export/stuff/user\fR. .sp .LP -A file system \fBmountpoint\fR property of \fBnone\fR prevents the file system from being mounted. +A file system \fBmountpoint\fR property of \fBnone\fR prevents the file system +from being mounted. .sp .LP -If needed, \fBZFS\fR file systems can also be managed with traditional tools (\fBmount\fR, \fBumount\fR, \fB/etc/vfstab\fR). If a file system's mount point is set to \fBlegacy\fR, \fBZFS\fR makes no attempt to manage the file system, and the administrator is responsible for mounting and unmounting the file system. -.SS "Zones" +If needed, \fBZFS\fR file systems can also be managed with traditional tools +(\fBmount\fR, \fBumount\fR, \fB/etc/fstab\fR). If a file system's mount point +is set to \fBlegacy\fR, \fBZFS\fR makes no attempt to manage the file system, +and the administrator is responsible for mounting and unmounting the file +system. +.SS "Jails" .sp .LP -A \fBZFS\fR file system can be added to a non-global zone by using the \fBzonecfg\fR \fBadd fs\fR subcommand. A \fBZFS\fR file system that is added to a non-global zone must have its \fBmountpoint\fR property set to \fBlegacy\fR. +A \fBZFS\fR dataset can be attached to a jail by using the \fBzfs\fR +\fBjail\fR subcommand. You cannot attach a dataset to one jail and the +children of the same dataset to another jails. To allow managment of the +dataset from within a jail, the "\fBjailed\fR" property has to be set. +The \fBquota\fR property cannot be changed from within a jail. .sp .LP -The physical properties of an added file system are controlled by the global administrator. However, the zone administrator can create, modify, or destroy files within the added file system, depending on how the file system is mounted. +A \fBZFS\fR dataset can be detached from a jail using the \fBzfs\fR +\fBunjail\fR subcommand. .sp .LP -A dataset can also be delegated to a non-global zone by using the \fBzonecfg\fR \fBadd dataset\fR subcommand. You cannot delegate a dataset to one zone and the children of the same dataset to another zone. The zone administrator can change properties of the dataset or any of its children. However, the \fBquota\fR property is controlled by the global administrator. -.sp -.LP -A \fBZFS\fR volume can be added as a device to a non-global zone by using the \fBzonecfg\fR \fBadd device\fR subcommand. However, its physical properties can be modified only by the global administrator. -.sp -.LP -For more information about \fBzonecfg\fR syntax, see \fBzonecfg\fR(1M). -.sp -.LP -After a dataset is delegated to a non-global zone, the \fBzoned\fR property is automatically set. A zoned file system cannot be mounted in the global zone, since the zone administrator might have to set the mount point to an unacceptable value. -.sp -.LP -The global administrator can forcibly clear the \fBzoned\fR property, though this should be done with extreme care. The global administrator should verify that all the mount points are acceptable before clearing the property. +After a dataset is attached to a jail and the \fBjailed\fR property is set, +a jailed file system cannot be mounted outside the jail, since the jail +administrator might have set the mount point to an unacceptable value. .SS "Native Properties" .sp .LP -Properties are divided into two types, native properties and user-defined (or "user") properties. Native properties either export internal statistics or control \fBZFS\fR behavior. In addition, native properties are either editable or read-only. User properties have no effect on \fBZFS\fR behavior, but you can use them to annotate datasets in a way that is meaningful in your environment. For more information about user properties, see the "User Properties" section, below. -.sp -.LP -Every dataset has a set of properties that export statistics about the dataset as well as control various behaviors. Properties are inherited from the parent unless overridden by the child. Some properties apply only to certain types of datasets (file systems, volumes, or snapshots). -.sp -.LP -The values of numeric properties can be specified using human-readable suffixes (for example, \fBk\fR, \fBKB\fR, \fBM\fR, \fBGb\fR, and so forth, up to \fBZ\fR for zettabyte). The following are all valid (and equal) specifications: +Properties are divided into two types, native properties and user-defined (or +"user") properties. Native properties either export internal statistics or +control \fBZFS\fR behavior. In addition, native properties are either editable +or read-only. User properties have no effect on \fBZFS\fR behavior, but you can +use them to annotate datasets in a way that is meaningful in your environment. +For more information about user properties, see the "User Properties" section, +below. +.sp +.LP +Every dataset has a set of properties that export statistics about the dataset +as well as control various behaviors. Properties are inherited from the parent +unless overridden by the child. Some properties apply only to certain types of +datasets (file systems, volumes, or snapshots). +.sp +.LP +The values of numeric properties can be specified using human-readable suffixes +(for example, \fBk\fR, \fBKB\fR, \fBM\fR, \fBGb\fR, and so forth, up to \fBZ\fR +for zettabyte). The following are all valid (and equal) specifications: .sp .in +2 .nf @@ -371,37 +427,47 @@ The values of numeric properties can be .sp .LP -The values of non-numeric properties are case sensitive and must be lowercase, except for \fBmountpoint\fR, \fBsharenfs\fR, and \fBsharesmb\fR. +The values of non-numeric properties are case sensitive and must be lowercase, +except for \fBmountpoint\fR, \fBsharenfs\fR, and \fBsharesmb\fR. .sp .LP -The following native properties consist of read-only statistics about the dataset. These properties can be neither set, nor inherited. Native properties apply to all dataset types unless otherwise noted. +The following native properties consist of read-only statistics about the +dataset. These properties can be neither set, nor inherited. Native properties +apply to all dataset types unless otherwise noted. .sp .ne 2 -.mk .na \fB\fBavailable\fR\fR .ad .sp .6 .RS 4n -The amount of space available to the dataset and all its children, assuming that there is no other activity in the pool. Because space is shared within a pool, availability can be limited by any number of factors, including physical pool size, quotas, reservations, or other datasets within the pool. +The amount of space available to the dataset and all its children, assuming +that there is no other activity in the pool. Because space is shared within a +pool, availability can be limited by any number of factors, including physical +pool size, quotas, reservations, or other datasets within the pool. .sp -This property can also be referred to by its shortened column name, \fBavail\fR. +This property can also be referred to by its shortened column name, +\fBavail\fR. .RE .sp .ne 2 -.mk .na \fB\fBcompressratio\fR\fR .ad .sp .6 .RS 4n -For non-snapshots, the compression ratio achieved for the \fBused\fR space of this dataset, expressed as a multiplier. The \fBused\fR property includes descendant datasets, and, for clones, does not include the space shared with the origin snapshot. For snapshots, the \fBcompressratio\fR is the same as the \fBrefcompressratio\fR property. Compression can be turned on by running: \fBzfs set compression=on \fIdataset\fR\fR. The default value is \fBoff\fR. +For non-snapshots, the compression ratio achieved for the \fBused\fR +space of this dataset, expressed as a multiplier. The \fBused\fR +property includes descendant datasets, and, for clones, does not include +the space shared with the origin snapshot. For snapshots, the +\fBcompressratio\fR is the same as the \fBrefcompressratio\fR property. +Compression can be turned on by running: \fBzfs set compression=on +\fIdataset\fR\fR. The default value is \fBoff\fR. .RE .sp .ne 2 -.mk .na \fB\fBcreation\fR\fR .ad @@ -412,64 +478,69 @@ The time this dataset was created. .sp .ne 2 -.mk .na \fB\fBdefer_destroy\fR\fR .ad .sp .6 .RS 4n -This property is \fBon\fR if the snapshot has been marked for deferred destroy by using the \fBzfs destroy\fR \fB-d\fR command. Otherwise, the property is \fBoff\fR. +This property is \fBon\fR if the snapshot has been marked for deferred destroy +by using the \fBzfs destroy\fR \fB-d\fR command. Otherwise, the property is +\fBoff\fR. .RE .sp .ne 2 -.mk .na \fB\fBmounted\fR\fR .ad .sp .6 .RS 4n -For file systems, indicates whether the file system is currently mounted. This property can be either \fByes\fR or \fBno\fR. +For file systems, indicates whether the file system is currently mounted. This +property can be either \fByes\fR or \fBno\fR. .RE .sp .ne 2 -.mk .na \fB\fBorigin\fR\fR .ad .sp .6 .RS 4n -For cloned file systems or volumes, the snapshot from which the clone was created. The origin cannot be destroyed (even with the \fB-r\fR or \fB-f\fR options) so long as a clone exists. +For cloned file systems or volumes, the snapshot from which the clone was +created. The origin cannot be destroyed (even with the \fB-r\fR or \fB-f\fR +options) so long as a clone exists. .RE .sp .ne 2 -.mk .na \fB\fBreferenced\fR\fR .ad .sp .6 .RS 4n -The amount of data that is accessible by this dataset, which may or may not be shared with other datasets in the pool. When a snapshot or clone is created, it initially references the same amount of space as the file system or snapshot it was created from, since its contents are identical. +The amount of data that is accessible by this dataset, which may or may not be +shared with other datasets in the pool. When a snapshot or clone is created, it +initially references the same amount of space as the file system or snapshot it +was created from, since its contents are identical. .sp -This property can also be referred to by its shortened column name, \fBrefer\fR. +This property can also be referred to by its shortened column name, +\fBrefer\fR. .RE .sp .ne 2 -.mk .na \fB\fBrefcompressratio\fR\fR .ad .sp .6 .RS 4n -The compression ratio achieved for the \fBreferenced\fR space of this dataset, expressed as a multiplier. See also the \fBcompressratio\fR property. +The compression ratio achieved for the \fBreferenced\fR space of this +dataset, expressed as a multiplier. See also the \fBcompressratio\fR +property. .RE .sp .ne 2 -.mk .na \fB\fBtype\fR\fR .ad @@ -480,87 +551,113 @@ The type of dataset: \fBfilesystem\fR, \ .sp .ne 2 -.mk .na \fB\fBused\fR\fR .ad .sp .6 .RS 4n -The amount of space consumed by this dataset and all its descendents. This is the value that is checked against this dataset's quota and reservation. The space used does not include this dataset's reservation, but does take into account the reservations of any descendent datasets. The amount of space that a dataset consumes from its parent, as well as the amount of space that are freed if this dataset is recursively destroyed, is the greater of its space used and its reservation. -.sp -When snapshots (see the "Snapshots" section) are created, their space is initially shared between the snapshot and the file system, and possibly with previous snapshots. As the file system changes, space that was previously shared becomes unique to the snapshot, and counted in the snapshot's space used. Additionally, deleting snapshots can increase the amount of space unique to (and used by) other snapshots. -.sp -The amount of space used, available, or referenced does not take into account pending changes. Pending changes are generally accounted for within a few seconds. Committing a change to a disk using \fBfsync\fR(3c) or \fBO_SYNC\fR does not necessarily guarantee that the space usage information is updated immediately. +The amount of space consumed by this dataset and all its descendents. This is +the value that is checked against this dataset's quota and reservation. The +space used does not include this dataset's reservation, but does take into +account the reservations of any descendent datasets. The amount of space that a +dataset consumes from its parent, as well as the amount of space that are freed +if this dataset is recursively destroyed, is the greater of its space used and +its reservation. +.sp +When snapshots (see the "Snapshots" section) are created, their space is +initially shared between the snapshot and the file system, and possibly with +previous snapshots. As the file system changes, space that was previously +shared becomes unique to the snapshot, and counted in the snapshot's space +used. Additionally, deleting snapshots can increase the amount of space unique +to (and used by) other snapshots. +.sp +The amount of space used, available, or referenced does not take into account *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 06:56:46 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B4EB106566B; Tue, 22 Nov 2011 06:56:46 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 096408FC16; Tue, 22 Nov 2011 06:56:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAM6ukZS078734; Tue, 22 Nov 2011 06:56:46 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAM6ujse078726; Tue, 22 Nov 2011 06:56:45 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201111220656.pAM6ujse078726@svn.freebsd.org> From: Lawrence Stewart Date: Tue, 22 Nov 2011 06:56:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227813 - in projects/diffused_head: etc/mtree include sbin/ipfw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 06:56:46 -0000 Author: lstewart Date: Tue Nov 22 06:56:45 2011 New Revision: 227813 URL: http://svn.freebsd.org/changeset/base/227813 Log: Integrate DIFFUSE related functionality into the IPFW userspace control utility. The code extends sbin/ipfw to manage, parse and output DIFFUSE specific configuration exchanged with the DIFFUSE kernel module via the DIFFUSE control raw socket. The UI extension for features and classifiers is kept modular to minimise the overhead involved in adding new features and classifiers in future. Sponsored by: FreeBSD Foundation Reviewed by: bz Added: projects/diffused_head/sbin/ipfw/diffuse_modules.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_proto.h (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui.h (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_classifier_c45.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_classifier_nbayes.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_iat.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_iatbd.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_pcnt.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_plen.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_plenbd.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_ui_feature_skype.c (contents, props changed) Modified: projects/diffused_head/etc/mtree/BSD.include.dist projects/diffused_head/include/Makefile projects/diffused_head/sbin/ipfw/Makefile projects/diffused_head/sbin/ipfw/ipfw2.c projects/diffused_head/sbin/ipfw/ipfw2.h projects/diffused_head/sbin/ipfw/main.c Modified: projects/diffused_head/etc/mtree/BSD.include.dist ============================================================================== --- projects/diffused_head/etc/mtree/BSD.include.dist Tue Nov 22 02:50:24 2011 (r227812) +++ projects/diffused_head/etc/mtree/BSD.include.dist Tue Nov 22 06:56:45 2011 (r227813) @@ -258,6 +258,8 @@ .. .. netinet + ipfw + .. .. netinet6 .. Modified: projects/diffused_head/include/Makefile ============================================================================== --- projects/diffused_head/include/Makefile Tue Nov 22 02:50:24 2011 (r227812) +++ projects/diffused_head/include/Makefile Tue Nov 22 06:56:45 2011 (r227813) @@ -215,6 +215,15 @@ copies: cd ${.CURDIR}/../sys/rpc; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \ ${DESTDIR}${INCLUDEDIR}/rpc + cd ${.CURDIR}/../sys/netinet/ipfw; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 diffuse_feature*.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 diffuse_classifier*.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 diffuse_common.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 diffuse_user_compat.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw symlinks: @${ECHO} "Setting up symlinks to kernel source tree..." @@ -315,3 +324,12 @@ symlinks: ln -fs ../../../sys/rpc/$$h \ ${DESTDIR}${INCLUDEDIR}/rpc; \ done + cd ${.CURDIR}/../sys/netinet/ipfw; \ + for h in diffuse_classifier*.h diffuse_feature*.h; do \ + ln -fs ../../../../sys/netinet/ipfw/$$h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw; \ + done; \ + ln -fs ../../../../sys/netinet/ipfw/diffuse_common.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw; \ + ln -fs ../../../../sys/netinet/ipfw/diffuse_user_compat.h \ + ${DESTDIR}${INCLUDEDIR}/netinet/ipfw Modified: projects/diffused_head/sbin/ipfw/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 02:50:24 2011 (r227812) +++ projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 06:56:45 2011 (r227813) @@ -2,9 +2,15 @@ PROG= ipfw SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c altq.c +SRCS+= diffuse_ui.c diffuse_modules.c diffuse_ui_classifier_c45.c +SRCS+= diffuse_ui_classifier_nbayes.c diffuse_ui_feature_iat.c +SRCS+= diffuse_ui_feature_iatbd.c diffuse_ui_feature_pcnt.c +SRCS+= diffuse_ui_feature_plen.c diffuse_ui_feature_plenbd.c +SRCS+= diffuse_ui_feature_skype.c WARNS?= 2 DPADD= ${LIBUTIL} -LDADD= -lutil +DPADD+= ${LIBM} +LDADD= -lutil -lm MAN= ipfw.8 .include Added: projects/diffused_head/sbin/ipfw/diffuse_modules.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_modules.c Tue Nov 22 06:56:45 2011 (r227813) @@ -0,0 +1,165 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Description: + * Functions to manage classifier and feature UI modules. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "diffuse_ui.h" + +SLIST_HEAD(di_featuremods_head, di_feature_module); +SLIST_HEAD(di_classifiermods_head, di_classifier_module); + +/* List of feature modules. */ +static struct di_featuremods_head *featuremods = + SLIST_HEAD_INITIALIZER(featuremods); + +/* List of classifier modules. */ +static struct di_classifiermods_head *classifiermods = + SLIST_HEAD_INITIALIZER(classifiermods); + +struct di_classifier_module * +find_classifier_module(const char *name) +{ + struct di_classifier_module *tmp; + + tmp = NULL; + + SLIST_FOREACH(tmp, classifiermods, next) { + if (strcmp(tmp->name, name) == 0) + break; + } + + return (tmp); +} + +void +print_classifier_modules() +{ + struct di_classifier_module *tmp; + + SLIST_FOREACH(tmp, classifiermods, next) { + printf("%s ", tmp->name); + } + printf("\n"); +} + +struct di_feature_module * +find_feature_module(const char *name) +{ + struct di_feature_module *tmp; + + tmp = NULL; + + SLIST_FOREACH(tmp, featuremods, next) { + if (strcmp(tmp->name, name) == 0) + break; + } + + return (tmp); +} + +void +print_feature_modules() +{ + struct di_feature_module *tmp; + + SLIST_FOREACH(tmp, featuremods, next) { + printf("%s ", tmp->name); + } + printf("\n"); +} + +void +diffuse_classifier_modules_init() +{ + + SLIST_INIT(classifiermods); + SLIST_INSERT_HEAD(classifiermods, c45_module(), next); + SLIST_INSERT_HEAD(classifiermods, nbayes_module(), next); +} + +void +diffuse_feature_modules_init() +{ + + SLIST_INIT(featuremods); + SLIST_INSERT_HEAD(featuremods, iat_module(), next); + SLIST_INSERT_HEAD(featuremods, iatbd_module(), next); + SLIST_INSERT_HEAD(featuremods, pcnt_module(), next); + SLIST_INSERT_HEAD(featuremods, plen_module(), next); + SLIST_INSERT_HEAD(featuremods, plenbd_module(), next); + SLIST_INSERT_HEAD(featuremods, skype_module(), next); +} + +void +diffuse_modules_init() +{ + + diffuse_feature_modules_init(); + diffuse_classifier_modules_init(); +#ifdef DIFFFUSE_DEBUG + printf("Known features: "); + print_feature_modules(); + printf("Known classifiers: "); + print_classifier_modules(); +#endif +} Added: projects/diffused_head/sbin/ipfw/diffuse_proto.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_proto.h Tue Nov 22 06:56:45 2011 (r227813) @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * Description: + * Functions for control protocol. + */ + +#ifndef _SBIN_IPFW_DIFFUSE_PROTO_H_ +#define _SBIN_IPFW_DIFFUSE_PROTO_H_ + +#define DI_COLLECTOR_DEFAULT_LISTEN_PORT 3191 +#define DI_EXPORTER_DEFAULT_LISTEN_PORT 4377 + +/* Template list. */ + +struct di_template { + uint16_t id; /* Template id. */ + struct dip_info_element fields[64]; /* Fields. */ + int fcnt; /* Number of template fields. */ + RB_ENTRY(di_template) node; +}; + +static inline int +template_compare(struct di_template *a, struct di_template *b) +{ + + return ((a->id != b->id) ? (a->id < b->id ? -1 : 1) : 0); +} + +RB_HEAD(di_template_head, di_template); +RB_PROTOTYPE(di_template_head, di_template, node, template_compare); + +struct dip_info_descr diffuse_proto_get_info(uint16_t id); +void diffuse_proto_print_msg(char *buf, struct di_template_head *templ_list); + +#endif /* _SBIN_IPFW_DIFFUSE_PROTO_H_ */ Added: projects/diffused_head/sbin/ipfw/diffuse_ui.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_ui.c Tue Nov 22 06:56:45 2011 (r227813) @@ -0,0 +1,2309 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include + +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "diffuse_ui.h" +#include "diffuse_proto.h" +#include "ipfw2.h" + +/* Takes an *ipfw_insn as cmd. */ +#define GENERATE_FEATURES(cmd) do { \ + if (!features) { \ + (cmd)->opcode = O_DI_FEATURES_IMPLICIT; \ + fill_features((ipfw_insn_features *)(cmd), NULL); \ + features = (ipfw_insn_features *)(cmd); \ + (cmd) = next_cmd(cmd); \ + } \ +} while(0) + +/* New tokens used by DIFFUSE in rule sets. */ +static struct di_option diffuse_main_params[] = { + { "module", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_MODULE }, + { "algorithm", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_ALGORITHM }, + { "use-feature-stats", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_USE_FEATURE_STATS }, + { "class-names", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_CLASS_NAMES }, + { "expired", DI_OPTION_ARG_NOARG, 0, 0, + TOK_DI_EXPIRED }, + { "target", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_EXP_TARGET }, + { "confirm", DI_OPTION_ARG_UINT, 1, 65535, + TOK_DI_CONFIRM }, + { "min-batch", DI_OPTION_ARG_UINT, 1, 65535, + TOK_DI_EXP_MIN_BATCH }, + { "max-batch", DI_OPTION_ARG_UINT, 1, 65535, + TOK_DI_EXP_MAX_BATCH }, + { "max-delay", DI_OPTION_ARG_UINT, 1, 65535, + TOK_DI_EXP_MAX_DELAY }, + { "flow-key", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_EXP_FLOW_KEY }, + { "features", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_EXP_FEATURES }, + { "action", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_EXP_ACTION }, + { "action-params", DI_OPTION_ARG_STR, 0, 0, + TOK_DI_EXP_ACTION_PARAMS }, + { "unidirectional", DI_OPTION_ARG_NOARG, 0, 0, + TOK_DI_EXP_ACTION_UNIDIR }, + { NULL, 0, 0, 0, 0 } +}; + +/* Main parameters plus parameters of registered features/classifiers. */ +static struct di_option *diffuse_all_params = NULL; + +/* Globals for parsing functions. */ +ipfw_insn_features *features = NULL; /* Ptr to features cmd. */ +ipfw_insn_ml_classify *classifier = NULL; /* Ptr to classify action. */ +int have_feature_match; + +/* + * Merge feature module params (called from module). + * opts must be a NULL terminated array of struct di_option. + */ +int +diffuse_add_params(struct di_option *opts, int size) +{ + struct di_option *o; + int old; + + if (diffuse_all_params == NULL) { + diffuse_all_params = (struct di_option *)safe_calloc(1, size); + memcpy(diffuse_all_params, opts, size); + } else { + old = sizeof(diffuse_main_params); + diffuse_all_params = + (struct di_option *)safe_realloc(diffuse_all_params, + old + size); + o = diffuse_all_params; + /* + * The last element of diffuse_all_params is always an empty + * struct di_option so the below will copy opts over the top of + * the empty struct di_option in diffuse_all_params. + */ + while (o->name != NULL) + o++; + memcpy(o, opts, size); + } + + return (0); +} + +/* + * Helper stuff for building commands, etc. + */ + +#define O_NEXT(p, len) ((void *)(((char *)(p)) + (len))) + +void +diffuse_rec_fill(struct di_oid *oid, int len, int type, uintptr_t id) +{ + + oid->len = len; + oid->type = type; + oid->subtype = 0; + oid->id = id; +} + +/* Make room in the buffer and move the pointer forward. */ +void * +diffuse_rec_next(struct di_oid **o, int len, int type) +{ + struct di_oid *ret; + + ret = *o; + diffuse_rec_fill(ret, len, type, 0); + *o = O_NEXT(*o, len); + + return (ret); +} + +/* + * Takes a table and a string, returns the value associated + * with the string (NULL in case of failure). + */ +struct di_option * +diffuse_match_token(struct di_option *table, char *string) +{ + struct di_option *pt; + + pt = NULL; + if (strlen(string) > 0) { + for (pt = table; pt->name != NULL; pt++) + if (strcmp(pt->name, string) == 0) + break; + } + + return (pt); +} + +void +print_tokens(void) +{ + struct di_option *pt; + + for (pt = diffuse_all_params; pt->name != NULL; pt++) + printf("t %s\n", pt->name); +} + +/* Test if string only contains alphanumeric characters. */ +int +str_isalnum(char *s) +{ + + while (isalnum(*s)) + ++s; + + return (*s == '\0'); +} + +/* + * List functions. + */ + +/* List flow table. */ +static void +list_ft(struct di_oid *oid, struct di_oid *end, + struct di_feature_arr_entry *features, int counters) +{ + struct di_feature_module *f; + struct di_ft_export_entry *p; + struct in_addr a; + struct protoent *pe; + char *cname, *cp, *fname, *mod_name; + char buf[INET6_ADDRSTRLEN]; + int i, j; + int32_t *bck_svals, *fwd_svals; + uint16_t *class; + uint8_t *fidx, *scnt; + +#ifdef DIFFUSE_DEBUG2 + printf("list_ft\n"); +#endif + if (oid->type != DI_FLOW_TABLE) + return; + + cp = (char *)oid + sizeof(struct di_oid); + while (cp < (char *)end) { + p = (struct di_ft_export_entry *)cp; + + printf("%05d", p->ruleno); + printf(" %05d", p->bucket); + + if (counters > 0) { + printf(" "); + pr_u64(&p->pcnt, pr_u64(&p->pcnt, 0)); + pr_u64(&p->bcnt, pr_u64(&p->bcnt, 0)); + printf("(%ds)", p->expire); + } + if ((pe = getprotobynumber(p->id.proto)) != NULL) + printf(" %s", pe->p_name); + else + printf(" proto %u", p->id.proto); + + /* + * The DIFFUSE kernel code stores the flow ID address and port + * in host byte order. + */ + if (p->id.addr_type == 4) { + a.s_addr = htonl(p->id.src_ip); + printf(" %s %u", inet_ntoa(a), p->id.src_port); + + a.s_addr = htonl(p->id.dst_ip); + if (p->ftype & DI_FLOW_TYPE_BIDIRECTIONAL) + printf(" <-> "); + else + printf(" -> "); + + printf("%s %u", inet_ntoa(a), p->id.dst_port); + } else if (p->id.addr_type == 6) { + printf(" %s %u", inet_ntop(AF_INET6, &p->id.src_ip6, + buf, sizeof(buf)), p->id.src_port); + if (p->ftype & DI_FLOW_TYPE_BIDIRECTIONAL) + printf(" <-> "); + else + printf(" -> "); + + printf("%s %u", inet_ntop(AF_INET6, &p->id.dst_ip6, + buf, sizeof(buf)), p->id.dst_port); + } else { + printf(" UNKNOWN <-> UNKNOWN\n"); + } + + cp += sizeof(struct di_ft_export_entry); + fidx = (uint8_t *)cp; + cp += p->fcnt*sizeof(uint8_t); + scnt = (uint8_t *)cp; + cp += p->fcnt * sizeof(uint8_t); + printf(" "); + + for (i = 0; i < p->fcnt; i++) { + /* + * Need to have feature name and algo name + * lookup stat names via algo. + */ + fname = features[fidx[i]].name; + mod_name = features[fidx[i]].mod_name; + f = find_feature_module(mod_name); + + if (!(f->type & DI_FEATURE_ALG_BIDIRECTIONAL) && + p->ftype & DI_FLOW_TYPE_BIDIRECTIONAL) { + fwd_svals = (int32_t *)cp; + cp += scnt[i] * sizeof(int32_t); + bck_svals = (int32_t * )cp; + cp += scnt[i] * sizeof(int32_t); + + for (j = 0; j < scnt[i]; j++) { + printf("fwd.%s.%s=%d ", + f->get_stat_name(j), fname, + fwd_svals[j]); + } + for (j = 0; j < scnt[i]; j++) { + printf("bck.%s.%s=%d ", + f->get_stat_name(j), fname, + bck_svals[j]); + } + } else { + fwd_svals = (int32_t *)cp; + cp += scnt[i] * sizeof(int32_t); + + for (j = 0; j < scnt[i]; j++) { + printf("%s.%s=%d ", f->get_stat_name(j), + fname, fwd_svals[j]); + } + } + } + for (i = 0; i < p->tcnt; i++) { + cname = cp; + cp += DI_MAX_NAME_STR_LEN; + class = (uint16_t *)cp; + cp += sizeof(uint16_t); + printf("%s:%c%u ", cname, DI_CLASS_NO_CHAR, *class); + } + printf("\n"); + } +} + +/* List features and flow table. */ +static void +list_features(struct di_oid *oid, struct di_oid *end) +{ + struct di_ctl_feature *f; + struct di_feature_module *last_mod; + struct di_feature_arr_entry feature_arr[DI_MAX_FEATURES]; + int fcnt; + + last_mod = NULL; + + for (fcnt = 0; oid != end; oid = O_NEXT(oid, oid->len)) { + if (oid->len < sizeof(*oid)) + errx(1, "invalid oid len %d", oid->len); + + switch (oid->type) { + case DI_CMD_GET: + if (co.verbose) + printf("answer for cmd %d, len %d\n", oid->type, + oid->id); + break; + + case DI_FEATURE: + { + + f = (struct di_ctl_feature *)oid; + printf("feature %s (algorithm %s)\n", f->name, + f->mod_name); + /* + * DI_FEATURE oid's are always paired with a + * DI_FEATURE_CONFIG oid, so we set last_mod here which + * will be used for the next oid which will be the + * corresponding DI_FEATURE_CONFIG. + */ + last_mod = find_feature_module(f->mod_name); + strcpy(feature_arr[fcnt].name, f->name); + strcpy(feature_arr[fcnt].mod_name, f->mod_name); + fcnt++; + break; + } + + case DI_FEATURE_CONFIG: + if (last_mod != NULL) { + last_mod->print_opts(oid); + last_mod = NULL; + } else { + printf(" unrecognized feature\n"); + } + break; + + case DI_FLOW_TABLE: + list_ft(oid, end, feature_arr, 1); + break; + + default: + printf("unrecognized object %d size %d\n", oid->type, + oid->len); + break; + } + } +} + +/* List classifiers. */ +static void +list_classifiers(struct di_oid *oid, struct di_oid *end) +{ + struct di_classifier_module *last_mod; + struct di_ctl_classifier *c; + int i; + + last_mod = NULL; + + for (; oid != end; oid = O_NEXT(oid, oid->len)) { + if (oid->len < sizeof(*oid)) + errx(1, "invalid oid len %d", oid->len); + + switch (oid->type) { + case DI_CMD_CONFIG: + break; + + case DI_CMD_GET: + if (co.verbose) + printf("answer for cmd %d, len %d\n", oid->type, + oid->id); + break; + + case DI_CLASSIFIER: + { + c = (struct di_ctl_classifier *)oid; + + printf("classifier %s (algorithm %s)\n", c->name, + c->mod_name); + printf(" features: %d\n", c->fscnt); + for (i = 0; i < c->fscnt; i++) { + printf(" %s%s.%s\n", + c->fstats[i].fdir == DI_MATCH_DIR_NONE ? + "" : (c->fstats[i].fdir == DI_MATCH_DIR_FWD ? + "fwd." : "bck."), + c->fstats[i].sname, + c->fstats[i].fname); + } + printf(" classes: %d\n", c->ccnt); + for (i = 0; i < c->ccnt; i++) + printf(" %s\n", c->fstats[c->fscnt+i].fname); + + printf(" confirm: %d\n", c->confirm); + /* + * DI_CLASSIFIER oid's are always paired with a + * DI_CLASSIFIER_CONFIG oid, so we set last_mod here + * which will be used for the next oid which will be the + * corresponding DI_CLASSIFIER_CONFIG. + */ + last_mod = find_classifier_module(c->mod_name); + break; + } + + case DI_CLASSIFIER_CONFIG: + if (last_mod != NULL) { + last_mod->print_opts(oid); + last_mod = NULL; + } else { + printf(" unrecognized feature\n"); + } + break; + + default: + printf("unrecognized object %d size %d\n", oid->type, + oid->len); + break; + } + } +} + +/* List exports. */ +static void +list_exports(struct di_oid *oid, struct di_oid *end) +{ + struct di_ctl_export *e; + struct in_addr a; + + for (; oid != end; oid = O_NEXT(oid, oid->len)) { + if (oid->len < sizeof(*oid)) + errx(1, "invalid oid len %d", oid->len); + + switch (oid->type) { + case DI_CMD_GET: + if (co.verbose) + printf("answer for cmd %d, len %d\n", oid->type, + oid->id); + break; + + case DI_EXPORT: + { + e = (struct di_ctl_export *)oid; + + printf("export %s\n", e->name); + /* XXX: IPv6 missing */ + a.s_addr = htonl(e->conf.ip.s_addr); + printf(" target udp://%s:%d\n", inet_ntoa(a), + e->conf.port); + printf(" confirm %d\n", e->conf.confirm); + printf(" min_batch %d\n", e->conf.min_batch); + printf(" max_batch %d\n", e->conf.max_batch); + printf(" max_delay %d\n", e->conf.max_delay); + printf(" action %s %s\n", e->conf.action, + e->conf.action_param); /* XXX: Define types. */ + if (e->conf.atype & DI_ACTION_TYPE_BIDIRECTIONAL) + printf(" bidirectional\n"); + else + printf(" unidirectional\n"); + break; + } + + default: + printf("unrecognized object %d size %d\n", oid->type, + oid->len); + break; + } + } +} + +/* + * Main functions called from ipfw. + */ + +void +print_feature_usage() +{ + + printf("ipfw feature config "); +} + +void +print_classifier_usage() +{ + + printf("ipfw mlclass config [confirm]"); +} + +void +print_export_usage() +{ + + printf("ipfw export config target ://: "); + printf("[confirm ] [action ] [action-params ] "); + printf("[min-batch ] [max-batch ] "); + printf("[max-delay ]\n"); +} + +void +diffuse_init() +{ + + diffuse_modules_init(); + diffuse_add_params(diffuse_main_params, sizeof(diffuse_main_params)); + /* XXX: Modules are not deregistered at the end. */ +} + +/* + * Only support one feature/classifier/export name now. + * XXX: extend to comma separated list. + */ +void +diffuse_delete(int ac, char *av[], int type) +{ + struct di_ctl_classifier *class; + struct di_ctl_export *exp; + struct di_ctl_feature *feature; + struct di_oid *buf, *base; + char *name; + int lmax; + + feature = NULL; + class = NULL; + exp = NULL; + +#ifdef DIFFFUSE_DEBUG2 + printf("diffuse delete\n"); +#endif + + lmax = sizeof(struct di_oid); /* Command header. */ + if (type == DI_FEATURE) + lmax += sizeof(struct di_ctl_feature); + else if (type == DI_CLASSIFIER) + lmax += sizeof(struct di_ctl_classifier); + else if (type == DI_EXPORT) + lmax += sizeof(struct di_ctl_export); + else + errx(1, "invalid DIFFUSE deletion type %d", type); + + base = buf = safe_calloc(1, lmax); + /* All commands start with a 'DELETE' and a version. */ + diffuse_rec_next(&buf, sizeof(struct di_oid), DI_CMD_DELETE); + base->id = DI_API_VERSION; + + if (type == DI_FEATURE) { + feature = diffuse_rec_next(&buf, sizeof(*feature), DI_FEATURE); + name = feature->name; + } else if (type == DI_CLASSIFIER) { + class = diffuse_rec_next(&buf, sizeof(*class), DI_CLASSIFIER); + name = class->name; + } else if (type == DI_EXPORT) { + exp = diffuse_rec_next(&buf, sizeof(*exp), DI_EXPORT); + name = exp->name; + } + + av++; ac--; + + /* Set name. */ + if (ac) { + strncpy(name, *av, DI_MAX_NAME_STR_LEN - 1); + name[DI_MAX_NAME_STR_LEN - 1] = '\0'; + av++; ac--; + } else { + errx(EX_USAGE, "need a feature/classifier/export name"); + } + + if (do_cmd(IP_DIFFUSE, base, (char *)buf - (char *)base)) + err(1, "%s: setsockopt(%s)", "IP_DIFFUSE_DELETE", name); +} + +static void +check_option_val(int ac, char **av, struct di_option *opt) +{ + double val; + char *endptr; + + if (opt == NULL) + errx(EX_DATAERR, "unrecognised option ``%s''", av[-1]); + + if (opt->arg_type == DI_OPTION_ARG_NOARG) + return; + + if (ac > 0 && (*av)) { + if (opt->arg_type == DI_OPTION_ARG_UINT || + opt->arg_type == DI_OPTION_ARG_INT || + opt->arg_type == DI_OPTION_ARG_DOUBLE) { + if (opt->arg_type == DI_OPTION_ARG_UINT) + val = (double)strtoul(*av, &endptr, 0); + else if (opt->arg_type == DI_OPTION_ARG_INT) + val = (double)strtol(*av, &endptr, 0); + else + val = strtod(*av, &endptr); + + if (*endptr) { + errx(EX_DATAERR, "value of option %s " + "has wrong format at '%s'", + opt->name, endptr); + } + + if (val < opt->arg_min || val > opt->arg_max) { + errx(EX_DATAERR, "value of option %s " + "not in allowed range %.2f to %.2f", + opt->name, opt->arg_min, + opt->arg_max); + } + } + } else { + if (opt->arg_max > opt->arg_min) { + errx(EX_USAGE, "option %s needs an argument " + "%.2f ... %.2f", opt->name, opt->arg_min, + opt->arg_max); + } else { + errx(EX_USAGE, "option %s needs an argument", + opt->name); + } + } +} + +/* Configuration of features. */ +static void +feature_config(int ac, char **av) +{ + struct di_ctl_feature *feature; + struct di_feature_module *f; + struct di_oid *buf, *cmd, *base; + struct di_option *opt, *opts; + int fconf_len, len, size; + + feature = NULL; + len = 0; + +#ifdef DIFFUSE_DEBUG2 + printf("diffuse feature config\n"); +#endif + + /* Allocate space for 1 header + 1 feature. */ + len = sizeof(struct di_oid) + sizeof(struct di_feature); + base = buf = safe_calloc(1, len); + + /* All commands start with a CONFIG and a version. */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 15:05:00 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 38E1F1065677; Tue, 22 Nov 2011 15:05:00 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 25EA48FC1A; Tue, 22 Nov 2011 15:05:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAMF50rh097264; Tue, 22 Nov 2011 15:05:00 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAMF50cI097258; Tue, 22 Nov 2011 15:05:00 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201111221505.pAMF50cI097258@svn.freebsd.org> From: Lawrence Stewart Date: Tue, 22 Nov 2011 15:05:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227819 - in projects/diffused_head: sbin/ipfw sbin/ipfw/diffuse_exporter sys/netinet sys/netinet/ipfw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 15:05:00 -0000 Author: lstewart Date: Tue Nov 22 15:04:59 2011 New Revision: 227819 URL: http://svn.freebsd.org/changeset/base/227819 Log: Add the diffuse_exporter program, which can be used to receive export data from the DIFFUSE kernel module via UDP and propagate it out to one or more action nodes using UDP, TCP or SCTP. The exporter caches propagated rules for 5 minutes, and will forward the rules to action nodes again if a state request packet is received. Sponsored by: FreeBSD Foundation Reviewed by: bz Added: projects/diffused_head/sbin/ipfw/diffuse_exporter/ projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.c (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_proto.c (contents, props changed) Modified: projects/diffused_head/sbin/ipfw/Makefile projects/diffused_head/sys/netinet/ip_diffuse_export.h projects/diffused_head/sys/netinet/ipfw/diffuse_export.c Modified: projects/diffused_head/sbin/ipfw/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 14:11:42 2011 (r227818) +++ projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 15:04:59 2011 (r227819) @@ -12,5 +12,6 @@ DPADD= ${LIBUTIL} DPADD+= ${LIBM} LDADD= -lutil -lm MAN= ipfw.8 +SUBDIR= diffuse_exporter .include Added: projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Tue Nov 22 15:04:59 2011 (r227819) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +.include + +.PATH: ${.CURDIR}/.. +PROG= diffuse_exporter +SRCS= diffuse_exporter.c diffuse_proto.c +DPADD= ${LIBUTIL} +LDADD= -lutil +NO_MAN= + +.include Added: projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.c Tue Nov 22 15:04:59 2011 (r227819) @@ -0,0 +1,891 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * Copyright (c) 2011 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Portions of this software were developed at the Centre for Advanced + * Internet Architectures, Swinburne University of Technology, Melbourne, + * Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Description: + * Rule/flow exporter. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include + +#include + +#include +#include +#include +#include +#define WITH_DIP_INFO +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../diffuse_proto.h" +#include "../diffuse_ui.h" + +#define MAX_ERRORS_BEFORE_IGNORE 12 +#define DEFAULT_RULE_TIMEOUT_SECS 300 +#define DIP_REQSTATE_PKTSIZE 27 + +#define STRLEN_LITERAL(s) (sizeof((s)) - 1) + +/* + * Length of a flowrule template set based on the default flowrule template + * defined in . + * The set consists of the following parts (in order): + * - struct dip_set_header + * - struct dip_templ_header + * - A uint16_t ID field for each information element (IE) + * - A uint16_t length field for variable length IEs (there are currently 4) + */ +#define DIP_DEFAULT_FLOWRULE_SETLEN (sizeof(struct dip_set_header) + \ + sizeof(struct dip_templ_header) + \ + (N_DEFAULT_FLOWRULE_TEMPLATE_ITEMS * sizeof(uint16_t)) + \ + 4 * sizeof(uint16_t)) + +static const char *usage = "Usage: diffuse_exporter [-hv] [-c ] " + "[-a ,...]"; + +/* + * Could remove templ_id since we also have template, but we save a bit of + * memory since for each action node we only need a list of IDs. + */ +struct templ_id { + uint16_t id; + RB_ENTRY(templ_id) node; +}; + +static inline int +templ_id_compare(struct templ_id *a, struct templ_id *b) +{ + + return ((a->id != b->id) ? (a->id < b->id ? -1 : 1) : 0); +} + +RB_HEAD(templ_id_head, templ_id); +static RB_PROTOTYPE(templ_id_head, templ_id, node, templ_id_compare); +static RB_GENERATE(templ_id_head, templ_id, node, templ_id_compare); + +struct rule { + struct templ_id *tplid; + char *flowrule_dataset; + uint32_t to; + uint8_t set_len; + TAILQ_ENTRY(rule) next; +}; + +TAILQ_HEAD(rule_head, rule); + +/* Represents an action node we will be exporting rules to. */ +struct action_node { + struct sockaddr_storage an_details; /* v4 or v6 details. */ + int proto; + uint32_t seq_no; + int to_sock; + int from_sock; + int closed; + int errors; + struct templ_id_head templ_ids; + struct rule_head rules; + SLIST_ENTRY(action_node) next; +}; + +/* List of action nodes. */ +static SLIST_HEAD(action_node_head, action_node) anodes = + SLIST_HEAD_INITIALIZER(action_node_head); + +/* Template list, templates received from classifier. */ +RB_GENERATE(di_template_head, di_template, node, template_compare); +static struct di_template_head templ_list; + +/* Global exit flag. */ +static int stop; + +/* Sets the flag to terminate the main loop on receipt of a signal. */ +static void +sigint_handler(int i) +{ + + stop = 1; +} + +/* Parse URL for a single action node. */ +static void +parse_anode(char *s, struct action_node *an) +{ + struct addrinfo *ai, *curai; + struct sockaddr_in *v4sockaddr; + char *errptr, *ip, *p; + int ret; + uint16_t port; + + p = strstr(s, "://"); + if (p == NULL) { + errx(EX_USAGE, + "target must be specified as ://:"); + } + + /* Parse protocol. */ + if (strncmp(s, "udp", STRLEN_LITERAL("udp")) == 0) + an->proto = IPPROTO_UDP; + else if (strncmp(s, "tcp", STRLEN_LITERAL("tcp")) == 0) + an->proto = IPPROTO_TCP; + else if (strncmp(s, "sctp", STRLEN_LITERAL("sctp")) == 0) + an->proto = IPPROTO_SCTP; + else + errx(EX_USAGE, "only udp/tcp/sctp are supported"); + + ip = p + 3; + p = strstr(ip, ":"); + if (p != NULL) { + *p = '\0'; + p++; + port = strtonum(p, 1, 65535, (const char **)&errptr); + if (errptr != NULL) + errx(EX_USAGE, "error target port '%s': %s", p, errptr); + } else { + port = DI_COLLECTOR_DEFAULT_LISTEN_PORT; + } + + ret = getaddrinfo(ip, NULL, NULL, &ai); + + if (ret != 0) + errx(EX_OSERR, "%s", gai_strerror(ret)); + + curai = ai; + while (curai != NULL && curai->ai_family != AF_INET) + curai = curai->ai_next; + + if (curai != NULL) { + v4sockaddr = (struct sockaddr_in *)&an->an_details; + v4sockaddr->sin_family = curai->ai_family; + v4sockaddr->sin_port = port; + v4sockaddr->sin_addr.s_addr = + ((struct sockaddr_in *)curai->ai_addr)->sin_addr.s_addr; + } else { + errx(EX_USAGE, "getaddrinfo() returned non IPv4 details"); + } + + freeaddrinfo(ai); + an->to_sock = -1; + an->from_sock = -1; + an->closed = 0; + an->errors = 0; + an->seq_no = 0; + RB_INIT(&an->templ_ids); +} + +static void +parse_anodes(char *optarg) +{ + struct action_node *tmp_anode; + char *anode_str, *x; + char *sep = ","; + + x = strdup(optarg); + + for (anode_str = strtok(x, sep); anode_str; + anode_str = strtok(NULL, sep)) { + printf("%s\n", anode_str); + tmp_anode = malloc(sizeof(struct action_node)); + if (tmp_anode == NULL) + err(EX_OSERR, NULL); + parse_anode(anode_str, tmp_anode); + SLIST_INSERT_HEAD(&anodes, tmp_anode, next); + } + free(x); +} + +static void +parse_class(char *optarg, uint32_t *class_ip, uint16_t *class_port) +{ + struct addrinfo *ai, *curai; + char *errptr, *p; + int ret; + + p = strstr(optarg, ":"); + + if (p != NULL) { + *p = '\0'; + p++; + *class_port = strtonum(p, 1, 65535, (const char **)&errptr); + if (errptr) + errx(EX_USAGE, "parse error port '%s': %s", p, errptr); + } + + ret = getaddrinfo(optarg, NULL, NULL, &ai); + + if (ret != 0) + errx(EX_OSERR, "%s", gai_strerror(ret)); + + curai = ai; + while (curai != NULL && curai->ai_family != AF_INET) + curai = curai->ai_next; + + if (curai != NULL) { + *class_ip = + ((struct sockaddr_in *)curai->ai_addr)->sin_addr.s_addr; + } else { + errx(EX_USAGE, "getaddrinfo() returned non IPv4 details"); + } + + freeaddrinfo(ai); +} + +/* Close socket for action node. */ +static void +close_anode_socket(struct action_node *an) +{ + struct sctp_sndrcvinfo sinfo; + + if (an->proto == IPPROTO_SCTP) { + sinfo.sinfo_flags = SCTP_EOF; + sctp_send(an->to_sock, NULL, 0, &sinfo, 0); + } + + close(an->to_sock); +} + +/* Open socket for action node. */ +static int +open_anode_socket(struct action_node *an) +{ + struct sctp_initmsg initmsg; + struct sctp_status status; + socklen_t len; + int type; + + if (an->proto == IPPROTO_UDP) + type = SOCK_DGRAM; + else + type = SOCK_STREAM; + + if ((an->to_sock = socket(AF_INET, type, an->proto)) < 0) { + errx(EX_OSERR, "create action node socket: %s", + strerror(errno)); + } + + if (an->proto == IPPROTO_SCTP) { + /* Must have two streams. */ + memset(&initmsg, 0, sizeof(initmsg)); + initmsg.sinit_max_instreams = 2; + initmsg.sinit_num_ostreams = 2; + + if (setsockopt(an->to_sock, IPPROTO_SCTP, SCTP_INITMSG, &initmsg, + sizeof(initmsg))) { + errx(EX_OSERR, "set sock option initmsg"); + } + } + + if (connect(an->to_sock, (struct sockaddr *)&an->an_details, + sizeof(struct sockaddr_in)) < 0) { + errx(EX_OSERR, "connect action node socket: %s", + strerror(errno)); + } + + if (an->proto == IPPROTO_SCTP) { + memset(&status, 0, sizeof(status)); + len = sizeof(status); + + if (getsockopt(an->to_sock, IPPROTO_SCTP, SCTP_STATUS, &status, + &len) == -1) { + errx(EX_OSERR,"get sock option status: %s", + strerror(errno)); + } + if (status.sstat_instrms < 2 || status.sstat_outstrms < 2) + errx(EX_OSERR,"can't get two streams"); + } + + /* XXX: Use one-to-many association for SCTP. */ + + return (an->to_sock); +} + +static int +send_anode_pkt(struct action_node *anode, char *colpkt, int tplindex, + int tpllen, int dataindex, int datalen) +{ + struct dip_header *hdr; + struct sctp_sndrcvinfo sinfo; + int ret; + + ret = 0; + + if (anode->proto == IPPROTO_SCTP) { + /* Send templates and data over different streams. */ + if (tpllen > sizeof(struct dip_header)) { + hdr = (struct dip_header *)colpkt + tplindex; + hdr->msg_len = htons(tpllen); + hdr->seq_no = htonl(anode->seq_no++); + bzero(&sinfo, sizeof(sinfo)); + sinfo.sinfo_stream = 0; + /* XXX: Handle partial sends. */ + ret = sctp_send(anode->to_sock, colpkt + tplindex, + tpllen, &sinfo, 0); + } + + if (!ret && datalen > sizeof(struct dip_header)) { + hdr = (struct dip_header *)colpkt + dataindex; + hdr->msg_len = htons(datalen); + hdr->seq_no = htonl(anode->seq_no++); + bzero(&sinfo, sizeof(sinfo)); + sinfo.sinfo_stream = 1; +#ifdef __FREEBSD__ + /* Use SCTP PR if possible (man sctp_send). */ + sinfo.sinfo_flags |= SCTP_PR_SCTP_TTL; + /* Drop if can't send for this many ms. */ + sinfo.sinfo_timetolive = 200; +#endif + /* XXX: Handle partial sends. */ + ret = sctp_send(anode->to_sock, colpkt + dataindex, + datalen, &sinfo, 0); + } + } else { + /* TCP or UDP. */ + hdr = (struct dip_header *)colpkt; + hdr->msg_len = htons(tpllen + datalen); + hdr->seq_no = htonl(anode->seq_no++); + + /* + * XXX: We don't do PMTUD yet so if the length of what we're + * sending is > MTU along the path to the action node (likely in + * the common case where diffuse_exporter runs on the classifier + * node and kernel sends packets via loopback which has a + * default MTU of 16384) and we're using UDP for transport, we + * will cause datagrams to be fragmented. + */ + /* XXX: Handle partial sends. */ + ret = send(anode->to_sock, colpkt, tpllen + datalen, 0); + } + + return (ret); +} + +/* Forward message to action node. */ +static int +fwd_anode(struct action_node *an, char *dikrnlpkt, int dikrnlpktlen) +{ + struct dip_header *hdr; + struct dip_set_header *shdr; + struct dip_templ_header *thdr; + struct rule *anrule; + struct templ_id *r, s; + struct timeval curtime; + char *databuf, *dstbuf, *templbuf; + char colpkt[dikrnlpktlen * 2]; + int databuf_index, newtpl, offs, ret, templbuf_index; + + if (an->closed || an->errors > MAX_ERRORS_BEFORE_IGNORE) + return (0); + + hdr = (struct dip_header *)dikrnlpkt; + templbuf = colpkt; + databuf = colpkt + (sizeof(colpkt) / 2); + gettimeofday(&curtime, NULL); + + /* + * For TCP and UDP, we interleave the templates and data all into a + * single buffer (colpkt). For SCTP, we split the templates and data so + * that they can be sent over separate SCTP streams. + */ + if (an->proto == IPPROTO_SCTP) { + memcpy(templbuf, dikrnlpkt, sizeof(struct dip_header)); + memcpy(databuf, dikrnlpkt, sizeof(struct dip_header)); + templbuf_index = databuf_index = sizeof(struct dip_header); + } else { + memcpy(colpkt, dikrnlpkt, sizeof(struct dip_header)); + databuf_index = sizeof(struct dip_header); + templbuf_index = 0; + } + + offs = sizeof(struct dip_header); + + while (offs < ntohs(hdr->msg_len)) { + /* + * Templates are always paried with a proceeding data set, so + * parse both as a pair, storing copies of the template and data + * set in the action node to allow state requests from action + * nodes to be fullfilled. For classifiers we send to via SCTP + * or TCP, we only send templates once, whereas for UDP we + * always send them. + */ + shdr = (struct dip_set_header *)(dikrnlpkt + offs); + assert(ntohs(shdr->set_id) <= DIP_SET_ID_FLOWRULE_TPL); + + /* Template first. */ + thdr = (struct dip_templ_header *)(dikrnlpkt + offs + + sizeof(struct dip_set_header)); + s.id = ntohs(thdr->templ_id); + r = RB_FIND(templ_id_head, &an->templ_ids, &s); + if (r == NULL) { + r = malloc(sizeof(struct templ_id)); + if (r == NULL) + continue; /* XXX: Or break? */ + r->id = s.id; + RB_INSERT(templ_id_head, &an->templ_ids, r); + newtpl = 1; + } else { + newtpl = 0; + } + + if (newtpl || an->proto == IPPROTO_UDP) { + if (an->proto == IPPROTO_SCTP) + dstbuf = &templbuf[templbuf_index]; + else + dstbuf = &colpkt[templbuf_index + databuf_index]; + + memcpy(dstbuf, &dikrnlpkt[offs], ntohs(shdr->set_len)); + templbuf_index += ntohs(shdr->set_len); + } + + /* Move to the data set header. */ + offs += ntohs(shdr->set_len); + shdr = (struct dip_set_header *)(dikrnlpkt + offs); + assert(ntohs(shdr->set_id) <= DIP_SET_ID_FLOWRULE_TPL); + + /* Data set second. */ + if (an->proto == IPPROTO_SCTP) + dstbuf = &databuf[databuf_index]; + else + dstbuf = &colpkt[templbuf_index + databuf_index]; + + memcpy(dstbuf, &dikrnlpkt[offs], ntohs(shdr->set_len)); + + anrule = malloc(sizeof(struct rule) + ntohs(shdr->set_len)); + if (anrule == NULL) + continue; /* XXX: Or something else? */ + + anrule->flowrule_dataset = ((char *)anrule) + + sizeof(struct rule); + anrule->set_len = ntohs(shdr->set_len); + anrule->tplid = r; + anrule->to = curtime.tv_sec + DEFAULT_RULE_TIMEOUT_SECS; + + /* Cache the flow rule data set. */ + memcpy(anrule->flowrule_dataset, &dikrnlpkt[offs], + ntohs(shdr->set_len)); + + TAILQ_INSERT_TAIL(&an->rules, anrule, next); + databuf_index += ntohs(shdr->set_len); + offs += ntohs(shdr->set_len); + } + + ret = send_anode_pkt(an, colpkt, templbuf - colpkt, templbuf_index, + databuf - colpkt, databuf_index); + + if (ret < 0) + an->errors++; + else + an->errors = 0; + + return (ret); +} + +/* Destroy all action nodes. */ +static void +free_anodes() +{ + struct action_node *tmp_anode; + struct rule *tmpruledel, *tmprulenext; + struct templ_id *n, *r; + + while (!SLIST_EMPTY(&anodes)) { + tmp_anode = SLIST_FIRST(&anodes); + SLIST_REMOVE_HEAD(&anodes, next); + close_anode_socket(tmp_anode); + for (r = RB_MIN(templ_id_head, &tmp_anode->templ_ids); r != NULL; + r = n) { + n = RB_NEXT(templ_id_head, &tmp_anode->templ_ids, r); + RB_REMOVE(templ_id_head, &tmp_anode->templ_ids, r); + free(r); + } + + tmpruledel = TAILQ_FIRST(&tmp_anode->rules); + while (tmpruledel != NULL) { + tmprulenext = TAILQ_NEXT(tmpruledel, next); + /* + * Freeing the rule also frees the memory used by the + * flowrule_dataset member. + */ + free(tmpruledel); + tmpruledel = tmprulenext; + } + + free(tmp_anode); + } +} + +/* Free templates received from classifier. */ +static void +free_templates() +{ + struct di_template *n, *r; + + for (r = RB_MIN(di_template_head, &templ_list); r != NULL; r = n) { + n = RB_NEXT(di_template_head, &templ_list, r); + RB_REMOVE(di_template_head, &templ_list, r); + free(r); + } +} + +static void +handle_anode_state_request(struct action_node *anode, char *buf, int buflen) +{ + struct dip_set_header *shdr; + struct dip_templ_header *thdr; + struct rule *tmprule; + char *databuf, *dstbuf, *templbuf; + int databuf_index, i, offs, ret, templbuf_index; + + assert(buflen >= 3000); + templbuf = buf; + databuf = buf + (buflen / 2); + + /* + * For TCP and UDP, we interleave the templates and data all into a + * single buffer (buf). For SCTP, we split the templates and data so + * that they can be sent over separate SCTP streams. + */ + if (anode->proto == IPPROTO_SCTP) { + templbuf_index = databuf_index = sizeof(struct dip_header); + } else { + templbuf_index = sizeof(struct dip_header); + databuf_index = 0; + } + + TAILQ_FOREACH(tmprule, &anode->rules, next) { + if (anode->proto == IPPROTO_SCTP) + dstbuf = templbuf + templbuf_index; + else + dstbuf = buf + templbuf_index + databuf_index; + + /* + * XXX: For SCTP or TCP action nodes, we don't need to send + * templates more than once. + */ + offs = 0; + shdr = (struct dip_set_header *)dstbuf; + shdr->set_id = DIP_SET_ID_FLOWRULE_TPL; + shdr->set_len = DIP_DEFAULT_FLOWRULE_SETLEN; + offs += sizeof(struct dip_set_header); + + thdr = (struct dip_templ_header *)(dstbuf + offs); + thdr->templ_id = tmprule->tplid->id; + thdr->flags = 0; + offs += sizeof(struct dip_templ_header); + + /* Add the IE data for the default flowrule template. */ + for (i = 0; i < N_DEFAULT_FLOWRULE_TEMPLATE_ITEMS; i++) { + *((uint16_t *)(dstbuf + offs)) = + htons(dip_info[def_flowrule_template[i]].id); + offs += sizeof(uint16_t); + if (def_flowrule_template[i] == DIP_IE_ACTION || + def_flowrule_template[i] == DIP_IE_EXPORT_NAME || + def_flowrule_template[i] == DIP_IE_CLASSIFIER_NAME) { + *((uint16_t *)(dstbuf + offs)) = + htons((uint16_t)DI_MAX_NAME_STR_LEN); + offs += sizeof(uint16_t); + } else if (def_flowrule_template[i] == + DIP_IE_ACTION_PARAMS) { + *((uint16_t *)(dstbuf + offs)) = + htons((uint16_t)DI_MAX_PARAM_STR_LEN); + offs += sizeof(uint16_t); + } + } + templbuf_index += offs; + + if (anode->proto == IPPROTO_SCTP) + dstbuf = databuf + databuf_index; + else + dstbuf = buf + templbuf_index + databuf_index; + + memcpy(dstbuf, tmprule->flowrule_dataset, tmprule->set_len); + databuf_index += tmprule->set_len; + + /* XXX: Switch to a dynamically determined max packet len. */ + if (templbuf_index + databuf_index > 1400 || + TAILQ_NEXT(tmprule, next) == NULL || + (anode->proto == IPPROTO_SCTP && (templbuf_index > 1400 || + databuf_index > 1400))) { + ret = send_anode_pkt(anode, buf, templbuf - buf, + templbuf_index, databuf - buf, databuf_index); + + if (anode->proto == IPPROTO_SCTP) { + templbuf_index = databuf_index = + sizeof(struct dip_header); + } else { + templbuf_index = sizeof(struct dip_header); + databuf_index = 0; + } + } + } +} + +int +main(int argc, char *argv[]) +{ + fd_set rset, wset, _rset, _wset; + socklen_t len; + struct action_node *tmp_anode; + struct rule *tmpruledel, *tmprulenext; + struct sockaddr_in fromanode_addr, sin; + struct timeval curtime, tv; + char buf[IP_MAXPACKET]; + int ch, clsock, cnt, fromanode_sock, fromanodes, max_fd, nbytes; + int verbose; + uint32_t class_ip; + uint16_t class_port; + + class_ip = INADDR_ANY; + class_port = DI_COLLECTOR_DEFAULT_LISTEN_PORT; + max_fd = verbose = 0; + tv.tv_sec = 1; + tv.tv_usec = 0; + RB_INIT(&templ_list); + + signal(SIGINT, sigint_handler); + signal(SIGTERM, sigint_handler); + + if (argc < 1) { + printf("%s\n", usage); + exit(-1); + } + + while ((ch = getopt(argc, argv, "a:c:hv")) != EOF) { + switch (ch) { + case 'a': + parse_anodes(optarg); + break; + + case 'c': + parse_class(optarg, &class_ip, &class_port); + break; + + case 'h': + printf("%s\n", usage); + exit(0); + + case 'v': + verbose++; + break; + + default: + printf("%s\n", usage); + exit(-1); + } + } + + /* TCP listen socket for receiving action node messages. */ + if ((fromanodes = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) + errx(EX_OSERR, "create fromanodes socket: %s", strerror(errno)); + + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_port = htons(DI_EXPORTER_DEFAULT_LISTEN_PORT); + sin.sin_addr.s_addr = INADDR_ANY; + + if (bind(fromanodes, (struct sockaddr *)&sin, sizeof(sin)) < 0) + errx(EX_OSERR, "bind fromanodes socket: %s", strerror(errno)); + + if (listen(fromanodes, 10) < 0) + errx(EX_OSERR, "listen fromanodes socket: %s", strerror(errno)); + + /* UDP socket to receive messages from the kernel exporter. */ + if ((clsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + errx(EX_OSERR, "create class socket: %s", strerror(errno)); + + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_port = htons(class_port); + sin.sin_addr.s_addr = class_ip; + + if (bind(clsock, (struct sockaddr *)&sin, sizeof(sin)) < 0) + errx(EX_OSERR, "bind class socket: %s", strerror(errno)); + + printf("listening %s:%d\n", inet_ntoa(*((struct in_addr *)&class_ip)), + class_port); + + /* Open sockets to action nodes. */ + SLIST_FOREACH(tmp_anode, &anodes, next) { + open_anode_socket(tmp_anode); + } + + max_fd = clsock; + SLIST_FOREACH(tmp_anode, &anodes, next) { + if (tmp_anode->to_sock > max_fd) + max_fd = tmp_anode->to_sock; + } + + FD_ZERO(&rset); + FD_ZERO(&wset); + FD_SET(clsock, &rset); + FD_SET(fromanodes, &rset); + + SLIST_FOREACH(tmp_anode, &anodes, next) { + FD_SET(tmp_anode->to_sock, &rset); + } + + /* Packet processing. */ + do { + _rset = rset; + _wset = wset; + + if ((cnt = select(max_fd + 1, &_rset, &_wset, NULL, &tv)) < 0) { + if (errno != EINTR) + errx(EX_OSERR, "select error"); + } + + if (cnt < 1) + continue; + + if (FD_ISSET(clsock, &_rset)) { + nbytes = recv(clsock, &buf, sizeof(buf), 0); + if (nbytes < 0) + errx(EX_OSERR, "class sock read error"); + +#ifdef DIFFUSE_DEBUG2 + printf("message %u\n", n); + for (int j = 0; j < n; j++) + printf("%u ", (uint8_t)buf[j]); + printf("\n"); +#endif + + if (verbose) + diffuse_proto_print_msg(buf, &templ_list); + + SLIST_FOREACH(tmp_anode, &anodes, next) { + fwd_anode(tmp_anode, buf, nbytes); + } + } + + if (FD_ISSET(fromanodes, &_rset)) { + len = sizeof(fromanode_addr); + fromanode_sock = accept(fromanodes, + (struct sockaddr *)&fromanode_addr, &len); + /* XXX: Not v6 friendly. */ + SLIST_FOREACH(tmp_anode, &anodes, next) { + if (bcmp(&fromanode_addr.sin_addr.s_addr, + &(((struct sockaddr_in *)&tmp_anode-> + an_details)->sin_addr.s_addr), + sizeof(struct in_addr)) == 0 && + tmp_anode->from_sock == -1) { + tmp_anode->from_sock = fromanode_sock; + FD_SET(fromanode_sock, &rset); + if (fromanode_sock > max_fd) + max_fd = fromanode_sock; + break; + } + } + /* + * If the incoming connection is not from a configured + * action node or we're already processing a connection + * from the action node, drop the new connection. + */ + if (tmp_anode == NULL) + close(fromanode_sock); + } + + SLIST_FOREACH(tmp_anode, &anodes, next) { + if (FD_ISSET(tmp_anode->to_sock, &_rset)) { + if (read(tmp_anode->to_sock, buf, + sizeof(buf)) == 0) { + close(tmp_anode->to_sock); + tmp_anode->closed = 1; + } + /* XXX: handle SCTP events? */ + } else if (FD_ISSET(tmp_anode->from_sock, &_rset)) { + nbytes = read(tmp_anode->to_sock, buf, + sizeof(buf)); + /* + * XXX: This is a hack, but currently the only + * packet a collector will send to the exporter + * is a "request state" packet. If the size + * matches, don't bother parsing the packet and + * simply handle the request. + */ + if (nbytes == DIP_REQSTATE_PKTSIZE) { + handle_anode_state_request(tmp_anode, + buf, sizeof(buf)); + } + + FD_CLR(tmp_anode->from_sock, &_rset); + close(tmp_anode->from_sock); + tmp_anode->from_sock = -1; + } + + /* Flush old rules from the anode's rule cache. */ + gettimeofday(&curtime, NULL); + tmpruledel = TAILQ_FIRST(&tmp_anode->rules); + while (tmpruledel != NULL && + curtime.tv_sec > tmpruledel->to) { + tmprulenext = TAILQ_NEXT(tmpruledel, next); + TAILQ_REMOVE(&tmp_anode->rules, tmpruledel, + next); + /* + * Freeing the rule also frees the memory used + * by the flowrule_dataset member. + */ + free(tmpruledel); + tmpruledel = tmprulenext; + } + } + } while (!stop); + + close(clsock); + free_anodes(); + free_templates(); + + return (0); +} Added: projects/diffused_head/sbin/ipfw/diffuse_proto.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_proto.c Tue Nov 22 15:04:59 2011 (r227819) @@ -0,0 +1,278 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Description: + * Functions for control protocol. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include + +#include + +#include +#include +#include +#define WITH_DIP_INFO 1 +#include + +#include +#include +#include +#include + +#include "diffuse_proto.h" + +/* + * Print field data in val based on info element id and length. + * XXX: IPv6 support missing. + */ +void +print_field(int idx, int id, int len, char *val) +{ + char *c; + struct in_addr a; + + switch(idx) { + case DIP_IE_SRC_IPV4: + case DIP_IE_DST_IPV4: + { + /* XXX: Resolve to name. */ + a.s_addr = *((uint32_t *)val); + printf("%s", inet_ntoa(a)); + break; + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 15:50:25 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3089D1065689; Tue, 22 Nov 2011 15:50:25 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EC1A8FC16; Tue, 22 Nov 2011 15:50:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAMFoPKF098670; Tue, 22 Nov 2011 15:50:25 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAMFoPdw098665; Tue, 22 Nov 2011 15:50:25 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201111221550.pAMFoPdw098665@svn.freebsd.org> From: Lawrence Stewart Date: Tue, 22 Nov 2011 15:50:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227820 - in projects/diffused_head/sbin/ipfw: . diffuse_collector X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 15:50:25 -0000 Author: lstewart Date: Tue Nov 22 15:50:24 2011 New Revision: 227820 URL: http://svn.freebsd.org/changeset/base/227820 Log: Add the diffuse_collector program, which can be used to receive export data from the DIFFUSE kernel module via UDP or export data relayed from a diffuse_exporter via SCTP, TCP or UDP. The collector instantiates firewall rules based on the flow and classification data received from one or more classifier nodes. Sponsored by: FreeBSD Foundation Reviewed by: bz Added: projects/diffused_head/sbin/ipfw/diffuse_collector/ projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_collector/collector.conf (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.c (contents, props changed) Modified: projects/diffused_head/sbin/ipfw/Makefile Modified: projects/diffused_head/sbin/ipfw/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 15:04:59 2011 (r227819) +++ projects/diffused_head/sbin/ipfw/Makefile Tue Nov 22 15:50:24 2011 (r227820) @@ -12,6 +12,6 @@ DPADD= ${LIBUTIL} DPADD+= ${LIBM} LDADD= -lutil -lm MAN= ipfw.8 -SUBDIR= diffuse_exporter +SUBDIR= diffuse_collector diffuse_exporter .include Added: projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile Tue Nov 22 15:50:24 2011 (r227820) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +.include + +.PATH: ${.CURDIR}/.. +PROG= diffuse_collector +SRCS= diffuse_collector.c diffuse_proto.c +DPADD= ${LIBUTIL} +LDADD= -lutil +NO_MAN= + +.include Added: projects/diffused_head/sbin/ipfw/diffuse_collector/collector.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/collector.conf Tue Nov 22 15:50:24 2011 (r227820) @@ -0,0 +1,86 @@ +# +# Example diffuse_collector config file. +# + +# +# General collector configuration. +# +[general] + +# +# Space delimited list of classifier IP addresses that this action node is +# willing to receive flow classification information from. When the action node +# starts up, it sends a TCP message to the classifier on default port 4377 +# requesting all current state to be sent to it. If the classifier is listening +# on a non-default port number for this message, the port number can be +# specified here as "ip;port". +# +classifiers = 127.0.0.1 + +################################################################################ + +# +# Configuration related to the underlying firewall that will be used by the +# collector. +# +[firewall] + +# +# Path to the firewall executable. +# +exec = /sbin/ipfw + +# +# How does this firewall manage rules? +# Valid options are 'cli' and, at a later date when implemented, 'file'. +# +# 'cli' implies the firewall uses command line arguments to the firewall +# executable to perform rule management. The ipfw firewall, for example, works +# this way. +# +# 'file' indicates the firewall expects the complete configuration to exist in a +# text configuration file which is parsed and executed by the firewall +# executable. The pf firewall, for example, works this way. +# +rule_mgmt = cli + +# +# Set of rule numbers the collector can use for managing rules. +# +rule_nums = 1000-2000 + +# +# A templatised shell command to run when a rule needs to be added. +# +cli_add_rule = @@exec@@ add @@ruleno@@ @@action@@ @@proto@@ from @@srcip@@ @@srcport@@ to @@dstip@@ @@dstport@@ @@keepstate@@ + +# +# A templatised shell command to run when a rule needs to be deleted. +# +cli_del_rule = @@exec@@ delete @@ruleno@@ + +# +# A templatised shell command to run when the packet and byte match counters for +# a specific firewall rule are required. The command should format the counter +# values as CSV like so: "pktcount,bytecount". +# +cli_get_rule_counters = @@exec@@ show @@ruleno@@ | awk '{ printf("%s,%s", $2, $3) }' + +################################################################################ + +# +# Configuration for mapping classes identified by particular classifiers to +# local firewall actions. +# +[classactions] + +# +# Set a default action for flows which do not match a more specific action. +# +action = default pipe 1 + +# +# Flows identified as class 0 by the classifier named 'cname' will match this +# action. +# +action = cname:0 pipe 2 Added: projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.c Tue Nov 22 15:50:24 2011 (r227820) @@ -0,0 +1,2055 @@ +/*- + * Copyright (c) 2010-2011 + * Swinburne University of Technology, Melbourne, Australia. + * Copyright (c) 2011 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, by Sebastian Zander, made + * possible in part by a gift from The Cisco University Research Program Fund, a + * corporate advised fund of Silicon Valley Community Foundation. + * + * Portions of this software were developed at the Centre for Advanced + * Internet Architectures, Swinburne University of Technology, Melbourne, + * Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Description: + * Rule/flow collector. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include + +#include + +#include +#include +#include +#include +#define WITH_DIP_INFO +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../diffuse_ui.h" +#include "../diffuse_proto.h" + +#define STRLEN_LITERAL(literal) (sizeof((literal)) - 1) + +#define MAX_ERRORS_BEFORE_IGNORE 12 + +/* Flow/rule timeouts. */ +/* XXX: Make configurable. */ +#define DEFAULT_TIMEOUT 60 +#define DEFAULT_TIMEOUT2 60 + +/* Max number of rules to use by default. */ +#define DEFAULT_MAX_RULES 1000 + +static const char *usage = "Usage: diffuse_collector [-hnv] " + "[-c ] [-s ] [-t ] [-u ]"; + +static char *config_sections[] = { +#define INI_SECTION_GENERAL 0 + "general", +#define INI_SECTION_CLASSACTIONS 1 + "classactions", +#define INI_SECTION_FIREWALL 2 + "firewall" +}; +#define NUM_INI_SECTIONS (sizeof(config_sections) / sizeof(*config_sections)) + +RB_GENERATE(di_template_head, di_template, node, template_compare); + +/* Classifier node. */ +struct class_node { + int proto; + struct in_addr ip; + uint16_t port; + int sock; + int closed; + int errors; + struct di_template_head templ_list; + LIST_ENTRY(class_node) next; +}; + +LIST_HEAD(class_node_head, class_node); +static struct class_node_head cnodes; /* Accepted TCP or SCTP clients. */ +static struct class_node_head mains; /* Main ports (max one for each proto). */ +static int cnode_cnt; + +/* List of flow classes per flow entry. */ +struct flow_class { + char cname[DI_MAX_NAME_STR_LEN]; + uint16_t class; + SLIST_ENTRY(flow_class) next; +}; + +SLIST_HEAD(flow_class_head, flow_class); + +struct rule_entry; + +struct timeout_entry { + struct rule_entry *rule; + LIST_ENTRY(timeout_entry) next; +}; + +LIST_HEAD(timeout_entry_head, timeout_entry); + +/* + * Firewall rule numbers to use when adding rules. This is essentially a free + * list using a RB tree, so that the latest rule always gets the lowest number. + */ +struct rule_no { + uint16_t no; + RB_ENTRY(rule_no) node; +}; + +static inline int +rule_no_compare(struct rule_no *a, struct rule_no *b) +{ + + return ((a->no != b->no) ? (a->no < b->no ? -1 : 1) : 0); +} + +RB_HEAD(rule_no_head, rule_no); +static RB_PROTOTYPE(rule_no_head, rule_no, node, rule_no_compare); +static RB_GENERATE(rule_no_head, rule_no, node, rule_no_compare); + +struct rule_entry { + struct class_node *cnode; /* Sender/generator of rule. */ + char export_set[DI_MAX_NAME_STR_LEN]; + struct ipfw_flow_id id; /* (masked) flow id. */ + char action[DI_MAX_NAME_STR_LEN]; + char act_params[DI_MAX_PARAM_STR_LEN]; + uint64_t pcnt; /* Packets matched counter. */ + uint64_t bcnt; /* Bytes matched counter. */ + uint8_t expire_type; /* Rule vs. flow timeout. */ + uint32_t expire; /* Expire timeout. */ + uint32_t bucket; /* Which hash table bucket. */ + uint16_t rtype; /* {Bi|Uni}directional. */ + uint16_t tcnt; /* Number of tags. */ + struct flow_class_head flow_classes; /* List of class tags. */ + struct timeout_entry *to; /* Ptr to timeout list entry. */ + struct rule_no *rule_no; /* Firewall rule number. */ + struct rule_entry *next; /* Next rule in list. */ +}; + +#define DEFAULT_RULE_TABLE_SIZE 4096 +static int rule_table_size = DEFAULT_RULE_TABLE_SIZE; +static struct rule_entry **rule_table; + +#define DEFAULT_TIMEOUT_SIZE 512 +static struct timeout_entry_head timeouts[DEFAULT_TIMEOUT_SIZE]; +static uint16_t timeout_now; + +static struct rule_no_head rule_nos; +#define DEFAULT_MIN_RULE_NO 1000 +#define DEFAULT_MAX_RULE_NO 2000 +#define FW_MAX_RULE_NO 65535 + +/* Firewall rule actions. */ +#define FW_ADD_RULE 1 /* Add rule. */ +#define FW_DEL_RULE 2 /* Delete rule. */ +#define FW_GET_RULE_COUNTERS 3 /* Get rule counters. */ + +/* How many rule counters are gathered by the FW_GET_RULE_COUNTERS action. */ +#define NUM_RULE_COUNTERS 2 + +/* + * Array indexes for rule counters gathered by the FW_GET_RULE_COUNTERS + * action. + */ +#define RULE_COUNTER_NPKTS 0 +#define RULE_COUNTER_NBYTES 1 + +struct fw_action { + FILE *file; + int type; + struct rule_entry *rule; + TAILQ_ENTRY(fw_action) next; +}; +TAILQ_HEAD(fw_action_head, fw_action); + +static struct fw_action_head fw_actions; + +/* + * Local list of classes and actions to execute. Overrides actions send by + * classifier node. + */ +struct class_action { + char cname[DI_MAX_NAME_STR_LEN]; + uint16_t class; + char action[DI_MAX_NAME_STR_LEN]; + char act_params[DI_MAX_PARAM_STR_LEN]; + RB_ENTRY(class_action) node; +}; + +static inline int +class_action_compare(struct class_action *a, struct class_action *b) +{ + int cc; + + /* Sort by classes first as its potentially quicker. */ + cc = a->class != b->class ? (a->class < b->class ? -1 : 1) : 0; + if (cc != 0) + return (cc); + else + return (strcmp(a->cname, b->cname)); +} + +RB_HEAD(class_action_head, class_action); +static RB_PROTOTYPE(class_action_head, class_action, node, + class_action_compare); +static RB_GENERATE(class_action_head, class_action, node, class_action_compare); + +static struct class_action_head class_actions; +static struct class_action def_action = { "", 0, "count", "" }; + +struct pair { + char token[32]; + char value[64]; +}; + +/* Template tokens available in config file for substitution. */ +static struct pair tokenpairs[] = { + { "action", "" }, +#define TOK_ACTION 0 + { "exec", "" }, +#define TOK_EXEC 1 + { "dstip", "" }, +#define TOK_DSTIP 2 + { "dstport", "" }, +#define TOK_DSTPORT 3 + { "keepstate", "" }, +#define TOK_KEEPSTATE 4 + { "proto", "" }, +#define TOK_PROTO 5 + { "ruleno", "" }, +#define TOK_RULENO 6 + { "srcip", "" }, +#define TOK_SRCIP 7 + { "srcport", "" } +#define TOK_SRCPORT 8 +}; + +#define NUM_TOKEN_PAIRS (sizeof(tokenpairs) / sizeof(tokenpairs[0])) + +struct di_collector_config { + char cfpath[PATH_MAX]; /* Config file path. */ + char fw_exe[PATH_MAX]; /* Firewall executable path. */ + char cli_add_rule[1024]; /* Shell command to execute when + * adding a rule. */ + char cli_del_rule[1024]; /* Shell command to execute when + * deleting a rule. */ + char cli_get_rule_counters[1024]; /* Shell command to execute + * to get the required rule + * counters. */ + struct sockaddr *classifiers; /* Details for classifiers. */ + int num_classifiers; /* Size of classifiers array. */ + int min_rule_no; /* Minimum rule number available + * for use by colelctor. */ + int max_rule_no; /* Maximum rule number available + * for use by colelctor. */ + uint8_t fw_rule_mgmt_type; /* Rule management method. */ + uint8_t verbose; /* If non-zero, write runtime + * info to console. */ + uint8_t no_fw; /* Don't execute firewall + * commands. */ + uint8_t fw_default_action; /* Default specified? */ +}; + +static struct di_collector_config config; + +#define FW_CLI_RULE_MGMT 1 +#define FW_FILE_RULE_MGMT 2 + +/* Global exit flag. */ +static int stop; + +static void +print_collector_config(struct di_collector_config *conf) +{ + struct sockaddr *cdetails; + int i; + + printf("%-25s %s\n", "Config file path", conf->cfpath); + printf("%-25s %s\n", "Firewall executable path", conf->fw_exe); + printf("%-25s %s\n", "Add rule cmd", conf->cli_add_rule); + printf("%-25s %s\n", "Delete rule cmd", conf->cli_del_rule); + printf("%-25s %s\n", "Get rule counters cmd", + conf->cli_get_rule_counters); + printf("%-25s %s\n", "Firewall rule mgmt type", "FW_CLI_RULE_MGMT"); + printf("%-25s %d\n", "Min rule number", conf->min_rule_no); + printf("%-25s %d\n", "Max rule number", conf->max_rule_no); + + for (i = 0; i < conf->num_classifiers; i++) { + cdetails = &conf->classifiers[i]; + printf("Details for classifier %d: %s;%u\n", i + 1, + inet_ntoa(((struct sockaddr_in *)cdetails)->sin_addr), + ntohs(((struct sockaddr_in *)cdetails)->sin_port)); + } +} + +static void +expand_tokenised_str(char const *instr, char *outstr, int outlen, + struct pair const *pairs, int npairs) +{ +#define TOK_LHS_SEP "@@" /* Left Hand Side token delimiter. */ +#define TOK_RHS_SEP TOK_LHS_SEP /* Right Hand Side token delimiter. */ + + char *tmp, *tok; + int i, nchars; + + /* + * Keep looping until we've reached the end of instr or we've filled + * outstr to capacity. + */ + while (*instr != '\0' && outlen > 1) { + tok = strstr(instr, TOK_LHS_SEP); + /* + * Copy all chars from the current position of instr up to the + * token separator into outstr. If no token separator was found, + * instr has no tokens to replace so copy entire string. + */ + nchars = (tok == NULL ? outlen - 1 : tok - instr); + if (nchars >= outlen) + nchars = outlen - 1; + tmp = stpncpy(outstr, instr, nchars); + nchars = tmp - outstr; + outlen -= nchars; + outstr = tmp; + /* stpncpy() doesn't always NULL-terminate. */ + *outstr = '\0'; + + if (tok != NULL && outlen > 0) { + /* Move instr to point to start of token. */ + instr = tok + STRLEN_LITERAL(TOK_LHS_SEP); + + /* Find the end-of-token delimter. */ + tok = strstr(instr, TOK_RHS_SEP); + if (tok != NULL) { + /* + * Found delimiter, so match token in pairs + * array and replace with value if found. + */ + for (i = 0; i < npairs; i++) { + if (strncmp(pairs[i].token, instr, + tok - instr) == 0) { + nchars = snprintf(outstr, + outlen, "%s", + pairs[i].value); + outlen -= nchars; + outstr += nchars; + } + } + /* + * Finished substitution for this token. Set + * nchars such that the token and end-of-token + * delimter in instr will be skipped over next + * time through the loop. + */ + nchars = (tok - instr) + + STRLEN_LITERAL(TOK_RHS_SEP); + } else { + /* + * No end-of-token delimiter found after the + * start-of-token delimiter. Most likely an + * error in instr, but treat as though the + * start-of-token delimiter we found is regular + * text and copy to outstr all chars from + * start-of-token delimiter through to end of + * instr. + */ + + /* + * Backtrack instr so we copy the start-of-token + * delimter. + */ + instr -= STRLEN_LITERAL(TOK_LHS_SEP); + + /* + * Copy as many chars from instr to + * outstr as outlen will allow, leaving + * room for the '\0'. + */ + tmp = stpncpy(outstr, instr, outlen - 1); + nchars = tmp - outstr; + outlen -= nchars; + outstr = tmp; + /* stpncpy() doesn't always NULL-terminate. */ + *outstr = '\0'; + } + } + + /* + * Shuffle instr along. If we made a substitution this time + * through the loop, this will position instr just after the + * end-of-token delimiter of the token we just processed. If no + * substitution was made, this should position instr at its + * NULL-terminator. + */ + instr += nchars; + } +} + +/* + * Execute a shell command in a non-blocking pipe and return the new file + * descriptor. + */ +static FILE * +exec(char *command) +{ + FILE *f; + + if (config.no_fw) + command = "test"; + if (config.verbose) + printf("Executing shell command: %s\n", command); + f = popen(command, "r"); + fcntl(fileno(f), F_SETFL, O_NONBLOCK); + + return (f); +} + +/* + * Build firewall command, exec using a pipe and add pipe fd to our file + * descriptor set to check for completion at a later point. + */ +static void +exec_fw(struct rule_entry *r, int type, fd_set *rset, int *max_fd, + int no_race_check) +{ + struct fw_action *action, *cur, *tmp; + struct in_addr addr; + FILE *f; + char buf[256]; + int fd; + + /* Avoid race conditions between commands for one rule. */ + if (!no_race_check) { + TAILQ_FOREACH_SAFE(cur, &fw_actions, next, tmp) { + if (cur->rule != r) + continue; + + if (type == FW_GET_RULE_COUNTERS && + (cur->type == FW_DEL_RULE || + cur->type == FW_ADD_RULE)) { + /* + * Don't get rule counters if add/delete + * is already in progress. + */ + return; + } else if (type == FW_DEL_RULE && + cur->type == FW_GET_RULE_COUNTERS) { + /* Cancel get rule counters command. */ + TAILQ_REMOVE(&fw_actions, cur, next); + pclose(cur->file); + free(cur); + } + } + } + + if (config.fw_rule_mgmt_type == FW_CLI_RULE_MGMT) { + /* + * Fill in our token-value pairs that will be used for + * substitution in the appropriate tokenised string. + */ + strlcpy(tokenpairs[TOK_ACTION].value, r->action, + sizeof(tokenpairs[TOK_ACTION].value)); + addr.s_addr = r->id.dst_ip; + sprintf(tokenpairs[TOK_DSTIP].value, "%s", + inet_ntoa(addr)); + sprintf(tokenpairs[TOK_DSTPORT].value, "%u", r->id.dst_port); + + if (r->rtype == DI_ACTION_TYPE_BIDIRECTIONAL) { + strlcpy(tokenpairs[TOK_KEEPSTATE].value, "keep-state", + sizeof(tokenpairs[TOK_KEEPSTATE].value)); + } else { + tokenpairs[TOK_KEEPSTATE].value[0] = '\0'; + } + + sprintf(tokenpairs[TOK_PROTO].value, "%u", r->id.proto); + sprintf(tokenpairs[TOK_RULENO].value, "%u", r->rule_no->no); + addr.s_addr = r->id.src_ip; + sprintf(tokenpairs[TOK_SRCIP].value, "%s", + inet_ntoa(addr)); + sprintf(tokenpairs[TOK_SRCPORT].value, "%u", r->id.src_port); + + switch (type) { + case FW_ADD_RULE: + expand_tokenised_str(config.cli_add_rule, buf, + sizeof(buf), tokenpairs, NUM_TOKEN_PAIRS); + break; + + case FW_DEL_RULE: + expand_tokenised_str(config.cli_del_rule, buf, + sizeof(buf), tokenpairs, NUM_TOKEN_PAIRS); + break; + + case FW_GET_RULE_COUNTERS: + expand_tokenised_str(config.cli_get_rule_counters, buf, + sizeof(buf), tokenpairs, NUM_TOKEN_PAIRS); + break; + } + + } else if (config.fw_rule_mgmt_type == FW_FILE_RULE_MGMT) { + /* + * XXX: Add support for firewalls which use file-based rule + * management. + */ + } + + DID("fw command %s", buf); + f = exec(buf); + + if (f != NULL) { + action = (struct fw_action *)malloc(sizeof(struct fw_action)); + if (action == NULL) + errx(EX_OSERR, "can't alloc mem for fw_action"); + action->file = f; + action->type = type; + action->rule = r; + TAILQ_INSERT_TAIL(&fw_actions, action, next); + fd = fileno(action->file); + FD_SET(fd, rset); + if (fd > *max_fd) + *max_fd = fd; + } + + /* Output handling is done in process_fwaction_sockets(). */ +} + +static void +free_fw_actions(void) +{ + struct fw_action *a; + + while (!TAILQ_EMPTY(&fw_actions)) { + a = TAILQ_FIRST(&fw_actions); + TAILQ_REMOVE(&fw_actions, a, next); + pclose(a->file); + free(a); + } +} + +static void +free_rule_nos(void) +{ + struct rule_no *r, *n; + + for (r = RB_MIN(rule_no_head, &rule_nos); r != NULL; r = n) { + n = RB_NEXT(rule_no_head, &rule_nos, r); + RB_REMOVE(rule_no_head, &rule_nos, r); + free(r); + } +} + +static void +free_class_actions(void) +{ + struct class_action *r, *n; + + for (r = RB_MIN(class_action_head, &class_actions); r != NULL; r = n) { + n = RB_NEXT(class_action_head, &class_actions, r); + RB_REMOVE(class_action_head, &class_actions, r); + free(r); + } +} + +static inline uint32_t +hash_packet(struct ipfw_flow_id *id) +{ + uint32_t hash; + + hash = id->dst_ip ^ id->src_ip ^ id->dst_port ^ id->src_port; + hash &= (rule_table_size - 1); + + return (hash); +} + +/* Find rule in hash table. */ +struct rule_entry * +find_rule(struct ipfw_flow_id *f, struct rule_entry **prev) +{ + struct rule_entry *_prev, *q; + uint32_t h; + + _prev = q = NULL; + h = hash_packet(f); + + for (q = rule_table[h]; q != NULL;) { + if (f->proto == q->id.proto) { + if (IS_IP6_FLOW_ID(f)) { + if (IN6_ARE_ADDR_EQUAL(&f->src_ip6, + &q->id.src_ip6) && + IN6_ARE_ADDR_EQUAL(&f->dst_ip6, + &q->id.dst_ip6) && + f->src_port == q->id.src_port && + f->dst_port == q->id.dst_port) { + break; + } + if (q->rtype & DI_FLOW_TYPE_BIDIRECTIONAL) { + if (IN6_ARE_ADDR_EQUAL(&f->src_ip6, + &q->id.dst_ip6) && + IN6_ARE_ADDR_EQUAL(&f->dst_ip6, + &q->id.src_ip6) && + f->src_port == q->id.dst_port && + f->dst_port == q->id.src_port) { + break; + } + } + } else { + if (f->src_ip == q->id.src_ip && + f->dst_ip == q->id.dst_ip && + f->src_port == q->id.src_port && + f->dst_port == q->id.dst_port) { + break; + } + if (q->rtype & DI_FLOW_TYPE_BIDIRECTIONAL) { + if (f->src_ip == q->id.dst_ip && + f->dst_ip == q->id.src_ip && + f->src_port == q->id.dst_port && + f->dst_port == q->id.src_port) { + break; + } + } + } + } + _prev = q; + q = q->next; + } + + if (q == NULL) + goto done; + + if (_prev != NULL) { + /* Found and not in front. */ + _prev->next = q->next; + q->next = rule_table[h]; + rule_table[h] = q; + _prev = NULL; + } + +done: + *prev = _prev; + + return (q); +} + +static void +free_rule(struct rule_entry *r) +{ + struct flow_class *s; + + while (!SLIST_EMPTY(&r->flow_classes)) { + s = SLIST_FIRST(&r->flow_classes); + SLIST_REMOVE_HEAD(&r->flow_classes, next); + free(s); + } + + if (r->to) { + LIST_REMOVE(r->to, next); + free(r->to); + } + + free(r->rule_no); + free(r); +} + +/* Remove rule from hash table and free rule memory if free is set. */ +static void +remove_rule(struct rule_entry *r, struct rule_entry *prev, int free) +{ + + if (prev != NULL) + prev->next = r->next; + else + rule_table[r->bucket] = r->next; + + if (free) + free_rule(r); +} + +/* Find rule and remove if it exists. */ +static struct rule_entry * +find_remove_rule(struct rule_entry *n, int free) +{ + struct rule_entry *prev, *r; + + prev = NULL; + + r = find_rule(&n->id, &prev); + if (r != NULL) { + remove_rule(r, prev, free); + if (free) + r = NULL; + } + + return (r); +} + +static void +free_rules(fd_set *rset, int *max_fd) +{ + struct rule_entry *next, *q; + int i; + + for (i = 0; i < rule_table_size; i++) { + for (q = rule_table[i]; q != NULL ; ) { + next = q->next; + exec_fw(q, FW_DEL_RULE, rset, max_fd, 1); + remove_rule(q, NULL, 1); + q = next; + } + } + free(rule_table); +} + +/* Add rule in table, add timeout and return pointer to new entry. */ +static struct rule_entry * +add_rule(struct rule_entry *n) +{ + struct rule_no *no; + int h; + uint16_t t; + + DID2("add rule"); + + if (RB_EMPTY(&rule_nos)) + return (NULL); /* XXX: Do more? e.g. get rid of old rules? */ + + h = hash_packet(&n->id); + n->bucket = h; + n->next = rule_table[h]; + rule_table[h] = n; + no = RB_MIN(rule_no_head, &rule_nos); + RB_REMOVE(rule_no_head, &rule_nos, no); + n->rule_no = no; + t = (timeout_now + n->expire) & (DEFAULT_TIMEOUT_SIZE - 1); + n->to = (struct timeout_entry *)malloc(sizeof(struct timeout_entry)); + if (n->to == NULL) + errx(EX_OSERR, "can't alloc mem for a timeout_entry"); + n->to->rule = n; + LIST_INSERT_HEAD(&timeouts[t], n->to, next); + + return (n); +} + +static struct rule_entry * +update_timeout(struct rule_entry *n, struct rule_entry *r) +{ + uint16_t t; + + DID2("update timeout"); + + r->expire_type = n->expire_type; + r->expire = n->expire; + t = (timeout_now + r->expire) & (DEFAULT_TIMEOUT_SIZE - 1); + LIST_REMOVE(r->to, next); + LIST_INSERT_HEAD(&timeouts[t], r->to, next); + + return (r); +} + +/* Set action based on class and set timeout. */ +static void +set_action_timeout(struct rule_entry *n) +{ + struct class_action s, *r; + struct flow_class *c; + + r = NULL; + + /* + * Select action in this priority: + * 1. Locally defined for first class that has one + * 2. Locally defined default action + * 3. Defined by classifier node + * 4. Build-in default action + */ + + SLIST_FOREACH(c, &n->flow_classes, next) { + strcpy(s.cname, c->cname); /* XXX: Fix so no need to copy. */ + s.class = c->class; + r = RB_FIND(class_action_head, &class_actions, &s); + if (r) { + strcpy(n->action, r->action); + strcpy(n->act_params, r->act_params); + break; + } + } + + if (!r && (config.fw_default_action || !strlen(n->action))) { + /* Apply default action. */ + strcpy(n->action, def_action.action); + strcpy(n->act_params, def_action.act_params); + } + + if (n->expire == 0) + n->expire = DEFAULT_TIMEOUT; + + if (n->expire_type == DIP_TIMEOUT_NONE) + n->expire_type = DIP_TIMEOUT_FLOW; /* Local timeout. */ + + /* + * If we use flow timeouts the classifier node may set a very long + * timeout, e.g. TCP, but the flow may end much quicker. Action node's + * firewall times out flow according to packets (e.g. tcp flags), but + * collector doesn't now. + * Solution: do more regular checking. + */ + /* XXX: Get firewall expire value. May work for keep-state flows. */ + if (n->expire_type == DIP_TIMEOUT_FLOW && + n->expire > DEFAULT_TIMEOUT2) { + n->expire = DEFAULT_TIMEOUT2; + } +} + +/* Parse rule and remove/add it in hash table and fw. */ +static int +parse_rule(struct class_node *cnode, struct di_template *t, char *rb, + fd_set *rset, int *max_fd) +{ + struct flow_class *c; + struct rule_entry *n, *prev, *r; + int dlen, i, offs, toffs, type; + + offs = 0; + type = -1; + + DID2("parse rule"); + + n = (struct rule_entry *)calloc(1, sizeof(struct rule_entry)); + if (n == NULL) + errx(EX_OSERR, "can't alloc mem for a rule_entry"); + + n->cnode = cnode; + SLIST_INIT(&n->flow_classes); + + for (i = 0; i < t->fcnt; i++) { + DID2("field %u(%u)\n", t->fields[i].id, offs); + + if (t->fields[i].len == -1) { + /* Read dynamic length. */ + dlen = *((unsigned char *)(rb + offs)); + offs++; + + switch(t->fields[i].idx) { + case DIP_IE_CLASSES: + while (offs - toffs < dlen - 1) { + c = (struct flow_class *)malloc( + sizeof(struct flow_class)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 16:08:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C37CD106566B; Tue, 22 Nov 2011 16:08:12 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B2EDF8FC08; Tue, 22 Nov 2011 16:08:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAMG8CZN099262; Tue, 22 Nov 2011 16:08:12 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAMG8CaO099259; Tue, 22 Nov 2011 16:08:12 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201111221608.pAMG8CaO099259@svn.freebsd.org> From: Lawrence Stewart Date: Tue, 22 Nov 2011 16:08:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227821 - in projects/diffused_head/sbin/ipfw: diffuse_collector diffuse_exporter X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 16:08:12 -0000 Author: lstewart Date: Tue Nov 22 16:08:12 2011 New Revision: 227821 URL: http://svn.freebsd.org/changeset/base/227821 Log: We don't need bsd.own.mk for either utility and for some reason, including it counteracts the inclusion of "NO_MAN=" in the Makefile. This causes the build to break when bsd.prog.mk sets the default manpage to .1 and attempts to make the non-existant file. Sponsored by: FreeBSD Foundation Modified: projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Modified: projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile Tue Nov 22 15:50:24 2011 (r227820) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile Tue Nov 22 16:08:12 2011 (r227821) @@ -1,7 +1,5 @@ # $FreeBSD$ -.include - .PATH: ${.CURDIR}/.. PROG= diffuse_collector SRCS= diffuse_collector.c diffuse_proto.c Modified: projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Tue Nov 22 15:50:24 2011 (r227820) +++ projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Tue Nov 22 16:08:12 2011 (r227821) @@ -1,7 +1,5 @@ # $FreeBSD$ -.include - .PATH: ${.CURDIR}/.. PROG= diffuse_exporter SRCS= diffuse_exporter.c diffuse_proto.c From owner-svn-src-projects@FreeBSD.ORG Tue Nov 22 17:25:23 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 461C2106566B; Tue, 22 Nov 2011 17:25:23 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 32E2F8FC12; Tue, 22 Nov 2011 17:25:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAMHPNGK001975; Tue, 22 Nov 2011 17:25:23 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAMHPNUW001968; Tue, 22 Nov 2011 17:25:23 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201111221725.pAMHPNUW001968@svn.freebsd.org> From: Lawrence Stewart Date: Tue, 22 Nov 2011 17:25:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227824 - in projects/diffused_head: sbin/ipfw sbin/ipfw/diffuse_collector sbin/ipfw/diffuse_exporter share/man/man4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2011 17:25:23 -0000 Author: lstewart Date: Tue Nov 22 17:25:22 2011 New Revision: 227824 URL: http://svn.freebsd.org/changeset/base/227824 Log: - Manual pages for the DIFFUSE kernel module, exporter and collector - An update to the ipfw.8 manual page to describe DIFFUSE's IPFW grammar extensions. Sponsored by: FreeBSD Foundation Reviewed by: bz Added: projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.8 (contents, props changed) projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.8 (contents, props changed) projects/diffused_head/share/man/man4/diffuse.4 (contents, props changed) Modified: projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile projects/diffused_head/sbin/ipfw/ipfw.8 projects/diffused_head/share/man/man4/Makefile Modified: projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile Tue Nov 22 16:44:50 2011 (r227823) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/Makefile Tue Nov 22 17:25:22 2011 (r227824) @@ -5,6 +5,6 @@ PROG= diffuse_collector SRCS= diffuse_collector.c diffuse_proto.c DPADD= ${LIBUTIL} LDADD= -lutil -NO_MAN= +MAN= diffuse_collector.8 .include Added: projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.8 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_collector/diffuse_collector.8 Tue Nov 22 17:25:22 2011 (r227824) @@ -0,0 +1,165 @@ +.\" +.\" Copyright (c) 2010 +.\" Swinburne University of Technology, Melbourne, Australia. +.\" Copyright (c) 2011 The FreeBSD Foundation +.\" All rights reserved. +.\" +.\" This software was developed at the Centre for Advanced Internet +.\" Architectures, Swinburne University of Technology, by Sebastian Zander, made +.\" possible in part by a gift from The Cisco University Research Program Fund, a +.\" corporate advised fund of Silicon Valley Community Foundation. +.\" +.\" Portions of this documentation were written at the Centre for Advanced +.\" Internet Architectures, Swinburne University of Technology, Melbourne, +.\" Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd November 23, 2011 +.Dt diffuse_collector 8 +.Os +.Sh NAME +.Nm diffuse_collector +.Nd receive flow information from one or more flow information sources and +manage local firewall and/or traffic shaper actions. +.Sh SYNOPSIS +.Nm +.Op Fl hnv +.Op Fl c Ar config-file +.Op Fl s Ar sctp-port +.Op Fl t Ar tcp-port +.Op Fl u Ar udp-port +.Sh DESCRIPTION +The +.Nm +utility receives flow information directly from classifier nodes via UDP, or +indirectly from +.Xr diffuse_exporter +instances via UDP, TCP or SCTP. +.Nm +uses the flow information received to manage local firewall and/or traffic +shaper actions. +.Pp +.Nm +was tested with the +.Xr ipfw 4 +firewall, but provisions exist in the code to simplify adding support for +different firewalls in future. +.Pp +The following options are available: +.Bl -tag -width "Ar actions-file" -offset indent +.It Fl c Ar config-file +Path to the plain text INI-style configuration file. +.It Fl h +Show help. +.It Fl n +Do not generate firewall commands. +Useful for testing. +.It Fl s Ar sctp-port +SCTP port to listen on. +.It Fl t Ar tcp-port +TCP port to listen on. +.It Fl u Ar udp-port +UDP port to listen on. +.It Fl v +Increase verbosity. +.El +.Sh CONFIGURATION FILE +The +.Nm +configuration file uses an INI style layout with key-value pair configuration +items. +There are currently three sections: +.Qq general , +.Qq firewall +and +.Qq classactions . +The example configuration file mentioned in the +.Sx FILES +section documents the available configuration options and their syntax. +.Sh FILES +.Bl -tag -width "conf" -compact -offset 0 +.It Pa /usr/share/examples/diffuse/collector.conf +An example collector configuration file using +.Xr ipfw 4 +for the underlying firewall. +.El +.Sh EXAMPLES +Listen for flow information on UDP and TCP port 5000 and parse the +/etc/collector.conf configuration file to obtain the rest of the required +configuration: +.Bd -literal -offset indent +.Nm Ns + -c /etc/collector.conf -u 5000 -t 5000 +.Ed +.Sh SEE ALSO +.Xr diffuse 4 , +.Xr dummynet 4 , +.Xr ipfw 4 , +.Xr diffuse_exporter 8 , +.Xr ipfw 8 +.Sh ACKNOWLEDGEMENTS +Development and testing of this software were made possible in part by grants +from the FreeBSD Foundation and The Cisco University Research Program Fund, a +corporate advised fund of Silicon Valley Community Foundation. +.Sh HISTORY +The +.Nm +utility is part of the DIFFUSE architecture and first appeared in +.Fx 10.0 . +.Pp +DIFFUSE +.Ns ( Em DI Ns stributed +.Em F Ns irewall +and +.Em F Ns low-shaper +.Em U Ns sing +.Em S Ns tatistical +.Em E Ns vidence ) +was first released in 2010 by Sebastian Zander whilst working on the DIFFUSE +research project at Swinburne University of Technology's Centre for Advanced +Internet Architectures, Melbourne, Australia, which was made possible in part by +a gift from The Cisco University Research Program Fund, a corporate advised fund +of Silicon Valley Community Foundation. +More details are available at: +.Pp +http://caia.swin.edu.au/urp/diffuse/ +.Sh AUTHORS +.An -nosplit +The +.Nm +was written by +.An Sebastian Zander Aq szander@swin.edu.au +and later extended by +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Pp +This manual page was written by +.An Sebastian Zander Aq szander@swin.edu.au +and +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Sh BUGS +.Bl -dash +.It +IPv6 is currently unsupported. +.El Modified: projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile ============================================================================== --- projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Tue Nov 22 16:44:50 2011 (r227823) +++ projects/diffused_head/sbin/ipfw/diffuse_exporter/Makefile Tue Nov 22 17:25:22 2011 (r227824) @@ -5,6 +5,6 @@ PROG= diffuse_exporter SRCS= diffuse_exporter.c diffuse_proto.c DPADD= ${LIBUTIL} LDADD= -lutil -NO_MAN= +MAN= diffuse_exporter.8 .include Added: projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.8 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/sbin/ipfw/diffuse_exporter/diffuse_exporter.8 Tue Nov 22 17:25:22 2011 (r227824) @@ -0,0 +1,146 @@ +.\" +.\" Copyright (c) 2010 +.\" Swinburne University of Technology, Melbourne, Australia. +.\" Copyright (c) 2011 The FreeBSD Foundation +.\" All rights reserved. +.\" +.\" This software was developed at the Centre for Advanced Internet +.\" Architectures, Swinburne University of Technology, by Sebastian Zander, made +.\" possible in part by a gift from The Cisco University Research Program Fund, a +.\" corporate advised fund of Silicon Valley Community Foundation. +.\" +.\" Portions of this documentation were written at the Centre for Advanced +.\" Internet Architectures, Swinburne University of Technology, Melbourne, +.\" Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd November 23, 2011 +.Dt diffuse_exporter 8 +.Os +.Sh NAME +.Nm diffuse_exporter +.Nd forward flow information from a classifier node to one or more action nodes. +.Sh SYNOPSIS +.Nm +.Op Fl hv +.Op Fl a Ar prot://host:port , Ns ... +.Op Fl c Ar host:port +.Sh DESCRIPTION +The +.Nm +utility acts as an intermediary between a DIFFUSE classifier node and one or +more action nodes. +It listens for UDP messages containing flow information sent by the in-kernel +.Xr diffuse 4 +classifier and forwards the information to remote action nodes using UDP, TCP or +SCTP. +.Pp +The following options are available: +.Bl -tag -width "Ar prot://host:port,..." -offset indent +.It Fl a Ar prot://host:port , Ns ... +Comma separated (no spaces) list of action nodes to forward flow information to. +.Ar proto +must be either "udp", "tcp", or "sctp", +.Ar host +is the action node's IP address or fully qualified host name, and +.Ar port +is the port the action node is listening on. +If no +.Ar port +is specified, 3191 is used as a default. +.It Fl c Ar host:port +The classifier node to listen for flow information from. +.Ar host +is the classifier node's IP address or fully qualified host name, and +.Ar port +is the port +.Nm +will listen on for messages from the classifier node. +If no +.Ar port +is specified, 3191 is used as a default. +.It Fl h +Show help. +.It Fl v +Increase verbosity. +.El +.Sh EXAMPLES +Listen for flow information from a local classifier on the default port and +forward it to two different action nodes using TCP and SCTP respectively: +.Bd -literal -offset indent +.Nm Ns + -c localhost \\\ + -a tcp://anode1.example.com:5000,sctp://anode2.example.com:5000 +.Ed +.Sh SEE ALSO +.Xr diffuse 4 , +.Xr dummynet 4 , +.Xr ipfw 4 , +.Xr ipfw 8 , +.Xr diffuse_collector 8 +.Sh ACKNOWLEDGEMENTS +Development and testing of this software were made possible in part by grants +from the FreeBSD Foundation and The Cisco University Research Program Fund, a +corporate advised fund of Silicon Valley Community Foundation. +.Sh HISTORY +The +.Nm +utility is part of the DIFFUSE architecture and first appeared in +.Fx 10.0 . +.Pp +DIFFUSE +.Ns ( Em DI Ns stributed +.Em F Ns irewall +and +.Em F Ns low-shaper +.Em U Ns sing +.Em S Ns tatistical +.Em E Ns vidence ) +was first released in 2010 by Sebastian Zander whilst working on the DIFFUSE +research project at Swinburne University of Technology's Centre for Advanced +Internet Architectures, Melbourne, Australia, which was made possible in part by +a gift from The Cisco University Research Program Fund, a corporate advised fund +of Silicon Valley Community Foundation. +More details are available at: +.Pp +http://caia.swin.edu.au/urp/diffuse/ +.Sh AUTHORS +.An -nosplit +The +.Nm +was written by +.An Sebastian Zander Aq szander@swin.edu.au +and later extended by +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Pp +This manual page was written by +.An Sebastian Zander Aq szander@swin.edu.au +and +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Sh BUGS +.Bl -dash +.It +IPv6 is currently unsupported. +.El Modified: projects/diffused_head/sbin/ipfw/ipfw.8 ============================================================================== --- projects/diffused_head/sbin/ipfw/ipfw.8 Tue Nov 22 16:44:50 2011 (r227823) +++ projects/diffused_head/sbin/ipfw/ipfw.8 Tue Nov 22 17:25:22 2011 (r227824) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 20, 2011 +.Dd November 23, 2011 .Dt IPFW 8 .Os .Sh NAME @@ -91,6 +91,21 @@ in-kernel NAT. .Oc .Oc .Ar pathname +.Pp +.Ss DIFFUSE +.Nm +.Brq Cm feature | mlclass | export +.Ar name +.Cm config +.Ar config-options +.Nm +.Brq Cm feature | mlclass | export +.Brq Cm delete | show +.Ar name +.Nm +.Cm flowtable +.Brq Cm show | zero | flush +.Op expired .Sh DESCRIPTION The .Nm @@ -98,8 +113,10 @@ utility is the user interface for contro .Xr ipfw 4 firewall, the .Xr dummynet 4 -traffic shaper/packet scheduler, and the -in-kernel NAT services. +traffic shaper/packet scheduler, in-kernel NAT services, and +.Xr diffuse 4 , +an extension that provides machine-learning based traffic classification and +distributed firewalling / traffic shaping. .Pp A firewall configuration, or .Em ruleset , @@ -336,6 +353,17 @@ commands are used to configure the traff See the .Sx TRAFFIC SHAPER (DUMMYNET) CONFIGURATION Section below for details. +.Ss DIFFUSE CONFIGURATION +The +.Nm +.Cm feature , mlclass +and +.Cm export +commands are used to configure +.Xr diffuse 4 . +See the +.Sx DIFFUSE CONFIGURATION +Section below for details. .Pp If the world and the kernel get out of sync the .Nm @@ -722,6 +750,14 @@ Divert packets that match this rule to t socket bound to port .Ar port . The search terminates. +.It Cm export Ar name +Export flow information for flows classified by +.Xr diffuse 4 . +The information is exported according to the configuration of the export +.Ar name +(see +.Sx DIFFUSE CONFIGURATION Ns ). +The search continues with the next rule. .It Cm fwd | forward Ar ipaddr | tablearg Ns Op , Ns Ar port Change the next-hop on matching packets to .Ar ipaddr , @@ -769,6 +805,12 @@ To enable .Cm fwd a custom kernel needs to be compiled with the option .Cd "options IPFIREWALL_FORWARD" . +.It Cm mlclass Ar name +Classify flows using machine learning classifier +.Ar name , +which was previously configured with a config command (see +.Sx DIFFUSE CONFIGURATION Ns ). +The search continues with the next rule. .It Cm nat Ar nat_nr Pass packet to a nat instance @@ -1249,6 +1291,19 @@ action followed by the comment. .It Cm bridged Alias for .Cm layer2 . +.It Cm class-tags Ar tag , Ns Ar ... +This option can only be specified for rules with a +.Cm mlclass +action. +If specified, packets will be tagged with the specified tag(s) according to +their class(es). +For example, a packet that classified as the first class will be tagged with the +first tag. +(See +.Sx DIFFUSE CONFIGURATION Ns ). +.Pp +Tagged packets can then be matched in later rules using the tagged option +described below. .It Cm diverted Matches only packets generated by a divert socket. .It Cm diverted-loopback @@ -1289,6 +1344,48 @@ IPSec authentication headers .Pq Cm ah , and IPsec encapsulated security payload headers .Pq Cm esp . +.It Cm features Ar feature-name , Ns Ar ... Op unidirectional +Enables the computation of one or more previously configured features +named +.Ar feature-name , Ns Ar ... +(see +.Sx DIFFUSE CONFIGURATION Ns ). +Features will only be computed for flows +whose packets match all rule options prior to +.Cm features . +Flows are bidirectional by default, unless +.Ar unidirectional +is specified here. +.Pp +If not explicitly specified, the features option is automatically generated for +every rule that has one or more feature matches, match-if-class options, or a +mlclass action. +.It Qq Ar feature-stat-name Ns Bro < Ns | Ns <= Ns | Ns = Ns | Ns >= Ns | Ns > Brc Ns value +Matches a packet if the feature +.Ar feature-stat-name +is smaller, smaller equal, equal, larger equal or larger than the specified +value. +A +.Ar feature-stat-name +is expressed as: +.Pp +.Op Bro Ar fwd Ns | Ns Ar bck Brc Ns . Ns +.Ar stat-name . Ns Ar feature-name +.Pp +fwd and bck indicate the direction (bidirectional flows), +.Ar stat-name +defines the name of the statistics provided by the feature module, and +.Ar feature-name +is the name of the configured feature (see +.Sx DIFFUSE CONFIGURATION Ns ). +.Pp +For bidirectional flows, omitting "fwd" or "bck" implies the forward direction +of flows. +For unidirectional flows or features computed in both directions of a +bidirectional flow, neither "fwd" or "bck" should be specified. +.Pp +The whole option must be specified in double quotes if necessary +to prevent the shell from interpreting the ">" etc. .It Cm fib Ar fibnum Matches a packet that has been tagged to use the given FIB (routing table) number. @@ -1537,6 +1634,14 @@ Values can be entered as decimal or hexa and they are always printed as hexadecimal (unless the .Cm -N option is used, in which case symbolic resolution will be attempted). +.It Cm match-if-class Ar classifier Ns : Ns Ar class , Ns Ar ... +Matches packets that were classified by a previously configured classifier +.Ar classifier +as one of the classes listed. +Each +.Ar class +can be a class name or a # followed by the class number (see +.Sx DIFFUSE CONFIGURATION Ns ). .It Cm proto Ar protocol Matches packets with the corresponding IP protocol. .It Cm recv | xmit | via Brq Ar ifX | Ar if Ns Cm * | Ar ipno | Ar any @@ -2393,6 +2498,510 @@ interface is not available after process so those packets are dropped in the output path. Care should be taken to ensure that link-local packets are not passed to .Nm dummynet . +.Sh DIFFUSE CONFIGURATION +With the +.Xr diffuse 4 +extension, +.Nm +can be used to classify flows using machine learning and to export the +information to remote hosts, which can perform actions on these classified +flows, e.g. block or rate limit them. +.Pp +.Nm DIFFUSE +operates by first using the firewall to select packets. +Selected packets are grouped into bidirectional or unidirectional flows, for +which characteristics (features) are computed. +Based on the features, flows can then be classified using machine learning. +Classified flows can be exported to remote hosts to trigger remote actions. +.Pp +Packets are classified into flows similar to +.Nm Ns 's +generation of dynamic rules (if keep-state is used). +Bidirectional flows are like dynamic rule entries. +However, +.Nm DIFFUSE +flows can be unidirectional too (if required). +The timeout of flows also works the same way as for dynamic rules. +The timeout values for different protocols are configurable (sysctl variables). +.Pp +.Nm DIFFUSE +adds three new objects: +.Bl -hang -width "classifier" +.It Em feature +A +.Em feature +is a configured instance of a feature module (implemented as a kernel module). +Features are not single statistics but a set of statistics related to some +characteristic of a flow, e.g. packet length. +Features can be computed independently for each packet but they can also be +computed over a series of packets, called a flow. +.It Em classifier +A +.Em classifier +is a configured instance of a machine learning classifier algorithm (implemented +as a kernel module). +A classifier takes a set of feature statistics as input and based on these +assigns a class to the packet or flow. +.It Em export +An +.Em export +is a configured instance of the export function. +The only way to currently export classified flow information from the kernel is +via UDP. +An +.Em export +sends the information directly or via a +.Xr diffuse_exporter 8 +instance to one or more action node(s), which then based on the class of flows +can perform various actions, such as blocking or shaping. +.El +.Ss FEATURES +Before features can be used they must be configured using the config +command: +.Pp +.Nm +.Cm feature +.Ar feature-name +.Cm config module +.Ar module-name +.Op Ar module-options +.Pp +The +.Ar feature-name +is the name of the new feature instance. +It cannot be the name of an existing feature instance. +.Ar module-name +is the name of a feature module. +See +.Xr diffuse 4 +for the list of existing modules. +.Pp +Since the "plen" and "iat" modules are used in the examples below we briefly +explain their statistics here. +The "plen" module computes minimum, mean, maximum, and variance of packet +length, and the "iat" module computes minimum, mean, maximum, and variance +of packet inter-arrival times. +.Pp +For each existing feature module +.Nm diffuse +will create a default feature instance with default configuration that +has the same name as the module. +If the default configuration is deemed adequate the default feature can be use +as is without any further configuration. +.Pp +However, in many cases the default configuration will not be appropriate. +The following command creates a new feature instance of the "plen" module: +.Pp +.Dl "ipfw feature myplen config module plen window 25" +.Pp +The +.Ar module-options +are module specific, and the -h parameter can be used to view available options +e.g. the following command will show the plen module options: +.Pp +.Dl "ipfw feature myplen config module plen -h" +.Pp +To view the properties of configured features use: +.Pp +.Nm +.Cm feature show +.Brq Ar feature-name | Cm all +.Pp +This shows the details for the configured feature +.Ar feature-name +or for all configured features if "all" is specified. +.Pp +Configured features can be deleted using: +.Pp +.Nm +.Cm feature delete +.Ar feature-name +.Ss CLASSIFIERS +Before classifiers can be used they must be configured using the config +command: +.Pp +.Nm +.Cm mlclass +.Ar classifier-name +.Cm config algorithm +.Ar algorithm-name +.Op use-feature-stats Ar feature Ns , Ns ... +.Op class-names Ar name Ns , Ns ... +.Op confirm Ar number +.Op Brq Cm sample Ar number | Cm rnd-sample Ar prob +.Op Ar algorithm-options +.Pp +The +.Ar classifier-name +is the name of the new classifier instance. +It cannot be the name of an existing classifier instance. +.Ar algorithm-name +is the name of a classifier module, which implements the actual classification +algorithm. +See +.Xr diffuse 4 +for a list of classifiers. +The "nbayes" algorithm used in the following examples classifies packets or +flows based on the Bayes formula. +.Pp +By default the names of the feature statistics used are read from the model +file. +However, if the model file does not contain valid feature statistic names or one +wants to use different statistics, the parameter +.Cm use-feature-stats +allows the definition of features used by the classifier as part of the +classifier configuration. +Feature statistics are specified as for feature matches (see rule options). +.Pp +By default the names of the classes are read from the model file too. +However, the parameter +.Cm class-names +allows to override the names specified in the model file as part of the +classifier configuration. +.Pp +The parameter +.Cm confirm +controls how many times a class has to be confirmed before a +.Cm match-if-class +will match. +For example, if +.Cm confirm +is set to 2 a +.Cm match-if-class +will only match if at least 3 consecutive packets were classified as the same +class. +By default +.Cm confirm +is zero; as soon as all features are computed each packet can be matched with a +.Cm match-if-class . +.Pp +By default a classifier classifies every packet for which all needed features +have been computed. +Sampling can be used to only classify a subset of packets to reduce CPU load. +The parameter +.Cm sample +can be used to only execute the classifier every +.Ar number +packets. +The parameter +.Cm rnd-sample +can be used to randomly sample packets for which the classifier is executed. +The previous packet's class (if any) is assigned to non-sampled packets. +.Pp +To facilitate a quick classification of new flows the first packet +where all features have been computed is always classified, regardless of the +sampling parameters. +Note: specify only +.Cm sample +or +.Cm rnd-sample +but not both! +.Pp +Since a classifier configuration totally depends on the classifier model, no +default classifier instances are generated. +.Pp +The following command creates a new classifier instance for the "nbayes" +algorithm using a fictitious classifier model called example_nbayes.diffuse. +.Bd -literal -offset indent + ipfw mlclass myclass config algorithm nbayes model \\\ + example_nbayes.diffuse +.Ed +.Pp +The +.Ar module-options +depend on the algorithm. +To view the available options the -h parameter can be used, for example: +.Pp +.Dl "ipfw mlclass myclass config algorithm nbayes -h" +.Pp +will show all the options the "nbayes" algorithm provides. +.Pp +To view the properties of configured classifiers use: +.Pp +.Nm +.Cm mlclass show +.Brq Ar class-name | Cm all +.Pp +This shows the details for the configured classifier +.Ar class-name +or for all configured classifiers if "all" is specified. +.Pp +Configured classifiers can be deleted using: +.Pp +.Nm +.Cm mlclass delete +.Ar class-name +.Ss EXPORTS +Before exports can be used they must be configured using the config command: +.Pp +.Nm +.Cm export +.Ar export-name +.Cm config target udp:// Ns Ar host Ns +.Op : Ns Ar port +.Op action Ar action-name +.Op action-params Ar action-params +.Op min-batch Ar min-batch-number +.Op max-batch Ar max-batch-number +.Op max-delay Ar max-delay-number +.Op confirm Ar confirm-number +.Op unidirectional +.Pp +The +.Ar export-name +is the name of the new export instance. +It cannot be the name of an existing export instance. +.Ar action-name +and +.Ar action-params +are the action name and parameters that are sent for matching flows. +Note that the receiver may overrule these with locally specified actions. +.Pp +Note that the arguments of +.Ar action-name +and +.Ar action-params +are currently opaque values for DIFFUSE i.e. no checking is performed. +Also note that the length of the arguments is currently limited to +.Em seven +characters and longer arguments are truncated. +.Pp +The argument of +.Cm target +specifies the receiver. +The protocol must be UDP, +.Ar host +is the fully qualified host name, and +.Ar port +is the port number of the export target. +.Pp +.Cm min-batch-number +is the minimum number of flows exported in one batch. +Similarly, +.Ar max-batch-number +is the maximum number of flows exported in one batch (must be equal or larger +than +.Ar min-batch-number ). +These parameters allow controlling the export batch size. +Note that increasing +.Ar min-batch-number +also increases the delay for delivering flow information. +.Pp +.Ar max-delay-number +specifies a maximum delay between the generation of export information and the +actual export. +Note that if +.Ar max-delay-number +is set (value > 0) the minimum batch size is still enforced, but the maximum +batch size can now be exceeded (if more records are over the maximum delay than +the maximum batch size). +.Pp +.Ar confirm-number +is used to specify how many times a flow has to be consecutively classified as the +.Em same +class before it is exported. +For example, if +.Ar confirm-number +is set to 2, information is only exported if the class was confirmed twice +(meaning three consecutive classifications resulting in the same class). +.Pp +By default the receiver will treat flows as bidirectional, i.e. apply actions +to both directions of a flow. +The +.Cm unidirectional +option specifies that the receiver should treat flows as unidirectional. +However, based on local configuration the receiver may still decide to treat +flows differently than indicated by the classifier. +.Pp +Note that all UDP packets send by an export rule bypass the firewall. +.Pp +The following command creates a new export instance that exports data to +localhost using the default port (port 3191). +The minimum batch size is set to 2 and the maximum batch size is set to 10. Note +that packets send by an export rule bypass the firewall. +.Pp +.Bd -literal -offset indent + ipfw export myexp config target udp://localhost min-batch 1 \\\ + max-batch 5 +.Ed +.Pp +To view the properties of configured exports use: +.Pp +.Nm +.Cm export show +.Brq Ar export-name | Cm all +.Pp +This shows the details for the configured export +.Ar export-name +or for all configured exports if "all" is specified. +.Pp +Configured exports can be deleted using: +.Pp +.Nm +.Cm export delete +.Ar export-name +.Pp +.Ss FLOWTABLE +.Nm DIFFUSE +has a flow table to keep state of any flows for which features are computed, and +which are classified using a classifier. +The current list of flows in the table can be viewed using the following +command: +.Pp +.Nm +.Cm flowtable show +.Op expired +.Pp +By default only active flows are shown. +If expired is specified, expired flows are also shown. Note, that any expired +flows are eventually deleted. +.Pp +The command outputs the list of features followed by one line for each flow in +the table. +Each line contains the following fields: +.Bl -bullet +.It +Rule number of the rule that generated the flow +.It +Bucket number in the hash table +.It +Number of packets +.It +Number of bytes +.It +Expire time +.It +Protocol, source IP and port (UDP, TCP), destination IP and port (UDP, TCP) +.It +List of all feature statistics with their current values +.It +List of classes (if the flow has been classified) +.El +.Pp +The packet and byte counters can be reset using: +.Pp +.Nm +.Cm flowtable zero +.Pp +All entries can be removed from the flow table using: +.Pp +.Nm +.Cm flowtable flush +.Pp +The flow table has a fixed number of buckets, but it can be re-sized. +First, change the sysctl variable net.inet.ip.diffuse.ft_buckets to the desired +value, and then flush the flow table. +The sysctl variable net.inet.ip.diffuse.ft_curr_buckets shows the actual number +of buckets. +.Ss FLOWS AND FEATURE COMPUTATION +The first rule with a features option a packet hits triggers the flow lookup and +flow state generation. +Later rules for the same packet then use a pointer to the flow entry. +This means whether a flow is bidirectional or unidirectional is determined by +the rule creating the flow, and later rules cannot change this. +.Pp +The use of bidirectional flows is recommended (the default). +It is possible to use unidirectional flows with the "unidirectional" option of +"features". +Do not mix both types unless you know what you are doing. +.Pp +The "features" option is implicitly generated for rules with feature matches, +"match-if-class" options or a classifier action, even if not explicitly +specified. +Implicit "features" options list all the features used by the feature matches or +the classifier and will create bidirectional flows. +.Pp +Features of a flow are updated by every rule a packet hits that has a "features" +option. +Each feature is of course only updated once for each packet. +The maximum number of features per flow is currently limited to +.Em eight . +Rules that attempt to update features past this limit do not match, as will +subsequent rules that attempt to use the non-existing features. +.Pp +Note that since the first rule (with terminating action) that matches a packet +terminates the search, rules that update features but do not see all packets +effectively compute the features over a subset of packets. +This allows to create hierarchical features, such as packet length statistics +can be computed only for packets smaller/larger than a threshold. +.Pp +However, in other cases all features must be computed over all packets. +An initial rule with non-terminating action does this: +.Bd -literal -offset indent + ipfw add 1 count ip from any to any features plen,iat + ... +.Ed +.Pp +Now the "plen" and "iat" features will always be computed over all +IP packets regardless of the following rules. +.Pp +.Ss EXAMPLES +The first example configures a new feature instance and uses it to match only +flows with large packets in both directions: +.Pp +.Bd -literal -offset indent + ipfw feature myplen config module plen window 25 + ipfw add allow ip from any to any "fwd.max.myplen>1000" \\\ + "bck.max.myplen>1000" + ipfw add deny ip from any to any +.Ed +.Pp +The following rules create a classifier instance and use it to classify flows. +Then count actions are used to count the matching packets. +(The example classifier model only works for IPv4.) +.Bd -literal -offset indent + ipfw mlclass myclass config algorithm nbayes model \\\ + et_vs_other_plenonly.nbayes.diffuse + ipfw add count ipv4 from any to any match-if-class myclass:#0 + ipfw add count ipv4 from any to any match-if-class myclass:#1 +.Ed +.Pp +The following rules do the same but use the "tag" action and "tagged" option: +.Bd -literal -offset indent + ipfw mlclass myclass config algorithm nbayes model \\\ + et_vs_other_plenonly.nbayes.diffuse + ipfw add mlclass myclass ipv4 from any to any class-tags 10,20 + ipfw add count ipv4 from any to any tagged 10 + ipfw add count ipv4 from any to any tagged 20 +.Ed +.Pp +The following rules create a classifier instance and an export instance. +Here we explicitly specify the feature statistics and class names. +Instead of class numbers class names are used in the "match-if-class" here. +Flows of class "et" are then exported. +.Bd -literal -offset indent + ipfw mlclass myclass config algorithm nbayes model \\\ + et_vs_other_plenonly.nbayes.diffuse \\\ + use-feature-stats fwd.min.myplen,fwd.mean.myplen,\\\ + fwd.max.myplen,fwd.stdev.myplen,bck.min.myplen,\\\ + bck.mean.myplen,bck.max.myplen,bck.stdev.myplen \\\ + class-names other,et + ipfw myexp config target udp://localhost min-batch 5 + ipfw add export myexp ipv4 from any to any match-if-class myclass:et +.Ed +.Ss SYSCTLS +.Nm DIFFUSE *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:05:08 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33EB31065674; Wed, 23 Nov 2011 03:05:08 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0A73F8FC14; Wed, 23 Nov 2011 03:05:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3578f021877; Wed, 23 Nov 2011 03:05:07 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN357uT021875; Wed, 23 Nov 2011 03:05:07 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230305.pAN357uT021875@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:05:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227855 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:05:08 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:05:07 2011 New Revision: 227855 URL: http://svn.freebsd.org/changeset/base/227855 Log: Allow for the ability of a per-build file make.conf.client. In use, the lines of this file will be *appended* -- not replace -- to the per-host make.conf. The latter deal with overriding default fetching locations. (Although in practice they are per-site, not per-host, for historical reasons they remain per-host). This, for example, allows some builds to be run with clang as default, while not having to change others. Modified: projects/portbuild/scripts/dosetupnode Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Wed Nov 23 02:08:05 2011 (r227854) +++ projects/portbuild/scripts/dosetupnode Wed Nov 23 03:05:07 2011 (r227855) @@ -81,14 +81,15 @@ setup() { ${client_setup} pre-copy ${args} || (echo "pre-copy for ${node} failed"; return 1) if [ "${norsync}" -eq 0 ]; then - # client.conf and common.conf can be symlinks outside this dir, so - # copy the actual files + # conf files (e.g. client.conf and common.conf) can be symlinks outside + # this dir, so copy the actual files rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete ${pbd}/${arch}/*.conf \ ${client_user}@${node}:${pbd}/${arch} checkerror $? || (echo "copying *.conf to ${node} failed"; return 1) # portbuild.* can be symlinks outside this dir, so copy the actual # files + # XXX MCL really, only have to do portbuild.conf and portbuild..conf rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete ${pbd}/${arch}/portbuild* \ ${client_user}@${node}:${pbd}/${arch} checkerror $? || (echo "copying portbuild* files to ${node} failed"; return 1) @@ -116,6 +117,14 @@ setup() { echo "No custom portbuild.conf." fi + if [ -f ${builddir}/make.conf.client ]; then + rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete ${builddir}/make.conf.client \ + ${client_user}@${node}:${builddir}/ + checkerror $? || (echo "Copying custom make.conf.client to ${node} failed"; return 1) + else + echo "No custom make.conf.client." + fi + rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p \ ${builddir}/ports-${buildid}.tbz \ ${builddir}/ports-${buildid}.tbz.md5 \ @@ -131,6 +140,7 @@ setup() { ${client_setup} post-copy ${args} || (echo "post-copy for ${node} failed"; return 1) if [ "${queue}" -eq 1 ]; then + # XXX MCL NEED TIMEOUT HERE jobs=$(python ${pbc}/qmanager/qclient jobs | grep "${node}" | grep "${arch}/${branch}/${buildid} package" | awk '{print $1}' | tail +1) for j in ${jobs}; do python ${pbc}/qmanager/qclient release $j From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:13:43 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E286A1065674; Wed, 23 Nov 2011 03:13:43 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D2AA08FC14; Wed, 23 Nov 2011 03:13:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3DhDr022333; Wed, 23 Nov 2011 03:13:43 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3Dh8i022331; Wed, 23 Nov 2011 03:13:43 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230313.pAN3Dh8i022331@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:13:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227856 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:13:44 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:13:43 2011 New Revision: 227856 URL: http://svn.freebsd.org/changeset/base/227856 Log: Try to tighten up error handling. Modified: projects/portbuild/scripts/pollmachine Modified: projects/portbuild/scripts/pollmachine ============================================================================== --- projects/portbuild/scripts/pollmachine Wed Nov 23 03:05:07 2011 (r227855) +++ projects/portbuild/scripts/pollmachine Wed Nov 23 03:13:43 2011 (r227856) @@ -259,6 +259,7 @@ class MachinePoll(threading.Thread): else: # machine is not responding to poll. # XXX MCL remove from machines + self.online = False # XXX inform qmanager f.write("") f.close() From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:14:54 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAAD5106564A; Wed, 23 Nov 2011 03:14:54 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9A8408FC0A; Wed, 23 Nov 2011 03:14:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3EsEw022404; Wed, 23 Nov 2011 03:14:54 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3EsO6022402; Wed, 23 Nov 2011 03:14:54 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230314.pAN3EsO6022402@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:14:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227857 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:14:54 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:14:54 2011 New Revision: 227857 URL: http://svn.freebsd.org/changeset/base/227857 Log: Add an optional per-build make.conf.client line, whose lines will be *appended* to the per-host make.conf as specified in the per-client tarball. While here, add some more error handling. Modified: projects/portbuild/scripts/portbuild Modified: projects/portbuild/scripts/portbuild ============================================================================== --- projects/portbuild/scripts/portbuild Wed Nov 23 03:13:43 2011 (r227856) +++ projects/portbuild/scripts/portbuild Wed Nov 23 03:14:54 2011 (r227857) @@ -74,7 +74,9 @@ if [ -f ${pbd}/${arch}/${branch}/builds/ . ${pbd}/${arch}/${branch}/builds/${buildid}/portbuild.conf fi . ${pbd}/${arch}/portbuild.$(hostname) -. ${pbd}/scripts/buildenv +# if buildenv isn't there, then ${pbd} is probably the default, which for +# some reason you have not populated. +. ${pbd}/scripts/buildenv || bailout ${chroot} 0 255 ${pkgname} buildroot=${scratchdir} error=0 @@ -184,6 +186,10 @@ if [ -f ${chroot}/.notready ]; then if [ -f ${bindistlocal} ]; then tar -C ${chroot} -xpf ${bindistlocal} fi + # XXX MCL 20111117: allow additional (not replacement!) knobs for make.conf + if [ -f ${builddir}/make.conf.client ]; then + cat ${builddir}/make.conf.client >> ${chroot}/etc/make.conf + fi # to be able to run certain kernel-dependent binaries # inside the chroot area From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:15:35 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 336C01065674; Wed, 23 Nov 2011 03:15:35 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 235888FC18; Wed, 23 Nov 2011 03:15:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3FZZH022463; Wed, 23 Nov 2011 03:15:35 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3FZR6022461; Wed, 23 Nov 2011 03:15:35 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230315.pAN3FZR6022461@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227858 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:15:35 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:15:34 2011 New Revision: 227858 URL: http://svn.freebsd.org/changeset/base/227858 Log: Try to make more robust. Modified: projects/portbuild/scripts/dodistfiles Modified: projects/portbuild/scripts/dodistfiles ============================================================================== --- projects/portbuild/scripts/dodistfiles Wed Nov 23 03:14:54 2011 (r227857) +++ projects/portbuild/scripts/dodistfiles Wed Nov 23 03:15:34 2011 (r227858) @@ -40,9 +40,13 @@ cd ${distdir} || exit 1 echo "Removing incomplete downloads" -# XXX MCL put an existance test here -find ${distdir}/.pbtmp/ -name .done -depth 2 | sed -e 's,/.done$,/,' | sort > .done || exit 1 -find -d ${distdir}/.pbtmp/ -type d -mindepth 1 |sed -E -e 's,([^/])$,\1/,' > .alldirs || exit 1 +if [ -d ${distdir}/.pbtmp/ ]; then + find ${distdir}/.pbtmp/ -name .done -depth 2 | sed -e 's,/.done$,/,' | sort > .done || exit 1 + find -d ${distdir}/.pbtmp/ -type d -mindepth 1 |sed -E -e 's,([^/])$,\1/,' > .alldirs || exit 1 +else + cp /dev/null .done + cp /dev/null .alldirs +fi sed -E -e "s,^(${distdir}/.pbtmp/[^/]+/).*,\1," < .alldirs | sort -u > .pkgdirs @@ -66,12 +70,13 @@ done cat .pkgsubdirs | xargs rmdir || exit 1 echo "Moving remaining distfiles" -# XXX MCL put an existance test here -find ${distdir}/.pbtmp/ -type f -depth 2 \! -name .done | xargs -J % mv % ${distdir} +if [ -d ${distdir}/.pbtmp/ ]; then + find ${distdir}/.pbtmp/ -type f -depth 2 \! -name .done | xargs -J % mv % ${distdir} +fi echo "Cleaning up" sed -e 's,$,.done,' < .pkgdirs | xargs rm -f || exit 1 cat .pkgdirs | xargs rmdir || exit 1 -rmdir .pbtmp || exit 1 +rmdir .pbtmp 2> /dev/null || exit 1 rm -f .alldirs .done .pkgdirs .pkgsubdirs .subdirs || exit 1 From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:16:29 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 620661065670; Wed, 23 Nov 2011 03:16:29 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 522118FC0C; Wed, 23 Nov 2011 03:16:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3GT8B022533; Wed, 23 Nov 2011 03:16:29 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3GT0C022531; Wed, 23 Nov 2011 03:16:29 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230316.pAN3GT0C022531@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:16:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227859 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:16:29 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:16:29 2011 New Revision: 227859 URL: http://svn.freebsd.org/changeset/base/227859 Log: Compile ptimeout here, and only if needed, rather than every single time. Modified: projects/portbuild/scripts/pdispatch Modified: projects/portbuild/scripts/pdispatch ============================================================================== --- projects/portbuild/scripts/pdispatch Wed Nov 23 03:15:34 2011 (r227858) +++ projects/portbuild/scripts/pdispatch Wed Nov 23 03:16:29 2011 (r227859) @@ -145,6 +145,9 @@ test -f ${pbd}/${arch}/portbuild.${host} rm -f ${builddir}/logs/${pkgname}.log ${builddir}/logs/${pkgname}.log.bz2 rm -f ${builddir}/errors/${pkgname}.log ${builddir}/errors/${pkgname}.log.bz2 +if [ ! -f ${builddir}/ptimeout ]; then + /usr/bin/gcc -o ${builddir}/ptimeout -Wall ${pbc}/sources/ptimeout.c +fi ${builddir}/ptimeout $timeout ${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${command} ${arch} ${branch} ${buildid} ${chroot} ${flags} \"$ED\" \"$PD\" \"$FD\" \"$BD\" \"$RD\" ${args} 2>&1 error=$? From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:17:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81A8E106566B; Wed, 23 Nov 2011 03:17:59 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 71C598FC15; Wed, 23 Nov 2011 03:17:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3HxxB022613; Wed, 23 Nov 2011 03:17:59 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3HxST022611; Wed, 23 Nov 2011 03:17:59 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230317.pAN3HxST022611@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:17:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227860 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:17:59 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:17:59 2011 New Revision: 227860 URL: http://svn.freebsd.org/changeset/base/227860 Log: Allow for a per-build make.conf called make.conf.server. Unlike make.conf.client, it is a complete make.conf file (since it does not need to be specific per-host). Modified: projects/portbuild/scripts/makeworld Modified: projects/portbuild/scripts/makeworld ============================================================================== --- projects/portbuild/scripts/makeworld Wed Nov 23 03:16:29 2011 (r227859) +++ projects/portbuild/scripts/makeworld Wed Nov 23 03:17:59 2011 (r227860) @@ -51,13 +51,18 @@ while [ $# -gt 0 ]; do shift done -# XXX MCL I don't know what this is supposed to do. +# XXX MCL I don't know what -client is supposed to do. if [ "$client" = "1" ]; then SRC_BASE=${pbd}/${arch}/src-client shift 1 else SRC_BASE=${builddir}/src - export __MAKE_CONF=/dev/null + # XXX MCL 20110912 allow for per-build make.conf + if [ -f ${builddir}/make.conf.server ]; then + export __MAKE_CONF=${builddir}/make.conf.server + else + export __MAKE_CONF=/dev/null + fi fi cd ${SRC_BASE} From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:18:20 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED5DF1065670; Wed, 23 Nov 2011 03:18:20 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DD92A8FC1A; Wed, 23 Nov 2011 03:18:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3IKOV022664; Wed, 23 Nov 2011 03:18:20 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3IKYZ022662; Wed, 23 Nov 2011 03:18:20 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230318.pAN3IKYZ022662@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:18:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227861 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:18:21 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:18:20 2011 New Revision: 227861 URL: http://svn.freebsd.org/changeset/base/227861 Log: Remove an XXX. Modified: projects/portbuild/scripts/makeworld Modified: projects/portbuild/scripts/makeworld ============================================================================== --- projects/portbuild/scripts/makeworld Wed Nov 23 03:17:59 2011 (r227860) +++ projects/portbuild/scripts/makeworld Wed Nov 23 03:18:20 2011 (r227861) @@ -57,7 +57,7 @@ if [ "$client" = "1" ]; then shift 1 else SRC_BASE=${builddir}/src - # XXX MCL 20110912 allow for per-build make.conf + # allow for per-build make.conf if [ -f ${builddir}/make.conf.server ]; then export __MAKE_CONF=${builddir}/make.conf.server else From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:20:45 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F3FD106566B; Wed, 23 Nov 2011 03:20:45 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2F2FB8FC13; Wed, 23 Nov 2011 03:20:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3KjKJ022768; Wed, 23 Nov 2011 03:20:45 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3KjJx022766; Wed, 23 Nov 2011 03:20:45 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230320.pAN3KjJx022766@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:20:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227862 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:20:45 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:20:44 2011 New Revision: 227862 URL: http://svn.freebsd.org/changeset/base/227862 Log: Make the ARCHS_REQUIRING_LINPROCFS logic common to server and client. Add OVERRIDE_LINUX_NONBASE_PORTS logic common to server and client. Comment out the ${pbd}/${arch}/make.conf logic as obsolete. Modified: projects/portbuild/scripts/buildenv Modified: projects/portbuild/scripts/buildenv ============================================================================== --- projects/portbuild/scripts/buildenv Wed Nov 23 03:18:20 2011 (r227861) +++ projects/portbuild/scripts/buildenv Wed Nov 23 03:20:44 2011 (r227862) @@ -117,12 +117,6 @@ buildenv () { break fi done - for i in ${ARCHS_REQUIRING_LINPROCFS}; do - if [ ${i} = ${arch} ]; then - export LINUX_OSRELEASE=${DEFAULT_LINUX_OSRELEASE} - break - fi - done buildenv.common @@ -138,8 +132,8 @@ buildenv () { export INDEXFILE=INDEX-${branchbase} fi - # probably only used in mkbindist - export __MAKE_CONF=${pbd}/${arch}/make.conf + # probably only used in mkbindist XXX MCL probably not even there + # XXX MCL 20111117 export __MAKE_CONF=${pbd}/${arch}/make.conf } # @@ -167,4 +161,15 @@ buildenv.common() { export BATCH=1 export PACKAGE_BUILDING=1 + + for i in ${ARCHS_REQUIRING_LINPROCFS}; do + if [ ${i} = ${arch} ]; then + export LINUX_OSRELEASE=${DEFAULT_LINUX_OSRELEASE} + break + fi + done + + if [ ! -z "${OVERRIDE_LINUX_NONBASE_PORTS}" ]; then + export OVERRIDE_LINUX_NONBASE_PORTS + fi } From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:39:04 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CB18106566C; Wed, 23 Nov 2011 03:39:04 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3AC048FC08; Wed, 23 Nov 2011 03:39:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3d4Ch023342; Wed, 23 Nov 2011 03:39:04 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3d4hJ023339; Wed, 23 Nov 2011 03:39:04 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230339.pAN3d4hJ023339@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:39:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227863 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:39:04 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:39:03 2011 New Revision: 227863 URL: http://svn.freebsd.org/changeset/base/227863 Log: Make missing_header also trigger on blah.H not found, not just blah.h. Generalize badc++ case: s/ISO C++ does not support/ISO C++/ . Fine-tune clang a bit by removing the following false positives: error: expected.*(at end of declaration|expression|identifier) error: invalid (argument type|integral value|operand|token|use of a cast|value) error:.*not supported Remove some false positives for assumes_gcc (would fire on any fetch failure for a gcc component) Cope with some POLA in runaway_process. Modified: projects/portbuild/scripts/processonelog Modified: projects/portbuild/scripts/processonelog ============================================================================== --- projects/portbuild/scripts/processonelog Wed Nov 23 03:20:44 2011 (r227862) +++ projects/portbuild/scripts/processonelog Wed Nov 23 03:39:03 2011 (r227863) @@ -59,7 +59,7 @@ elif bzgrep -q "Couldn't fetch it - plea reason="fetch"; tag="fetch" elif bzgrep -q "Error: shared library \".*\" does not exist" $1; then reason="LIB_DEPENDS"; tag="libdepends" -elif bzgrep -qE "\.(c|cc|cxx|cpp|h|y)[1-9:]+ .+\.h: No such file" $1; then +elif bzgrep -qE "\.(c|cc|cxx|cpp|h|y)[1-9:]+ .+\.[hH]: No such file" $1; then reason="missing_header"; tag="header" elif bzgrep -qE '(nested function.*declared but never defined|warning: nested extern declaration)' $1; then reason="nested_declaration"; tag="nested_declaration" @@ -76,7 +76,8 @@ elif bzgrep -qE '(ANSI C.. forbids|is a # XXX MCL must preceed badc++ elif bzgrep -qE "error: invalid conversion from .*dirent" $1; then reason="dirent"; tag="dirent" -elif bzgrep -qE '(syntax error before|friend declaration|no matching function for call to|.main. must return .int.|invalid conversion from|cannot be used as a macro name as it is an operator in C\+\+|is not a member of type|after previous specification in|no class template named|because worst conversion for the former|better than worst conversion|no match for.*operator|no match for call to|undeclared in namespace|is used as a type, but is not|error: array bound forbidden|error: class definition|error: expected constructor|error: there are no arguments|error:.*cast.*loses precision|ISO C\+\+ does not support|error: invalid pure specifier)' $1; then +# s/ISO C++ does not support/ISO C++/ +elif bzgrep -qE '(syntax error before|friend declaration|no matching function for call to|.main. must return .int.|invalid conversion from|cannot be used as a macro name as it is an operator in C\+\+|is not a member of type|after previous specification in|no class template named|because worst conversion for the former|better than worst conversion|no match for.*operator|no match for call to|undeclared in namespace|is used as a type, but is not|error: array bound forbidden|error: class definition|error: expected constructor|error: there are no arguments|error:.*cast.*loses precision|ISO C\+\+|error: invalid pure specifier|error: invalid (argument type|integral value|operand|token|use of a cast|value)|error: expected.*(at end of declaration|expression|identifier)|error:.*not supported)' $1; then reason="bad_C++_code"; tag="badc++" elif bzgrep -qE 'error: (array type has incomplete element type|conflicts with new declaration|expected.*before .class|expected primary expression|extra qualification .* on member|.*has incomplete type|invalid cast from type .* to type|invalid lvalue in (assignment|decrement|increment|unary)|invalid storage class for function|lvalue required as (increment operator|left operand)|.*should have been declared inside|static declaration of.*follows non-static declaration|two or more data types in declaration specifiers|.* was not declared in this scope)' $1; then reason="gcc4_error"; tag="gcc4" @@ -91,7 +92,7 @@ elif bzgrep -q "core dumped" $1; then # linimon would _really_ like to understand how to fix this problem elif bzgrep -q "pkg_add: tar extract.*failed!" $1; then reason="truncated_distfile"; tag="truncated_distfile" -elif bzgrep -qE "(error: a parameter list without types|error: C++ requires a type specifier|error: allocation of incomplete type|error: array is too large|error: binding of reference|error: call to func.*neither visible|error: called object type|error: cannot combine with previous.*specifier|error: cannot initialize (a parameter|a variable|return object)|error: cannot pass object|error:.*cast from pointer|error: comparison of unsigned.*expression.*is always|error: conversion.*(is ambiguous|specifies type)|error:.*converts between pointers to integer|error: declaration of.*shadows template parameter|error:.*declared as an array with a negative size|error: default arguments cannot be added|error: default initialization of an object|error: definition.*not in a namespace|error:.*directive requires a positive integer argument|error: elaborated type refers to a typedef|error: exception specification|error: expected.*(at end of declaration|expression|identifier)|error: explicit sp ecialization.*after instantiation|error: explicitly assigning a variable|error: expression result unused|error: fields must have a constant size|error: flexible array member|error: (first|second) (argument|parameter) of .main|error: format string is not a string literal|error: function.*is not needed|error: global register values are not supported|error:.*hides overloaded virtual function|error: if statement has empty body|error: illegal storage class on function|error: implicit (conversion|declaration|instantiation)|error: indirection.*will be deleted|error: initializer element is not.*constant|error: initialization of pointer|error: invalid (argument type|integral value|operand|token|use of a cast|value)|error: indirect goto might cross|error:.*is a (private|protected) member|error: member (of anonymous union|reference)|error: no matching member|error: non-const lvalue|error: non-void function.*should return a value|error:.*not supported|error: no (matching constructor|mem ber named|viable overloaded)|error: parameter.*must have typ! e|error: passing.*(a.*value|incompatible type)|error: qualified reference|error: redeclaration of.*built-in type|error:.*requires a (constant expression|pointer or reference|type specifier)|error: redefinition of|error: switch condition has boolean|error: taking the address of a temporary object|error: target.*conflicts with declaration|error:.*unable to pass LLVM bit-code files to linker|error: unexpected token|error: unknown (machine mode|type name)|error: unsupported (inline asm|option)|error: unused (function|parameter)|error: use of (GNU old-style field designator|undeclared identifier|unknown builtin)|error: using the result of an assignment|error: variable.*is unitialized|error: variable length array|error: void function.*should not return a value|the clang compiler does not support|Unknown depmode none)" $1; then +elif bzgrep -qE "(error: a parameter list without types|error: C++ requires a type specifier|error: allocation of incomplete type|error: array is too large|error: binding of reference|error: call to func.*neither visible|error: called object type|error: cannot combine with previous.*specifier|error: cannot initialize (a parameter|a variable|return object)|error: cannot pass object|error:.*cast from pointer|error: comparison of unsigned.*expression.*is always|error: conversion.*(is ambiguous|specifies type)|error:.*converts between pointers to integer|error: declaration of.*shadows template parameter|error:.*declared as an array with a negative size|error: default arguments cannot be added|error: default initialization of an object|error: definition.*not in a namespace|error:.*directive requires a positive integer argument|error: elaborated type refers to a typedef|error: exception specification|error: explicit specialization.*after instantiation|error: explicitly assigning a variable|error: expression result unused|error: fields must have a constant size|error: flexible array member|error: (first|second) (argument|parameter) of .main|error: format string is not a string literal|error: function.*is not needed|error: global register values are not supported|error:.*hides overloaded virtual function|error: if statement has empty body|error: illegal storage class on function|error: implicit (conversion|declaration|instantiation)|error: indirection.*will be deleted|error: initializer element is not.*constant|error: initialization of pointer|error: indirect goto might cross|error:.*is a (private|protected) member|error: member (of anonymous union|reference)|error: no matching member|error: non-const lvalue|error: non-void function.*should return a value|error: no (matching constructor|member named|viable overloaded)|error: parameter.*must have type|error: passing.*(a.*value|incompatible type)|error: qualified reference|error: redeclaration of.*built- in type|error:.*requires a (constant expression|pointer or r! eference|type specifier)|error: redefinition of|error: switch condition has boolean|error: taking the address of a temporary object|error: target.*conflicts with declaration|error:.*unable to pass LLVM bit-code files to linker|error: unexpected token|error: unknown (machine mode|type name)|error: unsupported (inline asm|option)|error: unused (function|parameter)|error: use of (GNU old-style field designator|undeclared identifier|unknown builtin)|error: using the result of an assignment|error: variable.*is unitialized|error: variable length array|error: void function.*should not return a value|the clang compiler does not support|Unknown depmode none)" $1; then reason="clang"; tag="clang" # below here are the less common items @@ -99,7 +100,7 @@ elif bzgrep -qE "(error: a parameter lis # XXX MCL "file not recognized: File format not recognized" can be clang elif bzgrep -qE "(.s: Assembler messages:|Cannot (determine .* target|find the byte order) for this architecture|^cc1: bad value.*for -mcpu.*switch|could not read symbols: File in wrong format|[Ee]rror: [Uu]nknown opcode|error.*Unsupported architecture|ENDIAN must be defined 0 or 1|failed to merge target-specific data|(file not recognized|failed to set dynamic section sizes): File format not recognized|impossible register constraint|inconsistent operand constraints in an .asm|Invalid configuration.*unknown.*machine.*unknown not recognized|invalid lvalue in asm statement|is only for.*, and you are running|not a valid 64 bit base/index expression|relocation R_X86_64_32.*can not be used when making a shared object|relocation truncated to fit: |shminit failed: Function not implemented|The target cpu, .*, is not currently supported.|This architecture seems to be neither big endian nor little endian|unknown register name|Unable to correct byte order|Unsupported platform, sorry|won 't run on this architecture)" $1; then reason="arch"; tag="arch" -elif bzgrep -qE "(Cannot exec cc|cannot find program cc|cc: No such file or directory|cc.*must be installed to build|cc.*not found|compiler not found|error: no acceptable C compiler|g\+\+: No such file or directory|g\+\+.*not found)" $1; then +elif bzgrep -qE "(Cannot exec cc|cannot find program cc|cc: No such file or directory|cc.*must be installed to build|compiler not found|error: no acceptable C compiler|g\+\+: No such file or directory|g\+\+.*not found)" $1; then reason="assumes_gcc"; tag="assumes_gcc" elif bzgrep -qE "autoconf([0-9\-\.]*): (not found|No such file or directory)" $1; then reason="autoconf"; tag="autoconf" @@ -149,7 +150,7 @@ elif bzgrep -qE "((perl|perl5.6.1):.*(no reason="perl"; tag="perl" elif bzgrep -qE "(Abort trap|Bus error|Error 127|Killed: 9|Signal 1[01])" $1; then reason="process_failed"; tag="process" -elif bzgrep -qE "(USER PID PPID PGID.*JOBC STAT TT TIME COMMAND|pnohang: killing make package)" $1; then +elif bzgrep -qE "(USER.*PID.*TIME.*COMMAND|pnohang: killing make package)" $1; then reason="runaway_process"; tag="runaway" elif bzgrep -qE "(/usr/bin/ld: cannot find -l(pthread|XThrStub)|cannot find -lc_r|Error: pthreads are required to build this package|Please install/update your POSIX threads (pthreads) library|requires.*thread support|: The -pthread option is deprecated)" $1; then reason="threads"; tag="threads" From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:52:35 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05BD1106564A; Wed, 23 Nov 2011 03:52:35 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E9CFB8FC0C; Wed, 23 Nov 2011 03:52:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3qYT5023777; Wed, 23 Nov 2011 03:52:34 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3qYnX023775; Wed, 23 Nov 2011 03:52:34 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230352.pAN3qYnX023775@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:52:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227864 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:52:35 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:52:34 2011 New Revision: 227864 URL: http://svn.freebsd.org/changeset/base/227864 Log: Fix typo in SRC_BRANCH_9_TAG. Modified: projects/portbuild/conf/server.conf Modified: projects/portbuild/conf/server.conf ============================================================================== --- projects/portbuild/conf/server.conf Wed Nov 23 03:39:03 2011 (r227863) +++ projects/portbuild/conf/server.conf Wed Nov 23 03:52:34 2011 (r227864) @@ -21,7 +21,7 @@ SRC_BRANCHES="7 8 9 10" SRC_BRANCHES_PATTERN="^[0-9]*" SRC_BRANCH_7_TAG=RELENG_7_3 SRC_BRANCH_8_TAG=RELENG_8_1 -SRC_BRANCH_9_TAG=RELENG_9_0. +SRC_BRANCH_9_TAG=RELENG_9_0 SRC_BRANCH_10_TAG=. DEFAULT_LINUX_OSRELEASE="2.6.16" From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:53:14 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D3FB1065670; Wed, 23 Nov 2011 03:53:14 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 201058FC0A; Wed, 23 Nov 2011 03:53:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3rEtP023832; Wed, 23 Nov 2011 03:53:14 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3rE0u023830; Wed, 23 Nov 2011 03:53:14 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230353.pAN3rE0u023830@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:53:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227865 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:53:14 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:53:13 2011 New Revision: 227865 URL: http://svn.freebsd.org/changeset/base/227865 Log: Delete LoadModule php5_module here, it generates a 'duplicate' warning. Modified: projects/portbuild/conf/apache.conf Modified: projects/portbuild/conf/apache.conf ============================================================================== --- projects/portbuild/conf/apache.conf Wed Nov 23 03:52:34 2011 (r227864) +++ projects/portbuild/conf/apache.conf Wed Nov 23 03:53:13 2011 (r227865) @@ -2,7 +2,6 @@ DocumentRoot "/var/portbuild/www" # filter magic to decompress bzip2 logs - pav@ LoadModule ext_filter_module libexec/apache22/mod_ext_filter.so -LoadModule php5_module libexec/apache22/libphp5.so ExtFilterDefine BUNZIP2 mode=output intype=application/x-bzip2 outtype=text/plain cmd=/usr/bin/bunzip2 From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:54:28 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8BCA8106564A; Wed, 23 Nov 2011 03:54:28 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7BB808FC0A; Wed, 23 Nov 2011 03:54:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3sSVe023910; Wed, 23 Nov 2011 03:54:28 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3sSVM023908; Wed, 23 Nov 2011 03:54:28 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230354.pAN3sSVM023908@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:54:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227866 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:54:28 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:54:28 2011 New Revision: 227866 URL: http://svn.freebsd.org/changeset/base/227866 Log: Bring this up to what is on production on pointyhat-west. Note: I no longer believe this file is actually relevant; it is overridden in all know client/*.tar files. Modified: projects/portbuild/conf/make.conf Modified: projects/portbuild/conf/make.conf ============================================================================== --- projects/portbuild/conf/make.conf Wed Nov 23 03:53:13 2011 (r227865) +++ projects/portbuild/conf/make.conf Wed Nov 23 03:54:28 2011 (r227866) @@ -2,12 +2,12 @@ # OVERRIDABLE BY THE SCRIPTS USA_RESIDENT?=YES -# -MASTER_SITE_BACKUP= \ - ftp://ftp-master.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ -MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} +# XXX MCL are these even necessary anymore? +MASTER_SITE_OVERRIDE= \ + ftp://ftp.isc.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ + MASTER_SITE_LOCAL= \ - ftp://ftp-master.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/%SUBDIR%/ + ftp://ftp.isc.org/pub/FreeBSD/ports/local-distfiles/%SUBDIR%/ NO_PROFILE=true MAKE_KERBEROS5= yes From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 03:55:49 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3E15106564A; Wed, 23 Nov 2011 03:55:48 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E3C988FC0C; Wed, 23 Nov 2011 03:55:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAN3tmOl023992; Wed, 23 Nov 2011 03:55:48 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAN3tmOj023990; Wed, 23 Nov 2011 03:55:48 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111230355.pAN3tmOj023990@svn.freebsd.org> From: Mark Linimon Date: Wed, 23 Nov 2011 03:55:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227867 - projects/portbuild/qmanager X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 03:55:49 -0000 Author: linimon (doc,ports committer) Date: Wed Nov 23 03:55:48 2011 New Revision: 227867 URL: http://svn.freebsd.org/changeset/base/227867 Log: Add some more robustness. Modified: projects/portbuild/qmanager/qmanagerhandler.py Modified: projects/portbuild/qmanager/qmanagerhandler.py ============================================================================== --- projects/portbuild/qmanager/qmanagerhandler.py Wed Nov 23 03:54:28 2011 (r227866) +++ projects/portbuild/qmanager/qmanagerhandler.py Wed Nov 23 03:55:48 2011 (r227867) @@ -114,7 +114,10 @@ class QManagerServerConn(QManagerConnect """ Connection is finished, flush and terminate it """ if self.wfile: - self.wfile.flush() + try: + self.wfile.flush() + except: + pass self.wfile.close() if self.event: self.event.set() From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 19:38:34 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1EE381065672; Wed, 23 Nov 2011 19:38:34 +0000 (UTC) (envelope-from lev@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0953B8FC19; Wed, 23 Nov 2011 19:38:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pANJcY2c060133; Wed, 23 Nov 2011 19:38:34 GMT (envelope-from lev@svn.freebsd.org) Received: (from lev@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pANJcXO6060113; Wed, 23 Nov 2011 19:38:33 GMT (envelope-from lev@svn.freebsd.org) Message-Id: <201111231938.pANJcXO6060113@svn.freebsd.org> From: "Lev A. Serebryakov" Date: Wed, 23 Nov 2011 19:38:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227904 - in projects/geom-events: . bin/cat bin/ln bin/mkdir bin/mv bin/ps bin/rm bin/sh bin/test cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensol... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 19:38:34 -0000 Author: lev (ports committer) Date: Wed Nov 23 19:38:32 2011 New Revision: 227904 URL: http://svn.freebsd.org/changeset/base/227904 Log: Merge r227901 from head geom_multipath is not merged, but overwritten from HEAD, need to understand new code logic and add geom-events back. Added: projects/geom-events/contrib/binutils/ld/emulparams/elf64ppc_fbsd.sh - copied unchanged from r227901, head/contrib/binutils/ld/emulparams/elf64ppc_fbsd.sh projects/geom-events/include/_xlocale_ctype.h - copied unchanged from r227901, head/include/_xlocale_ctype.h projects/geom-events/include/xlocale.h - copied unchanged from r227901, head/include/xlocale.h projects/geom-events/lib/libc/locale/DESIGN.xlocale - copied unchanged from r227901, head/lib/libc/locale/DESIGN.xlocale projects/geom-events/lib/libc/locale/ctype.c - copied unchanged from r227901, head/lib/libc/locale/ctype.c projects/geom-events/lib/libc/locale/duplocale.3 - copied unchanged from r227901, head/lib/libc/locale/duplocale.3 projects/geom-events/lib/libc/locale/freelocale.3 - copied unchanged from r227901, head/lib/libc/locale/freelocale.3 projects/geom-events/lib/libc/locale/newlocale.3 - copied unchanged from r227901, head/lib/libc/locale/newlocale.3 projects/geom-events/lib/libc/locale/querylocale.3 - copied unchanged from r227901, head/lib/libc/locale/querylocale.3 projects/geom-events/lib/libc/locale/uselocale.3 - copied unchanged from r227901, head/lib/libc/locale/uselocale.3 projects/geom-events/lib/libc/locale/xlocale.3 - copied unchanged from r227901, head/lib/libc/locale/xlocale.3 projects/geom-events/lib/libc/locale/xlocale.c - copied unchanged from r227901, head/lib/libc/locale/xlocale.c projects/geom-events/lib/libc/locale/xlocale_private.h - copied unchanged from r227901, head/lib/libc/locale/xlocale_private.h projects/geom-events/lib/libc/sys/ffclock.2 - copied unchanged from r227901, head/lib/libc/sys/ffclock.2 projects/geom-events/lib/libc/sys/posix_fadvise.2 - copied unchanged from r227901, head/lib/libc/sys/posix_fadvise.2 projects/geom-events/share/man/man4/netmap.4 - copied unchanged from r227901, head/share/man/man4/netmap.4 projects/geom-events/share/man/man4/qlxgb.4 - copied unchanged from r227901, head/share/man/man4/qlxgb.4 projects/geom-events/share/man/man4/sfxge.4 - copied unchanged from r227901, head/share/man/man4/sfxge.4 projects/geom-events/share/man/man4/virtio.4 - copied unchanged from r227901, head/share/man/man4/virtio.4 projects/geom-events/share/man/man4/virtio_balloon.4 - copied unchanged from r227901, head/share/man/man4/virtio_balloon.4 projects/geom-events/share/man/man4/virtio_blk.4 - copied unchanged from r227901, head/share/man/man4/virtio_blk.4 projects/geom-events/share/man/man4/vtnet.4 - copied unchanged from r227901, head/share/man/man4/vtnet.4 projects/geom-events/sys/boot/fdt/dts/p1020rdb.dts - copied unchanged from r227901, head/sys/boot/fdt/dts/p1020rdb.dts projects/geom-events/sys/boot/fdt/dts/p2020ds.dts - copied unchanged from r227901, head/sys/boot/fdt/dts/p2020ds.dts projects/geom-events/sys/boot/fdt/dts/p3041ds.dts - copied unchanged from r227901, head/sys/boot/fdt/dts/p3041ds.dts projects/geom-events/sys/dev/cesa/ - copied from r227901, head/sys/dev/cesa/ projects/geom-events/sys/dev/esp/am53c974reg.h - copied unchanged from r227901, head/sys/dev/esp/am53c974reg.h projects/geom-events/sys/dev/esp/esp_pci.c - copied unchanged from r227901, head/sys/dev/esp/esp_pci.c projects/geom-events/sys/dev/mii/mii_bitbang.c - copied unchanged from r227901, head/sys/dev/mii/mii_bitbang.c projects/geom-events/sys/dev/mii/mii_bitbang.h - copied unchanged from r227901, head/sys/dev/mii/mii_bitbang.h projects/geom-events/sys/dev/netmap/ - copied from r227901, head/sys/dev/netmap/ projects/geom-events/sys/dev/qlxgb/ - copied from r227901, head/sys/dev/qlxgb/ projects/geom-events/sys/dev/sfxge/ - copied from r227901, head/sys/dev/sfxge/ projects/geom-events/sys/dev/virtio/ - copied from r227901, head/sys/dev/virtio/ projects/geom-events/sys/kern/kern_ffclock.c - copied unchanged from r227901, head/sys/kern/kern_ffclock.c projects/geom-events/sys/libkern/iconv_ucs.c - copied unchanged from r227901, head/sys/libkern/iconv_ucs.c projects/geom-events/sys/mips/conf/std.XLP - copied unchanged from r227901, head/sys/mips/conf/std.XLP projects/geom-events/sys/mips/nlm/hal/nlm_hal.c - copied unchanged from r227901, head/sys/mips/nlm/hal/nlm_hal.c projects/geom-events/sys/modules/qlxgb/ - copied from r227901, head/sys/modules/qlxgb/ projects/geom-events/sys/modules/sfxge/ - copied from r227901, head/sys/modules/sfxge/ projects/geom-events/sys/modules/virtio/ - copied from r227901, head/sys/modules/virtio/ projects/geom-events/sys/net/netmap.h - copied unchanged from r227901, head/sys/net/netmap.h projects/geom-events/sys/net/netmap_user.h - copied unchanged from r227901, head/sys/net/netmap_user.h projects/geom-events/sys/sys/_ffcounter.h - copied unchanged from r227901, head/sys/sys/_ffcounter.h projects/geom-events/sys/sys/timeffc.h - copied unchanged from r227901, head/sys/sys/timeffc.h projects/geom-events/tools/regression/bin/sh/builtins/for1.0 - copied unchanged from r227901, head/tools/regression/bin/sh/builtins/for1.0 projects/geom-events/tools/regression/bin/sh/parameters/optind1.0 - copied unchanged from r227901, head/tools/regression/bin/sh/parameters/optind1.0 projects/geom-events/tools/regression/lib/libc/gen/test-arc4random.c - copied unchanged from r227901, head/tools/regression/lib/libc/gen/test-arc4random.c projects/geom-events/tools/tools/netmap/ - copied from r227901, head/tools/tools/netmap/ projects/geom-events/usr.bin/procstat/procstat_auxv.c - copied unchanged from r227901, head/usr.bin/procstat/procstat_auxv.c Deleted: projects/geom-events/sys/mips/nlm/uart_bus_xlp_iodi.c Modified: projects/geom-events/Makefile projects/geom-events/Makefile.inc1 projects/geom-events/ObsoleteFiles.inc projects/geom-events/UPDATING projects/geom-events/bin/cat/cat.c projects/geom-events/bin/ln/ln.c projects/geom-events/bin/mkdir/mkdir.c projects/geom-events/bin/mv/mv.c projects/geom-events/bin/ps/print.c projects/geom-events/bin/ps/ps.1 projects/geom-events/bin/ps/ps.c projects/geom-events/bin/rm/rm.c projects/geom-events/bin/sh/arith_yacc.c projects/geom-events/bin/sh/options.c projects/geom-events/bin/sh/sh.1 projects/geom-events/bin/test/test.c projects/geom-events/cddl/contrib/opensolaris/cmd/zdb/zdb.8 projects/geom-events/cddl/contrib/opensolaris/cmd/zfs/zfs.8 projects/geom-events/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/geom-events/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/geom-events/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1 projects/geom-events/cddl/lib/libzfs/Makefile projects/geom-events/cddl/sbin/zfs/Makefile projects/geom-events/cddl/sbin/zpool/Makefile projects/geom-events/cddl/usr.bin/zinject/Makefile projects/geom-events/cddl/usr.bin/ztest/Makefile projects/geom-events/cddl/usr.sbin/zdb/Makefile projects/geom-events/contrib/bind9/CHANGES projects/geom-events/contrib/bind9/bin/named/query.c projects/geom-events/contrib/bind9/lib/dns/rbtdb.c projects/geom-events/contrib/bind9/version projects/geom-events/contrib/gcc/config/arm/arm.c projects/geom-events/contrib/gcc/config/rs6000/freebsd.h projects/geom-events/contrib/gdtoa/gdtoaimp.h projects/geom-events/contrib/gdtoa/strtod.c projects/geom-events/contrib/gdtoa/strtodg.c projects/geom-events/contrib/gdtoa/strtof.c projects/geom-events/contrib/gdtoa/strtorQ.c projects/geom-events/contrib/gdtoa/strtord.c projects/geom-events/contrib/gdtoa/strtorx.c projects/geom-events/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/geom-events/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/geom-events/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/geom-events/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/geom-events/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h projects/geom-events/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/geom-events/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/geom-events/contrib/tzdata/australasia projects/geom-events/contrib/tzdata/backward projects/geom-events/contrib/tzdata/europe projects/geom-events/contrib/tzdata/northamerica projects/geom-events/contrib/tzdata/zone.tab projects/geom-events/etc/periodic/daily/310.accounting projects/geom-events/etc/rc.d/nfsd projects/geom-events/etc/rc.d/routing projects/geom-events/etc/rc.d/syscons projects/geom-events/etc/rc.resume projects/geom-events/etc/rc.subr projects/geom-events/games/bcd/bcd.c projects/geom-events/games/caesar/caesar.c projects/geom-events/games/fortune/datfiles/fortunes projects/geom-events/games/fortune/fortune/fortune.c projects/geom-events/games/fortune/unstr/unstr.c projects/geom-events/games/grdc/grdc.c projects/geom-events/games/morse/morse.c projects/geom-events/games/number/number.c projects/geom-events/gnu/lib/libstdc++/config.h projects/geom-events/gnu/usr.bin/binutils/ld/Makefile.powerpc projects/geom-events/gnu/usr.bin/binutils/ld/Makefile.powerpc64 projects/geom-events/include/Makefile projects/geom-events/include/ctype.h projects/geom-events/include/locale.h projects/geom-events/include/runetype.h projects/geom-events/include/stdio.h projects/geom-events/include/stdlib.h projects/geom-events/include/wchar.h projects/geom-events/include/wctype.h projects/geom-events/lib/clang/clang.build.mk projects/geom-events/lib/clang/include/llvm/Config/config.h projects/geom-events/lib/clang/include/llvm/Config/llvm-config.h projects/geom-events/lib/libc/amd64/gen/setjmp.S projects/geom-events/lib/libc/amd64/gen/sigsetjmp.S projects/geom-events/lib/libc/gdtoa/machdep_ldisQ.c projects/geom-events/lib/libc/gdtoa/machdep_ldisd.c projects/geom-events/lib/libc/gdtoa/machdep_ldisx.c projects/geom-events/lib/libc/gen/arc4random.c projects/geom-events/lib/libc/gen/fnmatch.c projects/geom-events/lib/libc/gen/glob.c projects/geom-events/lib/libc/gen/opendir.c projects/geom-events/lib/libc/i386/gen/setjmp.S projects/geom-events/lib/libc/i386/gen/sigsetjmp.S projects/geom-events/lib/libc/locale/Makefile.inc projects/geom-events/lib/libc/locale/Symbol.map projects/geom-events/lib/libc/locale/ascii.c projects/geom-events/lib/libc/locale/big5.c projects/geom-events/lib/libc/locale/btowc.c projects/geom-events/lib/libc/locale/collate.c projects/geom-events/lib/libc/locale/collate.h projects/geom-events/lib/libc/locale/collcmp.c projects/geom-events/lib/libc/locale/euc.c projects/geom-events/lib/libc/locale/gb18030.c projects/geom-events/lib/libc/locale/gb2312.c projects/geom-events/lib/libc/locale/gbk.c projects/geom-events/lib/libc/locale/lmessages.c projects/geom-events/lib/libc/locale/lmessages.h projects/geom-events/lib/libc/locale/lmonetary.c projects/geom-events/lib/libc/locale/lmonetary.h projects/geom-events/lib/libc/locale/lnumeric.c projects/geom-events/lib/libc/locale/lnumeric.h projects/geom-events/lib/libc/locale/localeconv.3 projects/geom-events/lib/libc/locale/localeconv.c projects/geom-events/lib/libc/locale/mblen.c projects/geom-events/lib/libc/locale/mblocal.h projects/geom-events/lib/libc/locale/mbrlen.c projects/geom-events/lib/libc/locale/mbrtowc.c projects/geom-events/lib/libc/locale/mbsinit.c projects/geom-events/lib/libc/locale/mbsnrtowcs.c projects/geom-events/lib/libc/locale/mbsrtowcs.c projects/geom-events/lib/libc/locale/mbstowcs.c projects/geom-events/lib/libc/locale/mbtowc.c projects/geom-events/lib/libc/locale/mskanji.c projects/geom-events/lib/libc/locale/nextwctype.c projects/geom-events/lib/libc/locale/nl_langinfo.c projects/geom-events/lib/libc/locale/none.c projects/geom-events/lib/libc/locale/runetype.c projects/geom-events/lib/libc/locale/setlocale.c projects/geom-events/lib/libc/locale/setrunelocale.c projects/geom-events/lib/libc/locale/table.c projects/geom-events/lib/libc/locale/tolower.c projects/geom-events/lib/libc/locale/toupper.c projects/geom-events/lib/libc/locale/utf8.c projects/geom-events/lib/libc/locale/wcrtomb.c projects/geom-events/lib/libc/locale/wcsftime.c projects/geom-events/lib/libc/locale/wcsnrtombs.c projects/geom-events/lib/libc/locale/wcsrtombs.c projects/geom-events/lib/libc/locale/wcstod.c projects/geom-events/lib/libc/locale/wcstof.c projects/geom-events/lib/libc/locale/wcstoimax.c projects/geom-events/lib/libc/locale/wcstol.c projects/geom-events/lib/libc/locale/wcstold.c projects/geom-events/lib/libc/locale/wcstoll.c projects/geom-events/lib/libc/locale/wcstombs.c projects/geom-events/lib/libc/locale/wcstoul.c projects/geom-events/lib/libc/locale/wcstoull.c projects/geom-events/lib/libc/locale/wcstoumax.c projects/geom-events/lib/libc/locale/wctob.c projects/geom-events/lib/libc/locale/wctomb.c projects/geom-events/lib/libc/locale/wctrans.c projects/geom-events/lib/libc/locale/wctype.c projects/geom-events/lib/libc/locale/wcwidth.c projects/geom-events/lib/libc/net/sctp_sys_calls.c projects/geom-events/lib/libc/regex/regcomp.c projects/geom-events/lib/libc/stdio/Symbol.map projects/geom-events/lib/libc/stdio/asprintf.c projects/geom-events/lib/libc/stdio/fgetwc.c projects/geom-events/lib/libc/stdio/fgetwln.c projects/geom-events/lib/libc/stdio/fgetws.c projects/geom-events/lib/libc/stdio/fprintf.c projects/geom-events/lib/libc/stdio/fputwc.c projects/geom-events/lib/libc/stdio/fputws.c projects/geom-events/lib/libc/stdio/fscanf.c projects/geom-events/lib/libc/stdio/fwprintf.c projects/geom-events/lib/libc/stdio/fwscanf.c projects/geom-events/lib/libc/stdio/getwc.c projects/geom-events/lib/libc/stdio/getwchar.c projects/geom-events/lib/libc/stdio/local.h projects/geom-events/lib/libc/stdio/printf.c projects/geom-events/lib/libc/stdio/printfcommon.h projects/geom-events/lib/libc/stdio/putwc.c projects/geom-events/lib/libc/stdio/putwchar.c projects/geom-events/lib/libc/stdio/scanf.c projects/geom-events/lib/libc/stdio/snprintf.c projects/geom-events/lib/libc/stdio/sprintf.c projects/geom-events/lib/libc/stdio/sscanf.c projects/geom-events/lib/libc/stdio/swprintf.c projects/geom-events/lib/libc/stdio/swscanf.c projects/geom-events/lib/libc/stdio/ungetwc.c projects/geom-events/lib/libc/stdio/vasprintf.c projects/geom-events/lib/libc/stdio/vdprintf.c projects/geom-events/lib/libc/stdio/vfprintf.c projects/geom-events/lib/libc/stdio/vfscanf.c projects/geom-events/lib/libc/stdio/vfwprintf.c projects/geom-events/lib/libc/stdio/vfwscanf.c projects/geom-events/lib/libc/stdio/vprintf.c projects/geom-events/lib/libc/stdio/vscanf.c projects/geom-events/lib/libc/stdio/vsnprintf.c projects/geom-events/lib/libc/stdio/vsprintf.c projects/geom-events/lib/libc/stdio/vsscanf.c projects/geom-events/lib/libc/stdio/vswprintf.c projects/geom-events/lib/libc/stdio/vswscanf.c projects/geom-events/lib/libc/stdio/vwprintf.c projects/geom-events/lib/libc/stdio/vwscanf.c projects/geom-events/lib/libc/stdio/wprintf.c projects/geom-events/lib/libc/stdio/wscanf.c projects/geom-events/lib/libc/stdlib/Symbol.map projects/geom-events/lib/libc/stdlib/atof.c projects/geom-events/lib/libc/stdlib/atoi.c projects/geom-events/lib/libc/stdlib/atol.c projects/geom-events/lib/libc/stdlib/atoll.c projects/geom-events/lib/libc/stdlib/realpath.c projects/geom-events/lib/libc/stdlib/strfmon.c projects/geom-events/lib/libc/stdlib/strtoimax.c projects/geom-events/lib/libc/stdlib/strtol.c projects/geom-events/lib/libc/stdlib/strtoll.c projects/geom-events/lib/libc/stdlib/strtoul.c projects/geom-events/lib/libc/stdlib/strtoull.c projects/geom-events/lib/libc/stdlib/strtoumax.c projects/geom-events/lib/libc/stdtime/strftime.c projects/geom-events/lib/libc/stdtime/strptime.c projects/geom-events/lib/libc/stdtime/timelocal.c projects/geom-events/lib/libc/stdtime/timelocal.h projects/geom-events/lib/libc/string/Symbol.map projects/geom-events/lib/libc/string/strcasecmp.c projects/geom-events/lib/libc/string/strcasestr.c projects/geom-events/lib/libc/string/strcmp.c projects/geom-events/lib/libc/string/strcoll.c projects/geom-events/lib/libc/string/strncmp.c projects/geom-events/lib/libc/string/strxfrm.c projects/geom-events/lib/libc/string/wcscoll.c projects/geom-events/lib/libc/string/wcswidth.c projects/geom-events/lib/libc/string/wcsxfrm.c projects/geom-events/lib/libc/sys/Makefile.inc projects/geom-events/lib/libc/sys/Symbol.map projects/geom-events/lib/libc/sys/flock.2 projects/geom-events/lib/libc/sys/getsockopt.2 projects/geom-events/lib/libc/sys/madvise.2 projects/geom-events/lib/libc/sys/stat.2 projects/geom-events/lib/libkiconv/xlat16_iconv.c projects/geom-events/lib/libkvm/kvm_getprocs.3 projects/geom-events/lib/libkvm/kvm_proc.c projects/geom-events/lib/libpam/Makefile.inc projects/geom-events/lib/libpam/modules/Makefile.inc projects/geom-events/lib/libpam/modules/pam_lastlog/pam_lastlog.c projects/geom-events/lib/libpam/modules/pam_ssh/pam_ssh.c projects/geom-events/lib/libpam/modules/pam_unix/pam_unix.8 projects/geom-events/lib/libpam/modules/pam_unix/pam_unix.c projects/geom-events/lib/librt/timer.c projects/geom-events/lib/libthr/thread/thr_umtx.c projects/geom-events/lib/libusb/Makefile projects/geom-events/lib/libusb/libusb.3 projects/geom-events/lib/libusb/libusb.h projects/geom-events/lib/libusb/libusb10_desc.c projects/geom-events/lib/libusb/libusb20_desc.c projects/geom-events/lib/libusb/libusb20_desc.h projects/geom-events/lib/msun/src/math.h projects/geom-events/libexec/rshd/rshd.c projects/geom-events/libexec/rtld-elf/rtld.c projects/geom-events/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/geom-events/release/doc/share/misc/dev.archlist.txt projects/geom-events/release/generate-release.sh projects/geom-events/release/ia64/mkisoimages.sh projects/geom-events/release/picobsd/build/Makefile.conf projects/geom-events/release/picobsd/build/picobsd projects/geom-events/rescue/rescue/Makefile projects/geom-events/sbin/atm/atmconfig/atmconfig_device.c projects/geom-events/sbin/atm/atmconfig/diag.c projects/geom-events/sbin/atm/atmconfig/main.c projects/geom-events/sbin/badsect/badsect.c projects/geom-events/sbin/bsdlabel/bsdlabel.c projects/geom-events/sbin/camcontrol/camcontrol.c projects/geom-events/sbin/ccdconfig/ccdconfig.c projects/geom-events/sbin/devfs/rule.c projects/geom-events/sbin/dmesg/dmesg.c projects/geom-events/sbin/dumpfs/dumpfs.c projects/geom-events/sbin/fdisk/fdisk.8 projects/geom-events/sbin/fdisk/fdisk.c projects/geom-events/sbin/fdisk_pc98/fdisk.8 projects/geom-events/sbin/ffsinfo/Makefile projects/geom-events/sbin/ffsinfo/ffsinfo.c projects/geom-events/sbin/fsck/fsck.c projects/geom-events/sbin/fsck/preen.c projects/geom-events/sbin/fsck_msdosfs/dir.c projects/geom-events/sbin/fsirand/fsirand.c projects/geom-events/sbin/geom/class/multipath/geom_multipath.c projects/geom-events/sbin/geom/class/multipath/gmultipath.8 projects/geom-events/sbin/geom/class/part/gpart.8 projects/geom-events/sbin/growfs/growfs.c projects/geom-events/sbin/gvinum/gvinum.c projects/geom-events/sbin/ifconfig/af_inet.c projects/geom-events/sbin/ifconfig/ifconfig.8 projects/geom-events/sbin/ifconfig/ifieee80211.c projects/geom-events/sbin/init/init.c projects/geom-events/sbin/ipfw/ipfw.8 projects/geom-events/sbin/ipfw/main.c projects/geom-events/sbin/ipfw/nat.c projects/geom-events/sbin/md5/md5.1 projects/geom-events/sbin/md5/md5.c projects/geom-events/sbin/mount/mount.c projects/geom-events/sbin/mount/mount_fs.c projects/geom-events/sbin/mount_cd9660/mount_cd9660.c projects/geom-events/sbin/mount_nfs/mount_nfs.8 projects/geom-events/sbin/mount_nfs/mount_nfs.c projects/geom-events/sbin/mount_nullfs/mount_nullfs.c projects/geom-events/sbin/mount_udf/mount_udf.c projects/geom-events/sbin/natd/natd.c projects/geom-events/sbin/newfs/mkfs.c projects/geom-events/sbin/newfs/newfs.h projects/geom-events/sbin/newfs_msdos/newfs_msdos.c projects/geom-events/sbin/rcorder/rcorder.c projects/geom-events/sbin/recoverdisk/recoverdisk.c projects/geom-events/sbin/shutdown/shutdown.c projects/geom-events/sbin/swapon/swapon.c projects/geom-events/sbin/tunefs/tunefs.c projects/geom-events/sbin/umount/umount.c projects/geom-events/secure/usr.bin/openssl/man/ca.1 projects/geom-events/share/examples/drivers/make_device_driver.sh projects/geom-events/share/man/man4/Makefile projects/geom-events/share/man/man4/acpi_wmi.4 projects/geom-events/share/man/man4/altq.4 projects/geom-events/share/man/man4/esp.4 projects/geom-events/share/man/man4/ip.4 projects/geom-events/share/man/man4/mps.4 projects/geom-events/share/man/man4/mtio.4 projects/geom-events/share/man/man4/mvs.4 projects/geom-events/share/man/man4/tcp.4 projects/geom-events/share/man/man4/ti.4 projects/geom-events/share/man/man4/u3g.4 projects/geom-events/share/man/man4/uark.4 projects/geom-events/share/man/man4/ubsa.4 projects/geom-events/share/man/man4/ubser.4 projects/geom-events/share/man/man4/uchcom.4 projects/geom-events/share/man/man4/ucycom.4 projects/geom-events/share/man/man4/ufoma.4 projects/geom-events/share/man/man4/uftdi.4 projects/geom-events/share/man/man4/uipaq.4 projects/geom-events/share/man/man4/umcs.4 projects/geom-events/share/man/man4/umct.4 projects/geom-events/share/man/man4/umodem.4 projects/geom-events/share/man/man4/uplcom.4 projects/geom-events/share/man/man4/uslcom.4 projects/geom-events/share/man/man4/uvisor.4 projects/geom-events/share/man/man4/uvscom.4 projects/geom-events/share/man/man7/release.7 projects/geom-events/share/man/man9/Makefile projects/geom-events/share/man/man9/VOP_VPTOCNP.9 projects/geom-events/share/man/man9/driver.9 projects/geom-events/share/man/man9/kobj.9 projects/geom-events/share/man/man9/kqueue.9 projects/geom-events/share/man/man9/lock.9 projects/geom-events/share/man/man9/mutex.9 projects/geom-events/share/man/man9/rmlock.9 projects/geom-events/share/man/man9/rwlock.9 projects/geom-events/share/man/man9/stack.9 projects/geom-events/share/man/man9/sx.9 projects/geom-events/share/misc/bsd-family-tree projects/geom-events/share/misc/committers-ports.dot projects/geom-events/share/misc/committers-src.dot projects/geom-events/share/mk/bsd.lib.mk projects/geom-events/share/mk/bsd.own.mk projects/geom-events/share/monetdef/zh_CN.UTF-8.src projects/geom-events/sys/amd64/amd64/legacy.c projects/geom-events/sys/amd64/amd64/machdep.c projects/geom-events/sys/amd64/amd64/mp_machdep.c projects/geom-events/sys/amd64/amd64/pmap.c projects/geom-events/sys/amd64/amd64/trap.c projects/geom-events/sys/amd64/conf/DEFAULTS projects/geom-events/sys/amd64/conf/GENERIC projects/geom-events/sys/amd64/include/_stdint.h projects/geom-events/sys/amd64/include/segments.h projects/geom-events/sys/amd64/include/signal.h projects/geom-events/sys/amd64/include/trap.h projects/geom-events/sys/amd64/include/ucontext.h projects/geom-events/sys/amd64/linux32/linux32_proto.h projects/geom-events/sys/amd64/linux32/linux32_syscall.h projects/geom-events/sys/amd64/linux32/linux32_syscalls.c projects/geom-events/sys/amd64/linux32/linux32_sysent.c projects/geom-events/sys/amd64/linux32/linux32_systrace_args.c projects/geom-events/sys/amd64/linux32/linux32_sysvec.c projects/geom-events/sys/amd64/linux32/syscalls.master projects/geom-events/sys/arm/arm/busdma_machdep.c projects/geom-events/sys/arm/arm/vm_machdep.c projects/geom-events/sys/arm/conf/DB-88F6XXX projects/geom-events/sys/arm/conf/DEFAULTS projects/geom-events/sys/arm/conf/GUMSTIX projects/geom-events/sys/arm/conf/SHEEVAPLUG projects/geom-events/sys/arm/econa/ehci_ebus.c projects/geom-events/sys/arm/econa/ohci_ec.c projects/geom-events/sys/arm/mv/files.mv projects/geom-events/sys/arm/mv/mv_pci.c projects/geom-events/sys/arm/xscale/i80321/i80321_pci.c projects/geom-events/sys/arm/xscale/i80321/iq31244_7seg.c projects/geom-events/sys/arm/xscale/i8134x/i81342_pci.c projects/geom-events/sys/arm/xscale/i8134x/iq81342_7seg.c projects/geom-events/sys/arm/xscale/ixp425/avila_ata.c projects/geom-events/sys/arm/xscale/ixp425/if_npe.c projects/geom-events/sys/arm/xscale/ixp425/ixp425_pci.c projects/geom-events/sys/arm/xscale/pxa/pxa_smi.c projects/geom-events/sys/arm/xscale/pxa/pxa_space.c projects/geom-events/sys/boot/common/loader.8 projects/geom-events/sys/boot/fdt/dts/db88f6281.dts projects/geom-events/sys/boot/fdt/dts/sheevaplug.dts projects/geom-events/sys/boot/forth/loader.conf projects/geom-events/sys/boot/i386/libi386/bioscd.c projects/geom-events/sys/boot/i386/loader/Makefile projects/geom-events/sys/boot/ia64/common/exec.c projects/geom-events/sys/boot/ofw/Makefile.inc projects/geom-events/sys/boot/powerpc/Makefile.inc projects/geom-events/sys/boot/uboot/Makefile.inc projects/geom-events/sys/cam/ata/ata_da.c projects/geom-events/sys/cam/ata/ata_pmp.c projects/geom-events/sys/cam/cam_periph.c projects/geom-events/sys/cam/cam_queue.c projects/geom-events/sys/cam/cam_sim.c projects/geom-events/sys/cam/cam_sim.h projects/geom-events/sys/cam/cam_xpt.c projects/geom-events/sys/cam/scsi/scsi_cd.c projects/geom-events/sys/cam/scsi/scsi_ch.c projects/geom-events/sys/cam/scsi/scsi_ch.h projects/geom-events/sys/cam/scsi/scsi_da.c projects/geom-events/sys/cam/scsi/scsi_low.c projects/geom-events/sys/cam/scsi/scsi_sa.c projects/geom-events/sys/cam/scsi/scsi_ses.c projects/geom-events/sys/cam/scsi/scsi_targ_bh.c projects/geom-events/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/geom-events/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/geom-events/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/geom-events/sys/cddl/dev/cyclic/cyclic.c projects/geom-events/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/geom-events/sys/cddl/dev/fbt/fbt.c projects/geom-events/sys/cddl/dev/systrace/systrace.c projects/geom-events/sys/compat/freebsd32/freebsd32.h projects/geom-events/sys/compat/freebsd32/freebsd32_misc.c projects/geom-events/sys/compat/freebsd32/freebsd32_proto.h projects/geom-events/sys/compat/freebsd32/freebsd32_syscall.h projects/geom-events/sys/compat/freebsd32/freebsd32_syscalls.c projects/geom-events/sys/compat/freebsd32/freebsd32_sysent.c projects/geom-events/sys/compat/freebsd32/freebsd32_systrace_args.c projects/geom-events/sys/compat/freebsd32/syscalls.master projects/geom-events/sys/compat/ia32/ia32_sysvec.c projects/geom-events/sys/compat/linprocfs/linprocfs.c projects/geom-events/sys/compat/linux/linux_file.c projects/geom-events/sys/compat/linux/linux_file.h projects/geom-events/sys/compat/linux/linux_futex.c projects/geom-events/sys/compat/linux/linux_mib.c projects/geom-events/sys/compat/svr4/svr4_fcntl.c projects/geom-events/sys/compat/svr4/svr4_proto.h projects/geom-events/sys/compat/svr4/svr4_syscall.h projects/geom-events/sys/compat/svr4/svr4_syscallnames.c projects/geom-events/sys/compat/svr4/svr4_sysent.c projects/geom-events/sys/compat/svr4/syscalls.master projects/geom-events/sys/compat/x86bios/x86bios.c projects/geom-events/sys/conf/NOTES projects/geom-events/sys/conf/files projects/geom-events/sys/conf/files.amd64 projects/geom-events/sys/conf/options projects/geom-events/sys/contrib/pf/net/pf.c projects/geom-events/sys/dev/aac/aac.c projects/geom-events/sys/dev/aac/aac_cam.c projects/geom-events/sys/dev/aac/aac_pci.c projects/geom-events/sys/dev/acpi_support/acpi_wmi.c projects/geom-events/sys/dev/acpica/Osd/OsdInterrupt.c projects/geom-events/sys/dev/acpica/Osd/OsdMemory.c projects/geom-events/sys/dev/acpica/Osd/OsdSchedule.c projects/geom-events/sys/dev/acpica/Osd/OsdSynch.c projects/geom-events/sys/dev/acpica/acpi.c projects/geom-events/sys/dev/acpica/acpi_cmbat.c projects/geom-events/sys/dev/acpica/acpi_cpu.c projects/geom-events/sys/dev/acpica/acpi_ec.c projects/geom-events/sys/dev/acpica/acpi_isab.c projects/geom-events/sys/dev/acpica/acpi_pci_link.c projects/geom-events/sys/dev/acpica/acpi_pcib_acpi.c projects/geom-events/sys/dev/acpica/acpi_perf.c projects/geom-events/sys/dev/acpica/acpi_powerres.c projects/geom-events/sys/dev/acpica/acpi_smbat.c projects/geom-events/sys/dev/acpica/acpi_thermal.c projects/geom-events/sys/dev/acpica/acpi_video.c projects/geom-events/sys/dev/ae/if_ae.c projects/geom-events/sys/dev/ahci/ahci.c projects/geom-events/sys/dev/amr/amr.c projects/geom-events/sys/dev/amr/amr_cam.c projects/geom-events/sys/dev/amr/amr_pci.c projects/geom-events/sys/dev/an/if_an.c projects/geom-events/sys/dev/arcmsr/arcmsr.c projects/geom-events/sys/dev/ata/ata-all.c projects/geom-events/sys/dev/ata/ata-disk.c projects/geom-events/sys/dev/ata/ata-pci.c projects/geom-events/sys/dev/ata/chipsets/ata-promise.c projects/geom-events/sys/dev/ata/chipsets/ata-siliconimage.c projects/geom-events/sys/dev/ath/ah_osdep.c projects/geom-events/sys/dev/ath/ath_hal/ah.c projects/geom-events/sys/dev/ath/ath_hal/ah.h projects/geom-events/sys/dev/ath/ath_hal/ah_devid.h projects/geom-events/sys/dev/ath/ath_hal/ah_internal.h projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416phy.h projects/geom-events/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/geom-events/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/geom-events/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/geom-events/sys/dev/ath/ath_rate/amrr/amrr.c projects/geom-events/sys/dev/ath/ath_rate/onoe/onoe.c projects/geom-events/sys/dev/ath/ath_rate/sample/sample.c projects/geom-events/sys/dev/ath/ath_rate/sample/sample.h projects/geom-events/sys/dev/ath/if_ath.c projects/geom-events/sys/dev/ath/if_ath_ahb.c projects/geom-events/sys/dev/ath/if_ath_debug.c projects/geom-events/sys/dev/ath/if_ath_debug.h projects/geom-events/sys/dev/ath/if_ath_keycache.c projects/geom-events/sys/dev/ath/if_ath_keycache.h projects/geom-events/sys/dev/ath/if_ath_misc.h projects/geom-events/sys/dev/ath/if_ath_pci.c projects/geom-events/sys/dev/ath/if_ath_sysctl.c projects/geom-events/sys/dev/ath/if_ath_tx.c projects/geom-events/sys/dev/ath/if_ath_tx.h projects/geom-events/sys/dev/ath/if_ath_tx_ht.c projects/geom-events/sys/dev/ath/if_ath_tx_ht.h projects/geom-events/sys/dev/ath/if_athioctl.h projects/geom-events/sys/dev/ath/if_athrate.h projects/geom-events/sys/dev/ath/if_athvar.h projects/geom-events/sys/dev/atkbdc/psm.c projects/geom-events/sys/dev/bce/if_bce.c projects/geom-events/sys/dev/bfe/if_bfe.c projects/geom-events/sys/dev/bge/if_bge.c projects/geom-events/sys/dev/bktr/bktr_os.c projects/geom-events/sys/dev/bktr/bktr_reg.h projects/geom-events/sys/dev/bm/if_bm.c projects/geom-events/sys/dev/bm/if_bmreg.h projects/geom-events/sys/dev/bm/if_bmvar.h projects/geom-events/sys/dev/bwn/if_bwn.c projects/geom-events/sys/dev/bxe/if_bxe.c projects/geom-events/sys/dev/cardbus/cardbus.c projects/geom-events/sys/dev/cas/if_cas.c projects/geom-events/sys/dev/ciss/ciss.c projects/geom-events/sys/dev/cs/if_cs.c projects/geom-events/sys/dev/cxgb/cxgb_main.c projects/geom-events/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c projects/geom-events/sys/dev/cxgbe/t4_main.c projects/geom-events/sys/dev/dc/dcphy.c projects/geom-events/sys/dev/dc/if_dc.c projects/geom-events/sys/dev/dc/if_dcreg.h projects/geom-events/sys/dev/dcons/dcons_os.c projects/geom-events/sys/dev/e1000/if_em.c projects/geom-events/sys/dev/e1000/if_igb.c projects/geom-events/sys/dev/eisa/eisaconf.c projects/geom-events/sys/dev/esp/esp_sbus.c projects/geom-events/sys/dev/esp/ncr53c9x.c projects/geom-events/sys/dev/esp/ncr53c9xreg.h projects/geom-events/sys/dev/esp/ncr53c9xvar.h projects/geom-events/sys/dev/et/if_et.c projects/geom-events/sys/dev/fb/fb.c projects/geom-events/sys/dev/fb/vesa.c projects/geom-events/sys/dev/fdc/fdc.c projects/geom-events/sys/dev/firewire/firewire.c projects/geom-events/sys/dev/firewire/fwmem.c projects/geom-events/sys/dev/firewire/fwohci_pci.c projects/geom-events/sys/dev/firewire/if_fwe.c projects/geom-events/sys/dev/firewire/if_fwip.c projects/geom-events/sys/dev/firewire/sbp.c projects/geom-events/sys/dev/firewire/sbp_targ.c projects/geom-events/sys/dev/gem/if_gem_pci.c projects/geom-events/sys/dev/gem/if_gem_sbus.c projects/geom-events/sys/dev/gpio/gpiobus.c projects/geom-events/sys/dev/hifn/hifn7751.c projects/geom-events/sys/dev/hme/if_hme_pci.c projects/geom-events/sys/dev/hme/if_hme_sbus.c projects/geom-events/sys/dev/hwpmc/hwpmc_mips24k.c projects/geom-events/sys/dev/ichsmb/ichsmb_pci.c projects/geom-events/sys/dev/ida/ida_pci.c projects/geom-events/sys/dev/if_ndis/if_ndis_usb.c projects/geom-events/sys/dev/iicbus/ad7417.c projects/geom-events/sys/dev/iicbus/iicbus.c projects/geom-events/sys/dev/iicbus/iicsmb.c projects/geom-events/sys/dev/iicbus/max6690.c projects/geom-events/sys/dev/iir/iir.c projects/geom-events/sys/dev/ipmi/ipmi.c projects/geom-events/sys/dev/iscsi/initiator/isc_subr.c projects/geom-events/sys/dev/iscsi/initiator/iscsi.c projects/geom-events/sys/dev/iscsi/initiator/iscsivar.h projects/geom-events/sys/dev/isp/DriverManual.txt projects/geom-events/sys/dev/isp/isp.c projects/geom-events/sys/dev/isp/isp_freebsd.c projects/geom-events/sys/dev/isp/isp_freebsd.h projects/geom-events/sys/dev/isp/isp_pci.c projects/geom-events/sys/dev/iwn/if_iwn.c projects/geom-events/sys/dev/iwn/if_iwnreg.h projects/geom-events/sys/dev/kbd/kbd.c projects/geom-events/sys/dev/lge/if_lge.c projects/geom-events/sys/dev/lmc/if_lmc.c projects/geom-events/sys/dev/malo/if_malo.c projects/geom-events/sys/dev/malo/if_malo_pci.c projects/geom-events/sys/dev/mca/mca_bus.c projects/geom-events/sys/dev/md/md.c projects/geom-events/sys/dev/mfi/mfi.c projects/geom-events/sys/dev/mfi/mfi_cam.c projects/geom-events/sys/dev/mfi/mfi_debug.c projects/geom-events/sys/dev/mfi/mfi_disk.c projects/geom-events/sys/dev/mfi/mfi_pci.c projects/geom-events/sys/dev/mfi/mfivar.h projects/geom-events/sys/dev/mii/ip1000phy.c projects/geom-events/sys/dev/mii/mii.c projects/geom-events/sys/dev/mii/miivar.h projects/geom-events/sys/dev/mii/rdcphy.c projects/geom-events/sys/dev/mlx/mlx_pci.c projects/geom-events/sys/dev/mmc/mmc.c projects/geom-events/sys/dev/mps/mps_pci.c projects/geom-events/sys/dev/mps/mps_sas.c projects/geom-events/sys/dev/mpt/mpt.c projects/geom-events/sys/dev/msk/if_msk.c projects/geom-events/sys/dev/msk/if_mskreg.h projects/geom-events/sys/dev/mvs/mvs.c projects/geom-events/sys/dev/mvs/mvs_pci.c projects/geom-events/sys/dev/mvs/mvs_soc.c projects/geom-events/sys/dev/mwl/if_mwl.c projects/geom-events/sys/dev/mwl/mwlhal.c projects/geom-events/sys/dev/nfe/if_nfe.c projects/geom-events/sys/dev/nge/if_nge.c projects/geom-events/sys/dev/nge/if_ngereg.h projects/geom-events/sys/dev/nmdm/nmdm.c projects/geom-events/sys/dev/nve/if_nve.c projects/geom-events/sys/dev/ofw/ofw_iicbus.c projects/geom-events/sys/dev/ofw/openfirm.c projects/geom-events/sys/dev/pccard/pccard.c projects/geom-events/sys/dev/pccbb/pccbb.c projects/geom-events/sys/dev/pccbb/pccbb_isa.c projects/geom-events/sys/dev/pccbb/pccbb_pci.c projects/geom-events/sys/dev/pci/eisa_pci.c projects/geom-events/sys/dev/pci/isa_pci.c projects/geom-events/sys/dev/pci/pci_pci.c projects/geom-events/sys/dev/pcn/if_pcn.c projects/geom-events/sys/dev/ppbus/lpbb.c projects/geom-events/sys/dev/ppbus/lpt.c projects/geom-events/sys/dev/ppbus/ppb_base.c projects/geom-events/sys/dev/ppbus/ppb_msq.c projects/geom-events/sys/dev/ppbus/ppbconf.c projects/geom-events/sys/dev/ppbus/vpo.c projects/geom-events/sys/dev/ppc/ppc.c projects/geom-events/sys/dev/puc/puc.c projects/geom-events/sys/dev/puc/puc_pccard.c projects/geom-events/sys/dev/puc/puc_pci.c projects/geom-events/sys/dev/puc/pucdata.c projects/geom-events/sys/dev/quicc/quicc_bfe_fdt.c projects/geom-events/sys/dev/quicc/quicc_core.c projects/geom-events/sys/dev/re/if_re.c projects/geom-events/sys/dev/rndtest/rndtest.c projects/geom-events/sys/dev/rt/if_rt.c projects/geom-events/sys/dev/safe/safe.c projects/geom-events/sys/dev/scc/scc_bfe_ebus.c projects/geom-events/sys/dev/scc/scc_bfe_macio.c projects/geom-events/sys/dev/scc/scc_bfe_quicc.c projects/geom-events/sys/dev/scc/scc_bfe_sbus.c projects/geom-events/sys/dev/scc/scc_core.c projects/geom-events/sys/dev/sdhci/sdhci.c projects/geom-events/sys/dev/sec/sec.c projects/geom-events/sys/dev/sf/if_sf.c projects/geom-events/sys/dev/sge/if_sge.c projects/geom-events/sys/dev/siba/siba.c projects/geom-events/sys/dev/siba/siba_bwn.c projects/geom-events/sys/dev/siba/siba_cc.c projects/geom-events/sys/dev/siba/siba_core.c projects/geom-events/sys/dev/siba/siba_pcib.c projects/geom-events/sys/dev/siis/siis.c projects/geom-events/sys/dev/sio/sio_pci.c projects/geom-events/sys/dev/sis/if_sis.c projects/geom-events/sys/dev/sis/if_sisreg.h projects/geom-events/sys/dev/sk/if_sk.c projects/geom-events/sys/dev/smbus/smbus.c projects/geom-events/sys/dev/smc/if_smc.c projects/geom-events/sys/dev/sound/isa/gusc.c projects/geom-events/sys/dev/sound/isa/sbc.c projects/geom-events/sys/dev/sound/midi/midi.c projects/geom-events/sys/dev/sound/pci/csa.c projects/geom-events/sys/dev/sound/pci/envy24.c projects/geom-events/sys/dev/sound/pci/envy24ht.c projects/geom-events/sys/dev/sound/pci/fm801.c projects/geom-events/sys/dev/sound/pci/maestro.c projects/geom-events/sys/dev/sound/pci/spicds.c projects/geom-events/sys/dev/sound/pcm/ac97.c projects/geom-events/sys/dev/sound/pcm/feeder.c projects/geom-events/sys/dev/sound/pcm/mixer.c projects/geom-events/sys/dev/sound/usb/uaudio.c projects/geom-events/sys/dev/spibus/spibus.c projects/geom-events/sys/dev/ste/if_ste.c projects/geom-events/sys/dev/ste/if_stereg.h projects/geom-events/sys/dev/stge/if_stge.c projects/geom-events/sys/dev/stge/if_stgereg.h projects/geom-events/sys/dev/syscons/scterm-teken.c projects/geom-events/sys/dev/syscons/syscons.c projects/geom-events/sys/dev/tdfx/tdfx_pci.c projects/geom-events/sys/dev/ti/if_ti.c projects/geom-events/sys/dev/ti/if_tireg.h projects/geom-events/sys/dev/tl/if_tl.c projects/geom-events/sys/dev/tl/if_tlreg.h projects/geom-events/sys/dev/tsec/if_tsec_fdt.c projects/geom-events/sys/dev/twa/tw_osl_freebsd.c projects/geom-events/sys/dev/twe/twe_freebsd.c projects/geom-events/sys/dev/tws/tws.c projects/geom-events/sys/dev/tws/tws_services.c projects/geom-events/sys/dev/tws/tws_services.h projects/geom-events/sys/dev/uart/uart_core.c projects/geom-events/sys/dev/uart/uart_dev_ns8250.c projects/geom-events/sys/dev/ubsec/ubsec.c projects/geom-events/sys/dev/usb/controller/at91dci.c projects/geom-events/sys/dev/usb/controller/at91dci_atmelarm.c projects/geom-events/sys/dev/usb/controller/atmegadci.c projects/geom-events/sys/dev/usb/controller/atmegadci_atmelarm.c projects/geom-events/sys/dev/usb/controller/avr32dci.c projects/geom-events/sys/dev/usb/controller/ehci.c projects/geom-events/sys/dev/usb/controller/ehci_ixp4xx.c projects/geom-events/sys/dev/usb/controller/ehci_mv.c projects/geom-events/sys/dev/usb/controller/ehci_pci.c projects/geom-events/sys/dev/usb/controller/musb_otg.c projects/geom-events/sys/dev/usb/controller/musb_otg_atmelarm.c projects/geom-events/sys/dev/usb/controller/ohci.c projects/geom-events/sys/dev/usb/controller/ohci_atmelarm.c projects/geom-events/sys/dev/usb/controller/ohci_pci.c projects/geom-events/sys/dev/usb/controller/ohci_s3c24x0.c projects/geom-events/sys/dev/usb/controller/uhci.c projects/geom-events/sys/dev/usb/controller/uhci_pci.c projects/geom-events/sys/dev/usb/controller/usb_controller.c projects/geom-events/sys/dev/usb/controller/uss820dci.c projects/geom-events/sys/dev/usb/controller/uss820dci_atmelarm.c projects/geom-events/sys/dev/usb/controller/xhci.c projects/geom-events/sys/dev/usb/controller/xhci_pci.c projects/geom-events/sys/dev/usb/input/atp.c projects/geom-events/sys/dev/usb/input/uep.c projects/geom-events/sys/dev/usb/input/uhid.c projects/geom-events/sys/dev/usb/input/ukbd.c projects/geom-events/sys/dev/usb/input/ums.c projects/geom-events/sys/dev/usb/misc/udbp.c projects/geom-events/sys/dev/usb/net/if_aue.c projects/geom-events/sys/dev/usb/net/if_axe.c projects/geom-events/sys/dev/usb/net/if_cdce.c projects/geom-events/sys/dev/usb/net/if_cue.c projects/geom-events/sys/dev/usb/net/if_ipheth.c projects/geom-events/sys/dev/usb/net/if_kue.c projects/geom-events/sys/dev/usb/net/if_mos.c projects/geom-events/sys/dev/usb/net/if_rue.c projects/geom-events/sys/dev/usb/net/if_udav.c projects/geom-events/sys/dev/usb/net/if_usie.c projects/geom-events/sys/dev/usb/net/uhso.c projects/geom-events/sys/dev/usb/net/usb_ethernet.c projects/geom-events/sys/dev/usb/quirk/usb_quirk.c projects/geom-events/sys/dev/usb/serial/u3g.c projects/geom-events/sys/dev/usb/serial/ubsa.c projects/geom-events/sys/dev/usb/serial/ubser.c projects/geom-events/sys/dev/usb/serial/uchcom.c projects/geom-events/sys/dev/usb/serial/ufoma.c projects/geom-events/sys/dev/usb/serial/uftdi.c projects/geom-events/sys/dev/usb/serial/ulpt.c projects/geom-events/sys/dev/usb/serial/umcs.c projects/geom-events/sys/dev/usb/serial/umodem.c projects/geom-events/sys/dev/usb/serial/umoscom.c projects/geom-events/sys/dev/usb/serial/uplcom.c projects/geom-events/sys/dev/usb/serial/usb_serial.c projects/geom-events/sys/dev/usb/serial/uslcom.c projects/geom-events/sys/dev/usb/serial/uvisor.c projects/geom-events/sys/dev/usb/serial/uvscom.c projects/geom-events/sys/dev/usb/storage/umass.c projects/geom-events/sys/dev/usb/storage/urio.c projects/geom-events/sys/dev/usb/storage/ustorage_fs.c projects/geom-events/sys/dev/usb/template/usb_template.c projects/geom-events/sys/dev/usb/usb.h projects/geom-events/sys/dev/usb/usb_busdma.c projects/geom-events/sys/dev/usb/usb_compat_linux.c projects/geom-events/sys/dev/usb/usb_dev.c projects/geom-events/sys/dev/usb/usb_device.c projects/geom-events/sys/dev/usb/usb_generic.c projects/geom-events/sys/dev/usb/usb_hub.c projects/geom-events/sys/dev/usb/usb_ioctl.h projects/geom-events/sys/dev/usb/usb_msctest.c projects/geom-events/sys/dev/usb/usb_process.c projects/geom-events/sys/dev/usb/usb_request.c projects/geom-events/sys/dev/usb/usb_transfer.c projects/geom-events/sys/dev/usb/usb_util.c projects/geom-events/sys/dev/usb/usb_util.h projects/geom-events/sys/dev/usb/usbdevs projects/geom-events/sys/dev/usb/wlan/if_rum.c projects/geom-events/sys/dev/usb/wlan/if_run.c projects/geom-events/sys/dev/usb/wlan/if_uath.c projects/geom-events/sys/dev/usb/wlan/if_upgt.c projects/geom-events/sys/dev/usb/wlan/if_ural.c projects/geom-events/sys/dev/usb/wlan/if_urtw.c projects/geom-events/sys/dev/usb/wlan/if_zyd.c projects/geom-events/sys/dev/vge/if_vge.c projects/geom-events/sys/dev/vr/if_vr.c projects/geom-events/sys/dev/vte/if_vte.c projects/geom-events/sys/dev/wb/if_wb.c projects/geom-events/sys/dev/wb/if_wbreg.h projects/geom-events/sys/dev/wi/if_wi.c projects/geom-events/sys/dev/xe/if_xe.c projects/geom-events/sys/dev/xen/balloon/balloon.c projects/geom-events/sys/dev/xen/blkback/blkback.c projects/geom-events/sys/dev/xen/blkfront/blkfront.c projects/geom-events/sys/dev/xen/pcifront/pcifront.c projects/geom-events/sys/dev/xl/if_xl.c projects/geom-events/sys/dev/xl/if_xlreg.h projects/geom-events/sys/fs/devfs/devfs_rule.c projects/geom-events/sys/fs/devfs/devfs_vnops.c projects/geom-events/sys/fs/ext2fs/ext2_alloc.c projects/geom-events/sys/fs/msdosfs/msdosfs_conv.c projects/geom-events/sys/fs/msdosfs/msdosfs_denode.c projects/geom-events/sys/fs/msdosfs/msdosfs_fat.c projects/geom-events/sys/fs/msdosfs/msdosfs_lookup.c projects/geom-events/sys/fs/msdosfs/msdosfs_vfsops.c projects/geom-events/sys/fs/nfs/nfs_var.h projects/geom-events/sys/fs/nfs/nfsclstate.h projects/geom-events/sys/fs/nfsclient/nfs_clrpcops.c projects/geom-events/sys/fs/nfsclient/nfs_clstate.c projects/geom-events/sys/fs/nfsclient/nfs_clvfsops.c projects/geom-events/sys/fs/nfsclient/nfs_clvnops.c projects/geom-events/sys/fs/nfsserver/nfs_nfsdport.c projects/geom-events/sys/fs/ntfs/ntfs_subr.c projects/geom-events/sys/fs/nullfs/null_subr.c projects/geom-events/sys/fs/nullfs/null_vnops.c projects/geom-events/sys/fs/nwfs/nwfs_mount.h projects/geom-events/sys/fs/procfs/procfs_status.c projects/geom-events/sys/fs/pseudofs/pseudofs_vncache.c projects/geom-events/sys/fs/pseudofs/pseudofs_vnops.c projects/geom-events/sys/fs/smbfs/smbfs.h projects/geom-events/sys/fs/smbfs/smbfs_node.c projects/geom-events/sys/fs/smbfs/smbfs_smb.c projects/geom-events/sys/fs/smbfs/smbfs_subr.c projects/geom-events/sys/fs/tmpfs/tmpfs.h projects/geom-events/sys/fs/tmpfs/tmpfs_vfsops.c projects/geom-events/sys/fs/tmpfs/tmpfs_vnops.c projects/geom-events/sys/fs/udf/udf_vnops.c projects/geom-events/sys/geom/cache/g_cache.c projects/geom-events/sys/geom/concat/g_concat.c projects/geom-events/sys/geom/concat/g_concat.h projects/geom-events/sys/geom/gate/g_gate.c projects/geom-events/sys/geom/geom_disk.c projects/geom-events/sys/geom/geom_event.c projects/geom-events/sys/geom/geom_vfs.c projects/geom-events/sys/geom/journal/g_journal.c projects/geom-events/sys/geom/mirror/g_mirror.c projects/geom-events/sys/geom/mountver/g_mountver.c projects/geom-events/sys/geom/multipath/g_multipath.c projects/geom-events/sys/geom/multipath/g_multipath.h projects/geom-events/sys/geom/nop/g_nop.c projects/geom-events/sys/geom/part/g_part.c projects/geom-events/sys/geom/raid/tr_raid1.c projects/geom-events/sys/geom/raid/tr_raid1e.c projects/geom-events/sys/geom/raid3/g_raid3.c projects/geom-events/sys/geom/sched/gs_rr.c projects/geom-events/sys/geom/shsec/g_shsec.c projects/geom-events/sys/geom/stripe/g_stripe.c projects/geom-events/sys/geom/uzip/g_uzip.c projects/geom-events/sys/geom/vinum/geom_vinum.c projects/geom-events/sys/geom/virstor/g_virstor.c projects/geom-events/sys/geom/zero/g_zero.c projects/geom-events/sys/gnu/fs/xfs/FreeBSD/support/debug.c projects/geom-events/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/geom-events/sys/i386/conf/DEFAULTS projects/geom-events/sys/i386/conf/GENERIC projects/geom-events/sys/i386/i386/legacy.c projects/geom-events/sys/i386/i386/machdep.c projects/geom-events/sys/i386/i386/mp_machdep.c projects/geom-events/sys/i386/i386/pmap.c projects/geom-events/sys/i386/i386/trap.c projects/geom-events/sys/i386/ibcs2/ibcs2_fcntl.c projects/geom-events/sys/i386/ibcs2/ibcs2_proto.h projects/geom-events/sys/i386/ibcs2/ibcs2_syscall.h projects/geom-events/sys/i386/ibcs2/ibcs2_sysent.c projects/geom-events/sys/i386/ibcs2/syscalls.master projects/geom-events/sys/i386/include/segments.h projects/geom-events/sys/i386/include/signal.h projects/geom-events/sys/i386/include/trap.h projects/geom-events/sys/i386/include/ucontext.h projects/geom-events/sys/i386/linux/linux_proto.h projects/geom-events/sys/i386/linux/linux_syscall.h projects/geom-events/sys/i386/linux/linux_syscalls.c projects/geom-events/sys/i386/linux/linux_sysent.c projects/geom-events/sys/i386/linux/linux_systrace_args.c projects/geom-events/sys/i386/linux/syscalls.master projects/geom-events/sys/i386/xen/pmap.c projects/geom-events/sys/ia64/conf/DEFAULTS projects/geom-events/sys/ia64/ia64/busdma_machdep.c projects/geom-events/sys/ia64/ia64/machdep.c projects/geom-events/sys/ia64/ia64/mca.c projects/geom-events/sys/ia64/ia64/pmap.c projects/geom-events/sys/ia64/ia64/sapic.c projects/geom-events/sys/ia64/ia64/sscdisk.c projects/geom-events/sys/ia64/ia64/unwind.c projects/geom-events/sys/isa/vga_isa.c projects/geom-events/sys/kern/init_sysent.c projects/geom-events/sys/kern/kern_clock.c projects/geom-events/sys/kern/kern_conf.c projects/geom-events/sys/kern/kern_cpu.c projects/geom-events/sys/kern/kern_ctf.c projects/geom-events/sys/kern/kern_descrip.c projects/geom-events/sys/kern/kern_dtrace.c projects/geom-events/sys/kern/kern_et.c projects/geom-events/sys/kern/kern_fail.c projects/geom-events/sys/kern/kern_jail.c projects/geom-events/sys/kern/kern_ktr.c projects/geom-events/sys/kern/kern_linker.c projects/geom-events/sys/kern/kern_lock.c projects/geom-events/sys/kern/kern_lockf.c projects/geom-events/sys/kern/kern_malloc.c projects/geom-events/sys/kern/kern_mutex.c projects/geom-events/sys/kern/kern_poll.c projects/geom-events/sys/kern/kern_proc.c projects/geom-events/sys/kern/kern_rctl.c projects/geom-events/sys/kern/kern_resource.c projects/geom-events/sys/kern/kern_rmlock.c projects/geom-events/sys/kern/kern_rwlock.c projects/geom-events/sys/kern/kern_shutdown.c projects/geom-events/sys/kern/kern_sig.c projects/geom-events/sys/kern/kern_sx.c projects/geom-events/sys/kern/kern_synch.c projects/geom-events/sys/kern/kern_tc.c projects/geom-events/sys/kern/kern_thr.c projects/geom-events/sys/kern/kern_thread.c projects/geom-events/sys/kern/kern_timeout.c projects/geom-events/sys/kern/kern_umtx.c projects/geom-events/sys/kern/makesyscalls.sh projects/geom-events/sys/kern/sched_4bsd.c projects/geom-events/sys/kern/subr_bus.c projects/geom-events/sys/kern/subr_devstat.c projects/geom-events/sys/kern/subr_firmware.c projects/geom-events/sys/kern/subr_kdb.c projects/geom-events/sys/kern/subr_kobj.c projects/geom-events/sys/kern/subr_lock.c projects/geom-events/sys/kern/subr_mchain.c projects/geom-events/sys/kern/subr_pcpu.c projects/geom-events/sys/kern/subr_prof.c projects/geom-events/sys/kern/subr_rman.c projects/geom-events/sys/kern/subr_rtc.c projects/geom-events/sys/kern/subr_sleepqueue.c projects/geom-events/sys/kern/subr_smp.c projects/geom-events/sys/kern/subr_stack.c projects/geom-events/sys/kern/subr_turnstile.c projects/geom-events/sys/kern/subr_uio.c projects/geom-events/sys/kern/subr_witness.c projects/geom-events/sys/kern/sys_generic.c projects/geom-events/sys/kern/syscalls.c projects/geom-events/sys/kern/syscalls.master projects/geom-events/sys/kern/systrace_args.c projects/geom-events/sys/kern/uipc_mqueue.c projects/geom-events/sys/kern/uipc_socket.c projects/geom-events/sys/kern/uipc_usrreq.c projects/geom-events/sys/kern/vfs_cache.c projects/geom-events/sys/kern/vfs_default.c projects/geom-events/sys/kern/vfs_mount.c projects/geom-events/sys/kern/vfs_subr.c projects/geom-events/sys/kern/vfs_syscalls.c projects/geom-events/sys/kern/vfs_vnops.c projects/geom-events/sys/kern/vnode_if.src projects/geom-events/sys/libkern/iconv.c projects/geom-events/sys/mips/adm5120/admpci.c projects/geom-events/sys/mips/atheros/apb.c projects/geom-events/sys/mips/atheros/ar71xx_ehci.c projects/geom-events/sys/mips/atheros/ar71xx_ohci.c projects/geom-events/sys/mips/atheros/ar71xx_pci.c projects/geom-events/sys/mips/atheros/ar724x_pci.c projects/geom-events/sys/mips/atheros/if_arge.c projects/geom-events/sys/mips/cavium/octopci.c projects/geom-events/sys/mips/cavium/usb/octusb.c projects/geom-events/sys/mips/cavium/usb/octusb_octeon.c projects/geom-events/sys/mips/conf/AR91XX_BASE projects/geom-events/sys/mips/conf/DEFAULTS projects/geom-events/sys/mips/conf/XLP projects/geom-events/sys/mips/conf/XLP64 projects/geom-events/sys/mips/conf/XLPN32 projects/geom-events/sys/mips/idt/idtpci.c projects/geom-events/sys/mips/idt/if_kr.c projects/geom-events/sys/mips/include/asm.h projects/geom-events/sys/mips/include/cpufunc.h projects/geom-events/sys/mips/include/cpuregs.h projects/geom-events/sys/mips/malta/gt.c projects/geom-events/sys/mips/malta/gt_pci.c projects/geom-events/sys/mips/mips/busdma_machdep.c projects/geom-events/sys/mips/mips/cache.c projects/geom-events/sys/mips/mips/pmap.c projects/geom-events/sys/mips/nlm/cms.c projects/geom-events/sys/mips/nlm/files.xlp projects/geom-events/sys/mips/nlm/hal/bridge.h projects/geom-events/sys/mips/nlm/hal/cop2.h projects/geom-events/sys/mips/nlm/hal/cpucontrol.h projects/geom-events/sys/mips/nlm/hal/fmn.c projects/geom-events/sys/mips/nlm/hal/fmn.h projects/geom-events/sys/mips/nlm/hal/haldefs.h projects/geom-events/sys/mips/nlm/hal/iomap.h projects/geom-events/sys/mips/nlm/hal/mips-extns.h projects/geom-events/sys/mips/nlm/hal/mmu.h projects/geom-events/sys/mips/nlm/hal/pcibus.h projects/geom-events/sys/mips/nlm/hal/pic.h projects/geom-events/sys/mips/nlm/hal/uart.h projects/geom-events/sys/mips/nlm/mpreset.S projects/geom-events/sys/mips/nlm/msgring.h projects/geom-events/sys/mips/nlm/std.xlp projects/geom-events/sys/mips/nlm/uart_pci_xlp.c projects/geom-events/sys/mips/nlm/usb_init.c projects/geom-events/sys/mips/nlm/xlp.h projects/geom-events/sys/mips/nlm/xlp_machdep.c projects/geom-events/sys/mips/nlm/xlp_pci.c projects/geom-events/sys/mips/rmi/dev/nlge/if_nlge.c projects/geom-events/sys/mips/rmi/dev/sec/rmisec.c projects/geom-events/sys/mips/rmi/xlr_pci.c projects/geom-events/sys/mips/rmi/xls_ehci.c projects/geom-events/sys/mips/rt305x/rt305x_dotg.c projects/geom-events/sys/modules/Makefile projects/geom-events/sys/modules/ath/Makefile projects/geom-events/sys/modules/ath_ahb/Makefile projects/geom-events/sys/modules/ath_pci/Makefile projects/geom-events/sys/modules/esp/Makefile projects/geom-events/sys/modules/ipfw/Makefile projects/geom-events/sys/modules/libiconv/Makefile projects/geom-events/sys/modules/libmchain/Makefile projects/geom-events/sys/modules/mii/Makefile projects/geom-events/sys/net/bpf.c projects/geom-events/sys/net/bpf.h projects/geom-events/sys/net/flowtable.c projects/geom-events/sys/net/if.c projects/geom-events/sys/net/if_arcsubr.c projects/geom-events/sys/net/if_atmsubr.c projects/geom-events/sys/net/if_bridge.c projects/geom-events/sys/net/if_enc.c projects/geom-events/sys/net/if_epair.c projects/geom-events/sys/net/if_ethersubr.c projects/geom-events/sys/net/if_fwsubr.c projects/geom-events/sys/net/if_gif.c projects/geom-events/sys/net/if_gre.c projects/geom-events/sys/net/if_iso88025subr.c projects/geom-events/sys/net/if_lagg.c projects/geom-events/sys/net/if_mib.c projects/geom-events/sys/net/if_spppfr.c projects/geom-events/sys/net/if_spppsubr.c projects/geom-events/sys/net/if_stf.c projects/geom-events/sys/net/if_tap.c projects/geom-events/sys/net/if_tun.c projects/geom-events/sys/net/if_vlan.c projects/geom-events/sys/net/netisr.c projects/geom-events/sys/net/raw_cb.c projects/geom-events/sys/net/rtsock.c projects/geom-events/sys/net/vnet.c projects/geom-events/sys/net80211/ieee80211.h projects/geom-events/sys/net80211/ieee80211_acl.c projects/geom-events/sys/net80211/ieee80211_dfs.c projects/geom-events/sys/net80211/ieee80211_freebsd.c projects/geom-events/sys/net80211/ieee80211_hwmp.c projects/geom-events/sys/net80211/ieee80211_input.c projects/geom-events/sys/net80211/ieee80211_ioctl.c projects/geom-events/sys/net80211/ieee80211_ioctl.h projects/geom-events/sys/net80211/ieee80211_mesh.c projects/geom-events/sys/net80211/ieee80211_output.c projects/geom-events/sys/net80211/ieee80211_power.c projects/geom-events/sys/net80211/ieee80211_proto.h projects/geom-events/sys/net80211/ieee80211_scan.h projects/geom-events/sys/net80211/ieee80211_sta.c projects/geom-events/sys/net80211/ieee80211_var.h projects/geom-events/sys/netgraph/atm/ng_atm.c projects/geom-events/sys/netgraph/atm/ngatmbase.c projects/geom-events/sys/netgraph/atm/uni/ng_uni.c projects/geom-events/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c projects/geom-events/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c projects/geom-events/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c projects/geom-events/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c projects/geom-events/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c projects/geom-events/sys/netgraph/netgraph.h projects/geom-events/sys/netgraph/ng_async.c projects/geom-events/sys/netgraph/ng_atmllc.c projects/geom-events/sys/netgraph/ng_base.c projects/geom-events/sys/netgraph/ng_bpf.c projects/geom-events/sys/netgraph/ng_bridge.c projects/geom-events/sys/netgraph/ng_cisco.c projects/geom-events/sys/netgraph/ng_deflate.c projects/geom-events/sys/netgraph/ng_fec.c projects/geom-events/sys/netgraph/ng_gif_demux.c projects/geom-events/sys/netgraph/ng_hub.c projects/geom-events/sys/netgraph/ng_iface.c projects/geom-events/sys/netgraph/ng_ksocket.c projects/geom-events/sys/netgraph/ng_l2tp.c projects/geom-events/sys/netgraph/ng_mppc.c projects/geom-events/sys/netgraph/ng_parse.c projects/geom-events/sys/netgraph/ng_ppp.c projects/geom-events/sys/netgraph/ng_pppoe.c projects/geom-events/sys/netgraph/ng_pred1.c projects/geom-events/sys/netgraph/ng_sample.c projects/geom-events/sys/netgraph/ng_socket.c projects/geom-events/sys/netgraph/ng_sppp.c projects/geom-events/sys/netgraph/ng_tag.c projects/geom-events/sys/netinet/accf_http.c projects/geom-events/sys/netinet/if_ether.c projects/geom-events/sys/netinet/igmp.c projects/geom-events/sys/netinet/in.c projects/geom-events/sys/netinet/in_mcast.c projects/geom-events/sys/netinet/in_pcb.c projects/geom-events/sys/netinet/in_pcb.h projects/geom-events/sys/netinet/ip_carp.c projects/geom-events/sys/netinet/ip_divert.c projects/geom-events/sys/netinet/ip_mroute.c projects/geom-events/sys/netinet/ip_output.c projects/geom-events/sys/netinet/ipfw/dn_heap.c projects/geom-events/sys/netinet/ipfw/dummynet.txt projects/geom-events/sys/netinet/ipfw/ip_dn_io.c projects/geom-events/sys/netinet/ipfw/ip_fw2.c projects/geom-events/sys/netinet/ipfw/ip_fw_dynamic.c projects/geom-events/sys/netinet/ipfw/ip_fw_log.c projects/geom-events/sys/netinet/ipfw/ip_fw_pfil.c projects/geom-events/sys/netinet/ipfw/ip_fw_sockopt.c projects/geom-events/sys/netinet/ipfw/ip_fw_table.c projects/geom-events/sys/netinet/libalias/alias_sctp.c projects/geom-events/sys/netinet/sctp.h projects/geom-events/sys/netinet/sctp_output.c projects/geom-events/sys/netinet/sctp_pcb.c projects/geom-events/sys/netinet/sctp_pcb.h projects/geom-events/sys/netinet/sctp_structs.h projects/geom-events/sys/netinet/sctp_sysctl.c projects/geom-events/sys/netinet/sctp_sysctl.h projects/geom-events/sys/netinet/sctp_uio.h projects/geom-events/sys/netinet/sctp_usrreq.c projects/geom-events/sys/netinet/sctputil.c projects/geom-events/sys/netinet/tcp_hostcache.c projects/geom-events/sys/netinet/tcp_input.c projects/geom-events/sys/netinet/tcp_output.c projects/geom-events/sys/netinet/tcp_reass.c projects/geom-events/sys/netinet/tcp_syncache.c projects/geom-events/sys/netinet6/icmp6.c projects/geom-events/sys/netinet6/in6.c projects/geom-events/sys/netinet6/in6_mcast.c projects/geom-events/sys/netinet6/in6_pcb.c projects/geom-events/sys/netinet6/in6_src.c projects/geom-events/sys/netinet6/ip6_mroute.c projects/geom-events/sys/netinet6/ip6_output.c projects/geom-events/sys/netinet6/mld6.c projects/geom-events/sys/netinet6/nd6.c projects/geom-events/sys/netinet6/nd6.h projects/geom-events/sys/netinet6/nd6_rtr.c projects/geom-events/sys/netinet6/send.c projects/geom-events/sys/netipx/ipx_proto.c projects/geom-events/sys/netipx/spx_reass.c projects/geom-events/sys/netsmb/smb_conn.c projects/geom-events/sys/netsmb/smb_conn.h projects/geom-events/sys/netsmb/smb_rq.c projects/geom-events/sys/netsmb/smb_smb.c projects/geom-events/sys/netsmb/smb_subr.c projects/geom-events/sys/nfs/nfs_lock.c projects/geom-events/sys/nfsclient/nfs_krpc.c projects/geom-events/sys/nfsclient/nfs_vfsops.c projects/geom-events/sys/nlm/nlm_prot_impl.c projects/geom-events/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/geom-events/sys/ofed/include/linux/linux_idr.c projects/geom-events/sys/ofed/include/linux/linux_radix.c projects/geom-events/sys/pc98/conf/DEFAULTS projects/geom-events/sys/pc98/conf/GENERIC projects/geom-events/sys/pci/if_rl.c projects/geom-events/sys/pci/if_rlreg.h projects/geom-events/sys/pci/intpm.c projects/geom-events/sys/pci/viapm.c projects/geom-events/sys/powerpc/aim/machdep.c projects/geom-events/sys/powerpc/aim/mmu_oea.c projects/geom-events/sys/powerpc/aim/mp_cpudep.c projects/geom-events/sys/powerpc/aim/nexus.c projects/geom-events/sys/powerpc/aim/slb.c projects/geom-events/sys/powerpc/aim/trap_subr32.S projects/geom-events/sys/powerpc/aim/trap_subr64.S projects/geom-events/sys/powerpc/conf/DEFAULTS projects/geom-events/sys/powerpc/fpu/fpu_emu.c projects/geom-events/sys/powerpc/include/pcpu.h projects/geom-events/sys/powerpc/mambo/mambo.c projects/geom-events/sys/powerpc/mpc85xx/nexus.c projects/geom-events/sys/powerpc/mpc85xx/pci_fdt.c projects/geom-events/sys/powerpc/ofw/ofw_cpu.c projects/geom-events/sys/powerpc/ofw/ofw_pcib_pci.c projects/geom-events/sys/powerpc/ofw/ofw_real.c projects/geom-events/sys/powerpc/ofw/ofw_syscons.c projects/geom-events/sys/powerpc/ofw/rtas.c projects/geom-events/sys/powerpc/powermac/cpcht.c projects/geom-events/sys/powerpc/powermac/cuda.c projects/geom-events/sys/powerpc/powermac/dbdma.c projects/geom-events/sys/powerpc/powermac/fcu.c projects/geom-events/sys/powerpc/powermac/grackle.c projects/geom-events/sys/powerpc/powermac/pmu.c projects/geom-events/sys/powerpc/powermac/powermac_thermal.c projects/geom-events/sys/powerpc/powermac/smu.c projects/geom-events/sys/powerpc/powermac/smusat.c projects/geom-events/sys/powerpc/powermac/uninorthpci.c projects/geom-events/sys/powerpc/powerpc/busdma_machdep.c projects/geom-events/sys/powerpc/powerpc/intr_machdep.c projects/geom-events/sys/powerpc/powerpc/platform.c projects/geom-events/sys/powerpc/powerpc/pmap_dispatch.c projects/geom-events/sys/powerpc/ps3/ehci_ps3.c projects/geom-events/sys/powerpc/ps3/ohci_ps3.c projects/geom-events/sys/powerpc/ps3/ps3bus.c projects/geom-events/sys/powerpc/ps3/ps3disk.c projects/geom-events/sys/powerpc/ps3/ps3pic.c projects/geom-events/sys/rpc/clnt_dg.c projects/geom-events/sys/security/audit/audit.c projects/geom-events/sys/security/mac_biba/mac_biba.c projects/geom-events/sys/security/mac_bsdextended/mac_bsdextended.c projects/geom-events/sys/security/mac_ifoff/mac_ifoff.c projects/geom-events/sys/security/mac_lomac/mac_lomac.c projects/geom-events/sys/security/mac_mls/mac_mls.c projects/geom-events/sys/security/mac_partition/mac_partition.c projects/geom-events/sys/security/mac_portacl/mac_portacl.c projects/geom-events/sys/security/mac_seeotheruids/mac_seeotheruids.c projects/geom-events/sys/security/mac_stub/mac_stub.c projects/geom-events/sys/security/mac_test/mac_test.c projects/geom-events/sys/sparc64/central/central.c projects/geom-events/sys/sparc64/conf/DEFAULTS projects/geom-events/sys/sparc64/conf/GENERIC projects/geom-events/sys/sparc64/ebus/ebus.c projects/geom-events/sys/sparc64/ebus/epic.c projects/geom-events/sys/sparc64/fhc/fhc.c projects/geom-events/sys/sparc64/include/pcpu.h projects/geom-events/sys/sparc64/pci/apb.c projects/geom-events/sys/sparc64/pci/fire.c projects/geom-events/sys/sparc64/pci/ofw_pcib.c projects/geom-events/sys/sparc64/pci/ofw_pcibus.c projects/geom-events/sys/sparc64/pci/psycho.c projects/geom-events/sys/sparc64/pci/sbbc.c projects/geom-events/sys/sparc64/pci/schizo.c projects/geom-events/sys/sparc64/sbus/dma_sbus.c projects/geom-events/sys/sparc64/sbus/lsi64854.c projects/geom-events/sys/sparc64/sbus/lsi64854var.h projects/geom-events/sys/sparc64/sbus/sbus.c projects/geom-events/sys/sparc64/sparc64/eeprom.c projects/geom-events/sys/sparc64/sparc64/identcpu.c projects/geom-events/sys/sparc64/sparc64/iommu.c projects/geom-events/sys/sparc64/sparc64/jbusppm.c projects/geom-events/sys/sparc64/sparc64/nexus.c projects/geom-events/sys/sparc64/sparc64/rtc.c projects/geom-events/sys/sparc64/sparc64/sc_machdep.c projects/geom-events/sys/sparc64/sparc64/schppm.c projects/geom-events/sys/sparc64/sparc64/ssm.c projects/geom-events/sys/sparc64/sparc64/tick.c projects/geom-events/sys/sparc64/sparc64/upa.c projects/geom-events/sys/sys/bus.h projects/geom-events/sys/sys/cdefs.h projects/geom-events/sys/sys/event.h projects/geom-events/sys/sys/fcntl.h projects/geom-events/sys/sys/file.h projects/geom-events/sys/sys/iconv.h projects/geom-events/sys/sys/kobj.h projects/geom-events/sys/sys/lock.h projects/geom-events/sys/sys/lockmgr.h projects/geom-events/sys/sys/mchain.h projects/geom-events/sys/sys/mutex.h projects/geom-events/sys/sys/param.h projects/geom-events/sys/sys/proc.h projects/geom-events/sys/sys/rmlock.h projects/geom-events/sys/sys/rwlock.h projects/geom-events/sys/sys/sdt.h projects/geom-events/sys/sys/stack.h projects/geom-events/sys/sys/sx.h projects/geom-events/sys/sys/syscall.h projects/geom-events/sys/sys/syscall.mk projects/geom-events/sys/sys/syscallsubr.h projects/geom-events/sys/sys/sysctl.h projects/geom-events/sys/sys/sysproto.h projects/geom-events/sys/sys/timepps.h projects/geom-events/sys/sys/uio.h projects/geom-events/sys/sys/unistd.h projects/geom-events/sys/sys/user.h projects/geom-events/sys/sys/vnode.h projects/geom-events/sys/tools/makeobjops.awk projects/geom-events/sys/ufs/ffs/ffs_softdep.c projects/geom-events/sys/ufs/ffs/fs.h projects/geom-events/sys/ufs/ufs/dinode.h projects/geom-events/sys/ufs/ufs/extattr.h projects/geom-events/sys/ufs/ufs/ufs_vnops.c projects/geom-events/sys/vm/device_pager.c projects/geom-events/sys/vm/memguard.c projects/geom-events/sys/vm/redzone.c projects/geom-events/sys/vm/vm_contig.c projects/geom-events/sys/vm/vm_extern.h projects/geom-events/sys/vm/vm_map.c projects/geom-events/sys/vm/vm_object.c projects/geom-events/sys/vm/vm_object.h projects/geom-events/sys/vm/vm_page.c projects/geom-events/sys/vm/vm_page.h projects/geom-events/sys/vm/vm_pager.c projects/geom-events/sys/vm/vm_pager.h projects/geom-events/sys/vm/vm_phys.c projects/geom-events/sys/vm/vm_phys.h projects/geom-events/sys/vm/vm_reserv.c projects/geom-events/sys/vm/vm_reserv.h projects/geom-events/sys/vm/vnode_pager.c projects/geom-events/sys/x86/acpica/acpi_apm.c projects/geom-events/sys/x86/acpica/madt.c projects/geom-events/sys/x86/bios/vpd.c projects/geom-events/sys/x86/pci/pci_bus.c projects/geom-events/sys/x86/pci/qpi.c projects/geom-events/sys/x86/x86/busdma_machdep.c projects/geom-events/sys/x86/x86/io_apic.c projects/geom-events/sys/x86/x86/mca.c projects/geom-events/sys/x86/x86/mptable_pci.c projects/geom-events/sys/xen/xenstore/xenstore.c projects/geom-events/tools/regression/fifo/fifo_misc/fifo_misc.c projects/geom-events/tools/regression/lib/libc/gen/Makefile projects/geom-events/tools/tools/README projects/geom-events/tools/tools/ath/athstats/athstats.c projects/geom-events/tools/tools/netrate/netblast/netblast.c projects/geom-events/tools/tools/netrate/netreceive/netreceive.c projects/geom-events/tools/tools/netrate/netsend/netsend.c projects/geom-events/usr.bin/at/at.c projects/geom-events/usr.bin/at/parsetime.c projects/geom-events/usr.bin/banner/banner.c projects/geom-events/usr.bin/c99/c99.c projects/geom-events/usr.bin/calendar/calendar.1 projects/geom-events/usr.bin/calendar/calendar.c projects/geom-events/usr.bin/calendar/calendars/calendar.birthday projects/geom-events/usr.bin/calendar/calendars/calendar.freebsd projects/geom-events/usr.bin/calendar/io.c projects/geom-events/usr.bin/calendar/parsedata.c projects/geom-events/usr.bin/cap_mkdb/cap_mkdb.c projects/geom-events/usr.bin/catman/catman.c projects/geom-events/usr.bin/checknr/checknr.c projects/geom-events/usr.bin/chpass/chpass.h projects/geom-events/usr.bin/chpass/table.c projects/geom-events/usr.bin/cmp/extern.h projects/geom-events/usr.bin/col/col.c projects/geom-events/usr.bin/colcrt/colcrt.c projects/geom-events/usr.bin/column/column.c projects/geom-events/usr.bin/comm/comm.1 projects/geom-events/usr.bin/comm/comm.c projects/geom-events/usr.bin/compress/compress.c projects/geom-events/usr.bin/compress/doc/NOTES projects/geom-events/usr.bin/cpuset/cpuset.c projects/geom-events/usr.bin/csplit/csplit.c projects/geom-events/usr.bin/cut/cut.c projects/geom-events/usr.bin/dc/Makefile projects/geom-events/usr.bin/dc/dc.c projects/geom-events/usr.bin/du/du.c projects/geom-events/usr.bin/enigma/enigma.c projects/geom-events/usr.bin/expand/expand.c projects/geom-events/usr.bin/fold/fold.c projects/geom-events/usr.bin/fstat/fstat.c projects/geom-events/usr.bin/fstat/fuser.c projects/geom-events/usr.bin/id/id.c projects/geom-events/usr.bin/join/join.c projects/geom-events/usr.bin/lam/lam.c projects/geom-events/usr.bin/last/last.c projects/geom-events/usr.bin/lock/lock.c projects/geom-events/usr.bin/logger/logger.c projects/geom-events/usr.bin/look/look.c projects/geom-events/usr.bin/m4/gnum4.c projects/geom-events/usr.bin/m4/main.c projects/geom-events/usr.bin/make/globals.h projects/geom-events/usr.bin/make/make.1 projects/geom-events/usr.bin/ministat/ministat.c projects/geom-events/usr.bin/mt/mt.c projects/geom-events/usr.bin/paste/paste.c projects/geom-events/usr.bin/pr/extern.h projects/geom-events/usr.bin/pr/pr.c projects/geom-events/usr.bin/procstat/Makefile projects/geom-events/usr.bin/procstat/procstat.1 projects/geom-events/usr.bin/procstat/procstat.c projects/geom-events/usr.bin/procstat/procstat.h projects/geom-events/usr.bin/procstat/procstat_args.c projects/geom-events/usr.bin/procstat/procstat_vm.c projects/geom-events/usr.bin/quota/quota.c projects/geom-events/usr.bin/rs/rs.c projects/geom-events/usr.bin/ruptime/ruptime.c projects/geom-events/usr.bin/rusers/rusers.c projects/geom-events/usr.bin/rwall/rwall.c projects/geom-events/usr.bin/rwho/rwho.c projects/geom-events/usr.bin/sed/sed.1 projects/geom-events/usr.bin/seq/seq.c projects/geom-events/usr.bin/split/split.c projects/geom-events/usr.bin/tail/forward.c projects/geom-events/usr.bin/tail/tail.c projects/geom-events/usr.bin/talk/ctl.c projects/geom-events/usr.bin/talk/init_disp.c projects/geom-events/usr.bin/talk/invite.c projects/geom-events/usr.bin/talk/talk.h projects/geom-events/usr.bin/tcopy/tcopy.c projects/geom-events/usr.bin/tee/tee.c projects/geom-events/usr.bin/tr/tr.c projects/geom-events/usr.bin/tsort/tsort.c projects/geom-events/usr.bin/ul/ul.c projects/geom-events/usr.bin/uname/uname.c projects/geom-events/usr.bin/unexpand/unexpand.c projects/geom-events/usr.bin/unifdef/unifdef.c projects/geom-events/usr.bin/uniq/uniq.c projects/geom-events/usr.bin/units/units.c projects/geom-events/usr.bin/usbhidaction/usbhidaction.c projects/geom-events/usr.bin/usbhidctl/usbhid.c projects/geom-events/usr.bin/uuencode/uuencode.c projects/geom-events/usr.bin/vis/vis.c projects/geom-events/usr.bin/w/w.c projects/geom-events/usr.bin/wall/wall.c projects/geom-events/usr.bin/wc/wc.c projects/geom-events/usr.bin/whereis/whereis.c projects/geom-events/usr.bin/which/which.c projects/geom-events/usr.bin/whois/whois.c projects/geom-events/usr.bin/xinstall/xinstall.c projects/geom-events/usr.bin/xlint/xlint/xlint.c projects/geom-events/usr.bin/xstr/xstr.c projects/geom-events/usr.sbin/acpi/acpidb/acpidb.c projects/geom-events/usr.sbin/apm/apm.c projects/geom-events/usr.sbin/bluetooth/bt3cfw/bt3cfw.c projects/geom-events/usr.sbin/boot0cfg/boot0cfg.8 projects/geom-events/usr.sbin/boot0cfg/boot0cfg.c projects/geom-events/usr.sbin/cdcontrol/cdcontrol.c projects/geom-events/usr.sbin/chown/chown.c projects/geom-events/usr.sbin/chroot/chroot.c projects/geom-events/usr.sbin/config/mkmakefile.c projects/geom-events/usr.sbin/devinfo/devinfo.c projects/geom-events/usr.sbin/fdread/fdread.c projects/geom-events/usr.sbin/memcontrol/memcontrol.c projects/geom-events/usr.sbin/mergemaster/mergemaster.8 projects/geom-events/usr.sbin/mergemaster/mergemaster.sh projects/geom-events/usr.sbin/mfiutil/mfi_config.c projects/geom-events/usr.sbin/mixer/mixer.c projects/geom-events/usr.sbin/moused/moused.c projects/geom-events/usr.sbin/mptable/mptable.c projects/geom-events/usr.sbin/mtree/mtree.5 projects/geom-events/usr.sbin/pc-sysinstall/backend-query/sys-mem.sh projects/geom-events/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh projects/geom-events/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/geom-events/usr.sbin/pc-sysinstall/backend/functions-networking.sh projects/geom-events/usr.sbin/pc-sysinstall/backend/functions-unmount.sh projects/geom-events/usr.sbin/pc-sysinstall/backend/parseconfig.sh projects/geom-events/usr.sbin/pkg_install/lib/version.c projects/geom-events/usr.sbin/pmccontrol/pmccontrol.c projects/geom-events/usr.sbin/pmcstat/pmcpl_calltree.c projects/geom-events/usr.sbin/pmcstat/pmcpl_gprof.c projects/geom-events/usr.sbin/pmcstat/pmcstat.c projects/geom-events/usr.sbin/pmcstat/pmcstat_log.c projects/geom-events/usr.sbin/portsnap/portsnap/portsnap.sh projects/geom-events/usr.sbin/pwd_mkdb/pwd_mkdb.c projects/geom-events/usr.sbin/rip6query/rip6query.c projects/geom-events/usr.sbin/rmt/rmt.c projects/geom-events/usr.sbin/snapinfo/snapinfo.c projects/geom-events/usr.sbin/spray/spray.c projects/geom-events/usr.sbin/timed/timed/readmsg.c projects/geom-events/usr.sbin/timed/timed/timed.c projects/geom-events/usr.sbin/tzsetup/tzsetup.c Directory Properties: projects/geom-events/ (props changed) projects/geom-events/cddl/contrib/opensolaris/ (props changed) projects/geom-events/contrib/bind9/ (props changed) projects/geom-events/contrib/binutils/ (props changed) projects/geom-events/contrib/gcc/ (props changed) projects/geom-events/contrib/gdtoa/ (props changed) projects/geom-events/contrib/llvm/ (props changed) projects/geom-events/contrib/llvm/tools/clang/ (props changed) projects/geom-events/contrib/tzdata/ (props changed) projects/geom-events/gnu/lib/ (props changed) projects/geom-events/gnu/usr.bin/binutils/ (props changed) projects/geom-events/lib/libc/ (props changed) projects/geom-events/lib/libc/stdtime/ (props changed) projects/geom-events/sbin/ (props changed) projects/geom-events/sbin/ipfw/ (props changed) projects/geom-events/sys/ (props changed) projects/geom-events/sys/boot/ (props changed) projects/geom-events/sys/cddl/contrib/opensolaris/ (props changed) projects/geom-events/sys/conf/ (props changed) projects/geom-events/sys/contrib/pf/ (props changed) projects/geom-events/usr.bin/calendar/ (props changed) projects/geom-events/usr.bin/procstat/ (props changed) Modified: projects/geom-events/Makefile ============================================================================== --- projects/geom-events/Makefile Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/Makefile Wed Nov 23 19:38:32 2011 (r227904) @@ -182,10 +182,12 @@ buildworld: upgrade_checks # # In the following, the first 'rm' in a series will usually remove all # files and directories. If it does not, then there are probably some -# files with chflags set, so this unsets them and tries the 'rm' a +# files with file flags set, so this unsets them and tries the 'rm' a # second time. There are situations where this target will be cleaning # some directories via more than one method, but that duplication is -# needed to correctly handle all the possible situations. +# needed to correctly handle all the possible situations. Removing all +# files without file flags set in the first 'rm' instance saves time, +# because 'chflags' will need to operate on fewer files afterwards. # BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR} cleanworld: Modified: projects/geom-events/Makefile.inc1 ============================================================================== --- projects/geom-events/Makefile.inc1 Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/Makefile.inc1 Wed Nov 23 19:38:32 2011 (r227904) @@ -291,7 +291,7 @@ LIB32CPUFLAGS= -mcpu=powerpc LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE} .endif LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc \ - LD="${LD} -m elf32ppc" + LD="${LD} -m elf32ppc_fbsd" .endif @@ -313,7 +313,8 @@ LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${OBJTR LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} -DNO_CPU_CFLAGS -DCOMPAT_32BIT \ -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO \ - -DWITHOUT_HTML -DNO_CTF -DNO_LINT DESTDIR=${LIB32TMP} + -DWITHOUT_HTML -DNO_CTF -DNO_LINT -ECC -ECXX -EAS -ELD \ + DESTDIR=${LIB32TMP} LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*} -DNO_INCS .endif @@ -1229,7 +1230,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam ${_lib_libthr} \ + lib/libopie ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ ${_cddl_lib_libumem} \ lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ @@ -1322,7 +1323,7 @@ ${_lib}__PL: .PHONY .endif .endfor -.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs} +.for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs} ${_lib}__L: .PHONY .if exists(${.CURDIR}/${_lib}) ${_+_}@${ECHODIR} "===> ${_lib} (obj,depend,all,install)"; \ @@ -1334,17 +1335,6 @@ ${_lib}__L: .PHONY .endif .endfor -# libpam is special: we need to build static PAM modules before -# static PAM library, and dynamic PAM library before dynamic PAM -# modules. -lib/libpam__L: .PHONY - ${_+_}@${ECHODIR} "===> lib/libpam (obj,depend,all,install)"; \ - cd ${.CURDIR}/lib/libpam; \ - ${MAKE} DIRPRFX=lib/libpam/ obj; \ - ${MAKE} DIRPRFX=lib/libpam/ depend; \ - ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \ - ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET install - _prereq_libs: ${_prereq_libs:S/$/__PL/} _startup_libs: ${_startup_libs:S/$/__L/} _prebuild_libs: ${_prebuild_libs:S/$/__L/} Modified: projects/geom-events/ObsoleteFiles.inc ============================================================================== --- projects/geom-events/ObsoleteFiles.inc Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/ObsoleteFiles.inc Wed Nov 23 19:38:32 2011 (r227904) @@ -44,10 +44,12 @@ OLD_FILES+=usr/share/man/man8/sysinstall OLD_FILES+=usr/lib/libftpio.a OLD_FILES+=usr/lib/libftpio.so OLD_LIBS+=usr/lib/libftpio.so.8 +OLD_FILES+=usr/lib/libftpio_p.a .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libftpio.a OLD_FILES+=usr/lib32/libftpio.so OLD_LIBS+=usr/lib32/libftpio.so.8 +OLD_FILES+=usr/lib32/libftpio_p.a .endif OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz @@ -77,11 +79,22 @@ OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 .endif +# 20110817: no more acd.4, ad.4, afd.4 and ast.4 +OLD_FILES+=usr/share/man/man4/acd.4.gz +OLD_FILES+=usr/share/man/man4/ad.4.gz +OLD_FILES+=usr/share/man/man4/afd.4.gz +OLD_FILES+=usr/share/man/man4/ast.4.gz # 20110718: no longer useful in the age of rc.d OLD_FILES+=usr/sbin/named.reconfig OLD_FILES+=usr/sbin/named.reload +OLD_FILES+=usr/share/man/man8/named.reconfig.8.gz +OLD_FILES+=usr/share/man/man8/named.reload.8.gz # 20110716: bind 9.8.0 import OLD_LIBS+=usr/lib/liblwres.so.50 +OLD_FILES+=usr/share/doc/bind9/KNOWN-DEFECTS +OLD_FILES+=usr/share/doc/bind9/NSEC3-NOTES +OLD_FILES+=usr/share/doc/bind9/README.idnkit +OLD_FILES+=usr/share/doc/bind9/README.pkcs11 # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. Modified: projects/geom-events/UPDATING ============================================================================== --- projects/geom-events/UPDATING Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/UPDATING Wed Nov 23 19:38:32 2011 (r227904) @@ -22,6 +22,16 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20111108: + The option VFS_ALLOW_NONMPSAFE option has been added in order to + explicitely support non-MPSAFE filesystems. + It is on by default for all supported platform at this present + time. + +20111101: + The broken amd(4) driver has been replaced with esp(4) in the amd64, + i386 and pc98 GENERIC kernel configuration files. + 20110930: sysinstall has been removed Modified: projects/geom-events/bin/cat/cat.c ============================================================================== --- projects/geom-events/bin/cat/cat.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/cat/cat.c Wed Nov 23 19:38:32 2011 (r227904) @@ -64,9 +64,9 @@ __FBSDID("$FreeBSD$"); #include #include -int bflag, eflag, nflag, sflag, tflag, vflag; -int rval; -const char *filename; +static int bflag, eflag, nflag, sflag, tflag, vflag; +static int rval; +static const char *filename; static void usage(void); static void scanfiles(char *argv[], int cooked); Modified: projects/geom-events/bin/ln/ln.c ============================================================================== --- projects/geom-events/bin/ln/ln.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/ln/ln.c Wed Nov 23 19:38:32 2011 (r227904) @@ -54,16 +54,16 @@ __FBSDID("$FreeBSD$"); #include #include -int fflag; /* Unlink existing files. */ -int Fflag; /* Remove empty directories also. */ -int hflag; /* Check new name for symlink first. */ -int iflag; /* Interactive mode. */ -int Pflag; /* Create hard links to symlinks. */ -int sflag; /* Symbolic, not hard, link. */ -int vflag; /* Verbose output. */ -int wflag; /* Warn if symlink target does not +static int fflag; /* Unlink existing files. */ +static int Fflag; /* Remove empty directories also. */ +static int hflag; /* Check new name for symlink first. */ +static int iflag; /* Interactive mode. */ +static int Pflag; /* Create hard links to symlinks. */ +static int sflag; /* Symbolic, not hard, link. */ +static int vflag; /* Verbose output. */ +static int wflag; /* Warn if symlink target does not * exist, and -f is not enabled. */ -char linkch; +static char linkch; int linkit(const char *, const char *, int); void usage(void); Modified: projects/geom-events/bin/mkdir/mkdir.c ============================================================================== --- projects/geom-events/bin/mkdir/mkdir.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/mkdir/mkdir.c Wed Nov 23 19:38:32 2011 (r227904) @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); static int build(char *, mode_t); static void usage(void); -int vflag; +static int vflag; int main(int argc, char *argv[]) Modified: projects/geom-events/bin/mv/mv.c ============================================================================== --- projects/geom-events/bin/mv/mv.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/mv/mv.c Wed Nov 23 19:38:32 2011 (r227904) @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); /* Exit code for a failed exec. */ #define EXEC_FAILED 127 -int fflg, iflg, nflg, vflg; +static int fflg, iflg, nflg, vflg; static int copy(const char *, const char *); static int do_move(const char *, const char *); Modified: projects/geom-events/bin/ps/print.c ============================================================================== --- projects/geom-events/bin/ps/print.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/ps/print.c Wed Nov 23 19:38:32 2011 (r227904) @@ -362,7 +362,7 @@ tdev(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV) - str = strdup("??"); + str = strdup("-"); else asprintf(&str, "%#jx", (uintmax_t)dev); @@ -379,7 +379,7 @@ tname(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) - str = strdup("?? "); + str = strdup("- "); else { if (strncmp(ttname, "tty", 3) == 0 || strncmp(ttname, "cua", 3) == 0) @@ -403,7 +403,7 @@ longtname(KINFO *k, VARENT *ve) v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) - ttname = "??"; + ttname = "-"; return (strdup(ttname)); } Modified: projects/geom-events/bin/ps/ps.1 ============================================================================== --- projects/geom-events/bin/ps/ps.1 Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/ps/ps.1 Wed Nov 23 19:38:32 2011 (r227904) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd October 1, 2011 +.Dd November 22, 2011 .Dt PS 1 .Os .Sh NAME @@ -98,12 +98,6 @@ The default output format includes, for controlling terminal, state, CPU time (including both user and system time) and associated command. .Pp -The process file system (see -.Xr procfs 5 ) -should be mounted when -.Nm -is executed, otherwise not all information will be available. -.Pp The options are as follows: .Bl -tag -width indent .It Fl a @@ -437,6 +431,10 @@ This is followed by a .Ql - if the process can no longer reach that controlling terminal (i.e., it has been revoked). +A +.Ql - +without a preceding two letter abbreviation or pseudo-terminal device number +indicates a process which never had a controlling terminal. The full pathname of the controlling terminal is available via the .Cm tty keyword. @@ -682,9 +680,6 @@ attempts to automatically determine the .Bl -tag -width ".Pa /boot/kernel/kernel" -compact .It Pa /boot/kernel/kernel default system namelist -.It Pa /proc -the mount point of -.Xr procfs 5 .El .Sh SEE ALSO .Xr kill 1 , Modified: projects/geom-events/bin/ps/ps.c ============================================================================== --- projects/geom-events/bin/ps/ps.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/ps/ps.c Wed Nov 23 19:38:32 2011 (r227904) @@ -130,7 +130,6 @@ struct listinfo { } l; }; -static int check_procfs(void); static int addelem_gid(struct listinfo *, const char *); static int addelem_pid(struct listinfo *, const char *); static int addelem_tty(struct listinfo *, const char *); @@ -411,14 +410,6 @@ main(int argc, char *argv[]) argv += optind; /* - * If the user specified ps -e then they want a copy of the process - * environment kvm_getenvv(3) attempts to open /proc//mem. - * Check to make sure that procfs is mounted on /proc, otherwise - * print a warning informing the user that output will be incomplete. - */ - if (needenv == 1 && check_procfs() == 0) - warnx("Process environment requires procfs(5)"); - /* * If there arguments after processing all the options, attempt * to treat them as a list of process ids. */ @@ -1360,18 +1351,6 @@ kludge_oldps_options(const char *optlist return (newopts); } -static int -check_procfs(void) -{ - struct statfs mnt; - - if (statfs("/proc", &mnt) < 0) - return (0); - if (strcmp(mnt.f_fstypename, "procfs") != 0) - return (0); - return (1); -} - static void usage(void) { Modified: projects/geom-events/bin/rm/rm.c ============================================================================== --- projects/geom-events/bin/rm/rm.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/rm/rm.c Wed Nov 23 19:38:32 2011 (r227904) @@ -57,10 +57,10 @@ __FBSDID("$FreeBSD$"); #include #include -int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok; -int rflag, Iflag; -uid_t uid; -volatile sig_atomic_t info; +static int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok; +static int rflag, Iflag; +static uid_t uid; +static volatile sig_atomic_t info; int check(char *, char *, struct stat *); int check2(char **); Modified: projects/geom-events/bin/sh/arith_yacc.c ============================================================================== --- projects/geom-events/bin/sh/arith_yacc.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/sh/arith_yacc.c Wed Nov 23 19:38:32 2011 (r227904) @@ -131,11 +131,11 @@ static arith_t do_binop(int op, arith_t yyerror("divide error"); return op == ARITH_REM ? a % b : a / b; case ARITH_MUL: - return a * b; + return (uintmax_t)a * (uintmax_t)b; case ARITH_ADD: - return a + b; + return (uintmax_t)a + (uintmax_t)b; case ARITH_SUB: - return a - b; + return (uintmax_t)a - (uintmax_t)b; case ARITH_LSHIFT: return a << b; case ARITH_RSHIFT: Modified: projects/geom-events/bin/sh/options.c ============================================================================== --- projects/geom-events/bin/sh/options.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/sh/options.c Wed Nov 23 19:38:32 2011 (r227904) @@ -401,9 +401,10 @@ setcmd(int argc, char **argv) void getoptsreset(const char *value) { - if (number(value) == 1) { + while (*value == '0') + value++; + if (strcmp(value, "1") == 0) shellparam.reset = 1; - } } /* Modified: projects/geom-events/bin/sh/sh.1 ============================================================================== --- projects/geom-events/bin/sh/sh.1 Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/sh/sh.1 Wed Nov 23 19:38:32 2011 (r227904) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd July 10, 2011 +.Dd November 5, 2011 .Dt SH 1 .Os .Sh NAME @@ -1160,6 +1160,11 @@ of alphabetics, numerics, and underscore The first letter of a variable name must not be numeric. A parameter can also be denoted by a number or a special character as explained below. +.Pp +Assignments are expanded differently from other words: +tilde expansion is also performed after the equals sign and after any colon +and usernames are also terminated by colons, +and field splitting and pathname expansion are not performed. .Ss Positional Parameters A positional parameter is a parameter denoted by a number greater than zero. The shell sets these initially to the values of its command line @@ -1273,11 +1278,15 @@ used in tilde expansion and as a default built-in. .It Va IFS Input Field Separators. -This is normally set to +The default value is .Aq space , .Aq tab , and -.Aq newline . +.Aq newline +in that order. +This default also applies if +.Va IFS +is unset, but not if it is set to the empty string. See the .Sx White Space Splitting section for more details. @@ -1423,12 +1432,12 @@ part of the name. If a parameter expansion occurs inside double-quotes: .Bl -enum .It -Pathname expansion is not performed on the results of the -expansion. -.It Field splitting is not performed on the results of the expansion, with the exception of the special parameter .Va @ . +.It +Pathname expansion is not performed on the results of the +expansion. .El .Pp In addition, a parameter expansion can be modified by using one of the @@ -1641,16 +1650,51 @@ and contain integer constants. .Pp The result of the expression is substituted in decimal. .Ss White Space Splitting (Field Splitting) -After parameter expansion, command substitution, and +In certain contexts, +after parameter expansion, command substitution, and arithmetic expansion the shell scans the results of expansions and substitutions that did not occur in double-quotes for field splitting and multiple fields can result. .Pp -The shell treats each character of the +Characters in +.Va IFS +that are whitespace +.Po +.Aq space , +.Aq tab , +and +.Aq newline +.Pc +are treated differently from other characters in +.Va IFS . +.Pp +Whitespace in +.Va IFS +at the beginning or end of a word is discarded. +.Pp +Subsequently, a field is delimited by either +.Bl -enum +.It +a non-whitespace character in +.Va IFS +with any whitespace in +.Va IFS +surrounding it, or +.It +one or more whitespace characters in +.Va IFS . +.El +.Pp +If a word ends with a non-whitespace character in +.Va IFS , +there is no empty field after this character. +.Pp +If no field is delimited, the word is discarded. +In particular, if a word consists solely of an unquoted substitution +and the result of the substitution is null, +it is removed by field splitting even if .Va IFS -variable as a delimiter and uses -the delimiters to split the results of parameter expansion and command -substitution into fields. +is null. .Ss Pathname Expansion (File Name Generation) Unless the .Fl f Modified: projects/geom-events/bin/test/test.c ============================================================================== --- projects/geom-events/bin/test/test.c Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/bin/test/test.c Wed Nov 23 19:38:32 2011 (r227904) @@ -118,7 +118,7 @@ enum token_types { PAREN }; -struct t_op { +static struct t_op { const char *op_text; short op_num, op_type; } const ops [] = { @@ -165,10 +165,10 @@ struct t_op { {0, 0, 0} }; -struct t_op const *t_wp_op; -int nargc; -char **t_wp; -int parenlevel; +static struct t_op const *t_wp_op; +static int nargc; +static char **t_wp; +static int parenlevel; static int aexpr(enum token); static int binop(void); Modified: projects/geom-events/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- projects/geom-events/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Wed Nov 23 19:38:32 2011 (r227904) @@ -3,7 +3,8 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] -.TH zdb 1M "31 Oct 2005" "SunOS 5.11" "System Administration Commands" +.\" Portions Copyright 2011 Martin Matuska +.TH ZDB 8 "Oct 31, 2005" .SH NAME zdb \- ZFS debugger .SH SYNOPSIS @@ -15,70 +16,50 @@ zdb \- ZFS debugger .SH DESCRIPTION .sp .LP -The \fBzdb\fR command is used by support engineers to diagnose failures and gather statistics. Since the \fBZFS\fR file system is always consistent on disk and is self-repairing, \fBzdb\fR should only be run under the direction by a support engineer. +The \fBzdb\fR command is used by support engineers to diagnose failures and +gather statistics. Since the \fBZFS\fR file system is always consistent on disk +and is self-repairing, \fBzdb\fR should only be run under the direction by a +support engineer. .sp .LP -If no arguments are specified, \fBzdb\fR, performs basic consistency checks on the pool and associated datasets, and report any problems detected. +If no arguments are specified, \fBzdb\fR, performs basic consistency checks on +the pool and associated datasets, and report any problems detected. .sp .LP -Any options supported by this command are internal to Sun and subject to change at any time. +Any options supported by this command are internal to Sun and subject to change +at any time. .SH EXIT STATUS .sp .LP The following exit values are returned: .sp .ne 2 -.mk .na \fB\fB0\fR\fR .ad .RS 5n -.rt The pool is consistent. .RE .sp .ne 2 -.mk .na \fB\fB1\fR\fR .ad .RS 5n -.rt An error was detected. .RE .sp .ne 2 -.mk .na \fB\fB2\fR\fR .ad .RS 5n -.rt Invalid command line options were specified. .RE -.SH ATTRIBUTES -.sp -.LP -See \fBattributes\fR(5) for descriptions of the following attributes: -.sp - -.sp -.TS -tab() box; -cw(2.75i) |cw(2.75i) -lw(2.75i) |lw(2.75i) -. -ATTRIBUTE TYPEATTRIBUTE VALUE -_ -AvailabilitySUNWzfsu -_ -Interface StabilityUnstable -.TE - .SH SEE ALSO .sp .LP -\fBzfs\fR(1M), \fBzpool\fR(1M), \fBattributes\fR(5) +zfs(8), zpool(8) Modified: projects/geom-events/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- projects/geom-events/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Wed Nov 23 19:11:03 2011 (r227903) +++ projects/geom-events/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Wed Nov 23 19:38:32 2011 (r227904) @@ -8,7 +8,9 @@ .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .\" Copyright 2011 Nexenta Systems, Inc. All rights reserved. .\" Copyright 2011 by Delphix. All rights reserved. -.TH zfs 1M "24 Sep 2009" "SunOS 5.11" "System Administration Commands" +.\" Portions Copyright 2011 Pawel Jakub Dawidek +.\" Portions Copyright 2011 Martin Matuska +.TH ZFS 8 "September 24, 2009" FreeBSD .SH NAME zfs \- configures ZFS file systems .SH SYNOPSIS @@ -39,7 +41,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR]... +\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR]... \fIfilesystem@snapname\fR|\fIvolume@snapname\fR .fi @@ -60,7 +62,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBrename\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR +\fBzfs\fR \fBrename\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR .fi @@ -125,7 +127,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBmount\fR +\fBzfs\fR \fBmount\fR .fi .LP @@ -170,7 +172,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBallow\fR [\fB-ldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] \fIperm\fR|\fI@setname\fR[,...] +\fBzfs\fR \fBallow\fR [\fB-ldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] \fIperm\fR|\fI@setname\fR[,...] \fIfilesystem\fR|\fIvolume\fR .fi @@ -191,7 +193,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBunallow\fR [\fB-rldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] [\fIperm\fR|@\fIsetname\fR[,... ]] +\fBzfs\fR \fBunallow\fR [\fB-rldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] [\fIperm\fR|@\fIsetname\fR[,... ]] \fIfilesystem\fR|\fIvolume\fR .fi @@ -225,17 +227,22 @@ zfs \- configures ZFS file systems \fBzfs\fR \fBrelease\fR [\fB-r\fR] \fItag\fR \fIsnapshot\fR... .fi -\fBzfs\fR \fBjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR +.LP +.nf +\fBzfs\fR \fBjail\fR \fIjailid\fR \fIfilesystem\fR .fi + .LP .nf -\fBzfs\fR \fBunjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR +\fBzfs\fR \fBunjail\fR \fIjailid\fR \fIfilesystem\fR .fi .SH DESCRIPTION .sp .LP -The \fBzfs\fR command configures \fBZFS\fR datasets within a \fBZFS\fR storage pool, as described in \fBzpool\fR(1M). A dataset is identified by a unique path within the \fBZFS\fR namespace. For example: +The \fBzfs\fR command configures \fBZFS\fR datasets within a \fBZFS\fR storage +pool, as described in \fBzpool\fR(8). A dataset is identified by a unique path +within the \fBZFS\fR namespace. For example: .sp .in +2 .nf @@ -252,115 +259,164 @@ where the maximum length of a dataset na A dataset can be one of the following: .sp .ne 2 -.mk .na \fB\fIfile system\fR\fR .ad .sp .6 .RS 4n -A \fBZFS\fR dataset of type \fBfilesystem\fR can be mounted within the standard system namespace and behaves like other file systems. While \fBZFS\fR file systems are designed to be \fBPOSIX\fR compliant, known issues exist that prevent compliance in some cases. Applications that depend on standards conformance might fail due to nonstandard behavior when checking file system free space. +A \fBZFS\fR dataset of type \fBfilesystem\fR can be mounted within the standard +system namespace and behaves like other file systems. While \fBZFS\fR file +systems are designed to be \fBPOSIX\fR compliant, known issues exist that +prevent compliance in some cases. Applications that depend on standards +conformance might fail due to nonstandard behavior when checking file system +free space. .RE .sp .ne 2 -.mk .na \fB\fIvolume\fR\fR .ad .sp .6 .RS 4n -A logical volume exported as a raw or block device. This type of dataset should only be used under special circumstances. File systems are typically used in most environments. +A logical volume exported as a raw or block device. This type of dataset should +only be used under special circumstances. File systems are typically used in +most environments. .RE .sp .ne 2 -.mk .na \fB\fIsnapshot\fR\fR .ad .sp .6 .RS 4n -A read-only version of a file system or volume at a given point in time. It is specified as \fIfilesystem@name\fR or \fIvolume@name\fR. +A read-only version of a file system or volume at a given point in time. It is +specified as \fIfilesystem@name\fR or \fIvolume@name\fR. .RE .SS "ZFS File System Hierarchy" .sp .LP -A \fBZFS\fR storage pool is a logical collection of devices that provide space for datasets. A storage pool is also the root of the \fBZFS\fR file system hierarchy. +A \fBZFS\fR storage pool is a logical collection of devices that provide space +for datasets. A storage pool is also the root of the \fBZFS\fR file system +hierarchy. .sp .LP -The root of the pool can be accessed as a file system, such as mounting and unmounting, taking snapshots, and setting properties. The physical storage characteristics, however, are managed by the \fBzpool\fR(1M) command. +The root of the pool can be accessed as a file system, such as mounting and +unmounting, taking snapshots, and setting properties. The physical storage +characteristics, however, are managed by the \fBzpool\fR(8) command. .sp .LP -See \fBzpool\fR(1M) for more information on creating and administering pools. +See \fBzpool\fR(8) for more information on creating and administering pools. .SS "Snapshots" .sp .LP -A snapshot is a read-only copy of a file system or volume. Snapshots can be created extremely quickly, and initially consume no additional space within the pool. As data within the active dataset changes, the snapshot consumes more data than would otherwise be shared with the active dataset. +A snapshot is a read-only copy of a file system or volume. Snapshots can be +created extremely quickly, and initially consume no additional space within the +pool. As data within the active dataset changes, the snapshot consumes more +data than would otherwise be shared with the active dataset. .sp .LP -Snapshots can have arbitrary names. Snapshots of volumes can be cloned or rolled back, but cannot be accessed independently. +Snapshots can have arbitrary names. Snapshots of volumes can be cloned or +rolled back, but cannot be accessed independently. .sp .LP -File system snapshots can be accessed under the \fB\&.zfs/snapshot\fR directory in the root of the file system. Snapshots are automatically mounted on demand and may be unmounted at regular intervals. The visibility of the \fB\&.zfs\fR directory can be controlled by the \fBsnapdir\fR property. +File system snapshots can be accessed under the \fB\&.zfs/snapshot\fR directory +in the root of the file system. Snapshots are automatically mounted on demand +and may be unmounted at regular intervals. The visibility of the \fB\&.zfs\fR +directory can be controlled by the \fBsnapdir\fR property. .SS "Clones" .sp .LP -A clone is a writable volume or file system whose initial contents are the same as another dataset. As with snapshots, creating a clone is nearly instantaneous, and initially consumes no additional space. -.sp -.LP -Clones can only be created from a snapshot. When a snapshot is cloned, it creates an implicit dependency between the parent and child. Even though the clone is created somewhere else in the dataset hierarchy, the original snapshot cannot be destroyed as long as a clone exists. The \fBorigin\fR property exposes this dependency, and the \fBdestroy\fR command lists any such dependencies, if they exist. -.sp -.LP -The clone parent-child dependency relationship can be reversed by using the \fBpromote\fR subcommand. This causes the "origin" file system to become a clone of the specified file system, which makes it possible to destroy the file system that the clone was created from. +A clone is a writable volume or file system whose initial contents are the same +as another dataset. As with snapshots, creating a clone is nearly +instantaneous, and initially consumes no additional space. +.sp +.LP +Clones can only be created from a snapshot. When a snapshot is cloned, it +creates an implicit dependency between the parent and child. Even though the +clone is created somewhere else in the dataset hierarchy, the original snapshot +cannot be destroyed as long as a clone exists. The \fBorigin\fR property +exposes this dependency, and the \fBdestroy\fR command lists any such +dependencies, if they exist. +.sp +.LP +The clone parent-child dependency relationship can be reversed by using the +\fBpromote\fR subcommand. This causes the "origin" file system to become a +clone of the specified file system, which makes it possible to destroy the file +system that the clone was created from. .SS "Mount Points" .sp .LP -Creating a \fBZFS\fR file system is a simple operation, so the number of file systems per system is likely to be numerous. To cope with this, \fBZFS\fR automatically manages mounting and unmounting file systems without the need to edit the \fB/etc/vfstab\fR file. All automatically managed file systems are mounted by \fBZFS\fR at boot time. +Creating a \fBZFS\fR file system is a simple operation, so the number of file +systems per system is likely to be numerous. To cope with this, \fBZFS\fR +automatically manages mounting and unmounting file systems without the need to +edit the \fB/etc/fstab\fR file. All automatically managed file systems are +mounted by \fBZFS\fR at boot time. .sp .LP -By default, file systems are mounted under \fB/\fIpath\fR\fR, where \fIpath\fR is the name of the file system in the \fBZFS\fR namespace. Directories are created and destroyed as needed. +By default, file systems are mounted under \fB/\fIpath\fR\fR, where \fIpath\fR +is the name of the file system in the \fBZFS\fR namespace. Directories are +created and destroyed as needed. .sp .LP -A file system can also have a mount point set in the \fBmountpoint\fR property. This directory is created as needed, and \fBZFS\fR automatically mounts the file system when the \fBzfs mount -a\fR command is invoked (without editing \fB/etc/vfstab\fR). The \fBmountpoint\fR property can be inherited, so if \fBpool/home\fR has a mount point of \fB/export/stuff\fR, then \fBpool/home/user\fR automatically inherits a mount point of \fB/export/stuff/user\fR. +A file system can also have a mount point set in the \fBmountpoint\fR property. +This directory is created as needed, and \fBZFS\fR automatically mounts the +file system when the \fBzfs mount -a\fR command is invoked (without editing +\fB/etc/fstab\fR). The \fBmountpoint\fR property can be inherited, so if +\fBpool/home\fR has a mount point of \fB/export/stuff\fR, then +\fBpool/home/user\fR automatically inherits a mount point of +\fB/export/stuff/user\fR. .sp .LP -A file system \fBmountpoint\fR property of \fBnone\fR prevents the file system from being mounted. +A file system \fBmountpoint\fR property of \fBnone\fR prevents the file system +from being mounted. .sp .LP -If needed, \fBZFS\fR file systems can also be managed with traditional tools (\fBmount\fR, \fBumount\fR, \fB/etc/vfstab\fR). If a file system's mount point is set to \fBlegacy\fR, \fBZFS\fR makes no attempt to manage the file system, and the administrator is responsible for mounting and unmounting the file system. -.SS "Zones" +If needed, \fBZFS\fR file systems can also be managed with traditional tools +(\fBmount\fR, \fBumount\fR, \fB/etc/fstab\fR). If a file system's mount point +is set to \fBlegacy\fR, \fBZFS\fR makes no attempt to manage the file system, +and the administrator is responsible for mounting and unmounting the file +system. +.SS "Jails" .sp .LP -A \fBZFS\fR file system can be added to a non-global zone by using the \fBzonecfg\fR \fBadd fs\fR subcommand. A \fBZFS\fR file system that is added to a non-global zone must have its \fBmountpoint\fR property set to \fBlegacy\fR. +A \fBZFS\fR dataset can be attached to a jail by using the \fBzfs\fR +\fBjail\fR subcommand. You cannot attach a dataset to one jail and the +children of the same dataset to another jails. To allow managment of the +dataset from within a jail, the "\fBjailed\fR" property has to be set. +The \fBquota\fR property cannot be changed from within a jail. .sp .LP -The physical properties of an added file system are controlled by the global administrator. However, the zone administrator can create, modify, or destroy files within the added file system, depending on how the file system is mounted. +A \fBZFS\fR dataset can be detached from a jail using the \fBzfs\fR +\fBunjail\fR subcommand. .sp .LP -A dataset can also be delegated to a non-global zone by using the \fBzonecfg\fR \fBadd dataset\fR subcommand. You cannot delegate a dataset to one zone and the children of the same dataset to another zone. The zone administrator can change properties of the dataset or any of its children. However, the \fBquota\fR property is controlled by the global administrator. -.sp -.LP -A \fBZFS\fR volume can be added as a device to a non-global zone by using the \fBzonecfg\fR \fBadd device\fR subcommand. However, its physical properties can be modified only by the global administrator. -.sp -.LP -For more information about \fBzonecfg\fR syntax, see \fBzonecfg\fR(1M). -.sp -.LP -After a dataset is delegated to a non-global zone, the \fBzoned\fR property is automatically set. A zoned file system cannot be mounted in the global zone, since the zone administrator might have to set the mount point to an unacceptable value. -.sp -.LP -The global administrator can forcibly clear the \fBzoned\fR property, though this should be done with extreme care. The global administrator should verify that all the mount points are acceptable before clearing the property. +After a dataset is attached to a jail and the \fBjailed\fR property is set, +a jailed file system cannot be mounted outside the jail, since the jail +administrator might have set the mount point to an unacceptable value. .SS "Native Properties" .sp .LP -Properties are divided into two types, native properties and user-defined (or "user") properties. Native properties either export internal statistics or control \fBZFS\fR behavior. In addition, native properties are either editable or read-only. User properties have no effect on \fBZFS\fR behavior, but you can use them to annotate datasets in a way that is meaningful in your environment. For more information about user properties, see the "User Properties" section, below. -.sp -.LP -Every dataset has a set of properties that export statistics about the dataset as well as control various behaviors. Properties are inherited from the parent unless overridden by the child. Some properties apply only to certain types of datasets (file systems, volumes, or snapshots). -.sp -.LP -The values of numeric properties can be specified using human-readable suffixes (for example, \fBk\fR, \fBKB\fR, \fBM\fR, \fBGb\fR, and so forth, up to \fBZ\fR for zettabyte). The following are all valid (and equal) specifications: +Properties are divided into two types, native properties and user-defined (or +"user") properties. Native properties either export internal statistics or +control \fBZFS\fR behavior. In addition, native properties are either editable +or read-only. User properties have no effect on \fBZFS\fR behavior, but you can +use them to annotate datasets in a way that is meaningful in your environment. +For more information about user properties, see the "User Properties" section, +below. +.sp +.LP +Every dataset has a set of properties that export statistics about the dataset +as well as control various behaviors. Properties are inherited from the parent +unless overridden by the child. Some properties apply only to certain types of +datasets (file systems, volumes, or snapshots). +.sp +.LP +The values of numeric properties can be specified using human-readable suffixes +(for example, \fBk\fR, \fBKB\fR, \fBM\fR, \fBGb\fR, and so forth, up to \fBZ\fR +for zettabyte). The following are all valid (and equal) specifications: .sp .in +2 .nf @@ -371,37 +427,47 @@ The values of numeric properties can be .sp .LP -The values of non-numeric properties are case sensitive and must be lowercase, except for \fBmountpoint\fR, \fBsharenfs\fR, and \fBsharesmb\fR. +The values of non-numeric properties are case sensitive and must be lowercase, +except for \fBmountpoint\fR, \fBsharenfs\fR, and \fBsharesmb\fR. .sp .LP -The following native properties consist of read-only statistics about the dataset. These properties can be neither set, nor inherited. Native properties apply to all dataset types unless otherwise noted. +The following native properties consist of read-only statistics about the +dataset. These properties can be neither set, nor inherited. Native properties +apply to all dataset types unless otherwise noted. .sp .ne 2 -.mk .na \fB\fBavailable\fR\fR .ad .sp .6 .RS 4n -The amount of space available to the dataset and all its children, assuming that there is no other activity in the pool. Because space is shared within a pool, availability can be limited by any number of factors, including physical pool size, quotas, reservations, or other datasets within the pool. +The amount of space available to the dataset and all its children, assuming +that there is no other activity in the pool. Because space is shared within a +pool, availability can be limited by any number of factors, including physical +pool size, quotas, reservations, or other datasets within the pool. .sp -This property can also be referred to by its shortened column name, \fBavail\fR. +This property can also be referred to by its shortened column name, +\fBavail\fR. .RE .sp .ne 2 -.mk .na \fB\fBcompressratio\fR\fR .ad .sp .6 .RS 4n -For non-snapshots, the compression ratio achieved for the \fBused\fR space of this dataset, expressed as a multiplier. The \fBused\fR property includes descendant datasets, and, for clones, does not include the space shared with the origin snapshot. For snapshots, the \fBcompressratio\fR is the same as the \fBrefcompressratio\fR property. Compression can be turned on by running: \fBzfs set compression=on \fIdataset\fR\fR. The default value is \fBoff\fR. +For non-snapshots, the compression ratio achieved for the \fBused\fR +space of this dataset, expressed as a multiplier. The \fBused\fR +property includes descendant datasets, and, for clones, does not include +the space shared with the origin snapshot. For snapshots, the +\fBcompressratio\fR is the same as the \fBrefcompressratio\fR property. +Compression can be turned on by running: \fBzfs set compression=on +\fIdataset\fR\fR. The default value is \fBoff\fR. .RE .sp .ne 2 -.mk .na \fB\fBcreation\fR\fR .ad @@ -412,64 +478,69 @@ The time this dataset was created. .sp .ne 2 -.mk .na \fB\fBdefer_destroy\fR\fR .ad .sp .6 .RS 4n -This property is \fBon\fR if the snapshot has been marked for deferred destroy by using the \fBzfs destroy\fR \fB-d\fR command. Otherwise, the property is \fBoff\fR. +This property is \fBon\fR if the snapshot has been marked for deferred destroy +by using the \fBzfs destroy\fR \fB-d\fR command. Otherwise, the property is +\fBoff\fR. .RE .sp .ne 2 -.mk .na \fB\fBmounted\fR\fR .ad .sp .6 .RS 4n -For file systems, indicates whether the file system is currently mounted. This property can be either \fByes\fR or \fBno\fR. +For file systems, indicates whether the file system is currently mounted. This +property can be either \fByes\fR or \fBno\fR. .RE .sp .ne 2 -.mk .na \fB\fBorigin\fR\fR .ad .sp .6 .RS 4n -For cloned file systems or volumes, the snapshot from which the clone was created. The origin cannot be destroyed (even with the \fB-r\fR or \fB-f\fR options) so long as a clone exists. +For cloned file systems or volumes, the snapshot from which the clone was +created. The origin cannot be destroyed (even with the \fB-r\fR or \fB-f\fR +options) so long as a clone exists. .RE .sp .ne 2 -.mk .na \fB\fBreferenced\fR\fR .ad .sp .6 .RS 4n -The amount of data that is accessible by this dataset, which may or may not be shared with other datasets in the pool. When a snapshot or clone is created, it initially references the same amount of space as the file system or snapshot it was created from, since its contents are identical. +The amount of data that is accessible by this dataset, which may or may not be *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Nov 23 20:01:35 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EA8C106564A; Wed, 23 Nov 2011 20:01:35 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E9478FC14; Wed, 23 Nov 2011 20:01:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pANK1ZBe060856; Wed, 23 Nov 2011 20:01:35 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pANK1Za3060854; Wed, 23 Nov 2011 20:01:35 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201111232001.pANK1Za3060854@svn.freebsd.org> From: Xin LI Date: Wed, 23 Nov 2011 20:01:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227905 - projects/head_mfi/sys/dev/mfi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Nov 2011 20:01:35 -0000 Author: delphij Date: Wed Nov 23 20:01:35 2011 New Revision: 227905 URL: http://svn.freebsd.org/changeset/base/227905 Log: Apply a different approach for the timeout from Scott Long. Instead of doing the (expensive) dummy read and do nothing with the result, move it to the end of the interrupt handler, and restart the interrupt handler if we see more pending job to do. Modified: projects/head_mfi/sys/dev/mfi/mfi.c Modified: projects/head_mfi/sys/dev/mfi/mfi.c ============================================================================== --- projects/head_mfi/sys/dev/mfi/mfi.c Wed Nov 23 19:38:32 2011 (r227904) +++ projects/head_mfi/sys/dev/mfi/mfi.c Wed Nov 23 20:01:35 2011 (r227905) @@ -1230,12 +1230,7 @@ mfi_intr(void *arg) if (sc->mfi_check_clear_intr(sc)) return; - /* - * Do a dummy read to flush the interrupt ACK that we just performed, - * ensuring that everything is really, truly consistent. - */ - (void)sc->mfi_read_fw_status(sc); - +restart: pi = sc->mfi_comms->hw_pi; ci = sc->mfi_comms->hw_ci; mtx_lock(&sc->mfi_io_lock); @@ -1260,6 +1255,14 @@ mfi_intr(void *arg) mfi_startio(sc); mtx_unlock(&sc->mfi_io_lock); + /* + * Dummy read to flush the bus; this ensures that the indexes are up + * to date. Restart processing if more commands have come it. + */ + (void)sc->mfi_read_fw_status(sc); + if (pi != sc->mfi_comms->hw_pi) + goto restart; + return; } From owner-svn-src-projects@FreeBSD.ORG Fri Nov 25 12:51:32 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB899106564A; Fri, 25 Nov 2011 12:51:32 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DB0BB8FC14; Fri, 25 Nov 2011 12:51:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAPCpWC1044031; Fri, 25 Nov 2011 12:51:32 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAPCpWjH044029; Fri, 25 Nov 2011 12:51:32 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111251251.pAPCpWjH044029@svn.freebsd.org> From: Mark Linimon Date: Fri, 25 Nov 2011 12:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227970 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Nov 2011 12:51:33 -0000 Author: linimon (doc,ports committer) Date: Fri Nov 25 12:51:32 2011 New Revision: 227970 URL: http://svn.freebsd.org/changeset/base/227970 Log: Restore the copying of /var/portbuild/scripts for now. There are some places where the local override does not seem to be working correctly. While here, make some messages more consistent. Modified: projects/portbuild/scripts/dosetupnode Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Fri Nov 25 12:43:34 2011 (r227969) +++ projects/portbuild/scripts/dosetupnode Fri Nov 25 12:51:32 2011 (r227970) @@ -81,18 +81,22 @@ setup() { ${client_setup} pre-copy ${args} || (echo "pre-copy for ${node} failed"; return 1) if [ "${norsync}" -eq 0 ]; then + rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pbc}/scripts ${pbc}/sources \ + ${client_user}@${node}:${pbc}/ + checkerror $? || (echo "Copying scripts to ${node} failed"; return 1) + # conf files (e.g. client.conf and common.conf) can be symlinks outside # this dir, so copy the actual files rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete ${pbd}/${arch}/*.conf \ ${client_user}@${node}:${pbd}/${arch} - checkerror $? || (echo "copying *.conf to ${node} failed"; return 1) + checkerror $? || (echo "Copying *.conf to ${node} failed"; return 1) # portbuild.* can be symlinks outside this dir, so copy the actual # files # XXX MCL really, only have to do portbuild.conf and portbuild..conf rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete ${pbd}/${arch}/portbuild* \ ${client_user}@${node}:${pbd}/${arch} - checkerror $? || (echo "copying portbuild* files to ${node} failed"; return 1) + checkerror $? || (echo "Copying portbuild* files to ${node} failed"; return 1) if [ -f "${pbd}/${arch}/clients/bindist-${node}.tar" ]; then rsync ${rsync_gzip} -e "${ssh_cmd}" -r -L -p --delete \ From owner-svn-src-projects@FreeBSD.ORG Sat Nov 26 05:47:21 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8651B106564A; Sat, 26 Nov 2011 05:47:21 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 764958FC08; Sat, 26 Nov 2011 05:47:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAQ5lLmc076192; Sat, 26 Nov 2011 05:47:21 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAQ5lLqb076190; Sat, 26 Nov 2011 05:47:21 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111260547.pAQ5lLqb076190@svn.freebsd.org> From: Mark Linimon Date: Sat, 26 Nov 2011 05:47:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227988 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Nov 2011 05:47:21 -0000 Author: linimon (doc,ports committer) Date: Sat Nov 26 05:47:21 2011 New Revision: 227988 URL: http://svn.freebsd.org/changeset/base/227988 Log: depend_package can be a secondary failure, so move it to the last block. (It certainly must be below disk_full.) Modified: projects/portbuild/scripts/processonelog Modified: projects/portbuild/scripts/processonelog ============================================================================== --- projects/portbuild/scripts/processonelog Sat Nov 26 03:26:06 2011 (r227987) +++ projects/portbuild/scripts/processonelog Sat Nov 26 05:47:21 2011 (r227988) @@ -116,8 +116,6 @@ elif bzgrep -q "Shared object \"libc.so. reason="compat6x"; tag="compat6x" elif bzgrep -q "Fatal error .failed to get sysctl kern.sched.cpusetsize" $1; then reason="cpusetsize"; tag="cpusetsize" -elif bzgrep -q "error in dependency .*, exiting" $1; then - reason="depend_package"; tag="dependpkg" elif bzgrep -qE "pkg_(add|create):.*(can't find enough temporary space|projected size of .* exceeds available free space)" $1; then reason="disk_full"; tag="df" elif bzgrep -qE "((Can't|unable to) open display|Cannot open /dev/tty for read|RuntimeError: cannot open display|You must run this program under the X-Window System)" $1; then @@ -168,6 +166,8 @@ elif bzgrep -q 'tar: Error exit delayed reason="install_error"; tag="install" elif bzgrep -q "Cannot stat: " $1; then reason="configure_error"; tag="configure" +elif bzgrep -q "error in dependency .*, exiting" $1; then + reason="depend_package"; tag="dependpkg" elif bzgrep -q "/usr/bin/ld: cannot find -l" $1; then reason="linker_error"; tag="ld" elif bzgrep -q "cd: can't cd to" $1; then From owner-svn-src-projects@FreeBSD.ORG Sat Nov 26 06:50:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D1B7106566C; Sat, 26 Nov 2011 06:50:12 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F14258FC0C; Sat, 26 Nov 2011 06:50:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pAQ6oBvb078110; Sat, 26 Nov 2011 06:50:11 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pAQ6oB9J078108; Sat, 26 Nov 2011 06:50:11 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201111260650.pAQ6oB9J078108@svn.freebsd.org> From: Mark Linimon Date: Sat, 26 Nov 2011 06:50:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227989 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Nov 2011 06:50:12 -0000 Author: linimon (doc,ports committer) Date: Sat Nov 26 06:50:11 2011 New Revision: 227989 URL: http://svn.freebsd.org/changeset/base/227989 Log: Removed one too many lines, resulting in pointyhat itself's /etc/make.conf polluting INDEX. No. Modified: projects/portbuild/scripts/buildenv Modified: projects/portbuild/scripts/buildenv ============================================================================== --- projects/portbuild/scripts/buildenv Sat Nov 26 05:47:21 2011 (r227988) +++ projects/portbuild/scripts/buildenv Sat Nov 26 06:50:11 2011 (r227989) @@ -132,8 +132,19 @@ buildenv () { export INDEXFILE=INDEX-${branchbase} fi - # probably only used in mkbindist XXX MCL probably not even there - # XXX MCL 20111117 export __MAKE_CONF=${pbd}/${arch}/make.conf + # set make.conf. Consumed by both 'make index' and 'makeworld'. + # First, must explicitly _unset_ pointyhat's native one. + export __MAKE_CONF=/dev/null + # allow for per-build make.conf + if [ -f ${builddir}/make.conf.server ]; then + export __MAKE_CONF=${builddir}/make.conf.server + else + # allow for per-arch make.conf + # XXX MCL NOTYET the ones that are there are set up for pxeworld. WRONG! +# if [ -f ${builddir}/make.conf ]; then +# export __MAKE_CONF=${pbd}/${arch}/make.conf +# fi + fi } #