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...
Kip Macy
kmacy at FreeBSD.org
Sun May 17 23:30:14 UTC 2009
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 ***
More information about the svn-src-user
mailing list