Date: Sun, 17 May 2009 23:30:13 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r192271 - in user/kmacy/releng_7_2_zfs/sys: amd64/conf amd64/include boot/i386/zfsboot boot/zfs cddl/boot cddl/boot/zfs cddl/compat/opensolaris/kern cddl/compat/opensolaris/rpc cddl/com... Message-ID: <200905172330.n4HNUDgU042829@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Sun May 17 23:30:13 2009 New Revision: 192271 URL: http://svn.freebsd.org/changeset/base/192271 Log: MFC sys portion of update v13 Added: user/kmacy/releng_7_2_zfs/sys/amd64/conf/GENERIC_MINUS user/kmacy/releng_7_2_zfs/sys/boot/i386/zfsboot/ user/kmacy/releng_7_2_zfs/sys/boot/i386/zfsboot/zfsboot.c user/kmacy/releng_7_2_zfs/sys/boot/zfs/ user/kmacy/releng_7_2_zfs/sys/boot/zfs/zfsimpl.c user/kmacy/releng_7_2_zfs/sys/cddl/boot/ user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/ user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/README user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/fletcher.c user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/lzjb.c user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/sha256.c user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/zfsimpl.h user/kmacy/releng_7_2_zfs/sys/cddl/boot/zfs/zfssubr.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/file.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/kidmap.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/pathname.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/refstr.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/sid.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/sig.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/unicode/ user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/unicode/u8_textprep.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zprop_common.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg2.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub2.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid2.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/acl_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/extdirent.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/idmap.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/ user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/u8_textprep.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/u8_textprep_data.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c user/kmacy/releng_7_2_zfs/sys/kern/kern_osd.c user/kmacy/releng_7_2_zfs/sys/kern/kern_rmlock.c user/kmacy/releng_7_2_zfs/sys/libkern/memmove.c user/kmacy/releng_7_2_zfs/sys/sys/_rmlock.h user/kmacy/releng_7_2_zfs/sys/sys/osd.h user/kmacy/releng_7_2_zfs/sys/sys/rmlock.h Deleted: user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/acl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/amd64/atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/i386/atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/ia64/atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/atomic/sparc64/atomic.S user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/vfs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.c Modified: user/kmacy/releng_7_2_zfs/sys/amd64/include/vmparam.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/rpc/xdr.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/atomic.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/cpuvar.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/cred.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/dnlc.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/kmem.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/lock.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/misc.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/mntent.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/mutex.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/param.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/policy.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/proc.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/rwlock.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/sunddi.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/sysmacros.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/time.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/types.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/uio.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/vfs.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/vnode.h user/kmacy/releng_7_2_zfs/sys/cddl/compat/opensolaris/sys/zone.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/acl/acl_common.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/acl/acl_common.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/avl/avl.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/Makefile.files user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/os/callb.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/os/list.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/avl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/byteorder.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/cpuvar.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/cred.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/dkio.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/dklabel.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/fm/fs/zfs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/fm/protocol.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/fm/util.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/gfs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/list.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/processor.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/synch.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h user/kmacy/releng_7_2_zfs/sys/cddl/contrib/opensolaris/uts/common/zmod/zmod.c user/kmacy/releng_7_2_zfs/sys/compat/linprocfs/linprocfs.c user/kmacy/releng_7_2_zfs/sys/compat/pecoff/imgact_pecoff.c user/kmacy/releng_7_2_zfs/sys/conf/files user/kmacy/releng_7_2_zfs/sys/fs/coda/coda_vfsops.c user/kmacy/releng_7_2_zfs/sys/fs/msdosfs/msdosfs_vfsops.c user/kmacy/releng_7_2_zfs/sys/fs/nullfs/null_vfsops.c user/kmacy/releng_7_2_zfs/sys/fs/unionfs/union_vfsops.c user/kmacy/releng_7_2_zfs/sys/kern/kern_environment.c user/kmacy/releng_7_2_zfs/sys/kern/kern_fork.c user/kmacy/releng_7_2_zfs/sys/kern/kern_jail.c user/kmacy/releng_7_2_zfs/sys/kern/kern_kse.c user/kmacy/releng_7_2_zfs/sys/kern/kern_malloc.c user/kmacy/releng_7_2_zfs/sys/kern/kern_proc.c user/kmacy/releng_7_2_zfs/sys/kern/kern_thr.c user/kmacy/releng_7_2_zfs/sys/kern/kern_thread.c user/kmacy/releng_7_2_zfs/sys/kern/subr_lock.c user/kmacy/releng_7_2_zfs/sys/kern/subr_pcpu.c user/kmacy/releng_7_2_zfs/sys/kern/subr_witness.c user/kmacy/releng_7_2_zfs/sys/kern/vfs_acl.c user/kmacy/releng_7_2_zfs/sys/kern/vfs_extattr.c user/kmacy/releng_7_2_zfs/sys/kern/vfs_lookup.c user/kmacy/releng_7_2_zfs/sys/kern/vfs_mount.c user/kmacy/releng_7_2_zfs/sys/kern/vfs_subr.c user/kmacy/releng_7_2_zfs/sys/modules/opensolaris/Makefile user/kmacy/releng_7_2_zfs/sys/modules/zfs/Makefile user/kmacy/releng_7_2_zfs/sys/security/mac/mac_syscalls.c user/kmacy/releng_7_2_zfs/sys/sys/_types.h user/kmacy/releng_7_2_zfs/sys/sys/conf.h user/kmacy/releng_7_2_zfs/sys/sys/fcntl.h user/kmacy/releng_7_2_zfs/sys/sys/jail.h user/kmacy/releng_7_2_zfs/sys/sys/kernel.h user/kmacy/releng_7_2_zfs/sys/sys/lock.h user/kmacy/releng_7_2_zfs/sys/sys/mount.h user/kmacy/releng_7_2_zfs/sys/sys/namei.h user/kmacy/releng_7_2_zfs/sys/sys/pcpu.h user/kmacy/releng_7_2_zfs/sys/sys/proc.h user/kmacy/releng_7_2_zfs/sys/sys/sysctl.h user/kmacy/releng_7_2_zfs/sys/sys/systm.h user/kmacy/releng_7_2_zfs/sys/sys/types.h user/kmacy/releng_7_2_zfs/sys/sys/vnode.h user/kmacy/releng_7_2_zfs/sys/ufs/ffs/ffs_snapshot.c user/kmacy/releng_7_2_zfs/sys/vm/vm_kern.h Added: user/kmacy/releng_7_2_zfs/sys/amd64/conf/GENERIC_MINUS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/kmacy/releng_7_2_zfs/sys/amd64/conf/GENERIC_MINUS Sun May 17 23:30:13 2009 (r192271) @@ -0,0 +1,322 @@ +# +# GENERIC -- Generic kernel configuration file for FreeBSD/amd64 +# +# For more information on this file, please read the handbook section on +# Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD: user/kmacy/ZFS_MFC/sys/amd64/conf/GENERIC 191034 2009-04-14 00:35:56Z jfv $ + +cpu HAMMER +ident GENERIC + +# To statically compile in device wiring instead of /boot/device.hints +#hints "GENERIC.hints" # Default places to look for devices. + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions MODULES_OVERRIDE="opensolaris zfs" + +options SCHED_ULE # ULE scheduler +options PREEMPTION # Enable kernel thread preemption +options INET # InterNETworking +options INET6 # IPv6 communications protocols +options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +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 +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCLIENT +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] +options COMPAT_IA32 # Compatible with i386 binaries +options COMPAT_FREEBSD4 # Compatible with FreeBSD4 +options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI +options KTRACE # ktrace(1) support +options STACK # stack(9) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options KBD_INSTALL_CDEV # install a CDEV entry in /dev +options ADAPTIVE_GIANT # Giant mutex is adaptive. +options STOP_NMI # Stop CPUS using NMI instead of IPI +options AUDIT # Security event auditing +#options KDTRACE_FRAME # Ensure frames are compiled in +#options KDTRACE_HOOKS # Kernel DTrace hooks + + +options INVARIANTS +options INVARIANT_SUPPORT + +options WITNESS +options WITNESS_SKIPSPIN +options DEBUG +options KDB +options DDB +options ALT_BREAK_TO_DEBUGGER +options ADAPTIVE_SX + +# Make an SMP-capable kernel by default +options SMP # Symmetric MultiProcessor Kernel + +# CPU frequency control +device cpufreq + +# Bus support. +device acpi +device pci + +# Floppy drives +device fdc + +# ATA and ATAPI devices +device ata +device atadisk # ATA disk drives +device ataraid # ATA RAID drives +device atapicd # ATAPI CDROM drives +device atapifd # ATAPI floppy drives +device atapist # ATAPI tape drives +options ATA_STATIC_ID # Static device numbering + +# SCSI Controllers +device ahc # AHA2940 and onboard AIC7xxx devices +options AHC_REG_PRETTY_PRINT # Print register bitfields in debug + # output. Adds ~128k to driver. +device ahd # AHA39320/29320 and onboard AIC79xx devices +options AHD_REG_PRETTY_PRINT # Print register bitfields in debug + # output. Adds ~215k to driver. +device amd # AMD 53C974 (Tekram DC-390(T)) +device hptiop # Highpoint RocketRaid 3xxx series +device isp # Qlogic family +#device ispfw # Firmware for QLogic HBAs- normally a module +device mpt # LSI-Logic MPT-Fusion +#device ncr # NCR/Symbios Logic +device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') +device trm # Tekram DC395U/UW/F DC315U adapters + +device adv # Advansys SCSI adapters +device adw # Advansys wide SCSI adapters +device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. +device bt # Buslogic/Mylex MultiMaster SCSI adapters + + +# SCSI peripherals +device scbus # SCSI bus (required for SCSI) +device ch # SCSI media changers +device da # Direct Access (disks) +device sa # Sequential Access (tape etc) +device cd # CD +device pass # Passthrough device (direct SCSI access) +device ses # SCSI Environmental Services (and SAF-TE) + +# RAID controllers interfaced to the SCSI subsystem +device amr # AMI MegaRAID +device arcmsr # Areca SATA II RAID +device ciss # Compaq Smart RAID 5* +device dpt # DPT Smartcache III, IV - See NOTES for options +device hptmv # Highpoint RocketRAID 182x +device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx +device iir # Intel Integrated RAID +device ips # IBM (Adaptec) ServeRAID +device mly # Mylex AcceleRAID/eXtremeRAID +device twa # 3ware 9000 series PATA/SATA RAID + +# RAID controllers +device aac # Adaptec FSA RAID +device aacp # SCSI passthrough for aac (requires CAM) +device ida # Compaq Smart RAID +device mfi # LSI MegaRAID SAS +device mlx # Mylex DAC960 family +#XXX pointer/int warnings +#device pst # Promise Supertrak SX6000 +device twe # 3ware ATA RAID + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc # AT keyboard controller +device atkbd # AT keyboard +device psm # PS/2 mouse + +device kbdmux # keyboard multiplexer + +device vga # VGA video card driver + +device splash # Splash screen and screen saver support + +# syscons is the default console driver, resembling an SCO console +device sc + +device agp # support several AGP chipsets + +# PCCARD (PCMCIA) support +# PCMCIA and cardbus bridge support +device cbb # cardbus (yenta) bridge +device pccard # PC Card (16-bit) bus +device cardbus # CardBus (32-bit) bus + +# Serial (COM) ports +device sio # 8250, 16[45]50 based serial ports +device uart # Generic UART driver + +# Parallel port +device ppc +device ppbus # Parallel port bus (required) +device lpt # Printer +device plip # TCP/IP over parallel +device ppi # Parallel port interface device +#device vpo # Requires scbus and da + +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to sio, uart and/or ppc drivers): +#device puc + +# PCI Ethernet NICs. +device de # DEC/Intel DC21x4x (``Tulip'') +device em # Intel PRO/1000 Gigabit Ethernet Family +device igb # Intel PRO/1000 PCIE Server Gigabit Family +device ixgbe # Intel PRO/10GbE PCIE Ethernet Family +device le # AMD Am7900 LANCE and Am79C9xx PCnet +device txp # 3Com 3cR990 (``Typhoon'') +device vx # 3Com 3c590, 3c595 (``Vortex'') + +# PCI Ethernet NICs that use the common MII bus controller code. +# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! +device miibus # MII bus support +device age # Attansic/Atheros L1 Gigabit Ethernet +device ale # Atheros AR8121/AR8113/AR8114 Ethernet +device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet +device bfe # Broadcom BCM440x 10/100 Ethernet +device bge # Broadcom BCM570xx Gigabit Ethernet +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 jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet +device lge # Level 1 LXT1001 gigabit Ethernet +device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet +device nfe # nVidia nForce MCP on-board Ethernet +device nge # NatSemi DP83820 gigabit Ethernet +#device nve # nVidia nForce MCP on-board Ethernet Networking +device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le') +device re # RealTek 8139C+/8169/8169S/8110S +device rl # RealTek 8129/8139 +device sf # Adaptec AIC-6915 (``Starfire'') +device sis # Silicon Integrated Systems SiS 900/SiS 7016 +device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet +device ste # Sundance ST201 (D-Link DFE-550TX) +device ti # Alteon Networks Tigon I/II gigabit Ethernet +device tl # Texas Instruments ThunderLAN +device tx # SMC EtherPower II (83c170 ``EPIC'') +device vge # VIA VT612x gigabit Ethernet +device vr # VIA Rhine, Rhine II +device wb # Winbond W89C840F +device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') + +# ISA Ethernet NICs. pccard NICs included. +device cs # Crystal Semiconductor CS89x0 NIC +# 'device ed' requires 'device miibus' +device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards +device ex # Intel EtherExpress Pro/10 and Pro/10+ +device ep # Etherlink III based cards +device fe # Fujitsu MB8696x based cards +device sn # SMC's 9000 series of Ethernet chips +device xe # Xircom pccard Ethernet + +# Wireless NIC cards +device wlan # 802.11 support +device wlan_wep # 802.11 WEP support +device wlan_ccmp # 802.11 CCMP support +device wlan_tkip # 802.11 TKIP support +device wlan_amrr # AMRR transmit rate control algorithm +device wlan_scan_ap # 802.11 AP mode scanning +device wlan_scan_sta # 802.11 STA mode scanning +device an # Aironet 4500/4800 802.11 wireless NICs. +device ath # Atheros pci/cardbus NIC's +device ath_hal # Atheros HAL (Hardware Access Layer) +options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors +device ath_rate_sample # SampleRate tx rate control for ath +device awi # BayStack 660 and others +device ral # Ralink Technology RT2500 wireless NICs. +device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +device sl # Kernel SLIP +device ppp # Kernel PPP +device tun # Packet tunnel. +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" +device gif # IPv6 and IPv4 tunneling +device faith # IPv6-to-IPv4 relaying (translation) +device firmware # firmware assist module + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + +# USB support +device uhci # UHCI PCI->USB interface +device ohci # OHCI PCI->USB interface +device ehci # EHCI PCI->USB interface (USB 2.0) +device usb # USB Bus (required) +#device udbp # USB Double Bulk Pipe devices +device ugen # Generic +device uhid # "Human Interface Devices" +device ukbd # Keyboard +device ulpt # Printer +device umass # Disks/Mass storage - Requires scbus and da +device ums # Mouse +device ural # Ralink Technology RT2500USB wireless NICs +device urio # Diamond Rio 500 MP3 player +device uscanner # Scanners +# USB Serial devices +device ucom # Generic com ttys +device uark # Technologies ARK3116 based serial adapters +device ubsa # Belkin F5U103 and compatible serial adapters +device ubser # BWCT console serial adapters +device uftdi # For FTDI usb serial adapters +device uipaq # Some WinCE based devices +device uplcom # Prolific PL-2303 serial adapters +device uslcom # SI Labs CP2101/CP2102 serial adapters +device uvisor # Visor and Palm devices +device uvscom # USB serial support for DDI pocket's PHS +# USB Ethernet, requires miibus +device aue # ADMtek USB Ethernet +device axe # ASIX Electronics USB Ethernet +device cdce # Generic USB over Ethernet +device cue # CATC USB Ethernet +device kue # Kawasaki LSI USB Ethernet +device rue # RealTek RTL8150 USB Ethernet + +# FireWire support +device firewire # FireWire bus code +device sbp # SCSI over FireWire (Requires scbus and da) +device fwe # Ethernet over FireWire (non-standard!) +device fwip # IP over FireWire (RFC 2734,3146) +device dcons # Dumb console driver +device dcons_crom # Configuration ROM for dcons Modified: user/kmacy/releng_7_2_zfs/sys/amd64/include/vmparam.h ============================================================================== --- user/kmacy/releng_7_2_zfs/sys/amd64/include/vmparam.h Sun May 17 23:25:53 2009 (r192270) +++ user/kmacy/releng_7_2_zfs/sys/amd64/include/vmparam.h Sun May 17 23:30:13 2009 (r192271) @@ -154,8 +154,7 @@ * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) * 0xffff804020101000 - 0xfffffeffffffffff unused * 0xffffff0000000000 - 0xffffff7fffffffff 512GB direct map mappings - * 0xffffff8000000000 - 0xfffffffe7fffffff unused (506GB) - * 0xfffffffe80000000 - 0xffffffffffffffff 6GB kernel map + * 0xffffff8000000000 - 0xffffffffffffffff 512GB kernel map * * Within the kernel map: * @@ -163,7 +162,7 @@ */ #define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NPDEPG-1, NPTEPG-1) -#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-6, 0, 0) +#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-512, 0, 0) #define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) #define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0) Added: user/kmacy/releng_7_2_zfs/sys/boot/i386/zfsboot/zfsboot.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/kmacy/releng_7_2_zfs/sys/boot/i386/zfsboot/zfsboot.c Sun May 17 23:30:13 2009 (r192271) @@ -0,0 +1,1057 @@ +/*- + * Copyright (c) 1998 Robert Nordier + * All rights reserved. + * + * Redistribution and use in source and binary forms are freely + * permitted provided that the above copyright notice and this + * paragraph and the following disclaimer are duplicated in all + * such forms. + * + * This software is provided "AS IS" and without any express or + * implied warranties, including, without limitation, the implied + * warranties of merchantability and fitness for a particular + * purpose. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/param.h> +#include <sys/errno.h> +#include <sys/diskmbr.h> +#ifdef GPT +#include <sys/gpt.h> +#endif +#include <sys/reboot.h> +#include <sys/queue.h> + +#include <machine/bootinfo.h> +#include <machine/elf.h> + +#include <stdarg.h> +#include <stddef.h> + +#include <a.out.h> + +#include <btxv86.h> + +#ifndef GPT +#include "zfsboot.h" +#endif +#include "lib.h" + +#define IO_KEYBOARD 1 +#define IO_SERIAL 2 + +#define SECOND 18 /* Circa that many ticks in a second. */ + +#define RBX_ASKNAME 0x0 /* -a */ +#define RBX_SINGLE 0x1 /* -s */ +/* 0x2 is reserved for log2(RB_NOSYNC). */ +/* 0x3 is reserved for log2(RB_HALT). */ +/* 0x4 is reserved for log2(RB_INITNAME). */ +#define RBX_DFLTROOT 0x5 /* -r */ +#define RBX_KDB 0x6 /* -d */ +/* 0x7 is reserved for log2(RB_RDONLY). */ +/* 0x8 is reserved for log2(RB_DUMP). */ +/* 0x9 is reserved for log2(RB_MINIROOT). */ +#define RBX_CONFIG 0xa /* -c */ +#define RBX_VERBOSE 0xb /* -v */ +#define RBX_SERIAL 0xc /* -h */ +#define RBX_CDROM 0xd /* -C */ +/* 0xe is reserved for log2(RB_POWEROFF). */ +#define RBX_GDB 0xf /* -g */ +#define RBX_MUTE 0x10 /* -m */ +/* 0x11 is reserved for log2(RB_SELFTEST). */ +/* 0x12 is reserved for boot programs. */ +/* 0x13 is reserved for boot programs. */ +#define RBX_PAUSE 0x14 /* -p */ +#define RBX_QUIET 0x15 /* -q */ +#define RBX_NOINTR 0x1c /* -n */ +/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ +#define RBX_DUAL 0x1d /* -D */ +/* 0x1f is reserved for log2(RB_BOOTINFO). */ + +/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ +#define RBX_MASK (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \ + OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \ + OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \ + OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \ + OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \ + OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL)) + +/* Hint to loader that we came from ZFS */ +#define KARGS_FLAGS_ZFS 0x4 + +#define PATH_CONFIG "/boot.config" +#define PATH_BOOT3 "/boot/loader" +#define PATH_KERNEL "/boot/kernel/kernel" + +#define ARGS 0x900 +#define NOPT 14 +#define NDEV 3 +#define MEM_BASE 0x12 +#define MEM_EXT 0x15 +#define V86_CY(x) ((x) & 1) +#define V86_ZR(x) ((x) & 0x40) + +#define DRV_HARD 0x80 +#define DRV_MASK 0x7f + +#define TYPE_AD 0 +#define TYPE_DA 1 +#define TYPE_MAXHARD TYPE_DA +#define TYPE_FD 2 + +#define OPT_SET(opt) (1 << (opt)) +#define OPT_CHECK(opt) ((opts) & OPT_SET(opt)) + +extern uint32_t _end; + +#ifdef GPT +static const uuid_t freebsd_zfs_uuid = GPT_ENT_TYPE_FREEBSD_ZFS; +#endif +static const char optstr[NOPT] = "DhaCcdgmnpqrsv"; /* Also 'P', 'S' */ +static const unsigned char flags[NOPT] = { + RBX_DUAL, + RBX_SERIAL, + RBX_ASKNAME, + RBX_CDROM, + RBX_CONFIG, + RBX_KDB, + RBX_GDB, + RBX_MUTE, + RBX_NOINTR, + RBX_PAUSE, + RBX_QUIET, + RBX_DFLTROOT, + RBX_SINGLE, + RBX_VERBOSE +}; + +static const char *const dev_nm[NDEV] = {"ad", "da", "fd"}; +static const unsigned char dev_maj[NDEV] = {30, 4, 2}; + +struct dsk { + unsigned drive; + unsigned type; + unsigned unit; + unsigned slice; + unsigned part; + unsigned start; + int init; +}; +static char cmd[512]; +static char kname[1024]; +static uint32_t opts; +static int comspeed = SIOSPD; +static struct bootinfo bootinfo; +static uint32_t bootdev; +static uint8_t ioctrl = IO_KEYBOARD; + +/* Buffers that must not span a 64k boundary. */ +#define READ_BUF_SIZE 8192 +struct dmadat { + char rdbuf[READ_BUF_SIZE]; /* for reading large things */ + char secbuf[READ_BUF_SIZE]; /* for MBR/disklabel */ +}; +static struct dmadat *dmadat; + +void exit(int); +static void load(void); +static int parse(void); +static void printf(const char *,...); +static void putchar(int); +static uint32_t memsize(void); +static int drvread(struct dsk *, void *, unsigned, unsigned); +static int keyhit(unsigned); +static int xputc(int); +static int xgetc(int); +static int getc(int); + +static void memcpy(void *, const void *, int); +static void +memcpy(void *dst, const void *src, int len) +{ + const char *s = src; + char *d = dst; + + while (len--) + *d++ = *s++; +} + +static void +strcpy(char *dst, const char *src) +{ + while (*src) + *dst++ = *src++; + *dst++ = 0; +} + +static void +strcat(char *dst, const char *src) +{ + while (*dst) + dst++; + while (*src) + *dst++ = *src++; + *dst++ = 0; +} + +static int +strcmp(const char *s1, const char *s2) +{ + for (; *s1 == *s2 && *s1; s1++, s2++); + return (unsigned char)*s1 - (unsigned char)*s2; +} + +static const char * +strchr(const char *s, char ch) +{ + for (; *s; s++) + if (*s == ch) + return s; + return 0; +} + +static int +memcmp(const void *p1, const void *p2, size_t n) +{ + const char *s1 = (const char *) p1; + const char *s2 = (const char *) p2; + for (; n > 0 && *s1 == *s2; s1++, s2++, n--); + if (n) + return (unsigned char)*s1 - (unsigned char)*s2; + else + return 0; +} + +static void +memset(void *p, char val, size_t n) +{ + char *s = (char *) p; + while (n--) + *s++ = val; +} + +static void * +malloc(size_t n) +{ + static char *heap_next; + static char *heap_end; + + if (!heap_next) { + heap_next = (char *) dmadat + sizeof(*dmadat); + heap_end = (char *) (640*1024); + } + + char *p = heap_next; + if (p + n > heap_end) { + printf("malloc failure\n"); + for (;;) + ; + return 0; + } + heap_next += n; + return p; +} + +static size_t +strlen(const char *s) +{ + size_t len = 0; + while (*s++) + len++; + return len; +} + +static char * +strdup(const char *s) +{ + char *p = malloc(strlen(s) + 1); + strcpy(p, s); + return p; +} + +#include "zfsimpl.c" + +/* + * Read from a dnode (which must be from a ZPL filesystem). + */ +static int +zfs_read(spa_t *spa, const dnode_phys_t *dnode, off_t *offp, void *start, size_t size) +{ + const znode_phys_t *zp = (const znode_phys_t *) dnode->dn_bonus; + size_t n; + int rc; + + n = size; + if (*offp + n > zp->zp_size) + n = zp->zp_size - *offp; + + rc = dnode_read(spa, dnode, *offp, start, n); + if (rc) + return (-1); + *offp += n; + + return (n); +} + +/* + * Current ZFS pool + */ +spa_t *spa; + +/* + * A wrapper for dskread that doesn't have to worry about whether the + * buffer pointer crosses a 64k boundary. + */ +static int +vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes) +{ + char *p; + unsigned int lba, nb; + struct dsk *dsk = (struct dsk *) priv; + + if ((off & (DEV_BSIZE - 1)) || (bytes & (DEV_BSIZE - 1))) + return -1; + + p = buf; + lba = off / DEV_BSIZE; + while (bytes > 0) { + nb = bytes / DEV_BSIZE; + if (nb > READ_BUF_SIZE / DEV_BSIZE) + nb = READ_BUF_SIZE / DEV_BSIZE; + if (drvread(dsk, dmadat->rdbuf, lba, nb)) + return -1; + memcpy(p, dmadat->rdbuf, nb * DEV_BSIZE); + p += nb * DEV_BSIZE; + lba += nb; + bytes -= nb * DEV_BSIZE; + } + + return 0; +} + +static int +xfsread(const dnode_phys_t *dnode, off_t *offp, void *buf, size_t nbyte) +{ + if ((size_t)zfs_read(spa, dnode, offp, buf, nbyte) != nbyte) { + printf("Invalid %s\n", "format"); + return -1; + } + return 0; +} + +static inline uint32_t +memsize(void) +{ + v86.addr = MEM_EXT; + v86.eax = 0x8800; + v86int(); + return v86.eax; +} + +static inline void +getstr(void) +{ + char *s; + int c; + + s = cmd; + for (;;) { + switch (c = xgetc(0)) { + case 0: + break; + case '\177': + case '\b': + if (s > cmd) { + s--; + printf("\b \b"); + } + break; + case '\n': + case '\r': + *s = 0; + return; + default: + if (s - cmd < sizeof(cmd) - 1) + *s++ = c; + putchar(c); + } + } +} + +static inline void +putc(int c) +{ + v86.addr = 0x10; + v86.eax = 0xe00 | (c & 0xff); + v86.ebx = 0x7; + v86int(); +} + +/* + * Try to detect a device supported by the legacy int13 BIOS + */ +static int +int13probe(int drive) +{ + v86.ctl = V86_FLAGS; + v86.addr = 0x13; + v86.eax = 0x800; + v86.edx = drive; + v86int(); + + if (!(v86.efl & 0x1) && /* carry clear */ + ((v86.edx & 0xff) != (drive & DRV_MASK))) { /* unit # OK */ + if ((v86.ecx & 0x3f) == 0) { /* absurd sector size */ + return(0); /* skip device */ + } + return (1); + } + return(0); +} + +/* + * We call this when we find a ZFS vdev - ZFS consumes the dsk + * structure so we must make a new one. + */ +static struct dsk * +copy_dsk(struct dsk *dsk) +{ + struct dsk *newdsk; + + newdsk = malloc(sizeof(struct dsk)); + *newdsk = *dsk; + return (newdsk); +} + +static void +probe_drive(struct dsk *dsk, spa_t **spap) +{ +#ifdef GPT + struct gpt_hdr hdr; + struct gpt_ent *ent; + daddr_t slba, elba; + unsigned part, entries_per_sec; +#endif + struct dos_partition *dp; + char *sec; + unsigned i; + + /* + * If we find a vdev on the whole disk, stop here. Otherwise dig + * out the MBR and probe each slice in turn for a vdev. + */ + if (vdev_probe(vdev_read, dsk, spap) == 0) + return; + + sec = dmadat->secbuf; + dsk->start = 0; + +#ifdef GPT + /* + * First check for GPT. + */ + if (drvread(dsk, sec, 1, 1)) { + return; + } + memcpy(&hdr, sec, sizeof(hdr)); + if (memcmp(hdr.hdr_sig, GPT_HDR_SIG, sizeof(hdr.hdr_sig)) != 0 || + hdr.hdr_lba_self != 1 || hdr.hdr_revision < 0x00010000 || + hdr.hdr_entsz < sizeof(*ent) || DEV_BSIZE % hdr.hdr_entsz != 0) { + goto trymbr; + } + + /* + * Probe all GPT partitions for the presense of ZFS pools. We + * return the spa_t for the first we find (if requested). This + * will have the effect of booting from the first pool on the + * disk. + */ + entries_per_sec = DEV_BSIZE / hdr.hdr_entsz; + slba = hdr.hdr_lba_table; + elba = slba + hdr.hdr_entries / entries_per_sec; + while (slba < elba) { + if (drvread(dsk, sec, slba, 1)) + return; + for (part = 0; part < entries_per_sec; part++) { + ent = (struct gpt_ent *)(sec + part * hdr.hdr_entsz); + if (memcmp(&ent->ent_type, &freebsd_zfs_uuid, + sizeof(uuid_t)) == 0) { + dsk->start = ent->ent_lba_start; + if (vdev_probe(vdev_read, dsk, spap) == 0) { + /* + * We record the first pool we find (we will try + * to boot from that one). + */ + spap = 0; + + /* + * This slice had a vdev. We need a new dsk + * structure now since the vdev now owns this one. + */ + dsk = copy_dsk(dsk); + } + break; + } + } + slba++; + } + return; +trymbr: +#endif + + if (drvread(dsk, sec, DOSBBSECTOR, 1)) + return; + dp = (void *)(sec + DOSPARTOFF); + + for (i = 0; i < NDOSPART; i++) { + if (!dp[i].dp_typ) + continue; + dsk->start = dp[i].dp_start; + if (vdev_probe(vdev_read, dsk, spap) == 0) { + /* + * We record the first pool we find (we will try to boot + * from that one. + */ + spap = 0; + + /* + * This slice had a vdev. We need a new dsk structure now + * since the vdev now owns this one. + */ + dsk = copy_dsk(dsk); + } + } +} + +int +main(void) +{ + int autoboot, i; + dnode_phys_t dn; + off_t off; + struct dsk *dsk; + + dmadat = (void *)(roundup2(__base + (int32_t)&_end, 0x10000) - __base); + v86.ctl = V86_FLAGS; + + dsk = malloc(sizeof(struct dsk)); + dsk->drive = *(uint8_t *)PTOV(ARGS); + dsk->type = dsk->drive & DRV_HARD ? TYPE_AD : TYPE_FD; + dsk->unit = dsk->drive & DRV_MASK; + dsk->slice = *(uint8_t *)PTOV(ARGS + 1) + 1; + dsk->part = 0; + dsk->start = 0; + dsk->init = 0; + + bootinfo.bi_version = BOOTINFO_VERSION; + bootinfo.bi_size = sizeof(bootinfo); + bootinfo.bi_basemem = 0; /* XXX will be filled by loader or kernel */ + bootinfo.bi_extmem = memsize(); + bootinfo.bi_memsizes_valid++; + bootinfo.bi_bios_dev = dsk->drive; + + bootdev = MAKEBOOTDEV(dev_maj[dsk->type], + dsk->slice, dsk->unit, dsk->part), + + /* Process configuration file */ + + autoboot = 1; + + zfs_init(); + + /* + * Probe the boot drive first - we will try to boot from whatever + * pool we find on that drive. + */ + probe_drive(dsk, &spa); + + /* + * Probe the rest of the drives that the bios knows about. This + * will find any other available pools and it may fill in missing + * vdevs for the boot pool. + */ + for (i = 0; i < 128; i++) { + if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) + continue; + + if (!int13probe(i | DRV_HARD)) + break; + + dsk = malloc(sizeof(struct dsk)); + dsk->drive = i | DRV_HARD; + dsk->type = dsk->drive & TYPE_AD; + dsk->unit = i; + dsk->slice = 0; + dsk->part = 0; + dsk->start = 0; + dsk->init = 0; + probe_drive(dsk, 0); + } + + /* + * If we didn't find a pool on the boot drive, default to the + * first pool we found, if any. + */ + if (!spa) { + spa = STAILQ_FIRST(&zfs_pools); + if (!spa) { + printf("No ZFS pools located, can't boot\n"); + for (;;) + ; + } + } + + zfs_mount_pool(spa); + + if (zfs_lookup(spa, PATH_CONFIG, &dn) == 0) { + off = 0; + xfsread(&dn, &off, cmd, sizeof(cmd)); + } + + if (*cmd) { + if (parse()) + autoboot = 0; + if (!OPT_CHECK(RBX_QUIET)) + printf("%s: %s", PATH_CONFIG, cmd); + /* Do not process this command twice */ + *cmd = 0; + } + + /* + * Try to exec stage 3 boot loader. If interrupted by a keypress, + * or in case of failure, try to load a kernel directly instead. + */ + + if (autoboot && !*kname) { + memcpy(kname, PATH_BOOT3, sizeof(PATH_BOOT3)); + if (!keyhit(3*SECOND)) { + load(); + memcpy(kname, PATH_KERNEL, sizeof(PATH_KERNEL)); + } + } + + /* Present the user with the boot2 prompt. */ + + for (;;) { + if (!autoboot || !OPT_CHECK(RBX_QUIET)) + printf("\nFreeBSD/i386 boot\n" + "Default: %s:%s\n" + "boot: ", + spa->spa_name, kname); + if (ioctrl & IO_SERIAL) + sio_flush(); + if (!autoboot || keyhit(5*SECOND)) + getstr(); + else if (!autoboot || !OPT_CHECK(RBX_QUIET)) + putchar('\n'); + autoboot = 0; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905172330.n4HNUDgU042829>