From owner-svn-src-projects@FreeBSD.ORG Tue Mar 27 14:24:47 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 978B91065686; Tue, 27 Mar 2012 14:24:47 +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 7CB218FC1C; Tue, 27 Mar 2012 14:24:47 +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 q2REOlPs089596; Tue, 27 Mar 2012 14:24:47 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q2REOk9b089582; Tue, 27 Mar 2012 14:24:46 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201203271424.q2REOk9b089582@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 27 Mar 2012 14:24:46 +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: r233548 - in projects/pseries: . amd64/acpica amd64/amd64 amd64/conf amd64/ia32 amd64/include arm/conf arm/mv boot/common boot/fdt boot/uboot/common boot/uboot/lib cddl/contrib/opensola... 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, 27 Mar 2012 14:24:47 -0000 Author: nwhitehorn Date: Tue Mar 27 14:24:46 2012 New Revision: 233548 URL: http://svn.freebsd.org/changeset/base/233548 Log: IFC @ r233546 Added: projects/pseries/amd64/include/npx.h - copied unchanged from r233546, head/sys/amd64/include/npx.h projects/pseries/cddl/contrib/opensolaris/uts/mips/ - copied from r233546, head/sys/cddl/contrib/opensolaris/uts/mips/ projects/pseries/cddl/dev/dtrace/mips/ - copied from r233546, head/sys/cddl/dev/dtrace/mips/ projects/pseries/contrib/dev/acpica/compiler/preprocess.h - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/preprocess.h projects/pseries/contrib/dev/acpica/compiler/prexpress.c - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prexpress.c projects/pseries/contrib/dev/acpica/compiler/prmacros.c - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prmacros.c projects/pseries/contrib/dev/acpica/compiler/prparser.l - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prparser.l projects/pseries/contrib/dev/acpica/compiler/prparser.y - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prparser.y projects/pseries/contrib/dev/acpica/compiler/prscan.c - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prscan.c projects/pseries/contrib/dev/acpica/compiler/prutils.c - copied unchanged from r233546, head/sys/contrib/dev/acpica/compiler/prutils.c projects/pseries/contrib/dev/ral/microcode.h - copied unchanged from r233546, head/sys/contrib/dev/ral/microcode.h projects/pseries/dev/hwpmc/hwpmc_octeon.c - copied unchanged from r233546, head/sys/dev/hwpmc/hwpmc_octeon.c projects/pseries/dev/iicbus/ds1374.c - copied unchanged from r233546, head/sys/dev/iicbus/ds1374.c projects/pseries/dev/iicbus/iicoc.c - copied unchanged from r233546, head/sys/dev/iicbus/iicoc.c projects/pseries/dev/iicbus/iicoc.h - copied unchanged from r233546, head/sys/dev/iicbus/iicoc.h projects/pseries/dev/mpt/mpilib/mpi_log_fc.h - copied unchanged from r233546, head/sys/dev/mpt/mpilib/mpi_log_fc.h projects/pseries/dev/mpt/mpilib/mpi_log_sas.h - copied unchanged from r233546, head/sys/dev/mpt/mpilib/mpi_log_sas.h projects/pseries/geom/part/g_part_ldm.c - copied unchanged from r233546, head/sys/geom/part/g_part_ldm.c projects/pseries/mips/cavium/octeon_pmc.c - copied unchanged from r233546, head/sys/mips/cavium/octeon_pmc.c projects/pseries/mips/conf/XLP.hints - copied unchanged from r233546, head/sys/mips/conf/XLP.hints projects/pseries/mips/mips/libkern_machdep.c - copied unchanged from r233546, head/sys/mips/mips/libkern_machdep.c projects/pseries/mips/nlm/board_cpld.c - copied unchanged from r233546, head/sys/mips/nlm/board_cpld.c projects/pseries/mips/nlm/board_eeprom.c - copied unchanged from r233546, head/sys/mips/nlm/board_eeprom.c projects/pseries/mips/nlm/dev/ - copied from r233546, head/sys/mips/nlm/dev/ projects/pseries/mips/nlm/hal/gbu.h - copied unchanged from r233546, head/sys/mips/nlm/hal/gbu.h projects/pseries/mips/nlm/hal/interlaken.h - copied unchanged from r233546, head/sys/mips/nlm/hal/interlaken.h projects/pseries/mips/nlm/hal/mdio.h - copied unchanged from r233546, head/sys/mips/nlm/hal/mdio.h projects/pseries/mips/nlm/hal/nae.h - copied unchanged from r233546, head/sys/mips/nlm/hal/nae.h projects/pseries/mips/nlm/hal/nlmsaelib.h - copied unchanged from r233546, head/sys/mips/nlm/hal/nlmsaelib.h projects/pseries/mips/nlm/hal/poe.h - copied unchanged from r233546, head/sys/mips/nlm/hal/poe.h projects/pseries/mips/nlm/hal/sgmii.h - copied unchanged from r233546, head/sys/mips/nlm/hal/sgmii.h projects/pseries/mips/nlm/hal/ucore_loader.h - copied unchanged from r233546, head/sys/mips/nlm/hal/ucore_loader.h projects/pseries/mips/nlm/hal/xaui.h - copied unchanged from r233546, head/sys/mips/nlm/hal/xaui.h projects/pseries/modules/acl_nfs4/ - copied from r233546, head/sys/modules/acl_nfs4/ projects/pseries/modules/acl_posix1e/ - copied from r233546, head/sys/modules/acl_posix1e/ projects/pseries/modules/geom/geom_part/geom_part_ldm/ - copied from r233546, head/sys/modules/geom/geom_part/geom_part_ldm/ projects/pseries/modules/ralfw/rt2860/ - copied from r233546, head/sys/modules/ralfw/rt2860/ projects/pseries/x86/include/fpu.h - copied unchanged from r233546, head/sys/x86/include/fpu.h projects/pseries/x86/include/psl.h - copied unchanged from r233546, head/sys/x86/include/psl.h projects/pseries/x86/include/reg.h - copied unchanged from r233546, head/sys/x86/include/reg.h projects/pseries/x86/include/segments.h - copied unchanged from r233546, head/sys/x86/include/segments.h projects/pseries/x86/include/specialreg.h - copied unchanged from r233546, head/sys/x86/include/specialreg.h projects/pseries/x86/include/sysarch.h - copied unchanged from r233546, head/sys/x86/include/sysarch.h Deleted: projects/pseries/compat/ia32/ia32_reg.h projects/pseries/contrib/dev/ral/rt2661_ucode.h projects/pseries/contrib/octeon-sdk/cvmx-csr-db-support.c projects/pseries/contrib/octeon-sdk/cvmx-csr-db.c projects/pseries/contrib/octeon-sdk/cvmx-csr-db.h projects/pseries/contrib/octeon-sdk/cvmx-error-custom.c projects/pseries/contrib/octeon-sdk/cvmx-error-custom.h projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn30xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn31xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn38xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn38xxp2.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn50xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn52xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn52xxp1.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn56xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn56xxp1.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn58xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn58xxp1.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn61xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn63xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn63xxp1.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn66xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn68xx.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cn68xxp1.c projects/pseries/contrib/octeon-sdk/cvmx-error-init-cnf71xx.c projects/pseries/contrib/octeon-sdk/cvmx-error.c projects/pseries/contrib/octeon-sdk/cvmx-error.h projects/pseries/dev/hwpmc/hwpmc_mips24k.h projects/pseries/dev/mpt/mpilib/mpi_inb.h Modified: projects/pseries/Makefile projects/pseries/amd64/acpica/acpi_wakeup.c projects/pseries/amd64/amd64/pmap.c projects/pseries/amd64/amd64/trap.c projects/pseries/amd64/conf/GENERIC projects/pseries/amd64/conf/NOTES projects/pseries/amd64/ia32/ia32_reg.c projects/pseries/amd64/include/fpu.h projects/pseries/amd64/include/proc.h projects/pseries/amd64/include/psl.h projects/pseries/amd64/include/reg.h projects/pseries/amd64/include/segments.h projects/pseries/amd64/include/specialreg.h projects/pseries/amd64/include/sysarch.h 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/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/TS7800 projects/pseries/arm/mv/common.c projects/pseries/boot/common/crc32.c projects/pseries/boot/common/ufsread.c projects/pseries/boot/fdt/fdt_loader_cmd.c projects/pseries/boot/uboot/common/metadata.c projects/pseries/boot/uboot/lib/Makefile projects/pseries/boot/uboot/lib/glue.c projects/pseries/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/pseries/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/pseries/cddl/dev/dtrace/dtrace_ioctl.c projects/pseries/cddl/dev/lockstat/lockstat.c projects/pseries/cddl/dev/profile/profile.c projects/pseries/compat/ia32/ia32_sysvec.c projects/pseries/conf/Makefile.mips projects/pseries/conf/NOTES projects/pseries/conf/files projects/pseries/conf/files.mips projects/pseries/conf/files.pc98 projects/pseries/conf/kern.mk projects/pseries/conf/options projects/pseries/conf/options.amd64 projects/pseries/conf/options.i386 projects/pseries/conf/options.mips projects/pseries/contrib/dev/acpica/acpica_prep.sh projects/pseries/contrib/dev/acpica/changes.txt (contents, props changed) projects/pseries/contrib/dev/acpica/common/adisasm.c projects/pseries/contrib/dev/acpica/common/getopt.c projects/pseries/contrib/dev/acpica/compiler/aslcodegen.c projects/pseries/contrib/dev/acpica/compiler/aslcompile.c projects/pseries/contrib/dev/acpica/compiler/aslcompiler.h projects/pseries/contrib/dev/acpica/compiler/aslcompiler.y projects/pseries/contrib/dev/acpica/compiler/aslerror.c projects/pseries/contrib/dev/acpica/compiler/aslfiles.c projects/pseries/contrib/dev/acpica/compiler/aslglobal.h projects/pseries/contrib/dev/acpica/compiler/aslmain.c projects/pseries/contrib/dev/acpica/compiler/aslmessages.h projects/pseries/contrib/dev/acpica/compiler/aslstartup.c projects/pseries/contrib/dev/acpica/compiler/asltypes.h projects/pseries/contrib/dev/acpica/compiler/aslutils.c projects/pseries/contrib/dev/acpica/compiler/dtcompile.c projects/pseries/contrib/dev/acpica/compiler/dtcompiler.h projects/pseries/contrib/dev/acpica/compiler/dtexpress.c projects/pseries/contrib/dev/acpica/compiler/dtio.c projects/pseries/contrib/dev/acpica/compiler/dtparser.y projects/pseries/contrib/dev/acpica/components/debugger/dbcmds.c projects/pseries/contrib/dev/acpica/components/hardware/hwesleep.c projects/pseries/contrib/dev/acpica/components/hardware/hwsleep.c projects/pseries/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/pseries/contrib/dev/acpica/components/namespace/nsdump.c projects/pseries/contrib/dev/acpica/components/namespace/nsdumpdv.c projects/pseries/contrib/dev/acpica/components/namespace/nspredef.c projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c projects/pseries/contrib/dev/acpica/components/namespace/nsutils.c projects/pseries/contrib/dev/acpica/components/tables/tbfadt.c projects/pseries/contrib/dev/acpica/components/tables/tbinstal.c projects/pseries/contrib/dev/acpica/components/tables/tbutils.c projects/pseries/contrib/dev/acpica/include/achware.h projects/pseries/contrib/dev/acpica/include/aclocal.h projects/pseries/contrib/dev/acpica/include/acnames.h projects/pseries/contrib/dev/acpica/include/acnamesp.h projects/pseries/contrib/dev/acpica/include/acoutput.h projects/pseries/contrib/dev/acpica/include/acpixf.h projects/pseries/contrib/dev/acpica/include/actypes.h projects/pseries/contrib/dev/ral/Makefile projects/pseries/contrib/dev/ral/rt2860.fw.uu projects/pseries/contrib/dev/run/rt2870.fw.uu projects/pseries/contrib/octeon-sdk/cvmx-pcie.c projects/pseries/contrib/octeon-sdk/cvmx-twsi.c projects/pseries/contrib/octeon-sdk/cvmx-usb.c projects/pseries/dev/acpica/acpi.c projects/pseries/dev/acpica/acpivar.h projects/pseries/dev/advansys/adv_eisa.c projects/pseries/dev/advansys/adv_isa.c projects/pseries/dev/advansys/adv_pci.c projects/pseries/dev/advansys/adw_pci.c projects/pseries/dev/ahb/ahb.c projects/pseries/dev/aic7xxx/ahc_eisa.c projects/pseries/dev/aic7xxx/ahc_isa.c projects/pseries/dev/aic7xxx/ahc_pci.c projects/pseries/dev/aic7xxx/ahd_pci.c projects/pseries/dev/aic7xxx/aicasm/aicasm_symbol.c projects/pseries/dev/amr/amr_pci.c projects/pseries/dev/an/if_an_pci.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-all.h projects/pseries/dev/ata/ata-card.c projects/pseries/dev/ata/ata-cbus.c projects/pseries/dev/ata/ata-disk.c projects/pseries/dev/ata/ata-pci.c projects/pseries/dev/ata/ata-pci.h projects/pseries/dev/ata/ata-queue.c projects/pseries/dev/ata/ata-raid.c projects/pseries/dev/ata/atapi-cam.c projects/pseries/dev/ata/atapi-cd.c projects/pseries/dev/ata/atapi-fd.c projects/pseries/dev/ata/atapi-tape.c projects/pseries/dev/ata/chipsets/ata-acard.c projects/pseries/dev/ata/chipsets/ata-acerlabs.c projects/pseries/dev/ata/chipsets/ata-adaptec.c projects/pseries/dev/ata/chipsets/ata-ahci.c projects/pseries/dev/ata/chipsets/ata-amd.c projects/pseries/dev/ata/chipsets/ata-ati.c projects/pseries/dev/ata/chipsets/ata-cyrix.c projects/pseries/dev/ata/chipsets/ata-highpoint.c projects/pseries/dev/ata/chipsets/ata-intel.c projects/pseries/dev/ata/chipsets/ata-ite.c projects/pseries/dev/ata/chipsets/ata-jmicron.c projects/pseries/dev/ata/chipsets/ata-marvell.c projects/pseries/dev/ata/chipsets/ata-national.c projects/pseries/dev/ata/chipsets/ata-nvidia.c projects/pseries/dev/ata/chipsets/ata-promise.c projects/pseries/dev/ata/chipsets/ata-serverworks.c projects/pseries/dev/ata/chipsets/ata-siliconimage.c projects/pseries/dev/ata/chipsets/ata-sis.c projects/pseries/dev/ata/chipsets/ata-via.c projects/pseries/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pseries/dev/ath/if_ath.c projects/pseries/dev/ath/if_ath_debug.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_athvar.h projects/pseries/dev/bge/if_bge.c projects/pseries/dev/bge/if_bgereg.h projects/pseries/dev/buslogic/bt_pci.c projects/pseries/dev/bxe/if_bxe.c projects/pseries/dev/cesa/cesa.c projects/pseries/dev/ciss/ciss.c projects/pseries/dev/cxgb/cxgb_sge.c projects/pseries/dev/de/if_de.c projects/pseries/dev/dpt/dpt_pci.c projects/pseries/dev/e1000/e1000_osdep.h projects/pseries/dev/en/midway.c projects/pseries/dev/fb/vesa.c projects/pseries/dev/fxp/if_fxp.c projects/pseries/dev/glxsb/glxsb.c projects/pseries/dev/hatm/if_hatm.c projects/pseries/dev/hifn/hifn7751.c projects/pseries/dev/hptiop/hptiop.c projects/pseries/dev/hptmv/entry.c projects/pseries/dev/hwpmc/hwpmc_logging.c projects/pseries/dev/hwpmc/hwpmc_mips.c projects/pseries/dev/hwpmc/hwpmc_mips24k.c projects/pseries/dev/hwpmc/pmc_events.h projects/pseries/dev/ida/ida_pci.c projects/pseries/dev/if_ndis/if_ndis_pci.c projects/pseries/dev/iir/iir_pci.c projects/pseries/dev/ips/ips_pci.c projects/pseries/dev/ipw/if_ipw.c projects/pseries/dev/ipw/if_ipwvar.h projects/pseries/dev/isci/isci.h projects/pseries/dev/isci/isci_controller.c projects/pseries/dev/isci/isci_remote_device.c projects/pseries/dev/iwi/if_iwi.c projects/pseries/dev/iwn/if_iwn.c projects/pseries/dev/ixgb/if_ixgb.c projects/pseries/dev/ixgbe/ixgbe.c projects/pseries/dev/ixgbe/ixv.c projects/pseries/dev/lmc/if_lmc.c projects/pseries/dev/mfi/mfi_pci.c projects/pseries/dev/mge/if_mge.c projects/pseries/dev/mlx/mlx_pci.c projects/pseries/dev/mly/mly.c projects/pseries/dev/mpt/mpilib/mpi.h projects/pseries/dev/mpt/mpilib/mpi_cnfg.h projects/pseries/dev/mpt/mpilib/mpi_fc.h projects/pseries/dev/mpt/mpilib/mpi_init.h projects/pseries/dev/mpt/mpilib/mpi_ioc.h projects/pseries/dev/mpt/mpilib/mpi_lan.h projects/pseries/dev/mpt/mpilib/mpi_raid.h projects/pseries/dev/mpt/mpilib/mpi_sas.h projects/pseries/dev/mpt/mpilib/mpi_targ.h projects/pseries/dev/mpt/mpilib/mpi_tool.h projects/pseries/dev/mpt/mpilib/mpi_type.h projects/pseries/dev/mpt/mpt.h projects/pseries/dev/mpt/mpt_pci.c projects/pseries/dev/mxge/if_mxge.c projects/pseries/dev/nve/if_nve.c projects/pseries/dev/ofw/ofw_bus_if.m projects/pseries/dev/ofw/ofw_bus_subr.c projects/pseries/dev/ofw/ofw_iicbus.c projects/pseries/dev/patm/if_patm_attach.c projects/pseries/dev/pcf/pcf_ebus.c projects/pseries/dev/pci/pci.c projects/pseries/dev/safe/safe.c projects/pseries/dev/sound/pci/emu10kx.c projects/pseries/dev/trm/trm.c projects/pseries/dev/twe/twe_freebsd.c projects/pseries/dev/tws/tws.c projects/pseries/dev/uart/uart_bus_pci.c projects/pseries/dev/ubsec/ubsec.c projects/pseries/dev/usb/wlan/if_run.c projects/pseries/dev/wds/wd7000.c projects/pseries/dev/wpi/if_wpi.c projects/pseries/dev/wtap/if_wtap.c projects/pseries/dev/xen/blkfront/blkfront.c projects/pseries/fs/fdescfs/fdesc_vfsops.c projects/pseries/fs/nfsclient/nfs_clbio.c projects/pseries/fs/nfsclient/nfs_clvnops.c projects/pseries/fs/nullfs/null_vfsops.c projects/pseries/fs/portalfs/portal_vfsops.c projects/pseries/fs/tmpfs/tmpfs_subr.c projects/pseries/fs/tmpfs/tmpfs_vnops.c projects/pseries/fs/unionfs/union_vfsops.c projects/pseries/geom/part/g_part.c projects/pseries/geom/part/g_part.h projects/pseries/i386/acpica/acpi_wakeup.c projects/pseries/i386/conf/GENERIC projects/pseries/i386/conf/NOTES projects/pseries/i386/conf/XBOX projects/pseries/i386/conf/XEN projects/pseries/i386/i386/machdep.c projects/pseries/i386/i386/pmap.c projects/pseries/i386/i386/trap.c projects/pseries/i386/include/npx.h projects/pseries/i386/include/proc.h projects/pseries/i386/include/psl.h projects/pseries/i386/include/reg.h projects/pseries/i386/include/segments.h projects/pseries/i386/include/specialreg.h projects/pseries/i386/include/sysarch.h projects/pseries/ia64/conf/GENERIC projects/pseries/ia64/conf/SKI projects/pseries/ia64/ia32/ia32_reg.c projects/pseries/ia64/ia32/ia32_signal.c projects/pseries/ia64/ia32/ia32_trap.c projects/pseries/ia64/include/reg.h projects/pseries/kern/imgact_elf.c projects/pseries/kern/kern_clocksource.c projects/pseries/kern/kern_event.c projects/pseries/kern/kern_exit.c projects/pseries/kern/kern_linker.c projects/pseries/kern/kern_proc.c projects/pseries/kern/kern_racct.c projects/pseries/kern/kern_sysctl.c projects/pseries/kern/kern_umtx.c projects/pseries/kern/sched_ule.c projects/pseries/kern/subr_acl_nfs4.c projects/pseries/kern/subr_acl_posix1e.c projects/pseries/kern/subr_msgbuf.c projects/pseries/kern/subr_uio.c projects/pseries/kern/sys_capability.c projects/pseries/kern/uipc_syscalls.c projects/pseries/libkern/crc32.c projects/pseries/mips/adm5120/adm5120_machdep.c projects/pseries/mips/adm5120/std.adm5120 projects/pseries/mips/alchemy/alchemy_machdep.c projects/pseries/mips/alchemy/std.alchemy projects/pseries/mips/atheros/apb.c projects/pseries/mips/atheros/ar71xx_chip.c projects/pseries/mips/atheros/ar71xx_cpudef.h projects/pseries/mips/atheros/ar71xx_machdep.c projects/pseries/mips/atheros/ar71xxreg.h projects/pseries/mips/atheros/ar724x_chip.c projects/pseries/mips/atheros/ar91xx_chip.c projects/pseries/mips/atheros/files.ar71xx projects/pseries/mips/atheros/if_arge.c projects/pseries/mips/atheros/std.ar71xx projects/pseries/mips/cavium/files.octeon1 projects/pseries/mips/cavium/octeon_ebt3000_cf.c projects/pseries/mips/cavium/octeon_irq.h projects/pseries/mips/cavium/octeon_machdep.c projects/pseries/mips/conf/AR71XX_BASE projects/pseries/mips/conf/AR91XX_BASE projects/pseries/mips/conf/MALTA projects/pseries/mips/conf/MALTA64 projects/pseries/mips/conf/OCTEON1 projects/pseries/mips/conf/PB92 projects/pseries/mips/conf/RT305X projects/pseries/mips/conf/SWARM projects/pseries/mips/conf/SWARM64 projects/pseries/mips/conf/SWARM64_SMP projects/pseries/mips/conf/SWARM_SMP projects/pseries/mips/conf/XLP projects/pseries/mips/conf/XLP64 projects/pseries/mips/conf/XLPN32 projects/pseries/mips/conf/XLR projects/pseries/mips/conf/XLR64 projects/pseries/mips/conf/XLRN32 projects/pseries/mips/conf/std.XLP projects/pseries/mips/idt/idt_machdep.c projects/pseries/mips/idt/std.idt projects/pseries/mips/include/_bus.h projects/pseries/mips/include/bus.h projects/pseries/mips/include/cache.h projects/pseries/mips/include/cpufunc.h projects/pseries/mips/include/frame.h projects/pseries/mips/include/hwfunc.h projects/pseries/mips/include/md_var.h projects/pseries/mips/include/pmap.h projects/pseries/mips/include/pmc_mdep.h projects/pseries/mips/include/proc.h projects/pseries/mips/include/trap.h projects/pseries/mips/malta/malta_machdep.c projects/pseries/mips/malta/std.malta projects/pseries/mips/mips/bus_space_generic.c projects/pseries/mips/mips/cache.c projects/pseries/mips/mips/cache_mipsNN.c projects/pseries/mips/mips/cpu.c projects/pseries/mips/mips/exception.S projects/pseries/mips/mips/freebsd32_machdep.c projects/pseries/mips/mips/intr_machdep.c projects/pseries/mips/mips/machdep.c projects/pseries/mips/mips/pm_machdep.c projects/pseries/mips/mips/pmap.c projects/pseries/mips/mips/support.S projects/pseries/mips/mips/swtch.S projects/pseries/mips/mips/tick.c projects/pseries/mips/mips/trap.c projects/pseries/mips/mips/vm_machdep.c projects/pseries/mips/nlm/board.c projects/pseries/mips/nlm/board.h projects/pseries/mips/nlm/cms.c projects/pseries/mips/nlm/files.xlp projects/pseries/mips/nlm/hal/iomap.h projects/pseries/mips/nlm/hal/nlm_hal.c projects/pseries/mips/nlm/hal/pcibus.h projects/pseries/mips/nlm/hal/sys.h projects/pseries/mips/nlm/mpreset.S projects/pseries/mips/nlm/msgring.h projects/pseries/mips/nlm/tick.c projects/pseries/mips/nlm/xlp.h projects/pseries/mips/nlm/xlp_machdep.c projects/pseries/mips/nlm/xlp_pci.c projects/pseries/mips/rmi/tick.c projects/pseries/mips/rmi/xlr_machdep.c projects/pseries/mips/rt305x/rt305x_machdep.c projects/pseries/mips/rt305x/std.rt305x projects/pseries/mips/sentry5/s5_machdep.c projects/pseries/mips/sentry5/std.sentry5 projects/pseries/mips/sibyte/sb_machdep.c projects/pseries/modules/Makefile projects/pseries/modules/cyclic/Makefile projects/pseries/modules/dtrace/Makefile projects/pseries/modules/geom/geom_part/Makefile projects/pseries/modules/mps/Makefile projects/pseries/modules/netgraph/netflow/Makefile projects/pseries/modules/ralfw/Makefile projects/pseries/net/if_var.h projects/pseries/net/route.c projects/pseries/net/route.h projects/pseries/net80211/ieee80211.c projects/pseries/net80211/ieee80211_alq.c projects/pseries/net80211/ieee80211_freebsd.c projects/pseries/net80211/ieee80211_ht.c projects/pseries/net80211/ieee80211_ht.h projects/pseries/net80211/ieee80211_node.c projects/pseries/net80211/ieee80211_node.h projects/pseries/net80211/ieee80211_proto.c projects/pseries/net80211/ieee80211_sta.c projects/pseries/net80211/ieee80211_var.h projects/pseries/netgraph/netflow/netflow.c projects/pseries/netgraph/netflow/ng_netflow.c projects/pseries/netgraph/netflow/ng_netflow.h projects/pseries/netgraph/ng_vlan.c projects/pseries/netgraph/ng_vlan.h projects/pseries/netinet/in_pcb.h projects/pseries/netinet/ip_fw.h projects/pseries/netinet/ipfw/ip_fw2.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/sctp_bsd_addr.c projects/pseries/netinet/sctp_peeloff.c projects/pseries/netinet/sctp_usrreq.c projects/pseries/netinet/sctputil.c projects/pseries/netinet6/in6_pcb.c projects/pseries/netinet6/sctp6_usrreq.c projects/pseries/ofed/drivers/infiniband/core/addr.c projects/pseries/ofed/drivers/infiniband/core/cma.c projects/pseries/ofed/drivers/infiniband/core/fmr_pool.c projects/pseries/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/pseries/pc98/conf/GENERIC projects/pseries/pc98/include/psl.h projects/pseries/pc98/include/reg.h projects/pseries/pc98/include/specialreg.h projects/pseries/pc98/include/sysarch.h projects/pseries/pc98/pc98/machdep.c projects/pseries/powerpc/aim/mmu_oea.c projects/pseries/powerpc/aim/mmu_oea64.c projects/pseries/powerpc/aim/moea64_native.c projects/pseries/powerpc/conf/GENERIC projects/pseries/powerpc/conf/GENERIC64 projects/pseries/powerpc/conf/MPC85XX projects/pseries/powerpc/ofw/ofw_pcib_pci.c projects/pseries/powerpc/ofw/ofw_pcibus.c projects/pseries/powerpc/powermac/uninorth.c projects/pseries/sparc64/conf/GENERIC projects/pseries/sparc64/pci/fire.c projects/pseries/sparc64/pci/ofw_pcibus.c projects/pseries/sys/cpuset.h projects/pseries/sys/elf_common.h projects/pseries/sys/event.h projects/pseries/sys/libkern.h projects/pseries/sys/msgbuf.h projects/pseries/sys/pmc.h projects/pseries/sys/proc.h projects/pseries/sys/signal.h projects/pseries/sys/sysctl.h projects/pseries/sys/vnode.h 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_rawread.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/vm/vm_contig.c projects/pseries/vm/vm_fault.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_pageout.c projects/pseries/vm/vm_pageout.h projects/pseries/x86/acpica/madt.c projects/pseries/x86/include/endian.h projects/pseries/x86/isa/atpic.c projects/pseries/x86/isa/icu.h projects/pseries/x86/x86/busdma_machdep.c projects/pseries/x86/x86/intr_machdep.c Directory Properties: projects/pseries/ (props changed) projects/pseries/boot/ (props changed) projects/pseries/cddl/contrib/opensolaris/ (props changed) projects/pseries/conf/ (props changed) projects/pseries/contrib/dev/acpica/ (props changed) projects/pseries/contrib/dev/acpica/common/ (props changed) projects/pseries/contrib/dev/acpica/compiler/ (props changed) projects/pseries/contrib/dev/acpica/components/debugger/ (props changed) projects/pseries/contrib/dev/acpica/components/hardware/ (props changed) projects/pseries/contrib/dev/acpica/components/namespace/ (props changed) projects/pseries/contrib/dev/acpica/components/tables/ (props changed) projects/pseries/contrib/dev/acpica/include/ (props changed) projects/pseries/contrib/octeon-sdk/ (props changed) Modified: projects/pseries/Makefile ============================================================================== --- projects/pseries/Makefile Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/Makefile Tue Mar 27 14:24:46 2012 (r233548) @@ -11,7 +11,7 @@ SUBDIR= boot CSCOPEDIRS= boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \ geom gnu isa kern libkern modules net net80211 netatalk \ netgraph netinet netinet6 netipsec netipx netnatm netncp \ - netsmb nfs nfsclient nfsserver nlm opencrypto \ + netsmb nfs nfsclient nfsserver nlm ofed opencrypto \ pci rpc security sys ufs vm xdr xen ${CSCOPE_ARCHDIR} .if !defined(CSCOPE_ARCHDIR) .if defined(ALL_ARCH) Modified: projects/pseries/amd64/acpica/acpi_wakeup.c ============================================================================== --- projects/pseries/amd64/acpica/acpi_wakeup.c Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/acpica/acpi_wakeup.c Tue Mar 27 14:24:46 2012 (r233548) @@ -223,6 +223,7 @@ acpi_sleep_machdep(struct acpi_softc *sc #ifdef SMP cpuset_t wakeup_cpus; #endif + register_t rf; ACPI_STATUS status; int ret; @@ -241,7 +242,7 @@ acpi_sleep_machdep(struct acpi_softc *sc AcpiSetFirmwareWakingVector(WAKECODE_PADDR(sc)); - spinlock_enter(); + rf = intr_disable(); intr_suspend(); if (savectx(susppcbs[0])) { @@ -269,7 +270,7 @@ acpi_sleep_machdep(struct acpi_softc *sc if (state == ACPI_STATE_S4 && sc->acpi_s4bios) status = AcpiEnterSleepStateS4bios(); else - status = AcpiEnterSleepState(state); + status = AcpiEnterSleepState(state, acpi_sleep_flags); if (status != AE_OK) { device_printf(sc->acpi_dev, @@ -300,7 +301,7 @@ out: mca_resume(); intr_resume(); - spinlock_exit(); + intr_restore(rf); AcpiSetFirmwareWakingVector(0); Modified: projects/pseries/amd64/amd64/pmap.c ============================================================================== --- projects/pseries/amd64/amd64/pmap.c Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/amd64/pmap.c Tue Mar 27 14:24:46 2012 (r233548) @@ -148,10 +148,6 @@ __FBSDID("$FreeBSD$"); #include #endif -#ifndef PMAP_SHPGPERPROC -#define PMAP_SHPGPERPROC 200 -#endif - #if !defined(DIAGNOSTIC) #ifdef __GNUC_GNU_INLINE__ #define PMAP_INLINE __attribute__((__gnu_inline__)) inline @@ -162,7 +158,6 @@ __FBSDID("$FreeBSD$"); #define PMAP_INLINE #endif -#define PV_STATS #ifdef PV_STATS #define PV_STAT(x) do { x ; } while (0) #else @@ -206,9 +201,8 @@ static u_int64_t DMPDPphys; /* phys addr /* * Data for the pv entry allocation mechanism */ -static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; +static long pv_entry_count; static struct md_page *pv_table; -static int shpgperproc = PMAP_SHPGPERPROC; /* * All those kernel PT submaps that BSD is so fond of @@ -222,7 +216,7 @@ caddr_t CADDR1 = 0; static caddr_t crashdumpmap; static void free_pv_entry(pmap_t pmap, pv_entry_t pv); -static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try); +static pv_entry_t get_pv_entry(pmap_t locked_pmap, boolean_t try); static void pmap_pv_demote_pde(pmap_t pmap, vm_offset_t va, vm_paddr_t pa); static boolean_t pmap_pv_insert_pde(pmap_t pmap, vm_offset_t va, vm_paddr_t pa); static void pmap_pv_promote_pde(pmap_t pmap, vm_offset_t va, vm_paddr_t pa); @@ -731,16 +725,6 @@ pmap_init(void) } /* - * Initialize the address space (zone) for the pv entries. Set a - * high water mark so that the system can recover from excessive - * numbers of pv entries. - */ - TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc); - pv_entry_max = shpgperproc * maxproc + cnt.v_page_count; - TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max); - pv_entry_high_water = 9 * (pv_entry_max / 10); - - /* * If the kernel is running in a virtual machine on an AMD Family 10h * processor, then it must assume that MCA is enabled by the virtual * machine monitor. @@ -775,36 +759,6 @@ pmap_init(void) TAILQ_INIT(&pv_table[i].pv_list); } -static int -pmap_pventry_proc(SYSCTL_HANDLER_ARGS) -{ - int error; - - error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); - if (error == 0 && req->newptr) { - shpgperproc = (pv_entry_max - cnt.v_page_count) / maxproc; - pv_entry_high_water = 9 * (pv_entry_max / 10); - } - return (error); -} -SYSCTL_PROC(_vm_pmap, OID_AUTO, pv_entry_max, CTLTYPE_INT|CTLFLAG_RW, - &pv_entry_max, 0, pmap_pventry_proc, "IU", "Max number of PV entries"); - -static int -pmap_shpgperproc_proc(SYSCTL_HANDLER_ARGS) -{ - int error; - - error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); - if (error == 0 && req->newptr) { - pv_entry_max = shpgperproc * maxproc + cnt.v_page_count; - pv_entry_high_water = 9 * (pv_entry_max / 10); - } - return (error); -} -SYSCTL_PROC(_vm_pmap, OID_AUTO, shpgperproc, CTLTYPE_INT|CTLFLAG_RW, - &shpgperproc, 0, pmap_shpgperproc_proc, "IU", "Page share factor per proc"); - static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0, "2MB page mapping counters"); @@ -2050,7 +2004,7 @@ pv_to_chunk(pv_entry_t pv) static uint64_t pc_freemask[_NPCM] = { PC_FREE0, PC_FREE1, PC_FREE2 }; -SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, +SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, "Current number of pv entries"); #ifdef PV_STATS @@ -2184,10 +2138,8 @@ free_pv_entry(pmap_t pmap, pv_entry_t pv * when needed. */ static pv_entry_t -get_pv_entry(pmap_t pmap, int try) +get_pv_entry(pmap_t pmap, boolean_t try) { - static const struct timeval printinterval = { 60, 0 }; - static struct timeval lastprint; struct vpgqueues *pq; int bit, field; pv_entry_t pv; @@ -2197,12 +2149,6 @@ get_pv_entry(pmap_t pmap, int try) PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); PV_STAT(pv_entry_allocs++); - pv_entry_count++; - if (pv_entry_count > pv_entry_high_water) - if (ratecheck(&lastprint, &printinterval)) - printf("Approaching the limit on PV entries, consider " - "increasing either the vm.pmap.shpgperproc or the " - "vm.pmap.pv_entry_max sysctl.\n"); pq = NULL; retry: pc = TAILQ_FIRST(&pmap->pm_pvchunk); @@ -2220,8 +2166,10 @@ retry: if (pc->pc_map[0] == 0 && pc->pc_map[1] == 0 && pc->pc_map[2] == 0) { TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); - TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); + TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, + pc_list); } + pv_entry_count++; PV_STAT(pv_entry_spare--); return (pv); } @@ -2232,7 +2180,6 @@ retry: VM_ALLOC_WIRED); if (m == NULL) { if (try) { - pv_entry_count--; PV_STAT(pc_chunk_tryfail++); return (NULL); } @@ -2248,7 +2195,7 @@ retry: PV_STAT(pmap_collect_active++); pq = &vm_page_queues[PQ_ACTIVE]; } else - panic("get_pv_entry: increase vm.pmap.shpgperproc"); + panic("get_pv_entry: allocation failed"); pmap_collect(pmap, pq); goto retry; } @@ -2262,6 +2209,7 @@ retry: pc->pc_map[2] = PC_FREE2; pv = &pc->pc_pventry[0]; TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); + pv_entry_count++; PV_STAT(pv_entry_spare += _NPCPV - 1); return (pv); } @@ -2386,7 +2334,7 @@ pmap_remove_entry(pmap_t pmap, vm_page_t mtx_assert(&vm_page_queue_mtx, MA_OWNED); pmap_pvh_free(&m->md, pmap, va); - if (TAILQ_EMPTY(&m->md.pv_list)) { + if (TAILQ_EMPTY(&m->md.pv_list) && (m->flags & PG_FICTITIOUS) == 0) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); if (TAILQ_EMPTY(&pvh->pv_list)) vm_page_aflag_clear(m, PGA_WRITEABLE); @@ -2419,8 +2367,7 @@ pmap_try_insert_pv_entry(pmap_t pmap, vm PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); - if (pv_entry_count < pv_entry_high_water && - (pv = get_pv_entry(pmap, TRUE)) != NULL) { + if ((pv = get_pv_entry(pmap, TRUE)) != NULL) { pv->pv_va = va; TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list); return (TRUE); @@ -2438,8 +2385,7 @@ pmap_pv_insert_pde(pmap_t pmap, vm_offse pv_entry_t pv; mtx_assert(&vm_page_queue_mtx, MA_OWNED); - if (pv_entry_count < pv_entry_high_water && - (pv = get_pv_entry(pmap, TRUE)) != NULL) { + if ((pv = get_pv_entry(pmap, TRUE)) != NULL) { pv->pv_va = va; pvh = pa_to_pvh(pa); TAILQ_INSERT_TAIL(&pvh->pv_list, pv, pv_list); @@ -2849,6 +2795,8 @@ pmap_remove_all(vm_page_t m) ("pmap_remove_all: page %p is not managed", m)); free = NULL; vm_page_lock_queues(); + if ((m->flags & PG_FICTITIOUS) != 0) + goto small_mappings; pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); while ((pv = TAILQ_FIRST(&pvh->pv_list)) != NULL) { pmap = PV_PMAP(pv); @@ -2858,6 +2806,7 @@ pmap_remove_all(vm_page_t m) (void)pmap_demote_pde(pmap, pde, va); PMAP_UNLOCK(pmap); } +small_mappings: while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); @@ -2939,7 +2888,7 @@ pmap_protect(pmap_t pmap, vm_offset_t sv pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; - int anychanged; + boolean_t anychanged, pv_lists_locked; if ((prot & VM_PROT_READ) == VM_PROT_NONE) { pmap_remove(pmap, sva, eva); @@ -2950,9 +2899,10 @@ pmap_protect(pmap_t pmap, vm_offset_t sv (VM_PROT_WRITE|VM_PROT_EXECUTE)) return; - anychanged = 0; + pv_lists_locked = FALSE; +resume: + anychanged = FALSE; - vm_page_lock_queues(); PMAP_LOCK(pmap); for (; sva < eva; sva = va_next) { @@ -2999,11 +2949,27 @@ pmap_protect(pmap_t pmap, vm_offset_t sv * invalidated by pmap_protect_pde(). */ if (pmap_protect_pde(pmap, pde, sva, prot)) - anychanged = 1; - continue; - } else if (!pmap_demote_pde(pmap, pde, sva)) { - /* The large page mapping was destroyed. */ + anychanged = TRUE; continue; + } else { + if (!pv_lists_locked) { + pv_lists_locked = TRUE; + if (!mtx_trylock(&vm_page_queue_mtx)) { + if (anychanged) + pmap_invalidate_all( + pmap); + PMAP_UNLOCK(pmap); + vm_page_lock_queues(); + goto resume; + } + } + if (!pmap_demote_pde(pmap, pde, sva)) { + /* + * The large page mapping was + * destroyed. + */ + continue; + } } } @@ -3037,13 +3003,14 @@ retry: if (obits & PG_G) pmap_invalidate_page(pmap, sva); else - anychanged = 1; + anychanged = TRUE; } } } if (anychanged) pmap_invalidate_all(pmap); - vm_page_unlock_queues(); + if (pv_lists_locked) + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -3336,7 +3303,8 @@ validate: } if ((origpte & PG_MANAGED) != 0 && TAILQ_EMPTY(&om->md.pv_list) && - TAILQ_EMPTY(&pa_to_pvh(opa)->pv_list)) + ((om->flags & PG_FICTITIOUS) != 0 || + TAILQ_EMPTY(&pa_to_pvh(opa)->pv_list))) vm_page_aflag_clear(om, PGA_WRITEABLE); if (invlva) pmap_invalidate_page(pmap, va); @@ -3349,7 +3317,8 @@ validate: * populated, then attempt promotion. */ if ((mpte == NULL || mpte->wire_count == NPTEPG) && - pg_ps_enabled && vm_reserv_level_iffullpop(m) == 0) + pg_ps_enabled && (m->flags & PG_FICTITIOUS) == 0 && + vm_reserv_level_iffullpop(m) == 0) pmap_promote_pde(pmap, pde, va); vm_page_unlock_queues(); @@ -3969,7 +3938,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p if (loops >= 16) break; } - if (!rv && loops < 16) { + if (!rv && loops < 16 && (m->flags & PG_FICTITIOUS) == 0) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); TAILQ_FOREACH(pv, &pvh->pv_list, pv_list) { if (PV_PMAP(pv) == pmap) { @@ -4001,7 +3970,10 @@ pmap_page_wired_mappings(vm_page_t m) return (count); vm_page_lock_queues(); count = pmap_pvh_wired_mappings(&m->md, count); - count = pmap_pvh_wired_mappings(pa_to_pvh(VM_PAGE_TO_PHYS(m)), count); + if ((m->flags & PG_FICTITIOUS) == 0) { + count = pmap_pvh_wired_mappings(pa_to_pvh(VM_PAGE_TO_PHYS(m)), + count); + } vm_page_unlock_queues(); return (count); } @@ -4043,7 +4015,8 @@ pmap_page_is_mapped(vm_page_t m) return (FALSE); vm_page_lock_queues(); rv = !TAILQ_EMPTY(&m->md.pv_list) || - !TAILQ_EMPTY(&pa_to_pvh(VM_PAGE_TO_PHYS(m))->pv_list); + ((m->flags & PG_FICTITIOUS) == 0 && + !TAILQ_EMPTY(&pa_to_pvh(VM_PAGE_TO_PHYS(m))->pv_list)); vm_page_unlock_queues(); return (rv); } @@ -4116,9 +4089,10 @@ pmap_remove_pages(pmap_t pmap) m, (uintmax_t)m->phys_addr, (uintmax_t)tpte)); - KASSERT(m < &vm_page_array[vm_page_array_size], - ("pmap_remove_pages: bad tpte %#jx", - (uintmax_t)tpte)); + KASSERT((m->flags & PG_FICTITIOUS) != 0 || + m < &vm_page_array[vm_page_array_size], + ("pmap_remove_pages: bad tpte %#jx", + (uintmax_t)tpte)); pte_clear(pte); @@ -4160,7 +4134,8 @@ pmap_remove_pages(pmap_t pmap) } else { pmap_resident_count_dec(pmap, 1); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); - if (TAILQ_EMPTY(&m->md.pv_list)) { + if (TAILQ_EMPTY(&m->md.pv_list) && + (m->flags & PG_FICTITIOUS) == 0) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); if (TAILQ_EMPTY(&pvh->pv_list)) vm_page_aflag_clear(m, PGA_WRITEABLE); @@ -4211,7 +4186,8 @@ pmap_is_modified(vm_page_t m) return (FALSE); vm_page_lock_queues(); rv = pmap_is_modified_pvh(&m->md) || - pmap_is_modified_pvh(pa_to_pvh(VM_PAGE_TO_PHYS(m))); + ((m->flags & PG_FICTITIOUS) == 0 && + pmap_is_modified_pvh(pa_to_pvh(VM_PAGE_TO_PHYS(m)))); vm_page_unlock_queues(); return (rv); } @@ -4282,7 +4258,8 @@ pmap_is_referenced(vm_page_t m) ("pmap_is_referenced: page %p is not managed", m)); vm_page_lock_queues(); rv = pmap_is_referenced_pvh(&m->md) || - pmap_is_referenced_pvh(pa_to_pvh(VM_PAGE_TO_PHYS(m))); + ((m->flags & PG_FICTITIOUS) == 0 && + pmap_is_referenced_pvh(pa_to_pvh(VM_PAGE_TO_PHYS(m)))); vm_page_unlock_queues(); return (rv); } @@ -4339,6 +4316,8 @@ pmap_remove_write(vm_page_t m) (m->aflags & PGA_WRITEABLE) == 0) return; vm_page_lock_queues(); + if ((m->flags & PG_FICTITIOUS) != 0) + goto small_mappings; pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, next_pv) { pmap = PV_PMAP(pv); @@ -4349,6 +4328,7 @@ pmap_remove_write(vm_page_t m) (void)pmap_demote_pde(pmap, pde, va); PMAP_UNLOCK(pmap); } +small_mappings: TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); @@ -4397,8 +4377,10 @@ pmap_ts_referenced(vm_page_t m) 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(); + if ((m->flags & PG_FICTITIOUS) != 0) + goto small_mappings; + pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, pvn) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); @@ -4429,6 +4411,7 @@ pmap_ts_referenced(vm_page_t m) } PMAP_UNLOCK(pmap); } +small_mappings: if ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { pvf = pv; do { @@ -4483,6 +4466,8 @@ pmap_clear_modify(vm_page_t m) if ((m->aflags & PGA_WRITEABLE) == 0) return; vm_page_lock_queues(); + if ((m->flags & PG_FICTITIOUS) != 0) + goto small_mappings; pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, next_pv) { pmap = PV_PMAP(pv); @@ -4515,6 +4500,7 @@ pmap_clear_modify(vm_page_t m) } PMAP_UNLOCK(pmap); } +small_mappings: TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); @@ -4549,6 +4535,8 @@ pmap_clear_reference(vm_page_t m) KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_clear_reference: page %p is not managed", m)); vm_page_lock_queues(); + if ((m->flags & PG_FICTITIOUS) != 0) + goto small_mappings; pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, next_pv) { pmap = PV_PMAP(pv); @@ -4572,6 +4560,7 @@ pmap_clear_reference(vm_page_t m) } PMAP_UNLOCK(pmap); } +small_mappings: TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { pmap = PV_PMAP(pv); PMAP_LOCK(pmap); Modified: projects/pseries/amd64/amd64/trap.c ============================================================================== --- projects/pseries/amd64/amd64/trap.c Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/amd64/trap.c Tue Mar 27 14:24:46 2012 (r233548) @@ -301,26 +301,6 @@ trap(struct trapframe *frame) } code = frame->tf_err; - if (type == T_PAGEFLT) { - /* - * If we get a page fault while in a critical section, then - * it is most likely a fatal kernel page fault. The kernel - * is already going to panic trying to get a sleep lock to - * do the VM lookup, so just consider it a fatal trap so the - * kernel can print out a useful trap message and even get - * to the debugger. - * - * If we get a page fault while holding a non-sleepable - * lock, then it is most likely a fatal kernel page fault. - * If WITNESS is enabled, then it's going to whine about - * bogus LORs with various VM locks, so just skip to the - * fatal trap handling directly. - */ - if (td->td_critnest != 0 || - WITNESS_CHECK(WARN_SLEEPOK | WARN_GIANTOK, NULL, - "Kernel page fault") != 0) - trap_fatal(frame, frame->tf_addr); - } if (ISPL(frame->tf_cs) == SEL_UPL) { /* user trap */ @@ -645,7 +625,7 @@ trap_pfault(frame, usermode) int usermode; { vm_offset_t va; - struct vmspace *vm = NULL; + struct vmspace *vm; vm_map_t map; int rv = 0; vm_prot_t ftype; @@ -653,6 +633,50 @@ trap_pfault(frame, usermode) struct proc *p = td->td_proc; vm_offset_t eva = frame->tf_addr; + if (__predict_false((td->td_pflags & TDP_NOFAULTING) != 0)) { + /* + * Due to both processor errata and lazy TLB invalidation when + * access restrictions are removed from virtual pages, memory + * accesses that are allowed by the physical mapping layer may + * nonetheless cause one spurious page fault per virtual page. + * When the thread is executing a "no faulting" section that + * is bracketed by vm_fault_{disable,enable}_pagefaults(), + * every page fault is treated as a spurious page fault, + * unless it accesses the same virtual address as the most + * recent page fault within the same "no faulting" section. + */ + if (td->td_md.md_spurflt_addr != eva || + (td->td_pflags & TDP_RESETSPUR) != 0) { + /* + * Do nothing to the TLB. A stale TLB entry is + * flushed automatically by a page fault. + */ + td->td_md.md_spurflt_addr = eva; + td->td_pflags &= ~TDP_RESETSPUR; + return (0); + } + } else { + /* + * If we get a page fault while in a critical section, then + * it is most likely a fatal kernel page fault. The kernel + * is already going to panic trying to get a sleep lock to + * do the VM lookup, so just consider it a fatal trap so the + * kernel can print out a useful trap message and even get + * to the debugger. + * + * If we get a page fault while holding a non-sleepable + * lock, then it is most likely a fatal kernel page fault. + * If WITNESS is enabled, then it's going to whine about + * bogus LORs with various VM locks, so just skip to the + * fatal trap handling directly. + */ + if (td->td_critnest != 0 || + WITNESS_CHECK(WARN_SLEEPOK | WARN_GIANTOK, NULL, + "Kernel page fault") != 0) { + trap_fatal(frame, eva); + return (-1); + } + } va = trunc_page(eva); if (va >= VM_MIN_KERNEL_ADDRESS) { /* @@ -664,14 +688,10 @@ trap_pfault(frame, usermode) map = kernel_map; } else { /* - * This is a fault on non-kernel virtual memory. - * vm is initialized above to NULL. If curproc is NULL - * or curproc->p_vmspace is NULL the fault is fatal. + * This is a fault on non-kernel virtual memory. If either + * p or p->p_vmspace is NULL, then the fault is fatal. */ - if (p != NULL) - vm = p->p_vmspace; - - if (vm == NULL) + if (p == NULL || (vm = p->p_vmspace) == NULL) goto nogo; map = &vm->vm_map; @@ -735,8 +755,7 @@ nogo: trap_fatal(frame, eva); return (-1); } - - return((rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV); + return ((rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV); } static void Modified: projects/pseries/amd64/conf/GENERIC ============================================================================== --- projects/pseries/amd64/conf/GENERIC Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/conf/GENERIC Tue Mar 27 14:24:46 2012 (r233548) @@ -218,9 +218,12 @@ device ale # Atheros AR8121/AR8113/AR8 device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet +device cas # Sun Cassini/Cassini+ and NS DP83065 Saturn device dc # DEC/Intel 21143 and various workalikes device et # Agere ET1310 10/100/Gigabit Ethernet device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device gem # Sun GEM/Sun ERI/Apple GMAC +device hme # Sun HME (Happy Meal Ethernet) device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet device lge # Level 1 LXT1001 gigabit Ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet @@ -285,7 +288,6 @@ device random # Entropy device device ether # Ethernet support device vlan # 802.1Q VLAN support device tun # Packet tunnel. -device pty # BSD-style compatibility pseudo ttys device md # Memory "disks" device gif # IPv6 and IPv4 tunneling device faith # IPv6-to-IPv4 relaying (translation) @@ -317,6 +319,9 @@ device dcons_crom # Configuration ROM f # Sound support device sound # Generic sound driver (required) +device snd_cmi # CMedia CMI8338/CMI8738 +device snd_csa # Crystal Semiconductor CS461x/428x +device snd_emu10kx # Creative SoundBlaster Live! and Audigy device snd_es137x # Ensoniq AudioPCI ES137x device snd_hda # Intel High Definition Audio device snd_ich # Intel, NVidia and other ICH AC'97 Audio Modified: projects/pseries/amd64/conf/NOTES ============================================================================== --- projects/pseries/amd64/conf/NOTES Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/conf/NOTES Tue Mar 27 14:24:46 2012 (r233548) @@ -493,19 +493,6 @@ device cpuctl options ENABLE_ALART # Control alarm on Intel intpm driver # -# Set the number of PV entries per process. Increasing this can -# stop panics related to heavy use of shared memory. However, that can -# (combined with large amounts of physical memory) cause panics at -# boot time due the kernel running out of VM space. -# -# If you're tweaking this, you might also want to increase the sysctls -# "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target". -# -# The value below is the one more than the default. -# -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 @@ -572,6 +559,10 @@ options LINSYSFS options KSTACK_PAGES=5 +# Enable detailed accounting by the PV entry allocator. + +options PV_STATS + ##################################################################### # More undocumented options for linting. Modified: projects/pseries/amd64/ia32/ia32_reg.c ============================================================================== --- projects/pseries/amd64/ia32/ia32_reg.c Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/ia32/ia32_reg.c Tue Mar 27 14:24:46 2012 (r233548) @@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: projects/pseries/amd64/include/fpu.h ============================================================================== --- projects/pseries/amd64/include/fpu.h Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/include/fpu.h Tue Mar 27 14:24:46 2012 (r233548) @@ -41,64 +41,7 @@ #ifndef _MACHINE_FPU_H_ #define _MACHINE_FPU_H_ -/* Contents of each x87 floating point accumulator */ -struct fpacc87 { - uint8_t fp_bytes[10]; -}; - -/* Contents of each SSE extended accumulator */ -struct xmmacc { - uint8_t xmm_bytes[16]; -}; - -/* Contents of the upper 16 bytes of each AVX extended accumulator */ -struct ymmacc { - uint8_t ymm_bytes[16]; -}; - -struct envxmm { - uint16_t en_cw; /* control word (16bits) */ - uint16_t en_sw; /* status word (16bits) */ - uint8_t en_tw; /* tag word (8bits) */ - uint8_t en_zero; - uint16_t en_opcode; /* opcode last executed (11 bits ) */ - uint64_t en_rip; /* floating point instruction pointer */ - uint64_t en_rdp; /* floating operand pointer */ - uint32_t en_mxcsr; /* SSE sontorol/status register */ - uint32_t en_mxcsr_mask; /* valid bits in mxcsr */ -}; - -struct savefpu { - struct envxmm sv_env; - struct { - struct fpacc87 fp_acc; - uint8_t fp_pad[6]; /* padding */ - } sv_fp[8]; - struct xmmacc sv_xmm[16]; - uint8_t sv_pad[96]; -} __aligned(16); - -struct xstate_hdr { - uint64_t xstate_bv; - uint8_t xstate_rsrv0[16]; - uint8_t xstate_rsrv[40]; -}; - -struct savefpu_xstate { - struct xstate_hdr sx_hd; - struct ymmacc sx_ymm[16]; -}; - -struct savefpu_ymm { - struct envxmm sv_env; - struct { - struct fpacc87 fp_acc; - int8_t fp_pad[6]; /* padding */ - } sv_fp[8]; - struct xmmacc sv_xmm[16]; - uint8_t sv_pad[96]; - struct savefpu_xstate sv_xstate; -} __aligned(64); +#include #ifdef _KERNEL @@ -108,32 +51,6 @@ struct fpu_kern_ctx; #define XSAVE_AREA_ALIGN 64 -#endif - -/* - * The hardware default control word for i387's and later coprocessors is - * 0x37F, giving: - * - * round to nearest - * 64-bit precision - * all exceptions masked. - * - * FreeBSD/i386 uses 53 bit precision for things like fadd/fsub/fsqrt etc - * because of the difference between memory and fpu register stack arguments. - * If its using an intermediate fpu register, it has 80/64 bits to work - * with. If it uses memory, it has 64/53 bits to work with. However, - * gcc is aware of this and goes to a fair bit of trouble to make the - * best use of it. - * - * This is mostly academic for AMD64, because the ABI prefers the use - * SSE2 based math. For FreeBSD/amd64, we go with the default settings. - */ -#define __INITIAL_FPUCW__ 0x037F -#define __INITIAL_FPUCW_I386__ 0x127F -#define __INITIAL_MXCSR__ 0x1F80 -#define __INITIAL_MXCSR_MASK__ 0xFFBF - -#ifdef _KERNEL void fpudna(void); void fpudrop(void); void fpuexit(struct thread *td); Copied: projects/pseries/amd64/include/npx.h (from r233546, head/sys/amd64/include/npx.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/amd64/include/npx.h Tue Mar 27 14:24:46 2012 (r233548, copy of r233546, head/sys/amd64/include/npx.h) @@ -0,0 +1,6 @@ +/*- + * This file is in the public domain. + */ +/* $FreeBSD$ */ + +#include Modified: projects/pseries/amd64/include/proc.h ============================================================================== --- projects/pseries/amd64/include/proc.h Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/include/proc.h Tue Mar 27 14:24:46 2012 (r233548) @@ -46,6 +46,7 @@ struct proc_ldt { struct mdthread { int md_spinlock_count; /* (k) */ register_t md_saved_flags; /* (k) */ + register_t md_spurflt_addr; /* (k) Spurious page fault address. */ }; struct mdproc { Modified: projects/pseries/amd64/include/psl.h ============================================================================== --- projects/pseries/amd64/include/psl.h Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/include/psl.h Tue Mar 27 14:24:46 2012 (r233548) @@ -1,84 +1,6 @@ /*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * William Jolitz. - * - * 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. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * from: @(#)psl.h 5.2 (Berkeley) 1/18/91 - * $FreeBSD$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -#ifndef _MACHINE_PSL_H_ -#define _MACHINE_PSL_H_ - -/* - * 386 processor status longword. - */ -#define PSL_C 0x00000001 /* carry bit */ -#define PSL_PF 0x00000004 /* parity bit */ -#define PSL_AF 0x00000010 /* bcd carry bit */ -#define PSL_Z 0x00000040 /* zero bit */ -#define PSL_N 0x00000080 /* negative bit */ -#define PSL_T 0x00000100 /* trace enable bit */ -#define PSL_I 0x00000200 /* interrupt enable bit */ -#define PSL_D 0x00000400 /* string instruction direction bit */ -#define PSL_V 0x00000800 /* overflow bit */ -#define PSL_IOPL 0x00003000 /* i/o privilege level */ -#define PSL_NT 0x00004000 /* nested task bit */ -#define PSL_RF 0x00010000 /* resume flag bit */ -/* #define PSL_VM 0x00020000 */ /* virtual 8086 mode bit */ -#define PSL_AC 0x00040000 /* alignment checking */ -/* #define PSL_VIF 0x00080000 */ /* virtual interrupt enable */ -/* #define PSL_VIP 0x00100000 */ /* virtual interrupt pending */ -#define PSL_ID 0x00200000 /* identification bit */ - -/* - * The i486 manual says that we are not supposed to change reserved flags, - * but this is too much trouble since the reserved flags depend on the cpu - * and setting them to their historical values works in practice. - */ -#define PSL_RESERVED_DEFAULT 0x00000002 - -/* - * Initial flags for kernel and user mode. The kernel later inherits - * PSL_I and some other flags from user mode. - */ -#define PSL_KERNEL PSL_RESERVED_DEFAULT -#define PSL_USER (PSL_RESERVED_DEFAULT | PSL_I) - -/* - * Bits that can be changed in user mode on 486's. We allow these bits - * to be changed using ptrace(), sigreturn() and procfs. Setting PS_NT - * is undesirable but it may as well be allowed since users can inflict - * it on the kernel directly. Changes to PSL_AC are silently ignored on - * 386's. - */ -#define PSL_USERCHANGE (PSL_C | PSL_PF | PSL_AF | PSL_Z | PSL_N | PSL_T \ - | PSL_D | PSL_V | PSL_NT | PSL_AC | PSL_ID) - -#endif /* !_MACHINE_PSL_H_ */ +#include Modified: projects/pseries/amd64/include/reg.h ============================================================================== --- projects/pseries/amd64/include/reg.h Tue Mar 27 14:24:29 2012 (r233547) +++ projects/pseries/amd64/include/reg.h Tue Mar 27 14:24:46 2012 (r233548) @@ -1,141 +1,6 @@ /*- - * Copyright (c) 2003 Peter Wemm. - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * William Jolitz. - * - * 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. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * from: @(#)reg.h 5.5 (Berkeley) 1/18/91 - * $FreeBSD$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -#ifndef _MACHINE_REG_H_ -#define _MACHINE_REG_H_ - -#if defined(_KERNEL) && !defined(_STANDALONE) -#include "opt_compat.h" -#endif - -/* - * Register set accessible via /proc/$pid/regs and PT_{SET,GET}REGS. - */ -struct reg { - register_t r_r15; - register_t r_r14; - register_t r_r13; - register_t r_r12; - register_t r_r11; - register_t r_r10; - register_t r_r9; - register_t r_r8; - register_t r_rdi; - register_t r_rsi; - register_t r_rbp; - register_t r_rbx; - register_t r_rdx; - register_t r_rcx; - register_t r_rax; - uint32_t r_trapno; - uint16_t r_fs; - uint16_t r_gs; - uint32_t r_err; - uint16_t r_es; - uint16_t r_ds; - register_t r_rip; - register_t r_cs; - register_t r_rflags; - register_t r_rsp; - register_t r_ss; -}; - -/* - * Register set accessible via /proc/$pid/fpregs. - */ -struct fpreg { - /* - * XXX should get struct from fpu.h. Here we give a slightly - * simplified struct. This may be too much detail. Perhaps - * an array of unsigned longs is best. - */ - unsigned long fpr_env[4]; - unsigned char fpr_acc[8][16]; - unsigned char fpr_xacc[16][16]; - unsigned long fpr_spare[12]; -}; - -/* - * Register set accessible via /proc/$pid/dbregs. - */ -struct dbreg { - unsigned long dr[16]; /* debug registers */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***