From owner-p4-projects@FreeBSD.ORG Mon Apr 16 13:57:58 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 217D516A404; Mon, 16 Apr 2007 13:57:58 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E800816A401 for ; Mon, 16 Apr 2007 13:57:57 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D4B8D13C4BD for ; Mon, 16 Apr 2007 13:57:57 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3GDvvMY088732 for ; Mon, 16 Apr 2007 13:57:57 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3GDvsJq088724 for perforce@freebsd.org; Mon, 16 Apr 2007 13:57:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 16 Apr 2007 13:57:54 GMT Message-Id: <200704161357.l3GDvsJq088724@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118244 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Apr 2007 13:57:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=118244 Change 118244 by rwatson@rwatson_fledge on 2007/04/16 13:57:45 Integrate zcopybpf branch from CVS HEAD. Affected files ... .. //depot/projects/zcopybpf/src/sys/Makefile#3 integrate .. //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/zcopybpf/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/boot/forth/loader.conf#3 integrate .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/boot0.5.s#3 integrate .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/ldscript#1 branch .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/putssjis.s#1 branch .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/selector.s#2 integrate .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/start.s#2 integrate .. //depot/projects/zcopybpf/src/sys/boot/pc98/boot2/boot.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_periph.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_periph.h#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_sim.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_sim.h#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_xpt.c#4 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_xpt.h#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_cd.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_da.c#4 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_low.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_pass.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_sg.c#1 branch .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_sg.h#1 branch .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_targ_bh.c#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/zcopybpf/src/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_kmem.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_kobj.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_misc.c#1 branch .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_string.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/kmem.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/kobj.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/lock.h#1 branch .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/misc.h#1 branch .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/mutex.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/rwlock.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/string.h#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/NOTES#5 integrate .. //depot/projects/zcopybpf/src/sys/conf/files#6 integrate .. //depot/projects/zcopybpf/src/sys/conf/files.ia64#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/options#5 integrate .. //depot/projects/zcopybpf/src/sys/contrib/dev/acpica/utmisc.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#1 branch .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/common/atomic/i386/atomic.S#1 branch .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/arch/amd64/atomic.S#2 delete .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/arch/i386/atomic.S#2 delete .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/os/taskq.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/sys/fs/zfs.h#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/pf/net/if_pfsync.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/aac/aac_cam.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/advansys/adwcam.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/aha/aha.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/ahb/ahb.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic/aic.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx_osm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx_osm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/amd/amd.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/arcmsr/arcmsr.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/asr/asr.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-all.h#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-chipset.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata_if.m#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/atapi-cam.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/ath/ah_osdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/buslogic/bt.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_adapter.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_lro.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_sge.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/sys/mvec.h#1 branch .. //depot/projects/zcopybpf/src/sys/dev/cxgb/sys/uipc_mvec.c#1 branch .. //depot/projects/zcopybpf/src/sys/dev/dpt/dpt_scsi.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/esp/ncr53c9x.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/ex/if_exvar.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/firewire/fwdma.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/firewire/sbp.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/firewire/sbp_targ.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/hptmv/entry.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/iir/iir.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/mii/brgphy.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/mii/miidevs#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/mly/mly.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/mpt/mpt_cam.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/msk/if_msk.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/ppbus/vpo.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/rr232x/osm_bsd.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/cmi.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sym/sym_hipd.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/trm/trm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/twa/tw_osl_cam.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/umass.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/usbdevs#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/wds/wd7000.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/procfs/procfs_dbregs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/procfs/procfs_fpregs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/procfs/procfs_map.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/procfs/procfs_regs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs.h#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs_fileno.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs_internal.h#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs_vncache.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs_vnops.c#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/eli/g_eli.c#4 integrate .. //depot/projects/zcopybpf/src/sys/geom/journal/g_journal.c#3 integrate .. //depot/projects/zcopybpf/src/sys/geom/uzip/g_uzip.c#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/vinum/geom_vinum.h#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/vinum/geom_vinum_rm.c#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/vinum/geom_vinum_share.c#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/identcpu.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/initcpu.c#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/minidump_machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/mp_machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/trap.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/include/pmap.h#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/include/specialreg.h#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/include/vmparam.h#2 integrate .. //depot/projects/zcopybpf/src/sys/ia64/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_jail.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_mib.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/uipc_mqueue.c#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/uipc_syscalls.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/vfs_mount.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/vfs_subr.c#3 integrate .. //depot/projects/zcopybpf/src/sys/libkern/index.c#2 integrate .. //depot/projects/zcopybpf/src/sys/libkern/rindex.c#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/Makefile#4 integrate .. //depot/projects/zcopybpf/src/sys/modules/cam/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/cxgb/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/dpt/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/if_trunk/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/modules/libalias/libalias/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/modules/zfs/Makefile#2 integrate .. //depot/projects/zcopybpf/src/sys/net/ieee8023ad_lacp.c#1 branch .. //depot/projects/zcopybpf/src/sys/net/ieee8023ad_lacp.h#1 branch .. //depot/projects/zcopybpf/src/sys/net/if.c#4 integrate .. //depot/projects/zcopybpf/src/sys/net/if_ethersubr.c#4 integrate .. //depot/projects/zcopybpf/src/sys/net/if_trunk.c#1 branch .. //depot/projects/zcopybpf/src/sys/net/if_trunk.h#1 branch .. //depot/projects/zcopybpf/src/sys/net/if_var.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/in_pcb.c#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/libalias/alias_db.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet/libalias/alias_skinny.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_constants.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_crc32.c#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_indata.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_input.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_output.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_pcb.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_peeloff.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_structs.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_timer.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_uio.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_usrreq.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_var.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctputil.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctputil.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_input.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_sack.c#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_syncache.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_timer.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_timer.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_usrreq.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_var.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet6/ipsec.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet6/sctp6_usrreq.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netipsec/ipsec_osdep.h#2 integrate .. //depot/projects/zcopybpf/src/sys/netnatm/natm.h#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsserver/nfs_srvsock.c#3 integrate .. //depot/projects/zcopybpf/src/sys/pc98/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/pci/ncr.c#3 integrate .. //depot/projects/zcopybpf/src/sys/powerpc/conf/GENERIC#4 integrate .. //depot/projects/zcopybpf/src/sys/rpc/types.h#1 branch .. //depot/projects/zcopybpf/src/sys/security/audit/audit.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit.h#2 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_arg.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_bsm.c#2 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_bsm_token.c#2 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_private.h#2 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_syscalls.c#3 integrate .. //depot/projects/zcopybpf/src/sys/sparc64/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/sun4v/conf/GENERIC#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/eventhandler.h#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/hash.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/kernel.h#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/libkern.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/mbuf.h#5 integrate .. //depot/projects/zcopybpf/src/sys/sys/mutex.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/param.h#5 integrate .. //depot/projects/zcopybpf/src/sys/sys/priv.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/proc.h#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/sysctl.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/systm.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/unistd.h#3 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_snapshot.c#3 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_softdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/vm/phys_pager.c#3 integrate .. //depot/projects/zcopybpf/src/usr.sbin/netstat/mcast.c#3 integrate Differences ... ==== //depot/projects/zcopybpf/src/sys/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.41 2007/03/24 22:21:01 maxim Exp $ +# $FreeBSD: src/sys/Makefile,v 1.42 2007/04/14 16:29:15 maxim Exp $ .include @@ -8,10 +8,10 @@ .endif # Directories to include in cscope name file and TAGS. -CSCOPEDIRS= cam coda compat conf contrib crypto ddb dev fs geom gnu i4b \ - isa kern libkern modules net net80211 netatalk netatm \ +CSCOPEDIRS= bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \ + i4b isa kern libkern modules net net80211 netatalk netatm \ netgraph netinet netinet6 netipx netkey netnatm netncp \ - netsmb nfs nfsclient nfs4client rpc pccard pci sys \ + netsmb nfs nfsclient nfs4client rpc pccard pci security sys \ ufs vm ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.581 2007/03/10 20:26:43 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $"); /* * Manages physical address maps. @@ -3261,7 +3261,7 @@ pd_entry_t *pde; pt_entry_t *pte; - base = va & PG_FRAME; + base = trunc_page(va); offset = va & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); ==== //depot/projects/zcopybpf/src/sys/amd64/conf/GENERIC#3 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.473 2007/02/09 19:03:17 brooks Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.475 2007/04/10 21:40:12 pjd Exp $ cpu HAMMER ident GENERIC @@ -48,6 +48,7 @@ options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling options MD_ROOT # MD is a potential root device options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server ==== //depot/projects/zcopybpf/src/sys/boot/forth/loader.conf#3 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.118 2007/02/04 06:35:10 imp Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.120 2007/04/09 22:09:09 pjd Exp $ ############################################################## ### Basic configuration options ############################ @@ -138,6 +138,7 @@ #umapfs_load="NO" # User-id map filesystem unionfs_load="NO" # Union filesystem xfs_load="NO" # XFS +zfs_load="NO" # ZFS # Related stuff @@ -418,3 +419,10 @@ #module_after="cmd" # executes "cmd" after loading the module #module_error="cmd" # executes "cmd" if load fails +############################################################## +### Always try to load ZFS pool cache file ################# +############################################################## + +zpool_cache_load="YES" +zpool_cache_type="/boot/zfs/zpool.cache" +zpool_cache_name="/boot/zfs/zpool.cache" ==== //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/Makefile#2 (text+ko) ==== @@ -1,10 +1,11 @@ -# $FreeBSD: src/sys/boot/pc98/boot0.5/Makefile,v 1.4 2004/12/21 08:47:16 ru Exp $ +# $FreeBSD: src/sys/boot/pc98/boot0.5/Makefile,v 1.6 2007/04/07 13:37:45 nyan Exp $ PROG= ${BOOT}.out INTERNALPROG= FILES= ${BOOT} NO_MAN= -SRCS= start.s boot.s boot0.5.s disk.s selector.s support.s syscons.s +SRCS= start.s boot.s boot0.5.s disk.s selector.s support.s syscons.s \ + putssjis.s CLEANFILES= ${BOOT} ${BOOT}.bin BOOT= boot0.5 @@ -13,7 +14,7 @@ # unless you are glutton for punishment. BOOT_BOOT0_ORG?= 0x0000 -LDFLAGS=-N -e start -Ttext ${BOOT_BOOT0_ORG} +LDFLAGS=-N -e start -Ttext ${BOOT_BOOT0_ORG} -Wl,-T,${.CURDIR}/ldscript # The size of boot0.5 must be 7168 bytes ${BOOT}: ${BOOT}.bin ==== //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/boot0.5.s#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# Copyright (c) KATO Takenori, 1999, 2000. +# Copyright (c) KATO Takenori, 1999, 2000, 2007. # # All rights reserved. Unpublished rights reserved under the copyright # laws of Japan. @@ -25,7 +25,7 @@ # (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: src/sys/boot/pc98/boot0.5/boot0.5.s,v 1.3 2007/03/17 05:30:03 kato Exp $ +# $FreeBSD: src/sys/boot/pc98/boot0.5/boot0.5.s,v 1.4 2007/04/07 08:37:04 kato Exp $ # .global main .code16 @@ -261,8 +261,8 @@ .global ishireso ishireso: .byte 0 -title: .asciz "PC98 Boot Selector Version 1.1" -copyright: .ascii "(C)Copyright 1999, 2000 KATO Takenori. " +title: .asciz "PC98 Boot Selector Version 1.2" +copyright: .ascii "(C)Copyright 1999-2007 KATO Takenori. " .asciz "All rights reserved." msg_device: .asciz "Device" msg_sasi: .asciz "SASI/IDE unit " ==== //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/selector.s#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# Copyright (c) KATO Takenori, 1999, 2000. +# Copyright (c) KATO Takenori, 1999, 2000, 2007. # # All rights reserved. Unpublished rights reserved under the copyright # laws of Japan. @@ -25,7 +25,7 @@ # (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: src/sys/boot/pc98/boot0.5/selector.s,v 1.2 2000/08/06 14:35:37 kato Exp $ +# $FreeBSD: src/sys/boot/pc98/boot0.5/selector.s,v 1.3 2007/04/07 08:37:04 kato Exp $ # .code16 @@ -299,6 +299,11 @@ jne dev_right movw $3, mode # N88-BASIC ret + + # XXX + .space 5, 0x90 + ret # Dummy ret @0x9ab + dev_up: cmpw $0, curdevice je devmode_loop ==== //depot/projects/zcopybpf/src/sys/boot/pc98/boot0.5/start.s#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# Copyright (c) KATO Takenori, 1999, 2000. +# Copyright (c) KATO Takenori, 1999, 2000, 2007. # # All rights reserved. Unpublished rights reserved under the copyright # laws of Japan. @@ -25,7 +25,7 @@ # (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: src/sys/boot/pc98/boot0.5/start.s,v 1.2 2003/05/02 09:33:12 kato Exp $ +# $FreeBSD: src/sys/boot/pc98/boot0.5/start.s,v 1.3 2007/04/07 08:37:04 kato Exp $ # .global start .code16 @@ -34,8 +34,19 @@ start: jmp start1 + # Magic + .org 0x053, 0x20 + .byte 0x4e, 0x45, 0x43 + + .org 0x8f + .byte 0x32, 0x2e, 0x37, 0x30 + .org 0x2d4 start1: + # The instruction 'call 0x9ab' can be here. See also selector.s. + nop + nop + nop cli movw %cs, %ax movw %ax, %ds ==== //depot/projects/zcopybpf/src/sys/boot/pc98/boot2/boot.c#2 (text+ko) ==== @@ -49,7 +49,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/boot.c,v 1.16 2006/11/02 17:28:38 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/boot.c,v 1.17 2007/04/06 20:50:24 kan Exp $"); #include "boot.h" #include @@ -70,7 +70,7 @@ static char kernel_config_namebuf[NAMEBUF_LEN + sizeof "config"]; static char linebuf[NAMEBUF_LEN]; static char namebuf[NAMEBUF_LEN]; -static struct bootinfo bootinfo; +struct bootinfo bootinfo; int loadflags; static void getbootdev(char *ptr, int *howto); ==== //depot/projects/zcopybpf/src/sys/cam/cam_ccb.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.34 2006/12/03 07:19:28 mjacob Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.35 2007/04/15 08:49:09 scottl Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -242,8 +242,7 @@ typedef union { void *ptr; u_long field; - u_int8_t bytes[sizeof(void *) > sizeof(u_long) - ? sizeof(void *) : sizeof(u_long)]; + u_int8_t bytes[sizeof(uintptr_t)]; } ccb_priv_entry; typedef union { @@ -274,8 +273,12 @@ ccb_ppriv_area periph_priv; ccb_spriv_area sim_priv; u_int32_t timeout; /* Timeout value */ + + /* + * Deprecated, only for use by non-MPSAFE SIMs. All others must + * allocate and initialize their own callout storage. + */ struct callout_handle timeout_ch; - /* Callout handle used for timeouts */ }; /* Get Device Information CCB */ ==== //depot/projects/zcopybpf/src/sys/cam/cam_periph.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.64 2006/12/05 07:45:27 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.65 2007/04/15 08:49:09 scottl Exp $"); #include #include @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -122,6 +123,7 @@ ac_callback_t *ac_callback, ac_code code, void *arg) { struct periph_driver **p_drv; + struct cam_sim *sim; struct cam_periph *periph; struct cam_periph *cur_periph; path_id_t path_id; @@ -163,11 +165,14 @@ init_level++; + xpt_lock_buses(); for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) { if (strcmp((*p_drv)->driver_name, name) == 0) break; } - + xpt_unlock_buses(); + + sim = xpt_path_sim(path); path_id = xpt_path_path_id(path); target_id = xpt_path_target_id(path); lun_id = xpt_path_lun_id(path); @@ -181,6 +186,7 @@ periph->unit_number = camperiphunit(*p_drv, path_id, target_id, lun_id); periph->immediate_priority = CAM_PRIORITY_NONE; periph->refcount = 0; + periph->sim = sim; SLIST_INIT(&periph->ccb_list); status = xpt_create_path(&path, periph, path_id, target_id, lun_id); if (status != CAM_REQ_CMP) @@ -276,14 +282,13 @@ cam_status cam_periph_acquire(struct cam_periph *periph) { - int s; if (periph == NULL) return(CAM_REQ_CMP_ERR); - s = splsoftcam(); + xpt_lock_buses(); periph->refcount++; - splx(s); + xpt_unlock_buses(); return(CAM_REQ_CMP); } @@ -291,18 +296,66 @@ void cam_periph_release(struct cam_periph *periph) { - int s; if (periph == NULL) return; - s = splsoftcam(); + xpt_lock_buses(); if ((--periph->refcount == 0) && (periph->flags & CAM_PERIPH_INVALID)) { camperiphfree(periph); } - splx(s); + xpt_unlock_buses(); + +} + +int +cam_periph_hold(struct cam_periph *periph, int priority) +{ + struct mtx *mtx; + int error; + + mtx_assert(periph->sim->mtx, MA_OWNED); + + /* + * Increment the reference count on the peripheral + * while we wait for our lock attempt to succeed + * to ensure the peripheral doesn't disappear out + * from user us while we sleep. + */ + + if (cam_periph_acquire(periph) != CAM_REQ_CMP) + return (ENXIO); + + mtx = periph->sim->mtx; + if (mtx == &Giant) + mtx = NULL; + + while ((periph->flags & CAM_PERIPH_LOCKED) != 0) { + periph->flags |= CAM_PERIPH_LOCK_WANTED; + if ((error = msleep(periph, mtx, priority, "caplck", 0)) != 0) { + cam_periph_release(periph); + return (error); + } + } + + periph->flags |= CAM_PERIPH_LOCKED; + return (0); +} + +void +cam_periph_unhold(struct cam_periph *periph) +{ + + mtx_assert(periph->sim->mtx, MA_OWNED); + + periph->flags &= ~CAM_PERIPH_LOCKED; + if ((periph->flags & CAM_PERIPH_LOCK_WANTED) != 0) { + periph->flags &= ~CAM_PERIPH_LOCK_WANTED; + wakeup(periph); + } + cam_periph_release(periph); } /* @@ -424,9 +477,7 @@ void cam_periph_invalidate(struct cam_periph *periph) { - int s; - s = splsoftcam(); /* * We only call this routine the first time a peripheral is * invalidated. The oninvalidate() routine is always called at @@ -439,11 +490,12 @@ periph->flags |= CAM_PERIPH_INVALID; periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND; + xpt_lock_buses(); if (periph->refcount == 0) camperiphfree(periph); else if (periph->refcount < 0) printf("cam_invalidate_periph: refcount < 0!!\n"); - splx(s); + xpt_unlock_buses(); } static void @@ -502,30 +554,11 @@ /* * Wait interruptibly for an exclusive lock. */ -int -cam_periph_lock(struct cam_periph *periph, int priority) +void +cam_periph_lock(struct cam_periph *periph) { - int error; - /* - * Increment the reference count on the peripheral - * while we wait for our lock attempt to succeed - * to ensure the peripheral doesn't disappear out - * from under us while we sleep. - */ - if (cam_periph_acquire(periph) != CAM_REQ_CMP) - return(ENXIO); - - while ((periph->flags & CAM_PERIPH_LOCKED) != 0) { - periph->flags |= CAM_PERIPH_LOCK_WANTED; - if ((error = tsleep(periph, priority, "caplck", 0)) != 0) { - cam_periph_release(periph); - return error; - } - } - - periph->flags |= CAM_PERIPH_LOCKED; - return 0; + mtx_lock(periph->sim->mtx); } /* @@ -534,13 +567,8 @@ void cam_periph_unlock(struct cam_periph *periph) { - periph->flags &= ~CAM_PERIPH_LOCKED; - if ((periph->flags & CAM_PERIPH_LOCK_WANTED) != 0) { - periph->flags &= ~CAM_PERIPH_LOCK_WANTED; - wakeup(periph); - } - cam_periph_release(periph); + mtx_unlock(periph->sim->mtx); } /* @@ -752,12 +780,11 @@ cam_periph_getccb(struct cam_periph *periph, u_int32_t priority) { struct ccb_hdr *ccb_h; - int s; + struct mtx *mtx; + mtx_assert(periph->sim->mtx, MA_OWNED); CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering cdgetccb\n")); - s = splsoftcam(); - while (SLIST_FIRST(&periph->ccb_list) == NULL) { if (periph->immediate_priority > priority) periph->immediate_priority = priority; @@ -765,24 +792,35 @@ if ((SLIST_FIRST(&periph->ccb_list) != NULL) && (SLIST_FIRST(&periph->ccb_list)->pinfo.priority == priority)) break; - tsleep(&periph->ccb_list, PRIBIO, "cgticb", 0); + mtx_assert(periph->sim->mtx, MA_OWNED); + if (periph->sim->mtx == &Giant) + mtx = NULL; + else + mtx = periph->sim->mtx; + msleep(&periph->ccb_list, mtx, PRIBIO, "cgticb", 0); } ccb_h = SLIST_FIRST(&periph->ccb_list); SLIST_REMOVE_HEAD(&periph->ccb_list, periph_links.sle); - splx(s); return ((union ccb *)ccb_h); } void cam_periph_ccbwait(union ccb *ccb) { + struct mtx *mtx; + struct cam_sim *sim; int s; s = splsoftcam(); + sim = xpt_path_sim(ccb->ccb_h.path); + if (sim->mtx == &Giant) + mtx = NULL; + else + mtx = sim->mtx; if ((ccb->ccb_h.pinfo.index != CAM_UNQUEUED_INDEX) || ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG)) - tsleep(&ccb->ccb_h.cbfcnp, PRIBIO, "cbwait", 0); + msleep(&ccb->ccb_h.cbfcnp, mtx, PRIBIO, "cbwait", 0); splx(s); } @@ -857,10 +895,13 @@ cam_flags camflags, u_int32_t sense_flags, struct devstat *ds) { + struct cam_sim *sim; int error; error = 0; - + sim = xpt_path_sim(ccb->ccb_h.path); + mtx_assert(sim->mtx, MA_OWNED); + /* * If the user has supplied a stats structure, and if we understand * this particular type of ccb, record the transaction start. ==== //depot/projects/zcopybpf/src/sys/cam/cam_periph.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_periph.h,v 1.16 2005/01/05 22:34:34 imp Exp $ + * $FreeBSD: src/sys/cam/cam_periph.h,v 1.17 2007/04/15 08:49:09 scottl Exp $ */ #ifndef _CAM_CAM_PERIPH_H @@ -104,6 +104,7 @@ char *periph_name; struct cam_path *path; /* Compiled path to device */ void *softc; + struct cam_sim *sim; u_int32_t unit_number; cam_periph_type type; u_int32_t flags; @@ -113,6 +114,7 @@ #define CAM_PERIPH_INVALID 0x08 #define CAM_PERIPH_NEW_DEV_FOUND 0x10 #define CAM_PERIPH_RECOVERY_INPROG 0x20 +#define CAM_PERIPH_POLLED 0x40 u_int32_t immediate_priority; u_int32_t refcount; SLIST_HEAD(, ccb_hdr) ccb_list; /* For "immediate" requests */ @@ -136,10 +138,12 @@ char *name, cam_periph_type type, struct cam_path *, ac_callback_t *, ac_code, void *arg); struct cam_periph *cam_periph_find(struct cam_path *path, char *name); -int cam_periph_lock(struct cam_periph *periph, int priority); +void cam_periph_lock(struct cam_periph *periph); void cam_periph_unlock(struct cam_periph *periph); cam_status cam_periph_acquire(struct cam_periph *periph); void cam_periph_release(struct cam_periph *periph); +int cam_periph_hold(struct cam_periph *periph, int priority); +void cam_periph_unhold(struct cam_periph *periph); void cam_periph_invalidate(struct cam_periph *periph); int cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo); ==== //depot/projects/zcopybpf/src/sys/cam/cam_sim.c#2 (text+ko) ==== @@ -27,12 +27,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_sim.c,v 1.9 2005/07/01 15:21:29 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_sim.c,v 1.10 2007/04/15 08:49:09 scottl Exp $"); #include #include #include #include +#include +#include #include #include @@ -58,39 +60,42 @@ struct cam_sim * cam_sim_alloc(sim_action_func sim_action, sim_poll_func sim_poll, const char *sim_name, void *softc, u_int32_t unit, - int max_dev_transactions, + struct mtx *mtx, int max_dev_transactions, int max_tagged_dev_transactions, struct cam_devq *queue) { struct cam_sim *sim; - /* - * If this is the xpt layer creating a sim, then it's OK - * to wait for an allocation. - * - * XXX Should we pass in a flag to indicate that wait is OK? - */ - if (strcmp(sim_name, "xpt") == 0) - sim = (struct cam_sim *)malloc(sizeof(struct cam_sim), - M_CAMSIM, M_WAITOK); - else - sim = (struct cam_sim *)malloc(sizeof(struct cam_sim), - M_CAMSIM, M_NOWAIT); + if (mtx == NULL) + return (NULL); + + sim = (struct cam_sim *)malloc(sizeof(struct cam_sim), + M_CAMSIM, M_NOWAIT); + + if (sim == NULL) + return (NULL); - if (sim != NULL) { - sim->sim_action = sim_action; - sim->sim_poll = sim_poll; - sim->sim_name = sim_name; - sim->softc = softc; - sim->path_id = CAM_PATH_ANY; - sim->unit_number = unit; - sim->bus_id = 0; /* set in xpt_bus_register */ - sim->max_tagged_dev_openings = max_tagged_dev_transactions; - sim->max_dev_openings = max_dev_transactions; - sim->flags = 0; - callout_handle_init(&sim->c_handle); - sim->devq = queue; + sim->sim_action = sim_action; + sim->sim_poll = sim_poll; + sim->sim_name = sim_name; + sim->softc = softc; + sim->path_id = CAM_PATH_ANY; + sim->unit_number = unit; + sim->bus_id = 0; /* set in xpt_bus_register */ + sim->max_tagged_dev_openings = max_tagged_dev_transactions; + sim->max_dev_openings = max_dev_transactions; + sim->flags = 0; + sim->devq = queue; + sim->mtx = mtx; + if (mtx == &Giant) { + sim->flags |= 0; + callout_init(&sim->callout, 0); + } else { + sim->flags |= CAM_SIM_MPSAFE; + callout_init(&sim->callout, 1); } + SLIST_INIT(&sim->ccb_freeq); + return (sim); } ==== //depot/projects/zcopybpf/src/sys/cam/cam_sim.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_sim.h,v 1.6 2005/01/05 22:34:34 imp Exp $ + * $FreeBSD: src/sys/cam/cam_sim.h,v 1.7 2007/04/15 08:49:09 scottl Exp $ */ #ifndef _CAM_CAM_SIM_H @@ -56,6 +56,7 @@ const char *sim_name, void *softc, u_int32_t unit, + struct mtx *mtx, int max_dev_transactions, int max_tagged_dev_transactions, struct cam_devq *queue); @@ -90,17 +91,33 @@ sim_poll_func sim_poll; const char *sim_name; void *softc; + struct mtx *mtx; u_int32_t path_id;/* The Boot device may set this to 0? */ u_int32_t unit_number; u_int32_t bus_id; int max_tagged_dev_openings; int max_dev_openings; u_int32_t flags; -#define CAM_SIM_REL_TIMEOUT_PENDING 0x01 - struct callout_handle c_handle; +#define CAM_SIM_REL_TIMEOUT_PENDING 0x01 +#define CAM_SIM_MPSAFE 0x02 + struct callout callout; struct cam_devq *devq; /* Device Queue to use for this SIM */ + + /* "Pool" of inactive ccbs managed by xpt_alloc_ccb and xpt_free_ccb */ + SLIST_HEAD(,ccb_hdr) ccb_freeq; + /* + * Maximum size of ccb pool. Modified as devices are added/removed + * or have their * opening counts changed. + */ + u_int max_ccbs; + /* Current count of allocated ccbs */ + u_int ccb_count; + }; +#define CAM_SIM_LOCK(sim) mtx_lock((sim)->mtx); +#define CAM_SIM_UNLOCK(sim) mtx_unlock((sim)->mtx); + static __inline u_int32_t cam_sim_path(struct cam_sim *sim) { ==== //depot/projects/zcopybpf/src/sys/cam/cam_xpt.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.175 2007/03/15 06:42:54 mjacob Exp $"); >>> TRUNCATED FOR MAIL (1000 lines) <<<