changeset 5084:7d838c5c0eed

PSARC 2006/260 Solaris on Xen PSARC 2007/155 IPv4 Network Configuration Enhancements for Xen Guest Domains 6424124 panic in intr_thread->av_dispatch_autovect->atomic_add_ptr 6496858 mdb could use a memory-based IO backend 6515319 workaround for 6491065 needs to be removed from elfextract.c 6518807 snv_nightly: SUNWcakr pkgck error 6551858 PSARC 2006/260 Solaris on Xen 6584697 Can't boot Xen / Solaris dom0 if root is using ZFS 6593429 usr/src/cmd/devfsadm isn't linting properly 6600359 mdb_kvm_intrframe() is unused 6600750 can remove 'u' workaround from zlib 6601465 /dev/lofictl needs to accept kernel ioctl 6604043 Erronous ASSERT in sdev_vnops.c ASSERT(VTOSDEV(vp)->sdev_attrvp);
author johnlev
date Tue, 18 Sep 2007 15:46:43 -0700
parents 97b4b5418ec9
children 937feae7206d
files deleted_files/usr/src/common/util/memset.h deleted_files/usr/src/uts/common/krtld/mapfile deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h usr/src/Makefile.lint usr/src/cmd/Makefile usr/src/cmd/boot/bootadm/bootadm.c usr/src/cmd/boot/bootadm/bootadm.h usr/src/cmd/boot/bootadm/bootadm_upgrade.c usr/src/cmd/boot/bootadm/filelist.ramdisk usr/src/cmd/boot/bootadm/message.h usr/src/cmd/boot/scripts/root_archive.ksh usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c usr/src/cmd/devfsadm/Makefile.com usr/src/cmd/devfsadm/i386/Makefile usr/src/cmd/devfsadm/i386/misc_link_i386.c usr/src/cmd/devfsadm/i386/xen_link.c usr/src/cmd/devfsadm/misc_link.c usr/src/cmd/devfsadm/sparc/Makefile usr/src/cmd/devprop/Makefile usr/src/cmd/devprop/devprop.c usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c usr/src/cmd/format/init_ci386.c usr/src/cmd/format/label.c usr/src/cmd/format/startup.c usr/src/cmd/mdb/Makefile usr/src/cmd/mdb/Makefile.mdb usr/src/cmd/mdb/common/mdb/mdb.c usr/src/cmd/mdb/common/mdb/mdb_io.h usr/src/cmd/mdb/common/mdb/mdb_kb.h usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c usr/src/cmd/mdb/common/mdb/mdb_kvm.c usr/src/cmd/mdb/common/mdb/mdb_kvm.h usr/src/cmd/mdb/common/mdb/mdb_main.c usr/src/cmd/mdb/common/mdb/mdb_memio.c usr/src/cmd/mdb/common/modules/genunix/genunix.c usr/src/cmd/mdb/common/modules/genunix/memory.c usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h usr/src/cmd/mdb/i86pc/modules/unix/unix.c usr/src/cmd/mdb/i86xpv/Makefile usr/src/cmd/mdb/i86xpv/Makefile.i86xpv usr/src/cmd/mdb/i86xpv/modules/Makefile usr/src/cmd/mdb/i86xpv/modules/unix/Makefile usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c usr/src/cmd/mdb/intel/Makefile usr/src/cmd/mdb/intel/amd64/genunix/Makefile usr/src/cmd/mdb/intel/amd64/mdb/Makefile usr/src/cmd/mdb/intel/ia32/genunix/Makefile usr/src/cmd/mdb/intel/ia32/mdb/Makefile usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c usr/src/cmd/mdb/intel/mdb/kvm_isadep.c usr/src/cmd/mdb/intel/mdb/kvm_isadep.h usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h usr/src/cmd/mdb/intel/modules/Makefile usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c usr/src/cmd/netadm/iu.ap.sh usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL usr/src/cmd/svc/milestone/net-physical usr/src/cmd/vna/Makefile usr/src/cmd/vna/vna.c usr/src/common/util/memset.h usr/src/grub/grub-0.95/stage2/fsys_zfs.h usr/src/grub/grub-0.95/stage2/gunzip.c usr/src/grub/grub-0.95/stage2/shared.h usr/src/lib/libc/Makefile usr/src/lib/libc/i386_hwcap3/Makefile usr/src/lib/libc/i386_hwcap3/mapfile usr/src/lib/libdladm/Makefile usr/src/lib/libdladm/Makefile.com usr/src/lib/libdladm/common/libdladm.c usr/src/lib/libdladm/common/libdladm.h usr/src/lib/libdladm/common/libdlaggr.c usr/src/lib/libdladm/common/libdlvnic.c usr/src/lib/libdladm/common/libdlvnic.h usr/src/lib/libdladm/common/llib-ldladm usr/src/lib/libdladm/common/mapfile-vers usr/src/pkgdefs/Makefile usr/src/pkgdefs/SUNWcakr.i/prototype_com usr/src/pkgdefs/SUNWcakrx.i/Makefile usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl usr/src/pkgdefs/SUNWcakrx.i/prototype_com usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 usr/src/pkgdefs/SUNWcarx.i/Makefile usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl usr/src/pkgdefs/SUNWcarx.i/prototype_com usr/src/pkgdefs/SUNWcarx.i/prototype_i386 usr/src/pkgdefs/SUNWckr/prototype_com usr/src/pkgdefs/SUNWckr/prototype_i386 usr/src/pkgdefs/SUNWckr/prototype_sparc usr/src/pkgdefs/SUNWcsl/prototype_i386 usr/src/pkgdefs/SUNWcsr/prototype_com usr/src/pkgdefs/SUNWcsu/prototype_com usr/src/pkgdefs/SUNWcsu/prototype_i386 usr/src/pkgdefs/SUNWhea/prototype_i386 usr/src/pkgdefs/SUNWmdb/prototype_i386 usr/src/pkgdefs/SUNWmdbr/prototype_i386 usr/src/pkgdefs/SUNWpsdir/prototype_i386 usr/src/pkgdefs/SUNWxsvc/prototype_i386 usr/src/pkgdefs/common_files/i.iuap usr/src/pkgdefs/etc/exception_list_i386 usr/src/pkgdefs/etc/exception_list_sparc usr/src/tools/abi/etc/ABI_i386.db usr/src/tools/abi/etc/exceptions usr/src/tools/elfextract/elfextract.c usr/src/tools/scripts/bfu.sh usr/src/uts/Makefile usr/src/uts/common/Makefile.files usr/src/uts/common/Makefile.rules usr/src/uts/common/brand/lx/os/lx_misc.c usr/src/uts/common/dtrace/sdt_subr.c usr/src/uts/common/fs/dev/sdev_vnops.c usr/src/uts/common/fs/nfs/nfs_dlinet.c usr/src/uts/common/fs/vfs.c usr/src/uts/common/inet/ip/ip.c usr/src/uts/common/io/avintr.c usr/src/uts/common/io/cmlb.c usr/src/uts/common/io/dld/dld_str.c usr/src/uts/common/io/dls/dls.c usr/src/uts/common/io/dls/dls_link.c usr/src/uts/common/io/lofi.c usr/src/uts/common/io/mac/mac.c usr/src/uts/common/io/mem.c usr/src/uts/common/io/ppp/spppcomp/zlib.c usr/src/uts/common/io/vnic/vnic.conf usr/src/uts/common/io/vnic/vnic_bcast.c usr/src/uts/common/io/vnic/vnic_cl.c usr/src/uts/common/io/vnic/vnic_ctl.c usr/src/uts/common/io/vnic/vnic_dev.c usr/src/uts/common/krtld/mapfile usr/src/uts/common/os/clock.c usr/src/uts/common/os/dumpsubr.c usr/src/uts/common/os/mutex.c usr/src/uts/common/os/panic.c usr/src/uts/common/sys/Makefile usr/src/uts/common/sys/cmlb.h usr/src/uts/common/sys/dumphdr.h usr/src/uts/common/sys/hold_page.h usr/src/uts/common/sys/mac.h usr/src/uts/common/sys/mac_impl.h usr/src/uts/common/sys/mem.h usr/src/uts/common/sys/memlist.h usr/src/uts/common/sys/panic.h usr/src/uts/common/sys/proc.h usr/src/uts/common/sys/sdt.h usr/src/uts/common/sys/systm.h usr/src/uts/common/sys/thread.h usr/src/uts/common/sys/time.h usr/src/uts/common/sys/vnic.h usr/src/uts/common/sys/vnic_impl.h usr/src/uts/common/vm/faultcode.h usr/src/uts/common/vm/seg_kmem.c usr/src/uts/common/vm/seg_kmem.h usr/src/uts/common/vm/vm_as.c usr/src/uts/common/vm/vm_page.c usr/src/uts/common/xen/io/evtchn_dev.c usr/src/uts/common/xen/io/xdb.c usr/src/uts/common/xen/io/xdb.h usr/src/uts/common/xen/io/xdf.c usr/src/uts/common/xen/io/xdf.h usr/src/uts/common/xen/io/xenbus_client.c usr/src/uts/common/xen/io/xenbus_comms.c usr/src/uts/common/xen/io/xenbus_dev.c usr/src/uts/common/xen/io/xenbus_probe.c usr/src/uts/common/xen/io/xenbus_xs.c usr/src/uts/common/xen/io/xencons.c usr/src/uts/common/xen/io/xencons.conf usr/src/uts/common/xen/io/xencons.h usr/src/uts/common/xen/io/xnb.c usr/src/uts/common/xen/io/xnb.h usr/src/uts/common/xen/io/xnbe.c usr/src/uts/common/xen/io/xnbo.c usr/src/uts/common/xen/io/xnbu.c usr/src/uts/common/xen/io/xnf.c usr/src/uts/common/xen/io/xnf.h usr/src/uts/common/xen/io/xpv_autoconfig.c usr/src/uts/common/xen/io/xpvd.c usr/src/uts/common/xen/os/xvdi.c usr/src/uts/common/xen/public/COPYING usr/src/uts/common/xen/public/README.DO_NOT_EDIT usr/src/uts/common/xen/public/acm.h usr/src/uts/common/xen/public/acm_ops.h usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h usr/src/uts/common/xen/public/arch-x86/xen.h usr/src/uts/common/xen/public/callback.h usr/src/uts/common/xen/public/domctl.h usr/src/uts/common/xen/public/elfnote.h usr/src/uts/common/xen/public/event_channel.h usr/src/uts/common/xen/public/features.h usr/src/uts/common/xen/public/grant_table.h usr/src/uts/common/xen/public/hvm/hvm_op.h usr/src/uts/common/xen/public/hvm/params.h usr/src/uts/common/xen/public/io/blkif.h usr/src/uts/common/xen/public/io/console.h usr/src/uts/common/xen/public/io/netif.h usr/src/uts/common/xen/public/io/ring.h usr/src/uts/common/xen/public/io/xenbus.h usr/src/uts/common/xen/public/io/xs_wire.h usr/src/uts/common/xen/public/memory.h usr/src/uts/common/xen/public/nmi.h usr/src/uts/common/xen/public/physdev.h usr/src/uts/common/xen/public/platform.h usr/src/uts/common/xen/public/sched.h usr/src/uts/common/xen/public/sysctl.h usr/src/uts/common/xen/public/vcpu.h usr/src/uts/common/xen/public/version.h usr/src/uts/common/xen/public/xen-compat.h usr/src/uts/common/xen/public/xen.h usr/src/uts/common/xen/sys/README usr/src/uts/common/xen/sys/evtchn.h usr/src/uts/common/xen/sys/privcmd.h usr/src/uts/common/xen/sys/xenbus.h usr/src/uts/common/xen/sys/xenbus_comms.h usr/src/uts/common/xen/sys/xenbus_impl.h usr/src/uts/common/xen/sys/xendev.h usr/src/uts/i86pc/Makefile.files usr/src/uts/i86pc/Makefile.i86pc.shared usr/src/uts/i86pc/Makefile.rules usr/src/uts/i86pc/boot/boot_console.c usr/src/uts/i86pc/boot/boot_keyboard.c usr/src/uts/i86pc/boot/boot_keyboard.h usr/src/uts/i86pc/boot/boot_mmu.c usr/src/uts/i86pc/boot/boot_vga.c usr/src/uts/i86pc/boot/boot_vga.h usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c usr/src/uts/i86pc/cpunex/Makefile usr/src/uts/i86pc/dboot/dboot_asm.h usr/src/uts/i86pc/dboot/dboot_asm.s usr/src/uts/i86pc/dboot/dboot_elfload.c usr/src/uts/i86pc/dboot/dboot_grub.s usr/src/uts/i86pc/dboot/dboot_printf.c usr/src/uts/i86pc/dboot/dboot_startkern.c usr/src/uts/i86pc/dboot/dboot_xboot.h usr/src/uts/i86pc/dboot/dboot_xen.s usr/src/uts/i86pc/io/consplat.c usr/src/uts/i86pc/io/cpunex.c usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c usr/src/uts/i86pc/io/hardclk.c usr/src/uts/i86pc/io/isa.c usr/src/uts/i86pc/io/microfind.c usr/src/uts/i86pc/io/mp_platform_common.c usr/src/uts/i86pc/io/pci/pci_kstats.c usr/src/uts/i86pc/io/pci/pci_tools.c usr/src/uts/i86pc/io/pciex/inc.flg usr/src/uts/i86pc/io/pcplusmp/apic.c usr/src/uts/i86pc/io/pcplusmp/apic_introp.c usr/src/uts/i86pc/io/rootnex.c usr/src/uts/i86pc/io/xsvc/xsvc.c usr/src/uts/i86pc/ml/fast_trap_asm.s usr/src/uts/i86pc/ml/genassym.c usr/src/uts/i86pc/ml/ia32.il usr/src/uts/i86pc/ml/interrupt.s usr/src/uts/i86pc/ml/locore.s usr/src/uts/i86pc/ml/mach_offsets.in usr/src/uts/i86pc/ml/offsets.in usr/src/uts/i86pc/ml/syscall_asm_amd64.s usr/src/uts/i86pc/os/biosdisk.c usr/src/uts/i86pc/os/cpuid.c usr/src/uts/i86pc/os/cpupm.c usr/src/uts/i86pc/os/ddi_impl.c usr/src/uts/i86pc/os/dtrace_subr.c usr/src/uts/i86pc/os/fakebop.c usr/src/uts/i86pc/os/fpu_subr.c usr/src/uts/i86pc/os/graphics.c usr/src/uts/i86pc/os/hold_page.c usr/src/uts/i86pc/os/intr.c usr/src/uts/i86pc/os/lgrpplat.c usr/src/uts/i86pc/os/machdep.c usr/src/uts/i86pc/os/microcode.c usr/src/uts/i86pc/os/mlsetup.c usr/src/uts/i86pc/os/mp_implfuncs.c usr/src/uts/i86pc/os/mp_machdep.c usr/src/uts/i86pc/os/mp_startup.c usr/src/uts/i86pc/os/pci_cfgspace.c usr/src/uts/i86pc/os/startup.c usr/src/uts/i86pc/os/timestamp.c usr/src/uts/i86pc/os/trap.c usr/src/uts/i86pc/sys/Makefile usr/src/uts/i86pc/sys/apic.h usr/src/uts/i86pc/sys/boot_console.h usr/src/uts/i86pc/sys/clock.h usr/src/uts/i86pc/sys/debug_info.h usr/src/uts/i86pc/sys/mach_mmu.h usr/src/uts/i86pc/sys/machcpuvar.h usr/src/uts/i86pc/sys/machparam.h usr/src/uts/i86pc/sys/machprivregs.h usr/src/uts/i86pc/sys/machsystm.h usr/src/uts/i86pc/sys/psm_common.h usr/src/uts/i86pc/sys/vm_machparam.h usr/src/uts/i86pc/unix/Makefile usr/src/uts/i86pc/unix/dboot/Mapfile.dboot usr/src/uts/i86pc/vm/hat_i86.c usr/src/uts/i86pc/vm/hat_i86.h usr/src/uts/i86pc/vm/hat_kdi.c usr/src/uts/i86pc/vm/hat_pte.h usr/src/uts/i86pc/vm/htable.c usr/src/uts/i86pc/vm/htable.h usr/src/uts/i86pc/vm/i86_mmu.c usr/src/uts/i86pc/vm/kboot_mmu.c usr/src/uts/i86pc/vm/kboot_mmu.h usr/src/uts/i86pc/vm/vm_dep.h usr/src/uts/i86pc/vm/vm_machdep.c usr/src/uts/i86xpv/Makefile usr/src/uts/i86xpv/Makefile.files usr/src/uts/i86xpv/Makefile.i86xpv usr/src/uts/i86xpv/Makefile.i86xpv.shared usr/src/uts/i86xpv/Makefile.rules usr/src/uts/i86xpv/Makefile.targ usr/src/uts/i86xpv/Makefile.targ.shared usr/src/uts/i86xpv/balloon/Makefile usr/src/uts/i86xpv/boot/boot_xconsole.c usr/src/uts/i86xpv/conf/Mapfile usr/src/uts/i86xpv/conf/Mapfile.amd64 usr/src/uts/i86xpv/consconfig_dacf/Makefile usr/src/uts/i86xpv/domcaps/Makefile usr/src/uts/i86xpv/evtchn/Makefile usr/src/uts/i86xpv/genassym/Makefile usr/src/uts/i86xpv/generic_cpu/Makefile usr/src/uts/i86xpv/gfx_private/Makefile usr/src/uts/i86xpv/inc.flg usr/src/uts/i86xpv/io/balloon_drv.c usr/src/uts/i86xpv/io/domcaps.c usr/src/uts/i86xpv/io/privcmd.c usr/src/uts/i86xpv/io/privcmd_hcall.c usr/src/uts/i86xpv/io/psm/xpv_psm.c usr/src/uts/i86xpv/io/xpvtod.c usr/src/uts/i86xpv/isa/Makefile usr/src/uts/i86xpv/ml/amd64.il usr/src/uts/i86xpv/ml/hyperevent.s usr/src/uts/i86xpv/ml/hypersubr.s usr/src/uts/i86xpv/ml/ia32.il usr/src/uts/i86xpv/ml/panic_asm.s usr/src/uts/i86xpv/ml/xenguest.s usr/src/uts/i86xpv/npe/Makefile usr/src/uts/i86xpv/os/balloon.c usr/src/uts/i86xpv/os/evtchn.c usr/src/uts/i86xpv/os/gnttab.c usr/src/uts/i86xpv/os/hypercall.c usr/src/uts/i86xpv/os/mach_kdi.c usr/src/uts/i86xpv/os/mp_xen.c usr/src/uts/i86xpv/os/xen_machdep.c usr/src/uts/i86xpv/os/xen_mmu.c usr/src/uts/i86xpv/os/xpv_panic.c usr/src/uts/i86xpv/os/xpv_timestamp.c usr/src/uts/i86xpv/pci-ide/Makefile usr/src/uts/i86xpv/pci/Makefile usr/src/uts/i86xpv/pcie/Makefile usr/src/uts/i86xpv/privcmd/Makefile usr/src/uts/i86xpv/rootnex/Makefile usr/src/uts/i86xpv/sys/Makefile usr/src/uts/i86xpv/sys/balloon.h usr/src/uts/i86xpv/sys/balloon_impl.h usr/src/uts/i86xpv/sys/cpr_impl.h usr/src/uts/i86xpv/sys/domcaps_impl.h usr/src/uts/i86xpv/sys/evtchn_impl.h usr/src/uts/i86xpv/sys/gnttab.h usr/src/uts/i86xpv/sys/hypervisor.h usr/src/uts/i86xpv/sys/machprivregs.h usr/src/uts/i86xpv/sys/privcmd_impl.h usr/src/uts/i86xpv/sys/xen_errno.h usr/src/uts/i86xpv/sys/xen_mmu.h usr/src/uts/i86xpv/sys/xpv_impl.h usr/src/uts/i86xpv/sys/xpv_panic.h usr/src/uts/i86xpv/unix/Makefile usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot usr/src/uts/i86xpv/vm/Makefile usr/src/uts/i86xpv/vm/seg_mf.c usr/src/uts/i86xpv/vm/seg_mf.h usr/src/uts/i86xpv/xdb/Makefile usr/src/uts/i86xpv/xdf/Makefile usr/src/uts/i86xpv/xenbus/Makefile usr/src/uts/i86xpv/xencons/Makefile usr/src/uts/i86xpv/xnb/Makefile usr/src/uts/i86xpv/xnbe/Makefile usr/src/uts/i86xpv/xnbo/Makefile usr/src/uts/i86xpv/xnbu/Makefile usr/src/uts/i86xpv/xnf/Makefile usr/src/uts/i86xpv/xpv_autoconfig/Makefile usr/src/uts/i86xpv/xpv_psm/Makefile usr/src/uts/i86xpv/xpvd/Makefile usr/src/uts/i86xpv/xpvtod/Makefile usr/src/uts/i86xpv/xsvc/Makefile usr/src/uts/intel/Makefile.files usr/src/uts/intel/Makefile.intel.shared usr/src/uts/intel/amd64/ml/mach_offsets.in usr/src/uts/intel/amd64/sys/Makefile usr/src/uts/intel/amd64/sys/privmregs.h usr/src/uts/intel/amd64/sys/privregs.h usr/src/uts/intel/asm/clock.h usr/src/uts/intel/asm/cpu.h usr/src/uts/intel/asm/mmu.h usr/src/uts/intel/brand/lx/lx_brand_asm.s usr/src/uts/intel/brand/sn1/sn1_brand_asm.s usr/src/uts/intel/cpunex/Makefile usr/src/uts/intel/ia32/ml/desctbls_asm.s usr/src/uts/intel/ia32/ml/exception.s usr/src/uts/intel/ia32/ml/i86_subr.s usr/src/uts/intel/ia32/ml/swtch.s usr/src/uts/intel/ia32/os/archdep.c usr/src/uts/intel/ia32/os/desctbls.c usr/src/uts/intel/ia32/os/fpu.c usr/src/uts/intel/ia32/os/sundep.c usr/src/uts/intel/ia32/os/sysi86.c usr/src/uts/intel/ia32/sys/Makefile usr/src/uts/intel/ia32/sys/privmregs.h usr/src/uts/intel/ia32/sys/traptrace.h usr/src/uts/intel/ia32/syscall/lwp_private.c usr/src/uts/intel/io/cpunex.c usr/src/uts/intel/io/i8254.c usr/src/uts/intel/io/pciex/pcie_error.c usr/src/uts/intel/kdi/amd64/kdi_asm.s usr/src/uts/intel/kdi/ia32/kdi_asm.s usr/src/uts/intel/kdi/kdi_idt.c usr/src/uts/intel/kdi/kdi_idthdl.s usr/src/uts/intel/os/ddi_arch.c usr/src/uts/intel/os/driver_aliases usr/src/uts/intel/os/minor_perm usr/src/uts/intel/os/name_to_major usr/src/uts/intel/pcbe/opteron_pcbe.c usr/src/uts/intel/pcbe/p123_pcbe.c usr/src/uts/intel/pcbe/p4_pcbe.c usr/src/uts/intel/sys/Makefile usr/src/uts/intel/sys/archsystm.h usr/src/uts/intel/sys/bootinfo.h usr/src/uts/intel/sys/cpu.h usr/src/uts/intel/sys/kdi_machimpl.h usr/src/uts/intel/sys/kdi_regs.h usr/src/uts/intel/sys/privmregs.h usr/src/uts/intel/sys/segments.h usr/src/uts/intel/sys/x86_archext.h usr/src/uts/intel/vnic/Makefile usr/src/uts/req.flg usr/src/uts/sparc/Makefile.sparc.shared usr/src/uts/sparc/os/minor_perm usr/src/uts/sparc/os/name_to_major usr/src/uts/sparc/vnic/Makefile usr/src/uts/sun4/io/cbe.c usr/src/uts/sun4/os/machdep.c usr/src/uts/sun4/os/memlist.c usr/src/uts/sun4/os/startup.c usr/src/uts/sun4/os/trap.c usr/src/uts/sun4u/os/mach_cpu_states.c usr/src/uts/sun4u/os/mach_trap.c usr/src/uts/sun4u/sys/machsystm.h usr/src/uts/sun4v/os/mach_cpu_states.c usr/src/uts/sun4v/os/mach_trap.c usr/src/uts/sun4v/sys/machsystm.h
diffstat 468 files changed, 66040 insertions(+), 4625 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deleted_files/usr/src/common/util/memset.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_COMMON_UTIL_MEMSET_H
+#define	_COMMON_UTIL_MEMSET_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void *memset(void *, int, size_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _COMMON_UTIL_MEMSET_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deleted_files/usr/src/uts/common/krtld/mapfile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,74 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+{
+	global:
+		kobj_addrcheck;
+		kobj_alloc;
+		kobj_boot_mod_lookup;
+		kobj_boot_unmountroot;
+		kobj_close;
+		kobj_close_file;
+		kobj_export_module;
+		kobj_filbuf;
+		kobj_free;
+		kobj_fstat;
+		kobj_get_filesize;
+		kobj_getelfsym;
+		kobj_getmodinfo;
+		kobj_getpagesize;
+		kobj_getsymname;
+		kobj_getsymvalue;
+		kobj_load_module;
+		kobj_load_primary_module;
+		kobj_lookup;
+		kobj_lookup_all;
+		kobj_notify_add;
+		kobj_notify_remove;
+		kobj_open;
+		kobj_open_file;
+		kobj_path_exists;
+		kobj_open_path;
+		kobj_read;
+		kobj_read_file;
+		kobj_searchsym;
+		kobj_set_ctf;
+		kobj_stat_get;
+		kobj_sync;
+		kobj_sync_instruction_memory;
+		kobj_textwin_alloc;
+		kobj_textwin_free;
+		kobj_unload_module;
+		kobj_zalloc;
+		kobj_kdi;
+		kobj_linkmaps;
+		__tnf_tag_list_head;
+		__tnf_probe_list_head;
+		tnf_changed_probe_list;
+		boot_cpu_compatible_list;
+	local:
+		*;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,46 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _BOOT_KEYBOARD_H
+#define	_BOOT_KEYBOARD_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Interfaces to the simple keyboard driver.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int kb_ischar(void);
+char kb_getchar(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BOOT_KEYBOARD_H */
--- a/usr/src/Makefile.lint	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/Makefile.lint	Tue Sep 18 15:46:43 2007 -0700
@@ -101,6 +101,7 @@
 	cmd/devfsadm \
 	cmd/devinfo \
 	cmd/devmgmt \
+	cmd/devprop \
 	cmd/dfs.cmds \
 	cmd/diff3 \
 	cmd/dis \
@@ -273,6 +274,7 @@
 	cmd/utmp_update \
 	cmd/utmpd \
 	cmd/valtools \
+	cmd/vna \
 	cmd/wall \
 	cmd/wbem \
 	cmd/wc \
--- a/usr/src/cmd/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -122,6 +122,7 @@
 	devctl		\
 	devinfo		\
 	devmgmt		\
+	devprop		\
 	dfs.cmds	\
 	diff		\
 	diff3		\
@@ -405,6 +406,7 @@
 	valtools	\
 	vgrind		\
 	vi		\
+	vna		\
 	volcheck	\
 	volrmmount	\
 	w		\
--- a/usr/src/cmd/boot/bootadm/bootadm.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/bootadm/bootadm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2402,6 +2402,22 @@
 }
 
 /*
+ * Check whether cmd matches the one indexed by which, and whether arg matches
+ * str.  which must be either KERNEL_CMD or MODULE_CMD, and a match to the
+ * respective *_DOLLAR_CMD is also acceptable.  The arg is searched using
+ * strstr(), so it can be a partial match.
+ */
+static int
+check_cmd(const char *cmd, const int which, const char *arg, const char *str)
+{
+	if ((strcmp(cmd, menu_cmds[which]) != 0) &&
+	    (strcmp(cmd, menu_cmds[which + 1]) != 0)) {
+		return (0);
+	}
+	return (strstr(arg, str) != NULL);
+}
+
+/*
  * A line in menu.lst looks like
  * [ ]*<cmd>[ \t=]*<arg>*
  */
@@ -2529,10 +2545,11 @@
 				 * We only compare for the length of "module"
 				 * so that "module$" will also match.
 				 */
-				if ((strncmp(cmd, menu_cmds[MODULE_CMD],
-				    strlen(menu_cmds[MODULE_CMD])) == 0) &&
-				    (strcmp(arg, MINIROOT) == 0))
+				if (check_cmd(cmd, MODULE_CMD, arg, MINIROOT))
 					curr_ent->flags |= BAM_ENTRY_MINIROOT;
+				else if (check_cmd(cmd, KERNEL_CMD, arg,
+				    "xen.gz"))
+					curr_ent->flags |= BAM_ENTRY_HV;
 				else if (strcmp(cmd, menu_cmds[ROOT_CMD]) == 0)
 					curr_ent->flags |= BAM_ENTRY_ROOT;
 				else if (strcmp(cmd,
@@ -2819,11 +2836,12 @@
 	return (BAM_SUCCESS);
 }
 
-static int
+int
 add_boot_entry(menu_t *mp,
 	char *title,
 	char *root,
 	char *kernel,
+	char *mod_kernel,
 	char *module)
 {
 	int lineNum, entryNum;
@@ -2902,6 +2920,12 @@
 	    menu_cmds[k_cmd], menu_cmds[SEP_CMD], kernel);
 	line_parser(mp, linebuf, &lineNum, &entryNum);
 
+	if (mod_kernel != NULL) {
+		(void) snprintf(linebuf, sizeof (linebuf), "%s%s%s",
+		    menu_cmds[m_cmd], menu_cmds[SEP_CMD], mod_kernel);
+		line_parser(mp, linebuf, &lineNum, &entryNum);
+	}
+
 	(void) snprintf(linebuf, sizeof (linebuf), "%s%s%s",
 	    menu_cmds[m_cmd], menu_cmds[SEP_CMD], module);
 	line_parser(mp, linebuf, &lineNum, &entryNum);
@@ -3204,13 +3228,12 @@
  * look for matching bootadm entry with specified parameters
  * Here are the rules (based on existing usage):
  * - If title is specified, match on title only
- * - Else, match on grubdisk and module (don't care about kernel line).
- *   note that, if root_opt is non-zero, the absence of root line is
- *   considered a match.
+ * - Else, match on kernel, grubdisk and module.  Note that, if root_opt is
+ *   non-zero, the absence of root line is considered a match.
  */
 static entry_t *
-find_boot_entry(menu_t *mp, char *title, char *root, char *module,
-    int root_opt, int *entry_num)
+find_boot_entry(menu_t *mp, char *title, char *kernel, char *root,
+    char *module, int root_opt, int *entry_num)
 {
 	int i;
 	line_t *lp;
@@ -3237,7 +3260,9 @@
 		}
 
 		lp = lp->next;	/* advance to root line */
-		if (lp == NULL || strcmp(lp->cmd, menu_cmds[ROOT_CMD]) == 0) {
+		if (lp == NULL) {
+			continue;
+		} else if (strcmp(lp->cmd, menu_cmds[ROOT_CMD]) == 0) {
 			/* root command found, match grub disk */
 			if (strcmp(lp->arg, root) != 0) {
 				continue;
@@ -3254,28 +3279,35 @@
 			continue;
 		}
 
+		if (kernel &&
+		    (!check_cmd(lp->cmd, KERNEL_CMD, lp->arg, kernel))) {
+			continue;
+		}
+
 		/*
-		 * Check for matching module entry (failsafe or normal).  We
-		 * use a strncmp to match "module" or "module$", since we
-		 * don't know which one it should be.  If it fails to match,
-		 * we go around the loop again.
+		 * Check for matching module entry (failsafe or normal).
+		 * If it fails to match, we go around the loop again.
+		 * For xpv entries, there are two module lines, so we
+		 * do the check twice.
 		 */
 		lp = lp->next;	/* advance to module line */
-		if ((strncmp(lp->cmd, menu_cmds[MODULE_CMD],
-		    strlen(menu_cmds[MODULE_CMD])) != 0) ||
-		    (strcmp(lp->arg, module) != 0)) {
-			continue;
+		if (check_cmd(lp->cmd, MODULE_CMD, lp->arg, module) ||
+		    (((lp = lp->next) != NULL) &&
+		    check_cmd(lp->cmd, MODULE_CMD, lp->arg, module))) {
+			/* match found */
+			break;
 		}
-		break;	/* match found */
-	}
-
-	*entry_num = i;
+	}
+
+	if (entry_num && ent) {
+		*entry_num = i;
+	}
 	return (ent);
 }
 
 static int
 update_boot_entry(menu_t *mp, char *title, char *root, char *kernel,
-    char *module, int root_opt)
+    char *mod_kernel, char *module, int root_opt)
 {
 	int i, change_kernel = 0;
 	entry_t *ent;
@@ -3283,21 +3315,21 @@
 	char linebuf[BAM_MAXLINE];
 
 	/* note: don't match on title, it's updated on upgrade */
-	ent = find_boot_entry(mp, NULL, root, module, root_opt, &i);
+	ent = find_boot_entry(mp, NULL, kernel, root, module, root_opt, &i);
 	if ((ent == NULL) && (bam_direct == BAM_DIRECT_DBOOT)) {
 		/*
 		 * We may be upgrading a kernel from multiboot to
 		 * directboot.  Look for a multiboot entry.
 		 */
-		ent = find_boot_entry(mp, NULL, root, MULTI_BOOT_ARCHIVE,
-		    root_opt, &i);
+		ent = find_boot_entry(mp, NULL, "multiboot", root,
+		    MULTI_BOOT_ARCHIVE, root_opt, NULL);
 		if (ent != NULL) {
 			change_kernel = 1;
 		}
 	}
 	if (ent == NULL)
 		return (add_boot_entry(mp, title, root_opt ? NULL : root,
-		    kernel, module));
+		    kernel, mod_kernel, module));
 
 	/* replace title of exiting entry and delete root line */
 	lp = ent->start;
@@ -3383,15 +3415,22 @@
 	/* add the entry for normal Solaris */
 	if (bam_direct == BAM_DIRECT_DBOOT) {
 		entry = update_boot_entry(mp, title, grubdisk,
-		    DIRECT_BOOT_KERNEL, DIRECT_BOOT_ARCHIVE,
+		    DIRECT_BOOT_KERNEL, NULL, DIRECT_BOOT_ARCHIVE,
 		    osroot == menu_root);
+		if ((entry != BAM_ERROR) && (bam_is_hv == BAM_HV_PRESENT)) {
+			(void) update_boot_entry(mp, NEW_HV_ENTRY, grubdisk,
+			    XEN_MENU, KERNEL_MODULE_LINE, DIRECT_BOOT_ARCHIVE,
+			    osroot == menu_root);
+		}
 	} else {
-		entry = update_boot_entry(mp, title, grubdisk,
-		    MULTI_BOOT, MULTI_BOOT_ARCHIVE,
-		    osroot == menu_root);
-	}
-
-	/* add the entry for failsafe archive */
+		entry = update_boot_entry(mp, title, grubdisk, MULTI_BOOT,
+		    NULL, MULTI_BOOT_ARCHIVE, osroot == menu_root);
+	}
+
+	/*
+	 * Add the entry for failsafe archive.  On a bfu'd system, the
+	 * failsafe may be different than the installed kernel.
+	 */
 	(void) snprintf(failsafe, sizeof (failsafe), "%s%s", osroot, MINIROOT);
 	if (stat(failsafe, &sbuf) == 0) {
 
@@ -3409,9 +3448,8 @@
 		}
 		if (failsafe_kernel != NULL) {
 			(void) update_boot_entry(mp, FAILSAFE_TITLE, grubdisk,
-			    failsafe_kernel, MINIROOT, osroot == menu_root);
-		} else {
-			bam_error(NO_FAILSAFE_KERNEL);
+			    failsafe_kernel, NULL, MINIROOT,
+			    osroot == menu_root);
 		}
 	}
 	free(grubdisk);
@@ -3535,7 +3573,7 @@
 	/* If no option, delete exiting reboot menu entry */
 	if (opt == NULL) {
 		entry_t *ent = find_boot_entry(mp, REBOOT_TITLE, NULL, NULL,
-		    0, &entry);
+		    NULL, 0, &entry);
 		if (ent == NULL)	/* not found is ok */
 			return (BAM_SUCCESS);
 		(void) do_delete(mp, entry);
@@ -3665,12 +3703,12 @@
 			}
 		}
 		entry = add_boot_entry(mp, REBOOT_TITLE, grubdisk, kernbuf,
-		    NULL);
+		    NULL, NULL);
 	} else {
 		(void) snprintf(kernbuf, sizeof (kernbuf), "%s %s",
 		    MULTI_BOOT, opt);
 		entry = add_boot_entry(mp, REBOOT_TITLE, grubdisk, kernbuf,
-		    MULTI_BOOT_ARCHIVE);
+		    NULL, MULTI_BOOT_ARCHIVE);
 	}
 	free(grubdisk);
 
@@ -3918,7 +3956,7 @@
 	}
 
 	entryNum = -1;
-	entryp = find_boot_entry(mp, BOOTENV_RC_TITLE, NULL, NULL, 0,
+	entryp = find_boot_entry(mp, BOOTENV_RC_TITLE, NULL, NULL, NULL, 0,
 	    &entryNum);
 
 	if (entryp != NULL) {
@@ -4076,7 +4114,7 @@
 		}
 		if (optnum == KERNEL_CMD) {
 			entryNum = add_boot_entry(mp, BOOTENV_RC_TITLE,
-			    grubdisk, new_path, NULL);
+			    grubdisk, new_path, NULL, NULL);
 		} else {
 			new_str_len = strlen(DIRECT_BOOT_KERNEL) +
 			    strlen(path) + 8;
@@ -4085,7 +4123,7 @@
 			(void) snprintf(new_arg, new_str_len, "%s %s",
 			    DIRECT_BOOT_KERNEL, path);
 			entryNum = add_boot_entry(mp, BOOTENV_RC_TITLE,
-			    grubdisk, new_arg, DIRECT_BOOT_ARCHIVE);
+			    grubdisk, new_arg, NULL, DIRECT_BOOT_ARCHIVE);
 		}
 		save_default_entry(mp, BAM_OLD_RC_DEF);
 		(void) set_global(mp, menu_cmds[DEFAULT_CMD], entryNum);
--- a/usr/src/cmd/boot/bootadm/bootadm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/bootadm/bootadm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -78,6 +78,7 @@
 #define	BAM_ENTRY_MINIROOT	0x10	/* entry uses the failsafe miniroot */
 #define	BAM_ENTRY_DBOOT		0x20	/* Is a dboot entry */
 #define	BAM_ENTRY_32BIT		0x40	/* Is a 32-bit entry */
+#define	BAM_ENTRY_HV		0x80	/* Is a hypervisor entry */
 
 typedef struct {
 	line_t	*start;
@@ -98,6 +99,9 @@
 /*
  * Menu related
  * menu_cmd_t and menu_cmds must be kept in sync
+ *
+ * The *_DOLLAR_CMD values must be 1 greater than the
+ * respective [KERNEL|MODULE]_CMD values.
  */
 typedef enum {
 	DEFAULT_CMD = 0,
@@ -105,9 +109,9 @@
 	TITLE_CMD,
 	ROOT_CMD,
 	KERNEL_CMD,
-	KERNEL_DOLLAR_CMD,
+	KERNEL_DOLLAR_CMD,	/* Must be KERNEL_CMD + 1 */
 	MODULE_CMD,
-	MODULE_DOLLAR_CMD,
+	MODULE_DOLLAR_CMD,	/* Must be MODULE_CMD + 1 */
 	SEP_CMD,
 	COMMENT_CMD,
 	CHAINLOADER_CMD,
@@ -123,9 +127,17 @@
 	BAM_DIRECT_DBOOT
 } direct_or_multi_t;
 
+/* Is there a hypervisor present? */
+typedef enum {
+	BAM_HV_UNKNOWN,
+	BAM_HV_NO,
+	BAM_HV_PRESENT
+} hv_t;
+
 extern int bam_verbose;
 extern int bam_force;
 extern direct_or_multi_t bam_direct;
+extern hv_t bam_is_hv;
 
 extern error_t upgrade_menu(menu_t *, char *, char *);
 extern void *s_calloc(size_t, size_t);
@@ -137,6 +149,7 @@
 extern char *get_special(char *);
 extern char *os_to_grubdisk(char *, int);
 extern void update_line(line_t *);
+extern int add_boot_entry(menu_t *, char *, char *, char *, char *, char *);
 
 #define	BAM_MAXLINE	8192
 
@@ -157,6 +170,9 @@
 /* Title used for failsafe entries */
 #define	FAILSAFE_TITLE	"Solaris failsafe"
 
+/* Title used for hv entries */
+#define	NEW_HV_ENTRY	"Solaris xVM"
+
 /* multiboot */
 #define	MULTI_BOOT	"/platform/i86pc/multiboot"
 #define	MULTI_BOOT_FAILSAFE	"/boot/multiboot"
@@ -177,6 +193,13 @@
 #define	MULTI_BOOT_ARCHIVE	DIRECT_BOOT_ARCHIVE_32
 #define	MINIROOT	"/boot/x86.miniroot-safe"
 
+/* Hypervisors */
+#define	XEN_32			"/boot/xen.gz"
+#define	XEN_64			"/boot/amd64/xen.gz"
+#define	XEN_MENU		"/boot/$ISADIR/xen.gz"
+#define	HYPERVISOR_KERNEL	"/platform/i86xpv/kernel/$ISADIR/unix"
+#define	KERNEL_MODULE_LINE	HYPERVISOR_KERNEL " " HYPERVISOR_KERNEL
+
 #ifdef __cplusplus
 }
 #endif
--- a/usr/src/cmd/boot/bootadm/bootadm_upgrade.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/bootadm/bootadm_upgrade.c	Tue Sep 18 15:46:43 2007 -0700
@@ -44,6 +44,7 @@
 #include "bootadm.h"
 
 direct_or_multi_t bam_direct = BAM_DIRECT_NOT_SET;
+hv_t bam_is_hv = BAM_HV_UNKNOWN;
 
 error_t
 dboot_or_multiboot(const char *root)
@@ -53,6 +54,7 @@
 	uchar_t *ident;
 	int fd, m;
 	multiboot_header_t *mbh;
+	struct stat sb;
 
 	(void) snprintf(fname, PATH_MAX, "%s/%s", root,
 	    "platform/i86pc/kernel/unix");
@@ -99,6 +101,16 @@
 	}
 	(void) munmap(image, 8192);
 	(void) close(fd);
+
+	if (bam_direct == BAM_DIRECT_DBOOT) {
+		(void) snprintf(fname, PATH_MAX, "%s/%s", root, XEN_32);
+		if (stat(fname, &sb) == 0) {
+			bam_is_hv = BAM_HV_PRESENT;
+		} else {
+			bam_is_hv = BAM_HV_NO;
+		}
+	}
+
 	return (BAM_SUCCESS);
 }
 
@@ -458,12 +470,14 @@
 {
 	entry_t	*cur_entry;
 	line_t	*cur_line;
-	int	i, skipit = 0, num_entries = 0;
+	int	i, skipit, num_entries, found_hv;
 	int	*hand_entries = NULL;
 	boolean_t found_kernel = B_FALSE;
 	error_t	rv;
 	char	*rootdev, *grubdisk = NULL;
 
+	skipit = num_entries = found_hv = 0;
+
 	rootdev = get_special(root);
 	if (rootdev) {
 		grubdisk = os_to_grubdisk(rootdev, strlen(root) == 1);
@@ -495,6 +509,11 @@
 			continue;
 		}
 
+		if (cur_entry->flags & BAM_ENTRY_HV) {
+			found_hv = 1;
+			continue;
+		}
+
 		/*
 		 * We make two loops through the lines.  First, we check if
 		 * there is a root entry, and if so, whether we should be
@@ -555,6 +574,15 @@
 	}
 
 	/*
+	 * If we're upgrading to a virtualized kernel and there are no
+	 * hv entries in menu.lst, we need to add one.
+	 */
+	if ((bam_is_hv == BAM_HV_PRESENT) && (found_hv == 0)) {
+		(void) add_boot_entry(mp, NEW_HV_ENTRY, grubdisk,
+		    XEN_MENU, KERNEL_MODULE_LINE, DIRECT_BOOT_ARCHIVE);
+	}
+
+	/*
 	 * We only want to output one error, to avoid confusing a user.  We
 	 * rank "No kernels changed" as a higher priority than "will not
 	 * update hand-added entries", since the former implies the latter.
--- a/usr/src/cmd/boot/bootadm/filelist.ramdisk	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/bootadm/filelist.ramdisk	Tue Sep 18 15:46:43 2007 -0700
@@ -15,6 +15,7 @@
 kernel
 platform/i86pc/biosint
 platform/i86pc/kernel
+platform/i86xpv/kernel
 platform/i86pc/ucode/GenuineIntel
 platform/i86pc/ucode/AuthenticAMD
 boot/solaris/bootenv.rc
--- a/usr/src/cmd/boot/bootadm/message.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/bootadm/message.h	Tue Sep 18 15:46:43 2007 -0700
@@ -368,10 +368,6 @@
 gettext("bootadm -m upgrade run, but the failsafe archives have not been\n\
 updated.  Not updating line %d\n")
 
-#define	NO_FAILSAFE_KERNEL	\
-gettext("Could not find failsafe kernel -- no failsafe entry will be\n\
-installed in /boot/grub/menu.lst\n")
-
 #ifdef	__cplusplus
 }
 #endif
--- a/usr/src/cmd/boot/scripts/root_archive.ksh	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/boot/scripts/root_archive.ksh	Tue Sep 18 15:46:43 2007 -0700
@@ -413,7 +413,11 @@
 	RELEASE=`basename "$RELEASE"`
 
 	mkdir -p "$MEDIA/$RELEASE/Tools/Boot"
+	mkdir -p "$MEDIA/boot/amd64"
 	mkdir -p "$MEDIA/boot/platform/i86pc/kernel"
+	mkdir -p "$MEDIA/boot/platform/i86pc/kernel/amd64"
+	mkdir -p "$MEDIA/boot/platform/i86xpv/kernel"
+	mkdir -p "$MEDIA/boot/platform/i86xpv/kernel/amd64"
 
 	# archive package databases to conserve memory
 	#
@@ -427,12 +431,6 @@
 	rm -rf "$MINIROOT/tmp/root/var/sadm/install"
 	rm -rf "$MINIROOT/tmp/root/var/sadm/pkg"
 
-	# clear out 64 bit support to conserve memory
-	#
-	if [ "$STRIP_AMD64" != false ] ; then
-		find "$MINIROOT" -name amd64 -type directory | xargs rm -rf
-	fi
-
 	archive_X "$MEDIA" "$MINIROOT"
 
 	# Take out the gnome and java parts of the installer from
@@ -447,6 +445,12 @@
 	cp "$MINIROOT/platform/i86pc/multiboot" "$MEDIA/boot"
 	cp "$MINIROOT/platform/i86pc/kernel/unix" \
 	    "$MEDIA/boot/platform/i86pc/kernel/unix"
+	cp "$MINIROOT/platform/i86pc/kernel/amd64/unix" \
+	    "$MEDIA/boot/platform/i86pc/kernel/amd64/unix"
+	cp "$MINIROOT/platform/i86xpv/kernel/unix" \
+	    "$MEDIA/boot/platform/i86xpv/kernel/unix"
+	cp "$MINIROOT/platform/i86xpv/kernel/amd64/unix" \
+	    "$MEDIA/boot/platform/i86xpv/kernel/amd64/unix"
 
 	# copy the install menu to menu.lst so we have a menu
 	# on the install media
@@ -459,6 +463,10 @@
 	(
 		cd "$MEDIA/$RELEASE/Tools/Boot"
 		ln -sf ../../../boot/x86.miniroot
+		ln -sf ../../../boot/platform/i86pc/kernel/unix
+		ln -sf ../../../boot/platform/i86pc/kernel/amd64/unix
+		ln -sf ../../../boot/platform/i86xpv/kernel/unix
+		ln -sf ../../../boot/platform/i86xpv/kernel/amd64/unix
 		ln -sf ../../../boot/multiboot
 		ln -sf ../../../boot/grub/pxegrub
 	)
@@ -669,13 +677,28 @@
 case $1 in
 	packmedia)
 		MEDIA="$MR"
-		MR="$MR/boot/x86.miniroot"
+		MR="$MEDIA/boot/x86.miniroot"
 
 		if [ -d "$UNPACKED_ROOT/kernel/drv/sparcv9" ] ; then
 			archive_X "$MEDIA" "$UNPACKED_ROOT"
 		else
 			packmedia "$MEDIA" "$UNPACKED_ROOT"
+			
+			# create the 64-bit miniroot
+			# if the -6 option was passed, don't strip
+			# the 64-bit modules from the 32-bit miniroot
+			MR="$MEDIA/boot/amd64/x86.miniroot"
 			pack
+
+			if [ "$STRIP_AMD64" = false ] ; then
+				ln $MR $MEDIA/boot/x86.miniroot
+			else
+				# create the 32-bit miniroot
+				MR="$MEDIA/boot/x86.miniroot"
+				find "$UNPACKED_ROOT" -name amd64 \
+				    -type directory | xargs rm -rf
+				pack
+			fi
 		fi ;;
 	unpackmedia)
 		MEDIA="$MR"
--- a/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
 #
 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 # or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -31,7 +30,7 @@
 
 include ../../../Makefile.cmd
 
-LDLIBS	+= -lsocket
+LDLIBS	+= -lsocket -ldevinfo
 
 .KEEP_STATE:
 
--- a/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -21,7 +20,7 @@
  */
 
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -39,7 +38,8 @@
  *    where:
  *	<root fs type>		-	"nfs" or "ufs"
  *	<interface name>	-	"hme0" or "none"
- *	<net config strategy>	-	"dhcp", "rarp", or "none"
+ *	<net config strategy>	-	"dhcp", "rarp", "bootprops"
+ *					or "none"
  *
  *    Eg:
  *	# /sbin/netstrategy
@@ -50,11 +50,16 @@
  *    <interface name> is the 16 char name of the root interface, and is only
  *	set if rarp/dhcp was used to configure the interface.
  *
- *    <net config strategy> can be either "rarp", "dhcp", or "none" depending
- *	on which strategy was used to configure the interface. Is "none" if
- *	no interface was configured using a net-based strategy.
+ *    <net config strategy> can be either "rarp", "dhcp", "bootprops", or
+ *	"none" depending on which strategy was used to configure the
+ *	interface. Is "none" if no interface was configured using a
+ *	net-based strategy.
  *
  * CAVEATS: what about autoclient systems? XXX
+ *
+ * The logic here must match that in usr/src/uts/common/fs/nfs/nfs_dlinet.c,
+ * in particular that code (which implements diskless boot) imposes an
+ * ordering on possible ways of configuring network interfaces.
  */
 
 #include <stdio.h>
@@ -69,25 +74,203 @@
 #include <sys/sockio.h>
 #include <net/if.h>
 #include <sys/statvfs.h>
+#include <libdevinfo.h>
+
+static char *program;
+
+static char *
+get_root_fstype()
+{
+	static struct statvfs vfs;
+
+	/* root location */
+	if (statvfs("/", &vfs) < 0) {
+		return ("none");
+	} else {
+		if (strncmp(vfs.f_basetype, "nfs", sizeof ("nfs") - 1) == 0)
+			vfs.f_basetype[sizeof ("nfs") - 1] = '\0';
+		return (vfs.f_basetype);
+	}
+}
+
+/*
+ * The following boot properties can be used to configure a network
+ * interface in the case of a diskless boot.
+ *	host-ip, subnet-mask, server-path, server-name, server-ip.
+ *
+ * XXX non-diskless case requires "network-interface"?
+ */
+static boolean_t
+boot_properties_present()
+{
+	/* XXX should use sys/bootprops.h, but it's not delivered */
+	const char *required_properties[] = {
+		"host-ip",
+		"subnet-mask",
+		"server-path",
+		"server-name",
+		"server-ip",
+		NULL,
+	};
+	const char **prop = required_properties;
+	char *prop_value;
+	di_node_t dn;
+
+	if ((dn = di_init("/", DINFOPROP)) == DI_NODE_NIL) {
+		(void) fprintf(stderr, "%s: di_init: %s\n", program,
+		    strerror(errno));
+		di_fini(dn);
+		return (B_FALSE);
+	}
+
+	while (*prop != NULL) {
+		if (di_prop_lookup_strings(DDI_DEV_T_ANY,
+		    dn, *prop, &prop_value) != 1) {
+			di_fini(dn);
+			return (B_FALSE);
+		}
+		prop++;
+	}
+	di_fini(dn);
+
+	return (B_TRUE);
+}
+
+static char *
+get_first_interface()
+{
+	int fd;
+	struct lifnum ifnum;
+	struct lifconf ifconf;
+	struct lifreq *ifr;
+	static char interface[IFNAMSIZ];
+
+	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
+		(void) fprintf(stderr, "%s: socket: %s\n", program,
+		    strerror(errno));
+		return (NULL);
+	}
+
+	ifnum.lifn_family = AF_UNSPEC;
+
+	if (ioctl(fd, SIOCGLIFNUM, &ifnum) < 0) {
+		(void) fprintf(stderr, "%s: SIOCGLIFNUM: %s\n", program,
+		    strerror(errno));
+		(void) close(fd);
+		return (NULL);
+	}
+
+	ifconf.lifc_family = AF_UNSPEC;
+	ifconf.lifc_len = ifnum.lifn_count * sizeof (struct lifreq);
+	ifconf.lifc_buf = alloca(ifconf.lifc_len);
+
+	if (ioctl(fd, SIOCGLIFCONF, &ifconf) < 0) {
+		(void) fprintf(stderr, "%s: SIOCGLIFCONF: %s\n", program,
+		    strerror(errno));
+		(void) close(fd);
+		return (NULL);
+	}
+
+	for (ifr = ifconf.lifc_req; ifr < &ifconf.lifc_req[ifconf.lifc_len /
+	    sizeof (ifconf.lifc_req[0])]; ifr++) {
+
+		if (strchr(ifr->lifr_name, ':') != NULL)
+			continue;	/* skip logical interfaces */
+
+		if (ioctl(fd, SIOCGLIFFLAGS, ifr) < 0) {
+			(void) fprintf(stderr, "%s: SIOCGIFFLAGS: %s\n",
+			    program, strerror(errno));
+			continue;
+		}
+
+		if (ifr->lifr_flags & (IFF_VIRTUAL|IFF_POINTOPOINT))
+			continue;
+
+		if (ifr->lifr_flags & IFF_UP) {
+			/*
+			 * For the "nfs rarp" and "nfs bootprops"
+			 * cases, we assume that the first non-virtual
+			 * IFF_UP interface is the one used.
+			 *
+			 * Since the order of the interfaces retrieved
+			 * via SIOCGLIFCONF is not deterministic, this
+			 * is largely silliness, but (a) "it's always
+			 * been this way", (b) machines booted this
+			 * way typically only have one interface, and
+			 * (c) no one consumes the interface name in
+			 * the RARP case anyway.
+			 */
+			(void) strncpy(interface, ifr->lifr_name, IFNAMSIZ);
+			(void) close(fd);
+			return (interface);
+		}
+	}
+
+	(void) close(fd);
+
+	return (NULL);
+}
+
+/*
+ * Is DHCP running on the specified interface?
+ */
+static boolean_t
+check_dhcp_running(char *interface)
+{
+	int fd;
+	struct ifreq ifr;
+
+	if (interface == NULL)
+		return (B_FALSE);
+
+	(void) strncpy(ifr.ifr_name, interface, IFNAMSIZ);
+
+	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
+		(void) fprintf(stderr, "%s: socket: %s\n", program,
+		    strerror(errno));
+		return (B_FALSE);
+	}
+
+	if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
+		(void) fprintf(stderr, "%s: SIOCGIFFLAGS: %s\n",
+		    program, strerror(errno));
+		return (B_FALSE);
+	}
+
+	if (ifr.ifr_flags & IFF_DHCPRUNNING)
+		return (B_TRUE);
+
+	return (B_FALSE);
+}
 
 /* ARGSUSED */
 int
 main(int argc, char *argv[])
 {
-	struct statvfs	vfs;
-	char		*root, *interface, *strategy, dummy;
-	long		len;
-	int		fd, nifs, nlifr;
-	struct lifreq	*lifr;
-	struct lifconf	lifc;
+	char *root, *interface, *strategy, dummy;
+	long len;
+
+	root = interface = strategy = NULL;
+	program = argv[0];
+
+	root = get_root_fstype();
 
-	/* root location */
-	if (statvfs("/", &vfs) < 0)
-		root = "none";
-	else {
-		if (strncmp(vfs.f_basetype, "nfs", sizeof ("nfs") - 1) == 0)
-			vfs.f_basetype[sizeof ("nfs") - 1] = '\0';
-		root = vfs.f_basetype;
+	/*
+	 * If diskless, perhaps boot properties were used to configure
+	 * the interface.
+	 */
+	if ((strcmp(root, "nfs") == 0) && boot_properties_present()) {
+		strategy = "bootprops";
+
+		interface = get_first_interface();
+		if (interface == NULL) {
+			(void) fprintf(stderr,
+			    "%s: cannot identify root interface.\n", program);
+			return (2);
+		}
+
+		(void) printf("%s %s %s\n", root, interface, strategy);
+		return (0);
 	}
 
 	/*
@@ -124,79 +307,15 @@
 	 *	   It's too bad there isn't an IFF_RARPRUNNING flag.
 	 */
 
-	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
-		(void) fprintf(stderr, "%s: socket: %s\n", argv[0],
-		    strerror(errno));
-		return (2);
-	}
-
-	if (ioctl(fd, SIOCGIFNUM, &nifs) < 0) {
-		(void) fprintf(stderr, "%s: SIOCGIFNUM: %s\n", argv[0],
-		    strerror(errno));
-		(void) close(fd);
-		return (2);
-	}
-
-	lifc.lifc_len = nifs * sizeof (struct lifreq);
-	lifc.lifc_buf = alloca(lifc.lifc_len);
-	lifc.lifc_flags = 0;
-	lifc.lifc_family = AF_INET;
-
-	if (ioctl(fd, SIOCGLIFCONF, &lifc) < 0) {
-		(void) fprintf(stderr, "%s: SIOCGLIFCONF: %s\n", argv[0],
-		    strerror(errno));
-		(void) close(fd);
-		return (2);
-	}
-
-	strategy = NULL;
-	interface = NULL;
-
-	nlifr = lifc.lifc_len / sizeof (struct lifreq);
-	for (lifr = lifc.lifc_req; nlifr > 0; lifr++, nlifr--) {
-
-		if (strchr(lifr->lifr_name, ':') != NULL)
-			continue;	/* skip logical interfaces */
+	interface = get_first_interface();
 
-		if (ioctl(fd, SIOCGLIFFLAGS, lifr) < 0) {
-			(void) fprintf(stderr, "%s: SIOCGLIFFLAGS: %s\n",
-			    argv[0], strerror(errno));
-			continue;
-		}
-
-		if (lifr->lifr_flags & (IFF_VIRTUAL|IFF_POINTOPOINT))
-			continue;
-
-		if (lifr->lifr_flags & IFF_UP) {
-			/*
-			 * For the "nfs rarp" case, we assume that the first
-			 * IFF_UP interface is the one using RARP, so stash
-			 * away the first interface in case we need it.
-			 *
-			 * Since the order of the interfaces retrieved via
-			 * SIOCGLIFCONF is not deterministic, this is largely
-			 * silliness, but (a) "it's always been this way", (b)
-			 * machines booted via diskless RARP typically only
-			 * have one interface, and (c) no one consumes the
-			 * interface name in the RARP case anyway.
-			 */
-			if (interface == NULL)
-				interface = lifr->lifr_name;
-
-			if (lifr->lifr_flags & IFF_DHCPRUNNING) {
-				interface = lifr->lifr_name;
-				strategy = "dhcp";
-				break;
-			}
-		}
-	}
-
-	(void) close(fd);
+	if (check_dhcp_running(interface))
+		strategy = "dhcp";
 
 	if (strcmp(root, "nfs") == 0 || strcmp(root, "cachefs") == 0) {
 		if (interface == NULL) {
 			(void) fprintf(stderr,
-			    "%s: cannot identify root interface.\n", argv[0]);
+			    "%s: cannot identify root interface.\n", program);
 			return (2);
 		}
 		if (strategy == NULL)
--- a/usr/src/cmd/devfsadm/Makefile.com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/devfsadm/Makefile.com	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -66,7 +66,7 @@
 	$(COMMON)/md_link.c	\
 	$(COMMON)/dtrace_link.c	\
 	$(COMMON)/zfs_link.c	\
-	$(LINK_SRCS_($MACH))
+	$(LINK_SRCS_$(MACH))
 
 LINT_MODULES = $(LINK_SRCS:.c=.ln)
 
@@ -87,7 +87,7 @@
 	md_link.o		\
 	dtrace_link.o		\
 	zfs_link.o		\
-	$(LINK_OBJS_($MACH))
+	$(LINK_OBJS_$(MACH))
 
 LINK_MODS =			\
 	SUNW_disk_link.so	\
--- a/usr/src/cmd/devfsadm/i386/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/devfsadm/i386/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -19,17 +19,36 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
-LINK_SRCS_i386 = misc_link_i386.c lx_link_i386.c
-LINK_OBJS_i386 = misc_link_i386.o lx_link_i386.o
-LINK_MODS_i386 = SUNW_misc_link_i386.so SUNW_lx_link_i386.so
+MISC_LINK_ISA	= misc_link_i386
+LX_LINK_ISA	= lx_link_i386
+XEN_LINK	= xen_link
+
+LINK_SRCS_i386 = 			\
+	$(MISC_LINK_ISA).c		\
+	$(LX_LINK_ISA).c		\
+	$(XEN_LINK).c
+
+LINK_OBJS_i386 =			\
+	$(MISC_LINK_ISA).o		\
+	$(LX_LINK_ISA).o		\
+	$(XEN_LINK).o
+
+LINK_MODS_i386 =			\
+	SUNW_$(MISC_LINK_ISA).so	\
+	SUNW_$(LX_LINK_ISA).so		\
+	SUNW_$(XEN_LINK).so
 
 include ../Makefile.com
 
-lx_link_i386.o := CPPFLAGS += -I$(UTSBASE)/common/brand/lx
+$(LX_LINK_ISA).o $(LX_LINK_ISA).ln $(LX_LINK_ISA).po \
+	:= CPPFLAGS += -I$(UTSBASE)/common/brand/lx
+
+$(XEN_LINK).o $(XEN_LINK).ln $(XEN_LINK).po \
+	:= CPPFLAGS += -I$(UTSBASE)/i86xpv
 
 install: all
--- a/usr/src/cmd/devfsadm/i386/misc_link_i386.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/devfsadm/i386/misc_link_i386.c	Tue Sep 18 15:46:43 2007 -0700
@@ -585,8 +585,6 @@
 static int
 ucode(di_minor_t minor, di_node_t node)
 {
-	char *mn;
-
 	(void) devfsadm_mklink("ucode", node, minor, 0);
 	return (DEVFSADM_CONTINUE);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/devfsadm/i386/xen_link.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,95 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <regex.h>
+#include <devfsadm.h>
+#include <stdio.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <sys/privcmd_impl.h>
+#include <sys/domcaps_impl.h>
+#include <sys/balloon.h>
+
+/*
+ * Handle miscellaneous children of xendev
+ */
+static int devxen(di_minor_t, di_node_t);
+
+static devfsadm_create_t xen_cbt[] = {
+	{ "xendev", DDI_PSEUDO, "xenbus",
+	    TYPE_EXACT | DRV_EXACT, ILEVEL_0, devxen,
+	},
+	{ "xendev", DDI_PSEUDO, PRIVCMD_DRIVER_NAME,
+	    TYPE_EXACT | DRV_EXACT, ILEVEL_0, devxen,
+	},
+	{ "xendev", DDI_PSEUDO, "evtchn",
+	    TYPE_EXACT | DRV_EXACT, ILEVEL_0, devxen,
+	},
+	{ "xendev", DDI_PSEUDO, DOMCAPS_DRIVER_NAME,
+	    TYPE_EXACT | DRV_EXACT, ILEVEL_0, devxen,
+	},
+	{ "xendev", DDI_PSEUDO, BALLOON_DRIVER_NAME,
+	    TYPE_EXACT | DRV_EXACT, ILEVEL_0, devxen,
+	},
+};
+
+DEVFSADM_CREATE_INIT_V0(xen_cbt);
+
+static devfsadm_remove_t xen_remove_cbt[] = {
+	{ "xendev", "^" "xen/xenbus" "$", RM_ALWAYS | RM_PRE | RM_HOT,
+	    ILEVEL_0, devfsadm_rm_all
+	},
+	{ "xendev", "^" PRIVCMD_PATHNAME "$", RM_ALWAYS | RM_PRE | RM_HOT,
+	    ILEVEL_0, devfsadm_rm_all
+	},
+	{ "xendev", "^" "xen/evtchn" "$", RM_ALWAYS | RM_PRE | RM_HOT,
+	    ILEVEL_0, devfsadm_rm_all
+	},
+	{ "xendev", "^" DOMCAPS_PATHNAME "$", RM_ALWAYS | RM_PRE | RM_HOT,
+	    ILEVEL_0, devfsadm_rm_all
+	},
+	{ "xendev", "^" BALLOON_PATHNAME "$", RM_ALWAYS | RM_PRE | RM_HOT,
+	    ILEVEL_0, devfsadm_rm_all
+	},
+};
+
+DEVFSADM_REMOVE_INIT_V0(xen_remove_cbt);
+
+/*
+ * /dev/xen/<foo>	->	/devices/xendev/<whatever>:<foo>
+ */
+static int
+devxen(di_minor_t minor, di_node_t node)
+{
+	char buf[256];
+
+	(void) snprintf(buf, sizeof (buf), "xen/%s", di_minor_name(minor));
+	(void) devfsadm_mklink(buf, node, minor, 0);
+
+	return (DEVFSADM_CONTINUE);
+}
--- a/usr/src/cmd/devfsadm/misc_link.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/devfsadm/misc_link.c	Tue Sep 18 15:46:43 2007 -0700
@@ -199,7 +199,7 @@
 		ZCONS_SLAVE_NAME ")$",
 	    RM_PRE | RM_HOT | RM_ALWAYS, ILEVEL_0, devfsadm_rm_all
 	},
-	{ "pseudo", "^cpu/self/cpuid$", RM_ALWAYS | RM_PRE | RM_HOT,
+	{ "pseudo", "^" CPUID_SELF_NAME "$", RM_ALWAYS | RM_PRE | RM_HOT,
 	    ILEVEL_0, devfsadm_rm_all
 	},
 	{ "enclosure", "^es/ses[0-9]+$", RM_POST,
--- a/usr/src/cmd/devfsadm/sparc/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/devfsadm/sparc/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -19,14 +19,21 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
-LINK_SRCS_sparc = misc_link_sparc.c
-LINK_OBJS_sparc = misc_link_sparc.o
-LINK_MODS_sparc = SUNW_misc_link_sparc.so
+MISC_LINK_ISA	= misc_link_sparc
+
+LINK_SRCS_sparc =		\
+	$(MISC_LINK_ISA).c
+
+LINK_OBJS_sparc =		\
+	$(MISC_LINK_ISA).o
+
+LINK_MODS_sparc =		\
+	SUNW_$(MISC_LINK_ISA).so
 
 include ../Makefile.com
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/devprop/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+PROG		= devprop
+ROOTFS_PROG	= $(PROG)
+
+include		../Makefile.cmd
+
+LDLIBS		+= -ldevinfo
+
+.KEEP_STATE:
+
+all:		$(ROOTFS_PROG)
+
+install:	all $(ROOTSBINPROG)
+
+clean:
+
+lint:		lint_PROG
+
+include		../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/devprop/devprop.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,158 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <stdio.h>
+#include <unistd.h>
+#include <strings.h>
+#include <libdevinfo.h>
+
+static void
+usage(void)
+{
+	(void) fprintf(stderr,
+	    "Usage: devprop [-n device-path] "
+	    "[-vq] [-{b|i|l|s}] [property [...]]\n");
+}
+
+int
+main(int argc, char *argv[])
+{
+	int c;
+	boolean_t verbose = B_FALSE, quote = B_FALSE,
+	    error = B_FALSE;
+	int type = DI_PROP_TYPE_UNKNOWN;
+	char *path = "/";
+	di_node_t dn;
+	uchar_t *val_b;
+	int *val_i;
+	int64_t *val_l;
+	char *val_s;
+	int n;
+
+	extern char *optarg;
+	extern int optind;
+
+#define	BOOL(ch, var)				\
+case ch:					\
+	var = B_TRUE;				\
+	break
+
+#define	PER_OPT(ch, typ)			\
+case ch:					\
+	if (type != DI_PROP_TYPE_UNKNOWN) {	\
+		usage();			\
+		return (1);			\
+	}					\
+	type = (typ);				\
+	break
+
+	while ((c = getopt(argc, argv, ":n:vqbils")) != -1) {
+		switch (c) {
+		case 'n':
+			path = optarg;
+			break;
+		case ':':
+			usage();
+			return (1);
+
+		BOOL('v', verbose);
+		BOOL('q', quote);
+		BOOL('?', error);
+
+		PER_OPT('b', DI_PROP_TYPE_BYTE);
+		PER_OPT('i', DI_PROP_TYPE_INT);
+		PER_OPT('l', DI_PROP_TYPE_INT64);
+		PER_OPT('s', DI_PROP_TYPE_STRING);
+		}
+	}
+
+#undef	BOOL
+#undef	PER_OPT
+
+	if (error) {
+		usage();
+		return (1);
+	}
+
+	/* default to strings */
+	if (type == DI_PROP_TYPE_UNKNOWN)
+		type = DI_PROP_TYPE_STRING;
+
+	/*
+	 * It's convenient to use the filesystem as a source of device
+	 * node paths.  In that case, the path will be prefixed with
+	 * "/devices", which we strip off here as di_init() expects
+	 * just the path to the node.
+	 */
+	if (strncmp("/devices/", path, strlen("/devices/")) == 0)
+		path += strlen("/devices");
+
+	if ((dn = di_init(path, DINFOPROP)) == DI_NODE_NIL) {
+		perror("di_init");
+		return (1);
+	}
+
+	/* Careful with that axe, Eugene... */
+#define	PER_TYPE(typ, func, val, incr, form, pv, sep)	\
+case (typ):						\
+	n = func(DDI_DEV_T_ANY,				\
+	    dn, argv[optind], &(val));			\
+	while (n > 0) {					\
+		(void) printf((form), pv);		\
+		incr;					\
+		n--;					\
+		if (n > 0)				\
+			(void) printf(sep);		\
+	}						\
+	(void) printf("\n");				\
+	break
+
+	while (optind < argc) {
+		if (verbose)
+			(void) printf("%s=", argv[optind]);
+
+		switch (type) {
+		PER_TYPE(DI_PROP_TYPE_BYTE, di_prop_lookup_bytes,
+		    val_b, val_b++, "%2.2x", *val_b, ".");
+		PER_TYPE(DI_PROP_TYPE_INT, di_prop_lookup_ints,
+		    val_i, val_i++, "%8.8x", *val_i, ".");
+		PER_TYPE(DI_PROP_TYPE_INT64, di_prop_lookup_int64,
+		    val_l, val_l++, "%16.16llx", *val_l, ".");
+		PER_TYPE(DI_PROP_TYPE_STRING, di_prop_lookup_strings,
+		    val_s, val_s += strlen(val_s) + 1,
+		    (quote ? "\"%s\"" : "%s"), val_s, " + ");
+		}
+
+		optind++;
+	}
+
+#undef	PER_TYPE
+
+	di_fini(dn);
+
+	return (0);
+}
--- a/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c	Tue Sep 18 15:46:43 2007 -0700
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -33,6 +33,8 @@
 #include <time.h>
 #include <fm/fmd_api.h>
 #include <sys/fm/protocol.h>
+#include <sys/systeminfo.h>
+#include <sys/utsname.h>
 
 cma_t cma;
 
@@ -255,6 +257,16 @@
 _fmd_init(fmd_hdl_t *hdl)
 {
 	hrtime_t nsec;
+	char buf[SYS_NMLN];
+	int ret;
+
+	/*
+	 * Abort the cpumem-retire module if Solaris is running under the Xen
+	 * hypervisor.
+	 */
+	ret = sysinfo(SI_PLATFORM, buf, sizeof (buf));
+	if (ret == -1 || (strncmp(buf, "i86xpv", sizeof (buf)) == 0))
+		return;
 
 	if (fmd_hdl_register(hdl, FMD_API_VERSION, &fmd_info) != 0)
 		return; /* invalid data in configuration file */
--- a/usr/src/cmd/format/init_ci386.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/format/init_ci386.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -19,10 +18,9 @@
  *
  * CDDL HEADER END
  */
-
 /*
- * Copyright (c) 1996,2000 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
@@ -38,6 +36,7 @@
 extern	struct ctlr_ops scsiops;
 extern	struct ctlr_ops ataops;
 extern	struct ctlr_ops pcmcia_ataops;
+extern  struct ctlr_ops genericops;
 
 /*
  * This array defines the supported controller types
@@ -59,6 +58,11 @@
 		&pcmcia_ataops,
 		CF_NOFORMAT | CF_NOWLIST },
 
+	{ DKC_VBD,
+		"virtual-dsk",
+		&genericops,
+		CF_NOWLIST },
+
 };
 
 /*
--- a/usr/src/cmd/format/label.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/format/label.c	Tue Sep 18 15:46:43 2007 -0700
@@ -60,7 +60,7 @@
  */
 static int	do_geometry_sanity_check(void);
 static int	vtoc_to_label(struct dk_label *label, struct vtoc *vtoc,
-		struct dk_geom *geom);
+		struct dk_geom *geom, struct dk_cinfo *cinfo);
 extern int	read_vtoc(int, struct vtoc *);
 extern int	write_vtoc(int, struct vtoc *);
 static int	vtoc64_to_label(struct efi_info *, struct dk_gpt *);
@@ -194,13 +194,13 @@
 
 	if (uscsi_read_capacity(cur_file, &capacity)) {
 		err_print("Warning: Unable to get capacity."
-				" Cannot check geometry\n");
+		    " Cannot check geometry\n");
 		return (0);	/* Just ignore this problem */
 	}
 
 	if (capacity.sc_capacity < ncyl * nhead * nsect) {
 		err_print("\nWarning: Current geometry overshoots "
-				"actual geometry of disk\n\n");
+		    "actual geometry of disk\n\n");
 		if (check("Continue labelling disk") != 0)
 			return (-1);
 		return (0);	/* Just ignore this problem */
@@ -220,8 +220,8 @@
 	struct dk_gpt	*efi;
 
 	if (efi_alloc_and_init(fd, EFI_NUMPAR, new_vtoc) != 0) {
-	    err_print("SMI vtoc to EFI failed\n");
-	    return (-1);
+		err_print("SMI vtoc to EFI failed\n");
+		return (-1);
 	}
 	efi = *new_vtoc;
 
@@ -281,17 +281,17 @@
 	 * If EFI label, then write it out to disk
 	 */
 	if (cur_label == L_TYPE_EFI) {
-	    enter_critical();
-	    vtoc64 = cur_parts->etoc;
-	    err_check(vtoc64);
-	    if (efi_write(cur_file, vtoc64) != 0) {
-		err_print("Warning: error writing EFI.\n");
-		error = -1;
-	    }
+		enter_critical();
+		vtoc64 = cur_parts->etoc;
+		err_check(vtoc64);
+		if (efi_write(cur_file, vtoc64) != 0) {
+			err_print("Warning: error writing EFI.\n");
+			error = -1;
+			}
 
-	    cur_disk->disk_flags |= DSK_LABEL;
-	    exit_critical();
-	    return (error);
+		cur_disk->disk_flags |= DSK_LABEL;
+		exit_critical();
+		return (error);
 	}
 
 	/*
@@ -429,21 +429,20 @@
 	for (sec = 1; ((sec < BAD_LISTCNT * 2 + 1) && (sec < nsect));
 	    sec += 2) {
 		if ((*cur_ops->op_rdwr)(DIR_READ, cur_file, (diskaddr_t)
-			((chs2bn(ncyl + acyl - 1, head, sec)) + solaris_offset),
-			1, (caddr_t)&new_label, F_NORMAL, NULL)) {
+		    ((chs2bn(ncyl + acyl - 1, head, sec)) + solaris_offset),
+		    1, (caddr_t)&new_label, F_NORMAL, NULL)) {
 			err_print("Warning: error reading backup label.\n");
 			error = -1;
 		} else {
 			if (bcmp((char *)&label, (char *)&new_label,
-				sizeof (struct dk_label)) == 0) {
+			    sizeof (struct dk_label)) == 0) {
 					nbackups++;
 			}
 		}
 	}
 	if (nbackups != BAD_LISTCNT) {
 		err_print("Warning: %s\n", nbackups == 0 ?
-			"no backup labels" :
-			"some backup labels incorrect");
+		    "no backup labels" : "some backup labels incorrect");
 	}
 	/*
 	 * Mark the current disk as labelled and notify the kernel of what
@@ -466,11 +465,15 @@
 {
 	struct vtoc	vtoc;
 	struct dk_geom	geom;
+	struct dk_cinfo	dkinfo;
 
-	if (read_vtoc(fd, &vtoc) < 0 || ioctl(fd, DKIOCGGEOM, &geom) == -1) {
+	if (read_vtoc(fd, &vtoc) < 0		||
+	    ioctl(fd, DKIOCGGEOM, &geom) == -1	||
+	    ioctl(fd, DKIOCINFO, &dkinfo) == -1) {
 		return (-1);
 	}
-	return (vtoc_to_label(label, &vtoc, &geom));
+
+	return (vtoc_to_label(label, &vtoc, &geom, &dkinfo));
 }
 
 int
@@ -608,7 +611,7 @@
 	/* XXX do a sanity check here for nparts */
 	nparts = vtoc->efi_nparts;
 	lmap = (struct dk_gpt *) calloc(1, (sizeof (struct dk_part) *
-		    nparts) + sizeof (struct dk_gpt));
+	    nparts) + sizeof (struct dk_gpt));
 	if (lmap == NULL) {
 		err_print("vtoc64_to_label: unable to allocate lmap\n");
 		fullabort();
@@ -628,7 +631,7 @@
 	lmap->efi_last_u_lba = vtoc->efi_last_u_lba;
 	lmap->efi_flags = vtoc->efi_flags;
 	(void) memcpy((uchar_t *)&lmap->efi_disk_uguid,
-		(uchar_t *)&vtoc->efi_disk_uguid, sizeof (struct uuid));
+	    (uchar_t *)&vtoc->efi_disk_uguid, sizeof (struct uuid));
 
 	for (i = 0; i < nparts; i++) {
 		lmap->efi_parts[i].p_tag = vtoc->efi_parts[i].p_tag;
@@ -650,7 +653,8 @@
  * Convert vtoc/geom to label.
  */
 static int
-vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom)
+vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom,
+    struct dk_cinfo *cinfo)
 {
 #if defined(_SUNOS_VTOC_8)
 	struct dk_map32		*lmap;
@@ -670,7 +674,7 @@
 	 * Sanity-check the vtoc
 	 */
 	if (vtoc->v_sanity != VTOC_SANE || vtoc->v_sectorsz != DEV_BSIZE ||
-			vtoc->v_nparts != V_NUMPAR) {
+	    vtoc->v_nparts != V_NUMPAR) {
 		return (-1);
 	}
 
@@ -678,7 +682,7 @@
 	 * Sanity check of geometry
 	 */
 	if (geom->dkg_ncyl == 0 || geom->dkg_nhead == 0 ||
-			geom->dkg_nsect == 0) {
+	    geom->dkg_nsect == 0) {
 		return (-1);
 	}
 
@@ -718,25 +722,30 @@
 	label->dkl_vtoc.v_version = vtoc->v_version;
 
 	(void) memcpy(label->dkl_vtoc.v_volume, vtoc->v_volume,
-		LEN_DKL_VVOL);
+	    LEN_DKL_VVOL);
 	for (i = 0; i < V_NUMPAR; i++) {
 		label->dkl_vtoc.v_part[i].p_tag = vtoc->v_part[i].p_tag;
 		label->dkl_vtoc.v_part[i].p_flag = vtoc->v_part[i].p_flag;
 	}
 	(void) memcpy((char *)label->dkl_vtoc.v_bootinfo,
-		(char *)vtoc->v_bootinfo, sizeof (vtoc->v_bootinfo));
+	    (char *)vtoc->v_bootinfo, sizeof (vtoc->v_bootinfo));
 	(void) memcpy((char *)label->dkl_vtoc.v_reserved,
-		(char *)vtoc->v_reserved, sizeof (vtoc->v_reserved));
+	    (char *)vtoc->v_reserved, sizeof (vtoc->v_reserved));
 	(void) memcpy((char *)label->dkl_vtoc.v_timestamp,
-		(char *)vtoc->timestamp, sizeof (vtoc->timestamp));
+	    (char *)vtoc->timestamp, sizeof (vtoc->timestamp));
 
 	(void) memcpy(label->dkl_asciilabel, vtoc->v_asciilabel,
-		LEN_DKL_ASCII);
+	    LEN_DKL_ASCII);
 
 	/*
 	 * Note the conversion from starting sector number
 	 * to starting cylinder number.
 	 * Return error if division results in a remainder.
+	 *
+	 * Note: don't check, if probing virtual disk in Xen
+	 * for that virtual disk will use fabricated # of headers
+	 * and sectors per track which may cause the capacity
+	 * not multiple of # of blocks per cylinder
 	 */
 #if defined(_SUNOS_VTOC_8)
 	lmap = label->dkl_map;
@@ -752,9 +761,11 @@
 	nblks = (int)label->dkl_nsect * (int)label->dkl_nhead;
 
 	for (i = 0; i < NDKMAP; i++, lmap++, vpart++) {
-		if ((vpart->p_start % nblks) != 0 ||
-				(vpart->p_size % nblks) != 0) {
-			return (-1);
+		if (cinfo->dki_ctype != DKC_VBD) {
+			if ((vpart->p_start % nblks) != 0 ||
+			    (vpart->p_size % nblks) != 0) {
+				return (-1);
+			}
 		}
 #if defined(_SUNOS_VTOC_8)
 		lmap->dkl_cylno = vpart->p_start / nblks;
@@ -826,16 +837,16 @@
 #endif	/* defined(_SUNOS_VTOC_16) */
 		}
 		(void) memcpy(vtoc->v_volume, label->dkl_vtoc.v_volume,
-			LEN_DKL_VVOL);
+		    LEN_DKL_VVOL);
 		(void) memcpy((char *)vtoc->v_bootinfo,
-			(char *)label->dkl_vtoc.v_bootinfo,
-				sizeof (vtoc->v_bootinfo));
+		    (char *)label->dkl_vtoc.v_bootinfo,
+		    sizeof (vtoc->v_bootinfo));
 		(void) memcpy((char *)vtoc->v_reserved,
-			(char *)label->dkl_vtoc.v_reserved,
-				sizeof (vtoc->v_reserved));
+		    (char *)label->dkl_vtoc.v_reserved,
+		    sizeof (vtoc->v_reserved));
 		(void) memcpy((char *)vtoc->timestamp,
-			(char *)label->dkl_vtoc.v_timestamp,
-				sizeof (vtoc->timestamp));
+		    (char *)label->dkl_vtoc.v_timestamp,
+		    sizeof (vtoc->timestamp));
 		break;
 
 	default:
@@ -853,7 +864,7 @@
 	vtoc->v_nparts = V_NUMPAR;
 
 	(void) memcpy(vtoc->v_asciilabel, label->dkl_asciilabel,
-		LEN_DKL_ASCII);
+	    LEN_DKL_ASCII);
 
 #if defined(_SUNOS_VTOC_8)
 	/*
@@ -909,22 +920,21 @@
 		    (vtoc->efi_parts[i].p_size != 0)) {
 			(void) fprintf(stderr,
 "partition %d is \"unassigned\" but has a size of %llu\n", i,
-			vtoc->efi_parts[i].p_size);
+			    vtoc->efi_parts[i].p_size);
 		}
 		if (vtoc->efi_parts[i].p_tag == V_UNASSIGNED) {
 			continue;
 		}
 		if (vtoc->efi_parts[i].p_tag == V_RESERVED) {
 			if (resv_part != -1) {
-			    (void) fprintf(stderr,
-"found duplicate reserved partition at %d\n",
-				i);
+				(void) fprintf(stderr,
+"found duplicate reserved partition at %d\n", i);
 			}
 			resv_part = i;
 			if (vtoc->efi_parts[i].p_size != EFI_MIN_RESV_SIZE)
 				(void) fprintf(stderr,
 "Warning: reserved partition size must be %d sectors\n",
-				EFI_MIN_RESV_SIZE);
+				    EFI_MIN_RESV_SIZE);
 		}
 		if ((vtoc->efi_parts[i].p_start < vtoc->efi_first_u_lba) ||
 		    (vtoc->efi_parts[i].p_start > vtoc->efi_last_u_lba)) {
@@ -977,7 +987,7 @@
 	/* make sure there is a reserved partition */
 	if (resv_part == -1) {
 		(void) fprintf(stderr,
-			"no reserved partition found\n");
+		    "no reserved partition found\n");
 	}
 }
 
--- a/usr/src/cmd/format/startup.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/format/startup.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -196,62 +196,62 @@
 			 * of the main loop so they aren't re-interpreted.
 			 */
 			switch (*ptr) {
-			    case 's':
-			    case 'S':
+			case 's':
+			case 'S':
 				option_s = 1;
 				break;
-			    case 'f':
-			    case 'F':
+			case 'f':
+			case 'F':
 				option_f = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 'l':
-			    case 'L':
+			case 'l':
+			case 'L':
 				option_l = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 'x':
-			    case 'X':
+			case 'x':
+			case 'X':
 				option_x = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 'd':
-			    case 'D':
+			case 'd':
+			case 'D':
 				option_d = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 't':
-			    case 'T':
+			case 't':
+			case 'T':
 				option_t = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 'p':
-			    case 'P':
+			case 'p':
+			case 'P':
 				option_p = argv[next++];
 				if (next > argc)
 					goto badopt;
 				break;
-			    case 'm':
+			case 'm':
 				option_msg = 1;
 				break;
-			    case 'M':
+			case 'M':
 				option_msg = 1;
 				diag_msg = 1;
 				break;
-			    case 'e':
+			case 'e':
 				expert_mode = 1;
 				break;
 #ifdef DEBUG
-			    case 'z':
+			case 'z':
 				dev_expert = 1;
 				break;
 #endif
-			    default:
+			default:
 badopt:
 				usage();
 				break;
@@ -324,7 +324,7 @@
 			nopened_files++;
 		} else {
 			err_print("Unable to open data file '%s' - %s.\n",
-				file_name, strerror(errno));
+			    file_name, strerror(errno));
 			fullabort();
 		}
 	}
@@ -365,7 +365,7 @@
 		 */
 		if (stat(fname, &stbuf) == -1) {
 			err_print("Unable to access '%s' - %s.\n",
-				fname, strerror(errno));
+			    fname, strerror(errno));
 		} else {
 			if (S_ISDIR(stbuf.st_mode)) {
 				if (*(p-1) != '/')
@@ -514,7 +514,7 @@
 		 * so no dangling references.
 		 */
 		search_path = build_argvlist(search_path, &path_size,
-			&path_alloc, cleaned);
+		    &path_alloc, cleaned);
 		/*
 		 * Pull in some grammar.
 		 */
@@ -659,9 +659,10 @@
 					}
 				}
 				if (i == OTHER_CTLRS) {
-				    datafile_error("Unknown controller '%s'",
-					cleaned);
-				    return;
+					datafile_error(
+					    "Unknown controller '%s'",
+					    cleaned);
+					return;
 				}
 			}
 			/*
@@ -680,7 +681,7 @@
 		val = (int)strtol(cleaned, &ptr, 0);
 		if (*ptr != '\0') {
 			datafile_error("Expecting an integer, found '%s'",
-				cleaned);
+			    cleaned);
 			return;
 		}
 		/*
@@ -1058,7 +1059,7 @@
 		 * in cylinders or blocks.
 		 */
 		if (((flags & (SUP_DISK|SUP_CTLR)) == (SUP_DISK|SUP_CTLR)) &&
-				dtype == NULL && ctype == NULL) {
+		    dtype == NULL && ctype == NULL) {
 			/*
 			 * Attempt to match the specified ctlr to a known type.
 			 */
@@ -1091,7 +1092,7 @@
 			 * Attempt to match the specified disk to a known type.
 			 */
 			for (dtype = ctype->ctype_dlist; dtype != NULL;
-						dtype = dtype->dtype_next) {
+			    dtype = dtype->dtype_next) {
 				if (strcmp(dtype->dtype_asciilabel, disk) == 0)
 					break;
 			}
@@ -1166,14 +1167,13 @@
 			status = sup_gettoken(token);
 			if (status != SUP_COMMA) {
 				datafile_error(
-					"Expecting ', ', found '%s'",
-					token);
+				    "Expecting ', ', found '%s'", token);
 				return;
 			}
 			status = sup_gettoken(token);
 			if (status != SUP_STRING) {
 				datafile_error("Expecting value, found '%s'",
-					token);
+				    token);
 				return;
 			}
 			clean_token(cleaned, token);
@@ -1190,13 +1190,13 @@
 			status = sup_gettoken(token);
 			if (status != SUP_COMMA) {
 				datafile_error("Expecting ', ', found '%s'",
-					token);
+				    token);
 				return;
 			}
 			status = sup_gettoken(token);
 			if (status != SUP_STRING) {
 				datafile_error("Expecting value, found '%s'",
-					token);
+				    token);
 				return;
 			}
 			clean_token(cleaned, token);
@@ -1209,7 +1209,7 @@
 		val1 = str2cyls(cleaned);
 		if (val1 == -1) {
 			datafile_error("Expecting an integer, found '%s'",
-				cleaned);
+			    cleaned);
 			return;
 		}
 		/*
@@ -1239,7 +1239,7 @@
 		val2 = str2blks(cleaned);
 		if (val2 == -1) {
 			datafile_error("Expecting an integer, found '%s'",
-				cleaned);
+			    cleaned);
 			return;
 		}
 		/*
@@ -1318,12 +1318,12 @@
 	 */
 	if (getcwd(curdir, sizeof (curdir)) == NULL) {
 		err_print("Cannot get current directory - %s\n",
-			strerror(errno));
+		    strerror(errno));
 		fullabort();
 	}
 	if (chdir(directory) == -1) {
 		err_print("Cannot set directory to %s - %s\n",
-			directory, strerror(errno));
+		    directory, strerror(errno));
 		fullabort();
 	}
 
@@ -1361,7 +1361,7 @@
 		 */
 		if ((dir = opendir(".")) == NULL) {
 			err_print("Cannot open %s - %s\n",
-				directory, strerror(errno));
+			    directory, strerror(errno));
 			fullabort();
 		}
 
@@ -1373,25 +1373,24 @@
 		 */
 		while ((dp = readdir(dir)) != NULL) {
 			if (strcmp(dp->d_name, ".") == 0 ||
-						strcmp(dp->d_name, "..") == 0)
+			    strcmp(dp->d_name, "..") == 0)
 				continue;
 			if (!conventional_name(dp->d_name)) {
-			    if (!fdisk_physical_name(dp->d_name)) {
-				/*
-				 * If non-conventional name represents
-				 * a link to non-s2 slice , ignore it.
-				 */
-				    if (!name_represents_wholedisk
-						(dp->d_name)) {
-					(void) strcpy(path, directory);
-					(void) strcat(path, "/");
-					(void) strcat(path, dp->d_name);
-					add_device_to_disklist(dp->d_name,
-							path);
-				    }
-			    }
+				if (!fdisk_physical_name(dp->d_name)) {
+					/*
+					 * If non-conventional name represents
+					 * a link to non-s2 slice , ignore it.
+					 */
+					if (!name_represents_wholedisk
+					    (dp->d_name)) {
+						(void) strcpy(path, directory);
+						(void) strcat(path, "/");
+						(void) strcat(path, dp->d_name);
+						add_device_to_disklist(
+						    dp->d_name, path);
+					}
+				}
 			}
-
 		}
 		rewinddir(dir);
 
@@ -1402,7 +1401,7 @@
 		 */
 		while ((dp = readdir(dir)) != NULL) {
 			if (strcmp(dp->d_name, ".") == 0 ||
-						strcmp(dp->d_name, "..") == 0)
+			    strcmp(dp->d_name, "..") == 0)
 				continue;
 			if (whole_disk_name(dp->d_name)) {
 				(void) strcpy(path, directory);
@@ -1417,7 +1416,7 @@
 		 */
 		if (closedir(dir) == -1) {
 			err_print("Cannot close directory %s - %s\n",
-				directory, strerror(errno));
+			    directory, strerror(errno));
 			fullabort();
 		}
 
@@ -1430,7 +1429,7 @@
 	 */
 	if (chdir(curdir) == -1) {
 		err_print("Cannot set directory to %s - %s\n",
-			curdir, strerror(errno));
+		    curdir, strerror(errno));
 		fullabort();
 	}
 
@@ -1469,11 +1468,11 @@
 			}
 			type = disk->disk_type;
 			nblks = type->dtype_ncyl * type->dtype_nhead *
-				type->dtype_nsect;
+			    type->dtype_nsect;
 			if (disk->label_type == L_TYPE_SOLARIS)
-			    scaled = bn2mb(nblks);
+				scaled = bn2mb(nblks);
 			else
-			    scaled = bn2mb(type->capacity);
+				scaled = bn2mb(type->capacity);
 			fmt_print("with capacity of ");
 			if (scaled > 1024.0) {
 				fmt_print("%1.2fGB\n", scaled/1024.0);
@@ -1652,7 +1651,7 @@
 		tctlr->ctype_ctype = dkinfo.dki_ctype;
 		tctlr->ctype_name = zalloc(DK_DEVLEN);
 		if (strlcpy(tctlr->ctype_name, dkinfo.dki_cname,
-			DK_DEVLEN) > DK_DEVLEN) {
+		    DK_DEVLEN) > DK_DEVLEN) {
 			/*
 			 * DKIOCINFO returned a controller name longer
 			 * than DK_DEVLEN bytes, which means more of the
@@ -1711,7 +1710,7 @@
 	 */
 	if (dkinfo.dki_ctype == DKC_SCSI_CCS) {
 		i = scsi_rdwr(DIR_READ, search_file, (daddr_t)0,
-			1, (char *)&search_label, F_SILENT, NULL);
+		    1, (char *)&search_label, F_SILENT, NULL);
 		switch (i) {
 		case DSK_RESERVED:
 			access_flags |= DSK_RESERVED;
@@ -1769,8 +1768,8 @@
 	    search_ctlr = search_ctlr->ctlr_next)
 		if (search_ctlr->ctlr_addr == dkinfo.dki_addr &&
 		    search_ctlr->ctlr_space == dkinfo.dki_space &&
-			search_ctlr->ctlr_ctype->ctype_ctype ==
-				dkinfo.dki_ctype)
+		    search_ctlr->ctlr_ctype->ctype_ctype ==
+		    dkinfo.dki_ctype)
 			break;
 	/*
 	 * If no match was found, we need to identify this ctlr.
@@ -1802,7 +1801,7 @@
 		 * to the list of found ctlrs.
 		 */
 		search_ctlr = (struct ctlr_info *)
-			zalloc(sizeof (struct ctlr_info));
+		    zalloc(sizeof (struct ctlr_info));
 		search_ctlr->ctlr_ctype = mlp->ctlr_type;
 		if (ctlr_list == NULL)
 			ctlr_list = search_ctlr;
@@ -1865,39 +1864,40 @@
 	 */
 	ctlr = search_ctlr->ctlr_ctype;
 	if ((status == -1) && (ctlr->ctype_ctype == DKC_SCSI_CCS)) {
-	    if (option_msg && diag_msg) {
-		err_print("%s: attempting auto configuration\n",
-		    search_disk->disk_name);
-	    }
-	    switch (search_disk->label_type) {
-	    case (L_TYPE_SOLARIS):
-		if (auto_sense(search_file, 0, &search_label) != NULL) {
-		/*
-		 * Auto config worked, so we now have
-		 * a valid label for the disk.  Mark
-		 * the disk as needing the label flushed.
-		 */
-			status = 0;
-			search_disk->disk_flags |=
-			    (DSK_LABEL_DIRTY | DSK_AUTO_CONFIG);
+		if (option_msg && diag_msg) {
+			err_print("%s: attempting auto configuration\n",
+			    search_disk->disk_name);
 		}
-		break;
-	    case (L_TYPE_EFI):
-		efi_disk = auto_efi_sense(search_file, &efi_info);
-		if (efi_disk != NULL) {
-		/*
-		 * Auto config worked, so we now have
-		 * a valid label for the disk.
-		 */
-			status = 0;
-			search_disk->disk_flags |=
-			    (DSK_LABEL_DIRTY | DSK_AUTO_CONFIG);
+
+		switch (search_disk->label_type) {
+		case (L_TYPE_SOLARIS):
+			if (auto_sense(search_file, 0, &search_label) != NULL) {
+			/*
+			 * Auto config worked, so we now have
+			 * a valid label for the disk.  Mark
+			 * the disk as needing the label flushed.
+			 */
+				status = 0;
+				search_disk->disk_flags |=
+				    (DSK_LABEL_DIRTY | DSK_AUTO_CONFIG);
+			}
+			break;
+		case (L_TYPE_EFI):
+			efi_disk = auto_efi_sense(search_file, &efi_info);
+			if (efi_disk != NULL) {
+				/*
+				 * Auto config worked, so we now have
+				 * a valid label for the disk.
+				 */
+				status = 0;
+				search_disk->disk_flags |=
+				    (DSK_LABEL_DIRTY | DSK_AUTO_CONFIG);
+			}
+			break;
+		default:
+			/* Should never happen */
+			break;
 		}
-		break;
-	    default:
-		    /* Should never happen */
-		break;
-	    }
 	}
 	/*
 	 * Close the file for this disk.
@@ -1958,16 +1958,18 @@
 		 * Copy the volume name, if present
 		 */
 		for (i = 0; i < search_parts->etoc->efi_nparts; i++) {
-		    if (search_parts->etoc->efi_parts[i].p_tag ==
-			V_RESERVED) {
-			    if (search_parts->etoc->efi_parts[i].p_name) {
-				bcopy(search_parts->etoc->efi_parts[i].p_name,
-				    search_disk->v_volume, LEN_DKL_VVOL);
-			    } else {
-				bzero(search_disk->v_volume, LEN_DKL_VVOL);
-			    }
-			    break;
-		    }
+			if (search_parts->etoc->efi_parts[i].p_tag ==
+			    V_RESERVED) {
+				if (search_parts->etoc->efi_parts[i].p_name) {
+					bcopy(search_parts->etoc->efi_parts[i]
+					    .p_name, search_disk->v_volume,
+					    LEN_DKL_VVOL);
+				} else {
+					bzero(search_disk->v_volume,
+					    LEN_DKL_VVOL);
+				}
+				break;
+			}
 		}
 		return;
 	}
@@ -2026,6 +2028,7 @@
 		 */
 		if ((search_ctlr->ctlr_ctype->ctype_ctype != DKC_SCSI_CCS) &&
 		    (search_ctlr->ctlr_ctype->ctype_ctype != DKC_DIRECT) &&
+		    (search_ctlr->ctlr_ctype->ctype_ctype != DKC_VBD) &&
 		    (search_ctlr->ctlr_ctype->ctype_ctype != DKC_PCMCIA_ATA)) {
 			search_dtype->dtype_flags |= DT_NEED_SPEFS;
 		}
@@ -2102,7 +2105,7 @@
 	 */
 	if (search_label.dkl_vtoc.v_version == V_VERSION) {
 		bcopy(search_label.dkl_vtoc.v_volume,
-			search_disk->v_volume, LEN_DKL_VVOL);
+		    search_disk->v_volume, LEN_DKL_VVOL);
 		search_parts->vtoc = search_label.dkl_vtoc;
 	} else {
 		bzero(search_disk->v_volume, LEN_DKL_VVOL);
@@ -2128,10 +2131,9 @@
 	dp = disk_list;
 	while (dp != NULL) {
 		if (dp->disk_dkinfo.dki_ctype == dkinfo->dki_ctype &&
-			dp->disk_dkinfo.dki_cnum == dkinfo->dki_cnum &&
-			dp->disk_dkinfo.dki_unit == dkinfo->dki_unit &&
-				strcmp(dp->disk_dkinfo.dki_dname,
-					dkinfo->dki_dname) == 0) {
+		    dp->disk_dkinfo.dki_cnum == dkinfo->dki_cnum &&
+		    dp->disk_dkinfo.dki_unit == dkinfo->dki_unit &&
+		    strcmp(dp->disk_dkinfo.dki_dname, dkinfo->dki_dname) == 0) {
 			return (1);
 		}
 		dp = dp->disk_next;
@@ -2267,10 +2269,9 @@
 	(void) close(fd);
 
 	if (disk->disk_dkinfo.dki_ctype == dkinfo.dki_ctype &&
-		disk->disk_dkinfo.dki_cnum == dkinfo.dki_cnum &&
-			disk->disk_dkinfo.dki_unit == dkinfo.dki_unit &&
-				strcmp(disk->disk_dkinfo.dki_dname,
-					dkinfo.dki_dname) == 0) {
+	    disk->disk_dkinfo.dki_cnum == dkinfo.dki_cnum &&
+	    disk->disk_dkinfo.dki_unit == dkinfo.dki_unit &&
+	    strcmp(disk->disk_dkinfo.dki_dname, dkinfo.dki_dname) == 0) {
 		return (1);
 	}
 	return (0);
@@ -2673,7 +2674,7 @@
 	}
 	if (chdir(s) == -1) {
 		err_print("cannot chdir() to %s - %s\n",
-			s, strerror(errno));
+		    s, strerror(errno));
 		goto exit;
 	}
 
@@ -2689,7 +2690,7 @@
 		}
 		if (lstat(s, &stbuf) == -1) {
 			err_print("%s: lstat() failed - %s\n",
-				s, strerror(errno));
+			    s, strerror(errno));
 			goto exit;
 		}
 		/*
@@ -2713,7 +2714,7 @@
 				 */
 				if (getcwd(dir, sizeof (dir)) == NULL) {
 					err_print("getcwd() failed - %s\n",
-						strerror(errno));
+					    strerror(errno));
 					goto exit;
 				}
 				(void) strcat(dir, "/");
@@ -2723,7 +2724,7 @@
 				 * /devices prefix, remove it.
 				 */
 				p = (strstr(dir, DEVFS_PREFIX) == dir) ?
-					dir+strlen(DEVFS_PREFIX) : dir;
+				    dir+strlen(DEVFS_PREFIX) : dir;
 				result = alloc_string(p);
 			}
 			goto exit;
@@ -2731,7 +2732,7 @@
 		i = readlink(s, buf, sizeof (buf));
 		if (i == -1) {
 			err_print("%s: readlink() failed - %s\n",
-				s, strerror(errno));
+			    s, strerror(errno));
 			goto exit;
 		}
 		level++;
@@ -2748,7 +2749,7 @@
 			*p = 0;
 			if (chdir(dir) == -1) {
 				err_print("cannot chdir() to %s - %s\n",
-					dir, strerror(errno));
+				    dir, strerror(errno));
 				goto exit;
 			}
 			(void) strcpy(s, p+1);
@@ -2760,7 +2761,7 @@
 exit:
 	if (chdir(savedir) == -1) {
 		err_print("cannot chdir() to %s - %s\n",
-			savedir, strerror(errno));
+		    savedir, strerror(errno));
 	}
 
 	return (result);
@@ -2791,7 +2792,7 @@
 	 * Allocate a simple disk list array and fill it in
 	 */
 	disks = (struct disk_info **)
-		zalloc((n+1) * sizeof (struct disk_info *));
+	    zalloc((n+1) * sizeof (struct disk_info *));
 
 	dp = disks;
 	for (d = disk_list; d != NULL; d = d->disk_next) {
@@ -2803,7 +2804,7 @@
 	 * Sort the disk list array
 	 */
 	qsort((void *) disks, n, sizeof (struct disk_info *),
-		disk_name_compare);
+	    disk_name_compare);
 
 	/*
 	 * Rebuild the linked list disk list structure
--- a/usr/src/cmd/mdb/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
 #
 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 # or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -33,14 +32,12 @@
 i386_MACHDIR = intel
 
 sparc_SUBDIRS = sparc sun4u sun4v
-i386_SUBDIRS = intel i86pc
+i386_SUBDIRS = intel i86pc i86xpv
 
 MACHDIR = $($(MACH)_MACHDIR)
 SUBDIRS = tools $($(MACH)_SUBDIRS) demo
 TARGET =
 
-$($(MACH)_SUBDIRS): tools
-
 all := TARGET = all
 clean.lint := TARGET = clean.lint
 clean := TARGET = clean
@@ -61,6 +58,8 @@
 
 clobber: $(SUBDIRS) packages
 
+$($(MACH)_SUBDIRS): tools
+
 $(SUBDIRS): FRC
 	@cd $@; pwd; $(MAKE) $(TARGET)
 
--- a/usr/src/cmd/mdb/Makefile.mdb	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/Makefile.mdb	Tue Sep 18 15:46:43 2007 -0700
@@ -53,12 +53,14 @@
 	mdb_gelf.c \
 	mdb_help.c \
 	mdb_io.c \
+	mdb_kb_kvm.c \
 	mdb_kproc.c \
 	mdb_kvm.c \
 	mdb_logio.c \
 	mdb_list.c \
 	mdb_macalias.c \
 	mdb_main.c \
+	mdb_memio.c \
 	mdb_modapi.c \
 	mdb_module.c \
 	mdb_module_load.c \
@@ -86,6 +88,9 @@
 $(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
 CPPFLAGS += -D_MDB -I. -I../.. -I../../../common
 
+C99MODE=	-xc99=%all
+C99LMODE=	-Xc99=%all
+
 LDLIBS += -ltermcap -lkvm -lproc -lrtld_db -lctf -lumem -ldisasm \
 	$(ZLAZYLOAD) -lscf $(ZNOLAZYLOAD)
 
--- a/usr/src/cmd/mdb/common/mdb/mdb.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/mdb/mdb.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -196,10 +196,11 @@
 	arg_r.a_un.a_str = strcmp(mdb.m_root, "/") ? mdb.m_root : "";
 
 	/*
-	 * %t embedded in path string expands to the target name.
+	 * %t embedded in path string expands to the target name, defaulting to
+	 * kvm; this is so we can find mdb_kb, which is used during bootstrap.
 	 */
 	arg_t.a_type = MDB_TYPE_STRING;
-	arg_t.a_un.a_str = mdb.m_target ? mdb_tgt_name(mdb.m_target) : "none";
+	arg_t.a_un.a_str = mdb.m_target ? mdb_tgt_name(mdb.m_target) : "kvm";
 
 	/*
 	 * %R and %V expand to uname -r (release) and uname -v (version).
@@ -576,6 +577,12 @@
 	mdb_macalias_destroy();
 
 	/*
+	 * Some targets use modules during ->t_destroy, so do it first.
+	 */
+	if (mdb.m_target != NULL)
+		(void) mdb_tgt_destroy(mdb.m_target);
+
+	/*
 	 * Unload modules _before_ destroying the disassemblers since a
 	 * module that installs a disassembler should try to clean up after
 	 * itself.
@@ -591,9 +598,6 @@
 	if (mdb.m_defdisasm != NULL)
 		strfree(mdb.m_defdisasm);
 
-	if (mdb.m_target != NULL)
-		(void) mdb_tgt_destroy(mdb.m_target);
-
 	if (mdb.m_prsym != NULL)
 		mdb_gelf_symtab_destroy(mdb.m_prsym);
 
@@ -1370,7 +1374,14 @@
 	if (mdb.m_lmod)
 		return (mdb.m_lmod);
 
-	if (mdb.m_frame && mdb.m_frame->f_cp && mdb.m_frame->f_cp->c_dcmd)
+	if (mdb.m_frame == NULL)
+		return (NULL);
+
+	if (mdb.m_frame->f_wcbs && mdb.m_frame->f_wcbs->w_walker &&
+	    mdb.m_frame->f_wcbs->w_walker->iwlk_modp)
+		return (mdb.m_frame->f_wcbs->w_walker->iwlk_modp);
+
+	if (mdb.m_frame->f_cp && mdb.m_frame->f_cp->c_dcmd)
 		return (mdb.m_frame->f_cp->c_dcmd->idc_modp);
 
 	return (NULL);
--- a/usr/src/cmd/mdb/common/mdb/mdb_io.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/mdb/mdb_io.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -170,6 +169,7 @@
 extern mdb_io_t *mdb_termio_create(const char *, mdb_io_t *, mdb_io_t *);
 extern mdb_io_t *mdb_pipeio_create(mdb_iobsvc_f *, mdb_iobsvc_f *);
 extern mdb_io_t *mdb_nullio_create(void);
+extern mdb_io_t *mdb_memio_create(char *, size_t);
 
 /*
  * Functions for testing whether the given iob is of a given backend type:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kb.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,79 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_MDB_KB_H
+#define	_MDB_KB_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * A KVM backend is used by the KVM target to interrogate the address space of
+ * the subject binary.  This is almost always via direct calls into libkvm,
+ * except for hypervisor core dumps, which implement its own backend via the
+ * mdb_kb support module.
+ */
+
+#include <sys/types.h>
+#include <mdb/mdb_io.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+#ifdef _MDB
+
+struct as;
+struct privmregs;
+
+typedef struct mdb_kb_ops {
+	void *(*kb_open)(const char *, const char *, const char *, int,
+	    const char *);
+
+	int (*kb_close)(void *);
+
+	mdb_io_t *(*kb_sym_io)(void *, const char *);
+
+	ssize_t (*kb_kread)(void *, uintptr_t, void *, size_t);
+	ssize_t (*kb_kwrite)(void *, uintptr_t, const void *, size_t);
+	ssize_t (*kb_aread)(void *, uintptr_t, void *, size_t, struct as *);
+	ssize_t (*kb_awrite)(void *, uintptr_t, const void *,
+	    size_t, struct as *);
+	ssize_t (*kb_pread)(void *, uint64_t, void *, size_t);
+	ssize_t (*kb_pwrite)(void *, uint64_t, const void *, size_t);
+
+	uint64_t (*kb_vtop)(void *, struct as *, uintptr_t);
+
+	int (*kb_getmregs)(void *, uint_t, struct privmregs *);
+} mdb_kb_ops_t;
+
+extern mdb_kb_ops_t *libkvm_kb_ops(void);
+
+#endif	/* _MDB */
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _MDB_KB_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,69 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * The default KVM backend, which simply calls directly into libkvm for all
+ * operations.
+ */
+
+#include <mdb/mdb_kb.h>
+#include <mdb/mdb_target_impl.h>
+
+#include <fcntl.h>
+#include <dlfcn.h>
+#include <kvm.h>
+
+/*ARGSUSED*/
+static mdb_io_t *
+libkvm_sym_io(void *kvm, const char *symfile)
+{
+	mdb_io_t *io;
+
+	if ((io = mdb_fdio_create_path(NULL, symfile, O_RDONLY, 0)) == NULL)
+		mdb_warn("failed to open %s", symfile);
+
+	return (io);
+}
+
+mdb_kb_ops_t *
+libkvm_kb_ops(void)
+{
+	static mdb_kb_ops_t ops = {
+		.kb_open = (void *(*)())kvm_open,
+		.kb_close = (int (*)())kvm_close,
+		.kb_sym_io = libkvm_sym_io,
+		.kb_kread = (ssize_t (*)())kvm_kread,
+		.kb_kwrite = (ssize_t (*)())kvm_kwrite,
+		.kb_aread = (ssize_t (*)())kvm_aread,
+		.kb_awrite = (ssize_t (*)())kvm_awrite,
+		.kb_pread = (ssize_t (*)())kvm_pread,
+		.kb_pwrite = (ssize_t (*)())kvm_pwrite,
+		.kb_getmregs = (int (*)())mdb_tgt_notsup,
+		.kb_vtop = (uint64_t (*)())kvm_physaddr,
+	};
+	return (&ops);
+}
--- a/usr/src/cmd/mdb/common/mdb/mdb_kvm.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kvm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -66,6 +66,7 @@
 #include <mdb/mdb_ctf.h>
 #include <mdb/mdb_kvm.h>
 #include <mdb/mdb_module.h>
+#include <mdb/mdb_kb.h>
 #include <mdb/mdb.h>
 
 #define	KT_RELOC_BUF(buf, obase, nbase) \
@@ -276,12 +277,17 @@
 	int rwchg = (flags ^ t->t_flags) & MDB_TGT_F_RDWR;
 	kt_data_t *kt = t->t_data;
 	const char *kvmfile;
-	kvm_t *cookie;
+	void *cookie;
 	int mode;
 
 	if (!iochg && !rwchg)
 		return (0);
 
+	if (kt->k_xpv_domu) {
+		warn("read-only target");
+		return (-1);
+	}
+
 	if (iochg) {
 		kvmfile = (flags & MDB_TGT_F_ALLOWIO) ? "/dev/allkmem" :
 		    "/dev/kmem";
@@ -291,7 +297,7 @@
 
 	mode = (flags & MDB_TGT_F_RDWR) ? O_RDWR : O_RDONLY;
 
-	if ((cookie = kvm_open(kt->k_symfile, kvmfile, NULL, mode,
+	if ((cookie = kt->k_kb_ops->kb_open(kt->k_symfile, kvmfile, NULL, mode,
 	    mdb.m_pname)) == NULL) {
 		/* We failed to re-open, so don't change t_flags */
 		warn("failed to re-open target");
@@ -302,7 +308,7 @@
 	 * We successfully reopened the target, so update k_kvmfile.  Also set
 	 * the RDWR and ALLOWIO bits in t_flags to match those in flags.
 	 */
-	(void) kvm_close(kt->k_cookie);
+	(void) kt->k_kb_ops->kb_close(kt->k_cookie);
 	kt->k_cookie = cookie;
 
 	if (kvmfile != kt->k_kvmfile) {
@@ -430,9 +436,31 @@
 kt_regs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
 	kt_data_t *kt = mdb.m_target->t_data;
+
+	if (argc != 0 || (flags & DCMD_ADDRSPEC))
+		return (DCMD_USAGE);
+
+	addr = (uintptr_t)kt->k_regs;
+
 	return (kt->k_dcmd_regs(addr, flags, argc, argv));
 }
 
+#ifdef __x86
+static int
+kt_cpustack(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	kt_data_t *kt = mdb.m_target->t_data;
+	return (kt->k_dcmd_cpustack(addr, flags, argc, argv));
+}
+
+static int
+kt_cpuregs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	kt_data_t *kt = mdb.m_target->t_data;
+	return (kt->k_dcmd_cpuregs(addr, flags, argc, argv));
+}
+#endif /* __x86 */
+
 /*ARGSUSED*/
 static int
 kt_status_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
@@ -445,8 +473,9 @@
 	(void) kt_uname(mdb.m_target, &uts);
 
 	if (mdb_prop_postmortem) {
-		mdb_printf("debugging crash dump %s (%d-bit) from %s\n",
-		    kt->k_kvmfile, (int)(sizeof (void *) * NBBY), uts.nodename);
+		mdb_printf("debugging %scrash dump %s (%d-bit) from %s\n",
+		    kt->k_xpv_domu ? "domain " : "", kt->k_kvmfile,
+		    (int)(sizeof (void *) * NBBY), uts.nodename);
 	} else {
 		mdb_printf("debugging live kernel (%d-bit) on %s\n",
 		    (int)(sizeof (void *) * NBBY), uts.nodename);
@@ -474,6 +503,12 @@
 	{ "regs", NULL, "print general-purpose registers", kt_regs },
 	{ "stack", "?[cnt]", "print stack backtrace", kt_stack },
 	{ "stackregs", "?", "print stack backtrace and registers", kt_stackr },
+#ifdef __x86
+	{ "cpustack", "?[-v] [-c cpuid] [cnt]", "print stack backtrace for a "
+	    "specific CPU", kt_cpustack },
+	{ "cpuregs", "?[-c cpuid]", "print general-purpose registers for a "
+	    "specific CPU", kt_cpuregs },
+#endif
 	{ "status", NULL, "print summary of current target", kt_status_dcmd },
 	{ NULL }
 };
@@ -511,7 +546,7 @@
 
 	int oflag;
 
-	mdb_prop_postmortem = (kt->k_dumphdr != NULL);
+	mdb_prop_postmortem = kt->k_xpv_domu || (kt->k_dumphdr != NULL);
 	mdb_prop_kernel = TRUE;
 	mdb_prop_datamodel = MDB_TGT_MODEL_NATIVE;
 
@@ -537,7 +572,7 @@
 			    "some modules may not load\n");
 		}
 
-		if (mdb_prop_postmortem) {
+		if (mdb_prop_postmortem && kt->k_dumphdr != NULL) {
 			sym = dlsym(RTLD_NEXT, "mdb_dump_print_content");
 			if (sym != NULL)
 				kt->k_dump_print_content = (void (*)())sym;
@@ -655,7 +690,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kt->k_aread(kt->k_cookie, addr, buf, nbytes, as)) == -1)
+	if ((rval = kt->k_kb_ops->kb_aread(kt->k_cookie, addr, buf,
+	    nbytes, as)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -668,7 +704,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kt->k_awrite(kt->k_cookie, addr, buf, nbytes, as)) == -1)
+	if ((rval = kt->k_kb_ops->kb_awrite(kt->k_cookie, addr, buf,
+	    nbytes, as)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -680,7 +717,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kvm_kread(kt->k_cookie, addr, buf, nbytes)) == -1)
+	if ((rval = kt->k_kb_ops->kb_kread(kt->k_cookie, addr, buf,
+	    nbytes)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -692,7 +730,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kvm_kwrite(kt->k_cookie, addr, buf, nbytes)) == -1)
+	if ((rval = kt->k_kb_ops->kb_kwrite(kt->k_cookie, addr, buf,
+	    nbytes)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -716,7 +755,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kt->k_pread(kt->k_cookie, addr, buf, nbytes)) == -1)
+	if ((rval = kt->k_kb_ops->kb_pread(kt->k_cookie, addr, buf,
+	    nbytes)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -728,7 +768,8 @@
 	kt_data_t *kt = t->t_data;
 	ssize_t rval;
 
-	if ((rval = kt->k_pwrite(kt->k_cookie, addr, buf, nbytes)) == -1)
+	if ((rval = kt->k_kb_ops->kb_pwrite(kt->k_cookie, addr, buf,
+	    nbytes)) == -1)
 		return (set_errno(EMDB_NOMAP));
 
 	return (rval);
@@ -757,7 +798,7 @@
 		asp = (struct as *)as;
 	}
 
-	if ((pa = kvm_physaddr(kt->k_cookie, asp, va)) != -1ULL) {
+	if ((pa = kt->k_kb_ops->kb_vtop(kt->k_cookie, asp, va)) != -1ULL) {
 		*pap = pa;
 		return (0);
 	}
@@ -766,7 +807,7 @@
 	    (mod = mdb_nv_get_cookie(v)) != NULL) {
 
 		fptr = (int (*)(uintptr_t, struct as *, physaddr_t *))
-			dlsym(mod->mod_hdl, "platform_vtop");
+		    dlsym(mod->mod_hdl, "platform_vtop");
 
 		if ((fptr != NULL) && ((*fptr)(va, asp, pap) == 0))
 			return (0);
@@ -902,21 +943,25 @@
 	 * Once we've found something, copy the final name into the caller's
 	 * buffer and prefix it with the load object name if appropriate.
 	 */
-	name = mdb_gelf_sym_name(sym_km->km_symtab, symp);
+	if (sym_km != NULL) {
+		name = mdb_gelf_sym_name(sym_km->km_symtab, symp);
 
-	if (sym_km < kmods_begin || sym_km > kmods_end) {
-		(void) mdb_snprintf(buf, nbytes, "%s`%s",
-		    sym_km->km_name, name);
-	} else if (nbytes > 0) {
-		(void) strncpy(buf, name, nbytes);
-		buf[nbytes - 1] = '\0';
+		if (sym_km < kmods_begin || sym_km > kmods_end) {
+			(void) mdb_snprintf(buf, nbytes, "%s`%s",
+			    sym_km->km_name, name);
+		} else if (nbytes > 0) {
+			(void) strncpy(buf, name, nbytes);
+			buf[nbytes - 1] = '\0';
+		}
+
+		if (sym_km->km_symtab == mdb.m_prsym)
+			sip->sym_table = MDB_TGT_PRVSYM;
+		else
+			sip->sym_table = MDB_TGT_SYMTAB;
+	} else {
+		sip->sym_table = MDB_TGT_SYMTAB;
 	}
 
-	if (sym_km->km_symtab == mdb.m_prsym)
-		sip->sym_table = MDB_TGT_PRVSYM;
-	else
-		sip->sym_table = MDB_TGT_SYMTAB;
-
 	return (0);
 }
 
@@ -1234,13 +1279,14 @@
 	return (NULL);
 }
 
+/*ARGSUSED*/
 int
 kt_status(mdb_tgt_t *t, mdb_tgt_status_t *tsp)
 {
 	kt_data_t *kt = t->t_data;
-
 	bzero(tsp, sizeof (mdb_tgt_status_t));
-	tsp->st_state = kt->k_dumphdr ? MDB_TGT_DEAD : MDB_TGT_RUNNING;
+	tsp->st_state = (kt->k_xpv_domu || (kt->k_dumphdr != NULL)) ?
+	    MDB_TGT_DEAD : MDB_TGT_RUNNING;
 	return (0);
 }
 
@@ -1282,7 +1328,8 @@
 		mdb_free(kt->k_dumphdr, sizeof (dumphdr_t));
 
 	mdb_gelf_destroy(kt->k_file);
-	(void) kvm_close(kt->k_cookie);
+
+	(void) kt->k_kb_ops->kb_close(kt->k_cookie);
 
 	for (km = mdb_list_next(&kt->k_modlist); km; km = nkm) {
 		if (km->km_symtab)
@@ -1305,7 +1352,8 @@
 	mdb_nv_destroy(&kt->k_modules);
 
 	strfree(kt->k_kvmfile);
-	strfree(kt->k_symfile);
+	if (kt->k_symfile != NULL)
+		strfree(kt->k_symfile);
 
 	mdb_free(kt, sizeof (kt_data_t));
 }
@@ -1320,27 +1368,54 @@
 mdb_kvm_tgt_create(mdb_tgt_t *t, int argc, const char *argv[])
 {
 	kt_data_t *kt = mdb_zalloc(sizeof (kt_data_t), UM_SLEEP);
+	mdb_kb_ops_t *kvm_kb_ops = libkvm_kb_ops();
 	int oflag = (t->t_flags & MDB_TGT_F_RDWR) ? O_RDWR : O_RDONLY;
-
 	struct utsname uts;
 	GElf_Sym sym;
 	pgcnt_t pmem;
 
-	if (argc != 2)
-		return (set_errno(EINVAL));
+
+	if (argc == 2) {
+		kt->k_symfile = strdup(argv[0]);
+		kt->k_kvmfile = strdup(argv[1]);
+
+		kt->k_cookie = kvm_kb_ops->kb_open(kt->k_symfile,
+		    kt->k_kvmfile, NULL, oflag, (char *)mdb.m_pname);
 
-	kt->k_symfile = strdup(argv[0]);
-	kt->k_kvmfile = strdup(argv[1]);
+		if (kt->k_cookie == NULL)
+			goto err;
+
+		kt->k_xpv_domu = 0;
+		kt->k_kb_ops = kvm_kb_ops;
+	} else {
+#ifndef __x86
+		return (set_errno(EINVAL));
+#else
+		mdb_kb_ops_t *(*getops)(void);
 
-	if ((kt->k_cookie = kvm_open(kt->k_symfile, kt->k_kvmfile, NULL,
-	    oflag, (char *)mdb.m_pname)) == NULL)
-		goto err;
+		kt->k_symfile = NULL;
+		kt->k_kvmfile = strdup(argv[0]);
+
+		getops = (mdb_kb_ops_t *(*)())dlsym(RTLD_NEXT, "mdb_kb_ops");
+
+		if (getops == NULL || (kt->k_kb_ops = getops()) == NULL) {
+			warn("failed to load KVM backend ops\n");
+			goto err;
+		}
 
-	if ((kt->k_fio = mdb_fdio_create_path(NULL, kt->k_symfile,
-	    O_RDONLY, 0)) == NULL) {
-		mdb_warn("failed to open %s", kt->k_symfile);
+		kt->k_cookie = kt->k_kb_ops->kb_open(NULL, kt->k_kvmfile, NULL,
+		    oflag, (char *)mdb.m_pname);
+
+		if (kt->k_cookie == NULL)
+			goto err;
+
+		kt->k_xpv_domu = 1;
+#endif
+	}
+
+	if ((kt->k_fio = kt->k_kb_ops->kb_sym_io(kt->k_cookie,
+	    kt->k_symfile)) == NULL)
 		goto err;
-	}
 
 	if ((kt->k_file = mdb_gelf_create(kt->k_fio,
 	    ET_EXEC, GF_FILE)) == NULL) {
@@ -1368,7 +1443,7 @@
 		goto err;
 	}
 
-	if (kvm_kread(kt->k_cookie, sym.st_value,
+	if (kt->k_kb_ops->kb_kread(kt->k_cookie, sym.st_value,
 	    kt->k_platform, MAXNAMELEN) <= 0) {
 		warn("failed to read 'platform' string from kernel");
 		goto err;
@@ -1380,33 +1455,12 @@
 		goto err;
 	}
 
-	if (kvm_kread(kt->k_cookie, sym.st_value, &uts, sizeof (uts)) <= 0) {
+	if (kt->k_kb_ops->kb_kread(kt->k_cookie, sym.st_value, &uts,
+	    sizeof (uts)) <= 0) {
 		warn("failed to read 'utsname' struct from kernel");
 		goto err;
 	}
 
-	/*
-	 * These libkvm symbols were not present in Solaris 2.6; as such
-	 * we need to look them up manually using the run-time linker.
-	 */
-	kt->k_aread = (ssize_t (*)()) dlsym(RTLD_DEFAULT, "kvm_aread");
-	kt->k_awrite = (ssize_t (*)()) dlsym(RTLD_DEFAULT, "kvm_awrite");
-	kt->k_pread = (ssize_t (*)()) dlsym(RTLD_DEFAULT, "kvm_pread");
-	kt->k_pwrite = (ssize_t (*)()) dlsym(RTLD_DEFAULT, "kvm_pwrite");
-
-	/*
-	 * If any of these functions are unavailable with the current
-	 * bindings, replace them with calls to mdb_tgt_notsup().
-	 */
-	if (kt->k_aread == NULL)
-		kt->k_aread = (ssize_t (*)())mdb_tgt_notsup;
-	if (kt->k_awrite == NULL)
-		kt->k_awrite = (ssize_t (*)())mdb_tgt_notsup;
-	if (kt->k_pread == NULL)
-		kt->k_pread = (ssize_t (*)())mdb_tgt_notsup;
-	if (kt->k_pwrite == NULL)
-		kt->k_pwrite = (ssize_t (*)())mdb_tgt_notsup;
-
 	kt->k_dump_print_content = (void (*)())kt_data_stub;
 	kt->k_dump_find_curproc = kt_data_stub;
 
@@ -1449,11 +1503,11 @@
 		mdb_printf("physmem %lx\n", (ulong_t)pmem);
 
 	/*
-	 * If this is not a live kernel, read the dump header.  We don't have to
-	 * sanity-check the header, as the kvm_open would not have succeeded
-	 * otherwise.
+	 * If this is not a live kernel or a hypervisor dump, read the dump
+	 * header.  We don't have to sanity-check the header, as the open would
+	 * not have succeeded otherwise.
 	 */
-	if (strcmp(kt->k_symfile, "/dev/ksyms") != 0) {
+	if (!kt->k_xpv_domu && strcmp(kt->k_symfile, "/dev/ksyms") != 0) {
 		mdb_io_t *vmcore;
 
 		kt->k_dumphdr = mdb_alloc(sizeof (dumphdr_t), UM_SLEEP);
@@ -1493,7 +1547,7 @@
 		mdb_gelf_destroy(kt->k_file);
 
 	if (kt->k_cookie != NULL)
-		(void) kvm_close(kt->k_cookie);
+		(void) kt->k_kb_ops->kb_close(kt->k_cookie);
 
 	mdb_free(kt, sizeof (kt_data_t));
 	return (-1);
--- a/usr/src/cmd/mdb/common/mdb/mdb_kvm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kvm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -37,6 +37,7 @@
 #include <mdb/mdb_target.h>
 #include <mdb/mdb_list.h>
 #include <mdb/mdb_gelf.h>
+#include <mdb/mdb_kb.h>
 
 #ifdef	__cplusplus
 extern "C" {
@@ -70,17 +71,15 @@
 } kt_module_t;
 
 typedef struct kt_data {
-	ssize_t (*k_aread)();		/* Libkvm kvm_aread() routine */
-	ssize_t (*k_awrite)();		/* Libkvm kvm_awrite() routine */
-	ssize_t (*k_pread)();		/* Libkvm kvm_pread() routine */
-	ssize_t (*k_pwrite)();		/* Libkvm kvm_pwrite() routine */
+	mdb_kb_ops_t *k_kb_ops;		/* KVM backend ops */
 	void (*k_dump_print_content)();	/* mdb_ks dump_print_content routine */
 	int (*k_dump_find_curproc)();	/* mdb_ks dump_find_curproc routine */
 	char *k_symfile;		/* Symbol table pathname */
 	char *k_kvmfile;		/* Core file pathname */
+	int k_xpv_domu;			/* Hypervisor domain dump? */
 	const char *k_rtld_name;	/* module containing krtld */
 	mdb_map_t k_map;		/* Persistant map for callers */
-	kvm_t *k_cookie;		/* Cookie for libkvm routines */
+	void *k_cookie;			/* Cookie for libkvm routines */
 	struct as *k_as;		/* Kernel VA of kas struct */
 	mdb_io_t *k_fio;		/* File i/o backend */
 	mdb_gelf_file_t *k_file;	/* ELF file object */
@@ -97,6 +96,8 @@
 	mdb_dcmd_f *k_dcmd_stack;	/* Dcmd to print stack trace */
 	mdb_dcmd_f *k_dcmd_stackv;	/* Dcmd to print verbose stack trace */
 	mdb_dcmd_f *k_dcmd_stackr;	/* Dcmd to print stack trace and regs */
+	mdb_dcmd_f *k_dcmd_cpustack;	/* Dcmd to print CPU stack trace */
+	mdb_dcmd_f *k_dcmd_cpuregs;	/* Dcmd to print CPU registers */
 	GElf_Sym k_intr_sym;		/* Kernel locore cmnint symbol */
 	GElf_Sym k_trap_sym;		/* Kernel locore cmntrap symbol */
 	struct dumphdr *k_dumphdr;	/* Dump header for post-mortem */
@@ -165,6 +166,12 @@
 extern void kt_amd64_init(mdb_tgt_t *);
 #endif	/* __sparc */
 
+typedef int (*mdb_name_lookup_fcn_t)(const char *, GElf_Sym *);
+typedef int (*mdb_addr_lookup_fcn_t)(uintptr_t, int, char *, size_t,
+    GElf_Sym *);
+extern void mdb_kvm_add_name_lookup(mdb_name_lookup_fcn_t);
+extern void mdb_kvm_add_addr_lookup(mdb_addr_lookup_fcn_t);
+
 #endif	/* _MDB */
 
 #ifdef	__cplusplus
--- a/usr/src/cmd/mdb/common/mdb/mdb_main.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/mdb/mdb_main.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -47,6 +47,7 @@
 #include <dlfcn.h>
 #include <libctf.h>
 #include <errno.h>
+#include <kvm.h>
 
 #include <mdb/mdb_lex.h>
 #include <mdb/mdb_debug.h>
@@ -381,7 +382,7 @@
 	char *p;
 
 	const char *Iflag = NULL, *Lflag = NULL, *Vflag = NULL, *pidarg = NULL;
-	int Kflag = 0, Rflag = 0, Sflag = 0, Oflag = 0, Uflag = 0;
+	int fflag = 0, Kflag = 0, Rflag = 0, Sflag = 0, Oflag = 0, Uflag = 0;
 
 	int ttylike;
 
@@ -471,6 +472,7 @@
 		    "fkmo:p:s:uwyACD:FI:KL:MOP:R:SUV:W")) != (int)EOF) {
 			switch (c) {
 			case 'f':
+				fflag++;
 				tgt_ctor = mdb_rawfile_tgt_create;
 				break;
 			case 'k':
@@ -831,51 +833,12 @@
 		 * ours, attempt to exec the mdb of the appropriate class.
 		 */
 #ifdef _LP64
-		if (ehdr.e_ident[EI_CLASS] == ELFCLASS32) {
+		if (ehdr.e_ident[EI_CLASS] == ELFCLASS32)
+			goto reexec;
 #else
-		if (ehdr.e_ident[EI_CLASS] == ELFCLASS64) {
-#endif
-			if ((p = strrchr(execname, '/')) == NULL)
-				die("cannot determine absolute pathname\n");
-#ifdef _LP64
-#ifdef __sparc
-			(void) strcpy(p, "/../sparcv7/");
-#else
-			(void) strcpy(p, "/../i86/");
-#endif
-#else
-#ifdef __sparc
-			(void) strcpy(p, "/../sparcv9/");
-#else
-			(void) strcpy(p, "/../amd64/");
-#endif
+		if (ehdr.e_ident[EI_CLASS] == ELFCLASS64)
+			goto reexec;
 #endif
-			(void) strcat(p, mdb.m_pname);
-
-			if (mdb.m_term != NULL)
-				(void) IOP_CTL(in_io, TCSETSW, &tios);
-
-			(void) putenv("_MDB_EXEC=1");
-			(void) execv(execname, argv);
-
-			/*
-			 * If execv fails, suppress ENOEXEC.  Experience shows
-			 * the most common reason is that the machine is booted
-			 * under a 32-bit kernel, in which case it is clearer
-			 * to only print the message below.
-			 */
-			if (errno != ENOEXEC)
-				warn("failed to exec %s", execname);
-#ifdef _LP64
-			die("64-bit %s cannot debug 32-bit program %s\n",
-			    mdb.m_pname, tgt_argv[0] ?
-			    tgt_argv[0] : tgt_argv[1]);
-#else
-			die("32-bit %s cannot debug 64-bit program %s\n",
-			    mdb.m_pname, tgt_argv[0] ?
-			    tgt_argv[0] : tgt_argv[1]);
-#endif
-		}
 	}
 
 tcreate:
@@ -909,6 +872,35 @@
 	if (mdb_get_prompt() == NULL && !(mdb.m_flags & MDB_FL_ADB))
 		(void) mdb_set_prompt(MDB_DEF_PROMPT);
 
+#ifdef __x86
+	/*
+	 * Unpleasant hack: we might be debugging a hypervisor domain dump,
+	 * which can be a non-ELF file in earlier versions.  Since we need to
+	 * know some unpleasant details about the format of the file, we ask
+	 * mdb_kb to identify the file if it can, and switch targets based on
+	 * its response.
+	 */
+	if (tgt_ctor == mdb_rawfile_tgt_create && !fflag) {
+		int (*identify)(const char *, int *);
+		int longmode;
+
+		if (mdb_module_load("mdb_kb",
+		    MDB_MOD_GLOBAL | MDB_MOD_SILENT) == 0 &&
+		    (identify = (int (*)())dlsym(RTLD_NEXT, "xkb_identify"))
+		    != NULL && identify(tgt_argv[0], &longmode) == 1) {
+			tgt_ctor = mdb_kvm_tgt_create;
+#ifdef _LP64
+			if (!longmode)
+				goto reexec;
+#else
+			if (longmode)
+				goto reexec;
+#endif
+		}
+	}
+#endif /* __x86 */
+
+
 	tgt = mdb_tgt_create(tgt_ctor, mdb.m_tgtflags, tgt_argc, tgt_argv);
 
 	if (tgt == NULL) {
@@ -1016,4 +1008,47 @@
 	terminate((status == MDB_ERR_QUIT || status == 0) ? 0 : 1);
 	/*NOTREACHED*/
 	return (0);
+
+reexec:
+	if ((p = strrchr(execname, '/')) == NULL)
+		die("cannot determine absolute pathname\n");
+#ifdef _LP64
+#ifdef __sparc
+	(void) strcpy(p, "/../sparcv7/");
+#else
+	(void) strcpy(p, "/../i86/");
+#endif
+#else
+#ifdef __sparc
+	(void) strcpy(p, "/../sparcv9/");
+#else
+	(void) strcpy(p, "/../amd64/");
+#endif
+#endif
+	(void) strcat(p, mdb.m_pname);
+
+	if (mdb.m_term != NULL)
+		(void) IOP_CTL(in_io, TCSETSW, &tios);
+
+	(void) putenv("_MDB_EXEC=1");
+	(void) execv(execname, argv);
+
+	/*
+	 * If execv fails, suppress ENOEXEC.  Experience shows the most common
+	 * reason is that the machine is booted under a 32-bit kernel, in which
+	 * case it is clearer to only print the message below.
+	 */
+	if (errno != ENOEXEC)
+		warn("failed to exec %s", execname);
+#ifdef _LP64
+	die("64-bit %s cannot debug 32-bit program %s\n",
+	    mdb.m_pname, tgt_argv[0] ?
+	    tgt_argv[0] : tgt_argv[1]);
+#else
+	die("32-bit %s cannot debug 64-bit program %s\n",
+	    mdb.m_pname, tgt_argv[0] ?
+	    tgt_argv[0] : tgt_argv[1]);
+#endif
+
+	goto tcreate;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/common/mdb/mdb_memio.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,117 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Memory I/O backend.
+ *
+ * Simple backend that has main memory as its backing store.
+ */
+
+#include <mdb/mdb_io_impl.h>
+#include <mdb/mdb.h>
+
+typedef struct mem_data {
+	char *md_buf;
+	size_t md_size;
+	offset_t md_off;
+} mem_data_t;
+
+static ssize_t
+memio_read(mdb_io_t *io, void *buf, size_t nbytes)
+{
+	mem_data_t *mdp = io->io_data;
+
+	if (io->io_next == NULL) {
+		if (mdp->md_off + nbytes > mdp->md_size)
+			nbytes = (mdp->md_size - mdp->md_off);
+		bcopy(mdp->md_buf + mdp->md_off, buf, nbytes);
+		mdp->md_off += nbytes;
+		return (nbytes);
+	}
+
+	return (IOP_READ(io->io_next, buf, nbytes));
+}
+
+static off64_t
+memio_seek(mdb_io_t *io, off64_t offset, int whence)
+{
+	mem_data_t *mdp = io->io_data;
+
+	if (io->io_next == NULL) {
+		switch (whence) {
+		case SEEK_SET:
+			mdp->md_off = offset;
+			break;
+		case SEEK_CUR:
+			mdp->md_off += offset;
+			break;
+		case SEEK_END:
+			mdp->md_off = mdp->md_size + offset;
+			if (mdp->md_off > mdp->md_size)
+				mdp->md_off = mdp->md_size;
+			break;
+		default:
+			return (-1);
+		}
+
+		return (mdp->md_off);
+	}
+
+	return (IOP_SEEK(io->io_next, offset, whence));
+}
+
+static const mdb_io_ops_t memio_ops = {
+	memio_read,
+	no_io_write,
+	memio_seek,
+	no_io_ctl,
+	no_io_close,
+	no_io_name,
+	no_io_link,
+	no_io_unlink,
+	no_io_setattr,
+	no_io_suspend,
+	no_io_resume
+};
+
+mdb_io_t *
+mdb_memio_create(char *buf, size_t size)
+{
+	mdb_io_t *io = mdb_alloc(sizeof (mdb_io_t), UM_SLEEP);
+	mem_data_t *mdp = mdb_alloc(sizeof (mem_data_t), UM_SLEEP);
+
+	mdp->md_buf = buf;
+	mdp->md_size = size;
+	mdp->md_off = 0;
+
+	io->io_ops = &memio_ops;
+	io->io_data = mdp;
+	io->io_next = NULL;
+	io->io_refcnt = 0;
+
+	return (io);
+}
--- a/usr/src/cmd/mdb/common/modules/genunix/genunix.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/modules/genunix/genunix.c	Tue Sep 18 15:46:43 2007 -0700
@@ -465,14 +465,17 @@
 	clock_t lbolt;
 	int i, j, k;
 	const char *lbolt_sym;
+	uintptr_t panicstr;
 
 	if ((flags & DCMD_ADDRSPEC) || argc != 0)
 		return (DCMD_USAGE);
 
-	if (mdb_prop_postmortem)
+	if (mdb_readvar(&panicstr, "panicstr") == -1 ||
+	    panicstr == NULL) {
+		lbolt_sym = "lbolt";
+	} else {
 		lbolt_sym = "panic_lbolt";
-	else
-		lbolt_sym = "lbolt";
+	}
 
 	if (mdb_readvar(&lbolt, lbolt_sym) == -1) {
 		mdb_warn("failed to read '%s'", lbolt_sym);
--- a/usr/src/cmd/mdb/common/modules/genunix/memory.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/common/modules/genunix/memory.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -31,7 +31,9 @@
 #include <sys/thread.h>
 #include <sys/swap.h>
 #include <sys/memlist.h>
-
+#if defined(__i386) || defined(__amd64)
+#include <sys/balloon_impl.h>
+#endif
 
 /*
  * Page walker.
@@ -274,10 +276,14 @@
 {
 	ulong_t pagesize;
 	pgcnt_t total_pages;
-	ulong_t physmem;
+	ulong_t physmem, freemem;
 	memstat_t stats;
 	memstat_t unused_stats;
 	GElf_Sym sym;
+#if defined(__i386) || defined(__amd64)
+	bln_stats_t bln_stats;
+	ssize_t bln_size;
+#endif
 
 	bzero(&stats, sizeof (memstat_t));
 	bzero(&unused_stats, sizeof (memstat_t));
@@ -305,7 +311,7 @@
 
 	/* read kernel vnode pointer */
 	if (mdb_lookup_by_obj(MDB_OBJ_EXEC, "kvp",
-		(GElf_Sym *)&sym) == -1) {
+	    (GElf_Sym *)&sym) == -1) {
 		mdb_warn("unable to read kvp");
 		return (DCMD_ERR);
 	}
@@ -317,7 +323,7 @@
 	 * it isn't found, it's not a fatal error.
 	 */
 	if (mdb_lookup_by_obj(MDB_OBJ_EXEC, "zvp",
-		(GElf_Sym *)&sym) == -1) {
+	    (GElf_Sym *)&sym) == -1) {
 		stats.ms_zvp = NULL;
 	} else {
 		stats.ms_zvp = (struct vnode *)(uintptr_t)sym.st_value;
@@ -325,14 +331,14 @@
 
 	/* Walk page structures, summarizing usage */
 	if (mdb_walk("page", (mdb_walk_cb_t)memstat_callback,
-		&stats) == -1) {
+	    &stats) == -1) {
 		mdb_warn("can't walk pages");
 		return (DCMD_ERR);
 	}
 
 	/* read unused pages vnode */
 	if (mdb_lookup_by_obj(MDB_OBJ_EXEC, "unused_pages_vp",
-		(GElf_Sym *)&sym) == -1) {
+	    (GElf_Sym *)&sym) == -1) {
 		mdb_warn("unable to read unused_pages_vp");
 		return (DCMD_ERR);
 	}
@@ -341,7 +347,7 @@
 
 	/* Find unused pages */
 	if (mdb_walk("page", (mdb_walk_cb_t)memstat_callback,
-		&unused_stats) == -1) {
+	    &unused_stats) == -1) {
 		mdb_warn("can't walk pages");
 		return (DCMD_ERR);
 	}
@@ -360,7 +366,7 @@
 	mdb_printf("Page Summary                Pages                MB"
 	    "  %%Tot\n");
 	mdb_printf("------------     ----------------  ----------------"
-		"  ----\n");
+	    "  ----\n");
 	mdb_printf("Kernel           %16llu  %16llu  %3llu%%\n",
 	    stats.ms_kmem,
 	    (uint64_t)stats.ms_kmem * pagesize / (1024 * 1024),
@@ -381,10 +387,29 @@
 	    stats.ms_cachelist,
 	    (uint64_t)stats.ms_cachelist * pagesize / (1024 * 1024),
 	    MS_PCT_TOTAL(stats.ms_cachelist));
-	mdb_printf("Free (freelist)  %16llu  %16llu  %3llu%%\n",
-	    physmem - stats.ms_total,
-	    (uint64_t)(physmem - stats.ms_total) * pagesize / (1024 * 1024),
-	    MS_PCT_TOTAL(physmem - stats.ms_total));
+
+	freemem = physmem - stats.ms_total;
+
+#if defined(__i386) || defined(__amd64)
+	/* Are we running under Xen?  If so, get balloon memory usage. */
+	if ((bln_size = mdb_readvar(&bln_stats, "bln_stats")) != -1) {
+		freemem -= bln_stats.bln_hv_pages;
+	}
+#endif
+
+	mdb_printf("Free (freelist)  %16llu  %16llu  %3llu%%\n", freemem,
+	    (uint64_t)freemem * pagesize / (1024 * 1024),
+	    MS_PCT_TOTAL(freemem));
+
+#if defined(__i386) || defined(__amd64)
+	if (bln_size != -1) {
+		mdb_printf("Balloon          %16ld  %16ld  %3ld%%\n",
+		    bln_stats.bln_hv_pages,
+		    bln_stats.bln_hv_pages * (long)pagesize / (1024 * 1024),
+		    MS_PCT_TOTAL(bln_stats.bln_hv_pages));
+	}
+#endif
+
 	mdb_printf("\nTotal            %16lu  %16lu\n",
 	    physmem,
 	    (uint64_t)physmem * pagesize / (1024 * 1024));
--- a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -37,6 +37,9 @@
 #include <sys/machparam.h>
 #include <sys/controlregs.h>
 #include <sys/mach_mmu.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 #include <vm/as.h>
 
 #include <mdb/mdb_modapi.h>
@@ -51,7 +54,7 @@
 };
 
 static int do_va2pa(uintptr_t, struct as *, int, physaddr_t *, pfn_t *);
-static void get_mmu(void);
+static void init_mmu(void);
 
 int
 platform_vtop(uintptr_t addr, struct as *asp, physaddr_t *pap)
@@ -59,10 +62,8 @@
 	if (asp == NULL)
 		return (DCMD_ERR);
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
@@ -127,7 +128,7 @@
 
 	if (page.p_pagenum != pfn2pp.pfn) {
 		mdb_warn("WARNING! Found page structure contains "
-			"different pagenumber %x\n", page.p_pagenum);
+		    "different pagenumber %x\n", page.p_pagenum);
 	}
 
 	return (DCMD_OK);
@@ -154,7 +155,7 @@
 
 	if (DCMD_HDRSPEC(flags))
 		mdb_printf("%<u>%?s %?s %?s %?s %?s%</u>\n", "ADDR",
-			"PAGES", "EPAGES", "BASE", "END");
+		    "PAGES", "EPAGES", "BASE", "END");
 
 	if (mdb_vread(&ms, sizeof (struct memseg), addr) == -1) {
 		mdb_warn("can't read memseg at %#lx", addr);
@@ -162,7 +163,7 @@
 	}
 
 	mdb_printf("%0?lx %0?lx %0?lx %0?lx %0?lx\n", addr,
-		ms.pages, ms.epages, ms.pages_base, ms.pages_end);
+	    ms.pages, ms.epages, ms.pages_base, ms.pages_end);
 
 	return (DCMD_OK);
 }
@@ -221,15 +222,24 @@
  * Now HAT related dcmds.
  */
 
-struct hat *khat;		/* value of kas.a_hat */
+static struct hat *khat;		/* value of kas.a_hat */
 struct hat_mmu_info mmu;
 uintptr_t kernelbase;
 
 /*
+ * stuff for i86xpv images
+ */
+static int is_xpv;
+static uintptr_t mfn_list_addr; /* kernel MFN list address */
+uintptr_t xen_virt_start; /* address of mfn_to_pfn[] table */
+ulong_t mfn_count;	/* number of pfn's in the MFN list */
+pfn_t *mfn_list;	/* local MFN list copy */
+
+/*
  * read mmu parameters from kernel
  */
 static void
-get_mmu(void)
+init_mmu(void)
 {
 	struct as kas;
 
@@ -243,12 +253,207 @@
 	if (mdb_readsym(&kernelbase, sizeof (kernelbase), "kernelbase") == -1)
 		mdb_warn("Couldn't find kernelbase\n");
 	khat = kas.a_hat;
+
+	/*
+	 * Is this a paravirtualized domain image?
+	 */
+	if (mdb_readsym(&mfn_list_addr, sizeof (mfn_list_addr),
+	    "mfn_list") == -1 ||
+	    mdb_readsym(&xen_virt_start, sizeof (xen_virt_start),
+	    "xen_virt_start") == -1 ||
+	    mdb_readsym(&mfn_count, sizeof (mfn_count), "mfn_count") == -1) {
+		mfn_list_addr = NULL;
+	}
+
+	is_xpv = mfn_list_addr != NULL;
+
+#ifndef _KMDB
+	/*
+	 * recreate the local mfn_list
+	 */
+	if (is_xpv) {
+		size_t sz = mfn_count * sizeof (pfn_t);
+		mfn_list = mdb_zalloc(sz, UM_SLEEP);
+
+		if (mdb_vread(mfn_list, sz, (uintptr_t)mfn_list_addr) == -1) {
+			mdb_warn("Failed to read MFN list\n");
+			mdb_free(mfn_list, sz);
+			mfn_list = NULL;
+		}
+	}
+#endif
 }
 
+void
+free_mmu(void)
+{
+#ifdef __xpv
+	if (mfn_list != NULL)
+		mdb_free(mfn_list, mfn_count * sizeof (mfn_t));
+#endif
+}
+
+#ifdef __xpv
+
+#ifdef _KMDB
+
+/*
+ * Convert between MFNs and PFNs.  Since we're in kmdb we can go directly
+ * through the machine to phys mapping and the MFN list.
+ */
+
+pfn_t
+mdb_mfn_to_pfn(mfn_t mfn)
+{
+	pfn_t pfn;
+	mfn_t tmp;
+	pfn_t *pfn_list;
+
+	if (mfn_list_addr == NULL)
+		return (-(pfn_t)1);
+
+	pfn_list = (pfn_t *)xen_virt_start;
+	if (mdb_vread(&pfn, sizeof (pfn), (uintptr_t)(pfn_list + mfn)) == -1)
+		return (-(pfn_t)1);
+
+	if (mdb_vread(&tmp, sizeof (tmp),
+	    (uintptr_t)(mfn_list_addr + (pfn * sizeof (mfn_t)))) == -1)
+		return (-(pfn_t)1);
+
+	if (pfn >= mfn_count || tmp != mfn)
+		return (-(pfn_t)1);
+
+	return (pfn);
+}
+
+mfn_t
+mdb_pfn_to_mfn(pfn_t pfn)
+{
+	mfn_t mfn;
+
+	init_mmu();
+
+	if (mfn_list_addr == NULL || pfn >= mfn_count)
+		return (-(mfn_t)1);
+
+	if (mdb_vread(&mfn, sizeof (mfn),
+	    (uintptr_t)(mfn_list_addr + (pfn * sizeof (mfn_t)))) == -1)
+		return (-(mfn_t)1);
+
+	return (mfn);
+}
+
+#else /* _KMDB */
+
+/*
+ * Convert between MFNs and PFNs.  Since a crash dump doesn't include the
+ * MFN->PFN translation table (it's part of the hypervisor, not our image)
+ * we do the MFN->PFN translation by searching the PFN->MFN (mfn_list)
+ * table, if it's there.
+ */
+
+pfn_t
+mdb_mfn_to_pfn(mfn_t mfn)
+{
+	pfn_t pfn;
+
+	init_mmu();
+
+	if (mfn_list == NULL)
+		return (-(pfn_t)1);
+
+	for (pfn = 0; pfn < mfn_count; ++pfn) {
+		if (mfn_list[pfn] != mfn)
+			continue;
+		return (pfn);
+	}
+
+	return (-(pfn_t)1);
+}
+
+mfn_t
+mdb_pfn_to_mfn(pfn_t pfn)
+{
+	init_mmu();
+
+	if (mfn_list == NULL || pfn >= mfn_count)
+		return (-(mfn_t)1);
+
+	return (mfn_list[pfn]);
+}
+
+#endif /* _KMDB */
+
+static paddr_t
+mdb_ma_to_pa(uint64_t ma)
+{
+	pfn_t pfn = mdb_mfn_to_pfn(mmu_btop(ma));
+	if (pfn == -(pfn_t)1)
+		return (-(paddr_t)1);
+
+	return (mmu_ptob((paddr_t)pfn) | (ma & (MMU_PAGESIZE - 1)));
+}
+
+#else /* __xpv */
+
 #define	mdb_ma_to_pa(ma) (ma)
 #define	mdb_mfn_to_pfn(mfn) (mfn)
 #define	mdb_pfn_to_mfn(pfn) (pfn)
 
+#endif /* __xpv */
+
+/*
+ * ::mfntopfn dcmd translates hypervisor machine page number
+ * to physical page number
+ */
+/*ARGSUSED*/
+int
+mfntopfn_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	pfn_t pfn;
+
+	if ((flags & DCMD_ADDRSPEC) == 0) {
+		mdb_warn("MFN missing\n");
+		return (DCMD_USAGE);
+	}
+
+	if ((pfn = mdb_mfn_to_pfn((pfn_t)addr)) == -(pfn_t)1) {
+		mdb_warn("Invalid mfn %lr\n", (pfn_t)addr);
+		return (DCMD_ERR);
+	}
+
+	mdb_printf("%lr\n", pfn);
+
+	return (DCMD_OK);
+}
+
+/*
+ * ::pfntomfn dcmd translates physical page number to
+ * hypervisor machine page number
+ */
+/*ARGSUSED*/
+int
+pfntomfn_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	pfn_t mfn;
+
+	if ((flags & DCMD_ADDRSPEC) == 0) {
+		mdb_warn("PFN missing\n");
+		return (DCMD_USAGE);
+	}
+
+	if ((mfn = mdb_pfn_to_mfn((pfn_t)addr)) == -(pfn_t)1) {
+		mdb_warn("Invalid pfn %lr\n", (pfn_t)addr);
+		return (DCMD_ABORT);
+	}
+
+	mdb_printf("%lr\n", mfn);
+
+	if (flags & DCMD_LOOP)
+		mdb_set_dot(addr + 1);
+	return (DCMD_OK);
+}
+
 static pfn_t
 pte2mfn(x86pte_t pte, uint_t level)
 {
@@ -281,7 +486,7 @@
 		mdb_printf("noexec ");
 
 	mfn = pte2mfn(pte, level);
-	mdb_printf("%s=0x%lr ", "pfn", mfn);
+	mdb_printf("%s=0x%lr ", is_xpv ? "mfn" : "pfn", mfn);
 
 	if (PTE_GET(pte, PT_NOCONSIST))
 		mdb_printf("noconsist ");
@@ -351,10 +556,8 @@
 	char *level_str = NULL;
 	char *pte_str = NULL;
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
@@ -529,10 +732,8 @@
 	pfn_t mfn;
 	int rc;
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
@@ -568,6 +769,9 @@
 
 	mdb_printf("Virtual address 0x%p maps pfn 0x%lr", addr, pfn);
 
+	if (is_xpv)
+		mdb_printf(" (mfn 0x%lr)", mfn);
+
 	mdb_printf("\n");
 
 	return (DCMD_OK);
@@ -677,7 +881,7 @@
 					if (mmu_btop(mdb_ma_to_pa(pte)) != pfn)
 						continue;
 					mdb_printf("hat=%p maps addr=%p\n",
-						hatp, (caddr_t)base);
+					    hatp, (caddr_t)base);
 				}
 			}
 		}
@@ -697,10 +901,8 @@
 	pfn_t pfn;
 	uint_t mflag = 0;
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
@@ -819,10 +1021,8 @@
 	pfn_t pfn;
 	uint_t mflag = 0;
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
@@ -886,10 +1086,8 @@
 {
 	hat_t *hat;
 
-	/*
-	 * The kernel has to at least have made it thru mmu_init()
-	 */
-	get_mmu();
+	init_mmu();
+
 	if (mmu.num_level == 0)
 		return (DCMD_ERR);
 
--- a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -47,6 +47,12 @@
 extern int va2pfn_dcmd(uintptr_t addr, uint_t flags, int argc,
 	const mdb_arg_t *argv);
 
+extern int mfntopfn_dcmd(uintptr_t addr, uint_t flags, int argc,
+	const mdb_arg_t *argv);
+
+extern int pfntomfn_dcmd(uintptr_t addr, uint_t flags, int argc,
+	const mdb_arg_t *argv);
+
 extern int page_num2pp(uintptr_t addr, uint_t flags, int argc,
 	const mdb_arg_t *argv);
 
@@ -57,6 +63,7 @@
 extern int memseg_walk_step(mdb_walk_state_t *);
 extern void memseg_walk_fini(mdb_walk_state_t *);
 
+extern void free_mmu(void);
 
 #ifdef	__cplusplus
 }
--- a/usr/src/cmd/mdb/i86pc/modules/unix/unix.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/i86pc/modules/unix/unix.c	Tue Sep 18 15:46:43 2007 -0700
@@ -787,7 +787,7 @@
 	    "Given a PFN, report HAT structures that map the page, or use\n"
 	    "the page as a pagetable.\n"
 	    "\n"
-	    "-m Interpret the PFN as a Xen MFN (machine frame number)\n");
+	    "-m Interpret the PFN as an MFN (machine frame number)\n");
 }
 
 static void
@@ -797,7 +797,7 @@
 	    "Given a PFN holding a page table, print its contents, and\n"
 	    "the address of the corresponding htable structure.\n"
 	    "\n"
-	    "-m Interpret the PFN as a Xen MFN (machine frame number)\n");
+	    "-m Interpret the PFN as an MFN (machine frame number)\n");
 }
 
 static const mdb_dcmd_t dcmds[] = {
@@ -817,6 +817,10 @@
 	    pte_dcmd },
 	{ "page_num2pp", ":", "page frame number to page structure",
 	    page_num2pp },
+	{ "pfntomfn", ":", "convert physical page to hypervisor machine page",
+	    pfntomfn_dcmd },
+	{ "mfntopfn", ":", "convert hypervisor machine page to physical page",
+	    mfntopfn_dcmd },
 	{ "memseg_list", ":", "show memseg list", memseg_list },
 	{ NULL }
 };
@@ -838,3 +842,9 @@
 {
 	return (&modinfo);
 }
+
+void
+_mdb_fini(void)
+{
+	free_mmu();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,28 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+SUBDIRS = modules
+include ../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/Makefile.i86xpv	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,47 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+ROOTMOD = $(ROOT)/usr/platform/i86xpv/lib/mdb/$(MDBTGT)$(MACHMODDIR)
+ROOTKMOD = $(ROOT)/platform/i86xpv/kernel/kmdb$(MACHMODDIR)
+
+$(ROOT)/usr/platform/i86xpv/lib/mdb:
+	$(INS.dir)
+
+$(ROOT)/usr/platform/i86xpv/lib/mdb/$(MDBTGT): $(ROOT)/usr/platform/i86xpv/lib/mdb
+	$(INS.dir)
+
+$(ROOT)/usr/platform/i86xpv/lib/mdb/$(MDBTGT)/amd64: \
+    $(ROOT)/usr/platform/i86xpv/lib/mdb/$(MDBTGT)
+	$(INS.dir)
+
+$(ROOT)/platform/i86xpv/kernel:
+	$(INS.dir)
+
+$(ROOT)/platform/i86xpv/kernel/kmdb: $(ROOT)/platform/i86xpv/kernel
+	$(INS.dir)
+
+$(ROOT)/platform/i86xpv/kernel/kmdb/amd64: $(ROOT)/platform/i86xpv/kernel/kmdb
+	$(INS.dir)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+SUBDIRS = unix xpv xpv_psm
+include ../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/unix/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+include $(SRC)/Makefile.master
+SUBDIRS =		ia32
+$(BUILD64)SUBDIRS += 	$(MACH64)
+include ../../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = unix.so
+MDBTGT = kvm
+
+MODSRCS = unix.c i86mmu.c
+
+include ../../../../../Makefile.cmd
+include ../../../../../Makefile.cmd.64
+include ../../../../intel/Makefile.amd64
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/unix/
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xpv
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = unix.so
+MDBTGT = kvm
+
+MODSRCS = unix.c i86mmu.c
+
+include ../../../../../Makefile.cmd
+include ../../../../intel/Makefile.ia32
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/unix
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xpv
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+include $(SRC)/Makefile.master
+SUBDIRS =		ia32
+$(BUILD64)SUBDIRS += 	$(MACH64)
+include ../../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,47 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = xpv.so
+MODULE_BUILD_TYPE = mdb
+MDBTGT = kvm
+
+MODSRCS = xpv.c
+
+include ../../../../../Makefile.cmd
+include ../../../../../Makefile.cmd.64
+include ../../../../intel/Makefile.amd64
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/common
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xpv -D_MDB -D__x86_64__
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I../../../../i86pc/modules/common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,46 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = xpv.so
+MODULE_BUILD_TYPE = mdb
+MDBTGT = kvm
+
+MODSRCS = xpv.c
+
+include ../../../../../Makefile.cmd
+include ../../../../intel/Makefile.ia32
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/common
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xpv -D_MDB -D__i386__
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I../../../../i86pc/modules/common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,292 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <mdb/mdb_modapi.h>
+#include <mdb/mdb_ks.h>
+#include <mdb/mdb_ctf.h>
+#include <mdb/mdb_gelf.h>
+#include <mdb/mdb_target_impl.h>
+#include <mdb/mdb_kvm.h>
+#include <mdb/mdb.h>
+#include <xen/public/xen.h>
+#include <xen/public/arch-x86/xen.h>
+#include <errno.h>
+
+static mdb_ctf_id_t domain_type;
+
+/*
+ * Some constants found in the non-public sched.h header file
+ */
+#define	MAX_EVTCHNS		NR_EVENT_CHANNELS
+#define	EVTCHNS_PER_BUCKET	128
+#define	NR_EVTCHN_BUCKETS	(MAX_EVTCHNS / EVTCHNS_PER_BUCKET)
+
+/*
+ * "struct domain" is an internal Xen structure.  Rather than trying to
+ * keep the mdb source in sync with Xen, we use CTF to extract the
+ * interesting bits from the binary, and stash them in the structure
+ * defined below.
+ */
+typedef struct domain {
+	short		domain_id;
+	int		tot_pages;
+	int		max_pages;
+	int		xenheap_pages;
+	ulong_t		domain_flags;
+	char		is_hvm;
+	struct vcpu	*vcpu[MAX_VIRT_CPUS];
+	struct evtchn   *evtchn[NR_EVTCHN_BUCKETS];
+	struct domain 	*next_in_list;
+} domain_t;
+
+static uintptr_t
+get_dom0_addr()
+{
+	GElf_Sym sym;
+	uintptr_t addr;
+
+	if ((mdb_lookup_by_obj(MDB_TGT_OBJ_EVERY, "dom0", &sym)) == 1) {
+		mdb_warn("can't find symbol 'dom0'");
+		return (0);
+	}
+
+	if (sym.st_size != sizeof (uintptr_t)) {
+		mdb_printf("Symbol 'dom0' found, but with the wrong size\n");
+		return (0);
+	}
+
+	if (mdb_vread(&addr, sym.st_size, sym.st_value) == -1) {
+		mdb_warn("can't read data for symbol 'dom0'");
+		return (0);
+	}
+
+	return (addr);
+}
+
+typedef struct domain_walk {
+	uint_t dw_step;
+} domain_walk_t;
+
+int
+domain_walk_init(mdb_walk_state_t *wsp)
+{
+	domain_walk_t *dwp;
+
+	if (wsp->walk_addr == NULL)
+		if ((wsp->walk_addr = get_dom0_addr()) == NULL)
+			return (WALK_ERR);
+
+	dwp = mdb_alloc(sizeof (domain_walk_t), UM_SLEEP);
+	dwp->dw_step = FALSE;
+	wsp->walk_data = dwp;
+	return (WALK_NEXT);
+}
+
+int
+domain_walk_step(mdb_walk_state_t *wsp)
+{
+	domain_walk_t *dwp = (domain_walk_t *)wsp->walk_data;
+	struct domain dom;
+	int status;
+
+	if (wsp->walk_addr == NULL)
+		return (WALK_DONE);
+
+	status = wsp->walk_callback(wsp->walk_addr, (void *)wsp->walk_addr,
+	    wsp->walk_cbdata);
+
+	if (mdb_ctf_vread(&dom, "struct domain", wsp->walk_addr,
+	    MDB_CTF_VREAD_IGNORE_ABSENT) != 0) {
+		mdb_warn("can't find next domain");
+		return (WALK_ERR);
+	}
+	wsp->walk_addr = (uintptr_t)dom.next_in_list;
+
+	dwp->dw_step = TRUE;
+	return (status);
+}
+
+void
+domain_walk_fini(mdb_walk_state_t *wsp)
+{
+	domain_walk_t *dwp = (domain_walk_t *)wsp->walk_data;
+
+	mdb_free(dwp, sizeof (domain_walk_t));
+}
+
+typedef struct vcpu_walk {
+	uint_t vw_count;
+	uint_t vw_step;
+} vcpu_walk_t;
+
+int
+vcpu_walk_init(mdb_walk_state_t *wsp)
+{
+	vcpu_walk_t *vwp;
+	uintptr_t off;
+
+	if (wsp->walk_addr == NULL)
+		if ((wsp->walk_addr = get_dom0_addr()) == NULL)
+			return (WALK_ERR);
+
+	if (mdb_ctf_offsetof(domain_type, "vcpu", &off)) {
+		mdb_warn("can't find per-domain vcpu information");
+		return (WALK_ERR);
+	}
+
+	wsp->walk_addr = wsp->walk_addr + (off / NBBY);
+	vwp = mdb_alloc(sizeof (vcpu_walk_t), UM_SLEEP);
+	vwp->vw_step = FALSE;
+	vwp->vw_count = 0;
+	wsp->walk_data = vwp;
+	return (WALK_NEXT);
+}
+
+int
+vcpu_walk_step(mdb_walk_state_t *wsp)
+{
+	vcpu_walk_t *vwp = (vcpu_walk_t *)wsp->walk_data;
+	uintptr_t vcpu_ptr;
+	int status;
+
+	if (vwp->vw_count++ >= MAX_VIRT_CPUS)
+		return (WALK_DONE);
+	if ((wsp->walk_addr == NULL) ||
+	    (mdb_vread(&vcpu_ptr, sizeof (uintptr_t), wsp->walk_addr) == -1) ||
+	    (vcpu_ptr == 0))
+		return (WALK_DONE);
+
+	status = wsp->walk_callback(vcpu_ptr, (void *)vcpu_ptr,
+	    wsp->walk_cbdata);
+
+	wsp->walk_addr = wsp->walk_addr + sizeof (uintptr_t);
+	vwp->vw_step = TRUE;
+	return (status);
+}
+
+void
+vcpu_walk_fini(mdb_walk_state_t *wsp)
+{
+	vcpu_walk_t *vwp = (vcpu_walk_t *)wsp->walk_data;
+
+	mdb_free(vwp, sizeof (vcpu_walk_t));
+}
+
+int
+domain(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	domain_t dom;
+	uintptr_t off, vcpu_addr, evtchn_addr;
+
+	if (!mdb_ctf_type_valid(domain_type)) {
+		mdb_warn("Can't parse Xen domain info.\n");
+		return (DCMD_ERR);
+	}
+
+	if (!(flags & DCMD_ADDRSPEC)) {
+		if (mdb_walk_dcmd("domain", "domain", argc, argv) == -1) {
+			mdb_warn("can't walk domains");
+			return (DCMD_ERR);
+		}
+		return (DCMD_OK);
+	}
+
+	if (DCMD_HDRSPEC(flags))
+		mdb_printf("%?s %3s %8s %8s %8s %3s %?s %?s\n",
+		    "ADDR", "ID", "TPAGES", "MPAGES", "FLAGS", "HVM",
+		    "VCPU", "EVTCHN");
+
+	if (mdb_ctf_vread(&dom, "struct domain", addr,
+	    MDB_CTF_VREAD_IGNORE_ABSENT) != 0) {
+		mdb_warn("can't read domain information");
+		return (DCMD_ERR);
+	}
+
+	if (mdb_ctf_offsetof(domain_type, "vcpu", &off)) {
+		mdb_warn("can't find per-domain vcpu information");
+		return (DCMD_ERR);
+	}
+	vcpu_addr = addr + (off / NBBY);
+	if (mdb_ctf_offsetof(domain_type, "evtchn", &off)) {
+		mdb_warn("can't find per-domain event channel information");
+		return (DCMD_ERR);
+	}
+	evtchn_addr = addr + (off / NBBY);
+	mdb_printf("%?lx %3d %8x %8x %8x %3d %?lx %?lx\n",
+	    addr, dom.domain_id, dom.tot_pages, dom.max_pages, dom.domain_flags,
+	    dom.is_hvm, vcpu_addr, evtchn_addr);
+
+	return (DCMD_OK);
+}
+
+static const mdb_dcmd_t dcmds[] = {
+	{ "domain", ":", "display Xen domain info", domain },
+	{ NULL }
+};
+
+static const mdb_walker_t walkers[] = {
+	{ "domain", "walk list of Xen domains",
+		domain_walk_init, domain_walk_step, domain_walk_fini },
+	{ "vcpu", "walk a Xen domain's vcpus",
+		vcpu_walk_init, vcpu_walk_step, vcpu_walk_fini },
+	{ NULL }
+};
+
+static const mdb_modinfo_t modinfo = { MDB_API_VERSION, dcmds, walkers };
+
+const mdb_modinfo_t *
+_mdb_init(void)
+{
+	GElf_Sym sym;
+	uintptr_t pip;
+	struct panic_info pi;
+
+	if (mdb_lookup_by_name("xpv_panic_info", &sym) < 0)
+		return (NULL);
+
+	if (mdb_ctf_vread(&pip, "uintptr_t", sym.st_value, 0) == -1) {
+		mdb_warn("failed to read xpv panic_info pointer");
+		return (NULL);
+	}
+	if (mdb_ctf_vread(&pi, "struct panic_info", pip, 0) == -1) {
+		mdb_warn("failed to read xpv panic_info");
+		return (NULL);
+	}
+
+	if (pi.pi_version != PANIC_INFO_VERSION) {
+		mdb_warn("unrecognized hypervisor panic format");
+		return (NULL);
+	}
+
+	if (mdb_ctf_lookup_by_name("struct domain", &domain_type) != 0) {
+		mdb_warn("Can't parse Xen domain info: "
+		    "'struct domain' not found.\n");
+		mdb_ctf_type_invalidate(&domain_type);
+	}
+
+	return (&modinfo);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+include $(SRC)/Makefile.master
+SUBDIRS =		ia32
+$(BUILD64)SUBDIRS += 	$(MACH64)
+include ../../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,46 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = xpv_psm.so
+MDBTGT = kvm
+
+MODSRCS = xpv_psm.c intr_common.c
+
+include ../../../../../Makefile.cmd
+include ../../../../../Makefile.cmd.64
+include ../../../../intel/Makefile.amd64
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/common
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xen
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I../../../../i86pc/modules/common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = xpv_psm.so
+MDBTGT = kvm
+
+MODSRCS = xpv_psm.c intr_common.c
+
+include ../../../../../Makefile.cmd
+include ../../../../intel/Makefile.ia32
+include ../../../Makefile.i86xpv
+include ../../../../Makefile.module
+
+MODSRCS_DIR = ../../../../i86pc/modules/common
+
+CPPFLAGS += -DMP -D_MACHDEP -D__xpv
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I../../../../i86pc/modules/common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,525 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <mdb/mdb_modapi.h>
+#include <mdb/mdb_ks.h>
+#include <mdb/mdb_ctf.h>
+#include <sys/evtchn_impl.h>
+#include <errno.h>
+
+#include "intr_common.h"
+
+static shared_info_t shared_info;
+static int have_shared_info;
+static uintptr_t evtchn_cpus_addr;
+static struct av_head avec_tbl[NR_IRQS];
+static irq_info_t irq_tbl[NR_IRQS];
+static mec_info_t ipi_tbl[MAXIPL];
+static mec_info_t virq_tbl[NR_VIRQS];
+static short evtchn_tbl[NR_EVENT_CHANNELS];
+static apic_irq_t *apic_irq_tbl[APIC_MAX_VECTOR+1];
+static char level_tbl[APIC_MAX_VECTOR+1];
+
+static int
+update_tables(void)
+{
+	GElf_Sym sym;
+	uintptr_t shared_info_addr;
+
+	if (mdb_readvar(&irq_tbl, "irq_info") == -1) {
+		mdb_warn("failed to read irq_info");
+		return (0);
+	}
+
+	if (mdb_readvar(&ipi_tbl, "ipi_info") == -1) {
+		mdb_warn("failed to read ipi_info");
+		return (0);
+	}
+
+	if (mdb_readvar(&avec_tbl, "autovect") == -1) {
+		mdb_warn("failed to read autovect");
+		return (0);
+	}
+
+	if (mdb_readvar(&irq_tbl, "irq_info") == -1) {
+		mdb_warn("failed to read irq_info");
+		return (0);
+	}
+
+	if (mdb_readvar(&ipi_tbl, "ipi_info") == -1) {
+		mdb_warn("failed to read ipi_info");
+		return (0);
+	}
+
+	if (mdb_readvar(&virq_tbl, "virq_info") == -1) {
+		mdb_warn("failed to read virq_info");
+		return (0);
+	}
+
+	if (mdb_readvar(&evtchn_tbl, "evtchn_to_irq") == -1) {
+		mdb_warn("failed to read evtchn_to_irq");
+		return (0);
+	}
+
+	if (mdb_readvar(&apic_irq_tbl, "apic_irq_table") == -1) {
+		mdb_warn("failed to read apic_irq_table");
+		return (0);
+	}
+
+	if (mdb_readvar(&level_tbl, "apic_level_intr") == -1) {
+		mdb_warn("failed to read apic_level_intr");
+		return (0);
+	}
+
+	if (mdb_lookup_by_name("evtchn_cpus", &sym) == -1) {
+		mdb_warn("failed to lookup evtchn_cpus");
+		return (0);
+	}
+
+	evtchn_cpus_addr = sym.st_value;
+
+	if (mdb_readvar(&shared_info_addr, "HYPERVISOR_shared_info") == -1) {
+		mdb_warn("failed to read HYPERVISOR_shared_info");
+		return (0);
+	}
+
+	/*
+	 * It's normal for this to fail with a domain dump.
+	 */
+	if (mdb_ctf_vread(&shared_info, "shared_info_t",
+	    shared_info_addr, 0) != -1)
+		have_shared_info = 1;
+
+	return (1);
+}
+
+static const char *
+virq_type(int irq)
+{
+	int i;
+
+	for (i = 0; i < NR_VIRQS; i++) {
+		if (virq_tbl[i].mi_irq == irq)
+			break;
+	}
+
+	switch (i) {
+	case VIRQ_TIMER:
+		return ("virq:timer");
+	case VIRQ_DEBUG:
+		return ("virq:debug");
+	case VIRQ_CONSOLE:
+		return ("virq:console");
+	case VIRQ_DOM_EXC:
+		return ("virq:dom exc");
+	case VIRQ_DEBUGGER:
+		return ("virq:debugger");
+	default:
+		break;
+	}
+
+	return ("virq:?");
+}
+
+static const char *
+irq_type(int irq, int extended)
+{
+	switch (irq_tbl[irq].ii_type) {
+	case IRQT_UNBOUND:
+		return ("unset");
+	case IRQT_PIRQ:
+		return ("pirq");
+	case IRQT_VIRQ:
+		if (extended)
+			return (virq_type(irq));
+		return ("virq");
+	case IRQT_IPI:
+		return ("ipi");
+	case IRQT_EVTCHN:
+		return ("evtchn");
+	case IRQT_DEV_EVTCHN:
+		return ("device");
+	}
+
+	return ("?");
+}
+
+/*
+ * We need a non-trivial IPL lookup as the CPU poke's IRQ doesn't have ii_ipl
+ * set -- see evtchn.h.
+ */
+static int
+irq_ipl(int irq)
+{
+	int i;
+
+	if (irq_tbl[irq].ii_u2.ipl != 0)
+		return (irq_tbl[irq].ii_u2.ipl);
+
+	for (i = 0; i < MAXIPL; i++) {
+		if (ipi_tbl[i].mi_irq == irq) {
+			return (i);
+		}
+	}
+
+	return (0);
+}
+
+static void
+print_cpu(irq_info_t *irqp, int evtchn)
+{
+	size_t cpuset_size = BT_BITOUL(NCPU) * sizeof (ulong_t);
+	int cpu;
+
+	if (irqp != NULL) {
+		switch (irqp->ii_type) {
+		case IRQT_VIRQ:
+		case IRQT_IPI:
+			mdb_printf("all ");
+			return;
+
+		case IRQT_DEV_EVTCHN:
+			mdb_printf("0   ");
+			return;
+
+		default:
+			break;
+		}
+	}
+
+	if (evtchn >= NR_EVENT_CHANNELS || evtchn == 0) {
+		mdb_printf("-   ");
+		return;
+	}
+
+	cpu = mdb_cpuset_find(evtchn_cpus_addr +
+	    (cpuset_size * evtchn));
+
+	/*
+	 * XXPV: we should verify this against the CPU's mask and show
+	 * something if they don't match.
+	 */
+	mdb_printf("%-4d", cpu);
+}
+
+static void
+print_isr(int i)
+{
+	if (avec_tbl[i].avh_link != NULL) {
+		struct autovec avhp;
+
+		(void) mdb_vread(&avhp, sizeof (struct autovec),
+		    (uintptr_t)avec_tbl[i].avh_link);
+
+		interrupt_print_isr((uintptr_t)avhp.av_vector,
+		    (uintptr_t)avhp.av_intarg1, (uintptr_t)avhp.av_dip);
+	} else if (irq_ipl(i) == XC_CPUPOKE_PIL) {
+		mdb_printf("poke_cpu");
+	}
+}
+
+static int
+evtchn_masked(int i)
+{
+	return (!!TEST_EVTCHN_BIT(i, &shared_info.evtchn_mask[0]));
+}
+
+static int
+evtchn_pending(int i)
+{
+	return (!!TEST_EVTCHN_BIT(i, &shared_info.evtchn_pending[0]));
+}
+
+static void
+print_bus(int irq)
+{
+	char parent[7];
+	uintptr_t dip_addr;
+	struct dev_info	dev_info;
+	struct autovec avhp;
+
+	bzero(&avhp, sizeof (avhp));
+
+	if (mdb_ctf_vread(&avhp, "struct autovec",
+	    (uintptr_t)avec_tbl[irq].avh_link, 0) == -1)
+		goto fail;
+
+	dip_addr = (uintptr_t)avhp.av_dip;
+
+	if (dip_addr == NULL)
+		goto fail;
+
+	/*
+	 * Sigh.  As a result of the perennial confusion of how you do opaque
+	 * handles, dev_info_t has a funny old type, which means we can't use
+	 * mdb_ctf_vread() here.
+	 */
+
+	if (mdb_vread(&dev_info, sizeof (struct dev_info), dip_addr) == -1)
+		goto fail;
+
+	dip_addr = (uintptr_t)dev_info.devi_parent;
+
+	if (mdb_vread(&dev_info, sizeof (struct dev_info), dip_addr) == -1)
+		goto fail;
+
+	if (mdb_readstr(parent, 7, (uintptr_t)dev_info.devi_node_name) == -1)
+		goto fail;
+
+	mdb_printf("%-6s ", parent);
+	return;
+
+fail:
+	mdb_printf("-      ");
+}
+
+static void
+ec_interrupt_dump(int i)
+{
+	irq_info_t *irqp = &irq_tbl[i];
+	char evtchn[8];
+
+	if (irqp->ii_type == IRQT_UNBOUND)
+		return;
+
+	if (option_flags & INTR_DISPLAY_INTRSTAT) {
+		print_cpu(irqp, irqp->ii_u.evtchn);
+		print_isr(i);
+		mdb_printf("\n");
+		return;
+	}
+
+	switch (irqp->ii_type) {
+	case IRQT_EVTCHN:
+	case IRQT_VIRQ:
+		if (irqp->ii_u.index == VIRQ_TIMER) {
+			strcpy(evtchn, "T");
+		} else {
+			mdb_snprintf(evtchn, sizeof (evtchn), "%-7d",
+			    irqp->ii_u.evtchn);
+		}
+		break;
+	case IRQT_IPI:
+		strcpy(evtchn, "I");
+		break;
+	case IRQT_DEV_EVTCHN:
+		strcpy(evtchn, "D");
+		break;
+	}
+
+	/* IRQ */
+	mdb_printf("%3d  ", i);
+	/* Vector */
+	mdb_printf("-    ");
+	/* Evtchn */
+	mdb_printf("%-7s", evtchn);
+	/* IPL */
+	mdb_printf("%-4d", irq_ipl(i));
+	/* Bus */
+	print_bus(i);
+	/* Trigger */
+	mdb_printf("%-4s", "Edg");
+	/* Type */
+	mdb_printf("%-7s", irq_type(i, 0));
+	/* CPU */
+	print_cpu(irqp, irqp->ii_u.evtchn);
+	/* Share */
+	mdb_printf("-     ");
+	/* APIC/INT# */
+	mdb_printf("-         ");
+
+	print_isr(i);
+
+	mdb_printf("\n");
+}
+
+/* ARGSUSED */
+static int
+interrupts_dump(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	int i;
+
+	option_flags = 0;
+	if (mdb_getopts(argc, argv,
+	    'd', MDB_OPT_SETBITS, INTR_DISPLAY_DRVR_INST, &option_flags,
+	    'i', MDB_OPT_SETBITS, INTR_DISPLAY_INTRSTAT, &option_flags,
+	    NULL) != argc)
+		return (DCMD_USAGE);
+
+	if (!update_tables())
+		return (DCMD_ERR);
+
+	if (option_flags & INTR_DISPLAY_INTRSTAT) {
+		mdb_printf("%<u>CPU ");
+	} else {
+		mdb_printf("%<u>IRQ  Vect Evtchn IPL Bus    Trg Type   "
+		    "CPU Share APIC/INT# ");
+	}
+	mdb_printf("%s %</u>\n", option_flags & INTR_DISPLAY_DRVR_INST ?
+	    "Driver Name(s)" : "ISR(s)");
+
+	for (i = 0; i < NR_IRQS; i++) {
+		if (irq_tbl[i].ii_type == IRQT_PIRQ) {
+			apic_irq_t airq;
+
+			if (irq_tbl[i].ii_u.evtchn == 0)
+				continue;
+
+			if (mdb_vread(&airq, sizeof (apic_irq_t),
+			    (uintptr_t)apic_irq_tbl[i]) == -1)
+				continue;
+
+			apic_interrupt_dump(&airq, &avec_tbl[i], i,
+			    &irq_tbl[i].ii_u.evtchn, level_tbl[i]);
+			continue;
+		}
+
+		ec_interrupt_dump(i);
+	}
+
+	return (DCMD_OK);
+}
+
+static void
+evtchn_dump(int i)
+{
+	int irq = evtchn_tbl[i];
+
+	if (irq == INVALID_IRQ) {
+		mdb_printf("%-14s%-7d%-4s%-4s", "unassigned", i, "-", "-");
+		print_cpu(NULL, i);
+		if (have_shared_info) {
+			mdb_printf("%-7d", evtchn_masked(i));
+			mdb_printf("%-8d", evtchn_pending(i));
+		}
+		mdb_printf("\n");
+		return;
+	}
+
+	/* Type */
+	mdb_printf("%-14s", irq_type(irq, 1));
+	/* Evtchn */
+	mdb_printf("%-7d", i);
+	/* IRQ */
+	mdb_printf("%-4d", irq);
+	/* IPL */
+	mdb_printf("%-4d", irq_ipl(irq));
+	/* CPU */
+	print_cpu(NULL, i);
+	if (have_shared_info) {
+		/* Masked/Pending */
+		mdb_printf("%-7d", evtchn_masked(i));
+		mdb_printf("%-8d", evtchn_pending(i));
+	}
+	/* ISR */
+	print_isr(irq);
+
+	mdb_printf("\n");
+}
+
+/* ARGSUSED */
+static int
+evtchns_dump(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	int i;
+
+	option_flags = 0;
+	if (mdb_getopts(argc, argv,
+	    'd', MDB_OPT_SETBITS, INTR_DISPLAY_DRVR_INST, &option_flags,
+	    NULL) != argc)
+		return (DCMD_USAGE);
+
+	if (!update_tables())
+		return (DCMD_ERR);
+
+	if (flags & DCMD_ADDRSPEC) {
+		/*
+		 * Note: we allow the invalid evtchn 0, as it can help catch if
+		 * we incorrectly try to configure it.
+		 */
+		if ((int)addr >= NR_EVENT_CHANNELS) {
+			mdb_warn("Invalid event channel %d.\n", (int)addr);
+			return (DCMD_ERR);
+		}
+	}
+
+	mdb_printf("%<u>Type          Evtchn IRQ IPL CPU ");
+	if (have_shared_info)
+		mdb_printf("Masked Pending ");
+
+	mdb_printf("%s %</u>\n", option_flags & INTR_DISPLAY_DRVR_INST ?
+	    "Driver Name(s)" : "ISR(s)");
+
+	if (flags & DCMD_ADDRSPEC) {
+		evtchn_dump((int)addr);
+		return (DCMD_OK);
+	}
+
+	for (i = 0; i < NR_EVENT_CHANNELS; i++) {
+		if (evtchn_tbl[i] == INVALID_IRQ)
+			continue;
+
+		evtchn_dump(i);
+	}
+
+	return (DCMD_OK);
+}
+
+static void
+evtchns_help(void)
+{
+	mdb_printf("Print valid event channels\n"
+	    "If %<u>addr%</u> is given, interpret it as an evtchn to print "
+	    "details of.\n"
+	    "By default, only interrupt service routine names are printed.\n\n"
+	    "Switches:\n"
+	    "  -d   instead of ISR, print <driver_name><instance#>\n");
+}
+
+static const mdb_dcmd_t dcmds[] = {
+	{ "interrupts", "?[-di]", "print interrupts", interrupts_dump,
+	    interrupt_help },
+	{ "evtchns", "?[-d]", "print event channels", evtchns_dump,
+	    evtchns_help },
+	{ "softint", "?[-d]", "print soft interrupts", soft_interrupt_dump,
+	    soft_interrupt_help},
+	{ NULL }
+};
+
+static const mdb_modinfo_t modinfo = { MDB_API_VERSION, dcmds, NULL };
+
+const mdb_modinfo_t *
+_mdb_init(void)
+{
+	GElf_Sym sym;
+
+	if (mdb_lookup_by_name("gld_intr", &sym) != -1)
+		if (GELF_ST_TYPE(sym.st_info) == STT_FUNC)
+			gld_intr_addr = (uintptr_t)sym.st_value;
+
+	return (&modinfo);
+}
--- a/usr/src/cmd/mdb/intel/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
 #
 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 # or http://www.opensolaris.org/os/licensing.
@@ -20,12 +19,15 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
 include $(SRC)/Makefile.master
-SUBDIRS=		ia32        
-$(BUILD64)SUBDIRS +=	$(MACH64)
+
+SUBDIRS = modules
+SUBDIRS += ia32
+$(BUILD64)SUBDIRS += $(MACH64)
+
 include ../Makefile.subdirs
--- a/usr/src/cmd/mdb/intel/amd64/genunix/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/amd64/genunix/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -60,6 +60,7 @@
 # kludge until we invent -DDONTINCLUDEMACHPARAM or something.
 #
 CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/i86xpv
 
 # Needed to include c2/audit.h (from cred.h)
 CPPFLAGS += -I$(SRC)/uts/common
--- a/usr/src/cmd/mdb/intel/amd64/mdb/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/amd64/mdb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -19,12 +19,13 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
 SRCS =	kvm_amd64dep.c \
+	kvm_isadep.c \
 	mdb_amd64util.c \
 	proc_amd64dep.c
 
--- a/usr/src/cmd/mdb/intel/ia32/genunix/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/ia32/genunix/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -59,6 +59,7 @@
 # kludge until we invent -DDONTINCLUDEMACHPARAM or something.
 #
 CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/i86xpv
 
 # Needed to include c2/audit.h (from cred.h)
 CPPFLAGS += -I$(SRC)/uts/common
--- a/usr/src/cmd/mdb/intel/ia32/mdb/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/ia32/mdb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -19,12 +19,13 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
 SRCS =	kvm_ia32dep.c \
+	kvm_isadep.c \
 	mdb_ia32util.c \
 	proc_ia32dep.c
 
--- a/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -128,26 +128,6 @@
 	return (mdb_isa_next(t, p, pc, instr));
 }
 
-/*
- * Return a flag indicating if the specified %eip is likely to have an
- * interrupt frame on the stack.  We do this by comparing the address to the
- * range of addresses spanned by several well-known routines, and looking
- * to see if the next and previous %ebp values are "far" apart.  Sigh.
- */
-int
-mdb_kvm_intrframe(mdb_tgt_t *t, uintptr_t pc, uintptr_t fp,
-    uintptr_t prevfp)
-{
-	kmt_data_t *kmt = t->t_data;
-	const size_t dist = 0x800 * sizeof (uintptr_t);
-
-	return ((pc >= kmt->kmt_cmnint.st_value &&
-	    (pc < kmt->kmt_cmnint.st_value + kmt->kmt_cmnint.st_size)) ||
-	    (pc >= kmt->kmt_cmntrap.st_value &&
-	    (pc < kmt->kmt_cmntrap.st_value + kmt->kmt_cmntrap.st_size)) ||
-	    (fp >= prevfp + dist) || (fp <= prevfp - dist));
-}
-
 /*ARGSUSED*/
 static int
 kmt_stack_common(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv,
--- a/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -47,83 +47,20 @@
 #include <mdb/mdb_conf.h>
 #include <mdb/mdb_kreg_impl.h>
 #include <mdb/mdb_amd64util.h>
+#include <mdb/kvm_isadep.h>
 #include <mdb/mdb_kvm.h>
 #include <mdb/mdb_err.h>
 #include <mdb/mdb_debug.h>
 #include <mdb/mdb.h>
 
-static int
-kt_getareg(mdb_tgt_t *t, mdb_tgt_tid_t tid,
-    const char *rname, mdb_tgt_reg_t *rp)
-{
-	const mdb_tgt_regdesc_t *rdp;
-	kt_data_t *kt = t->t_data;
-
-	if (tid != kt->k_tid)
-		return (set_errno(EMDB_NOREGS));
-
-	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
-		if (strcmp(rname, rdp->rd_name) == 0) {
-			*rp = kt->k_regs->kregs[rdp->rd_num];
-			return (0);
-		}
-	}
-
-	return (set_errno(EMDB_BADREG));
-}
-
-static int
-kt_putareg(mdb_tgt_t *t, mdb_tgt_tid_t tid, const char *rname, mdb_tgt_reg_t r)
-{
-	const mdb_tgt_regdesc_t *rdp;
-	kt_data_t *kt = t->t_data;
-
-	if (tid != kt->k_tid)
-		return (set_errno(EMDB_NOREGS));
-
-	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
-		if (strcmp(rname, rdp->rd_name) == 0) {
-			kt->k_regs->kregs[rdp->rd_num] = (kreg_t)r;
-			return (0);
-		}
-	}
-
-	return (set_errno(EMDB_BADREG));
-}
-
 /*ARGSUSED*/
 int
 kt_regs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
-	kt_data_t *kt = mdb.m_target->t_data;
-
-	if (argc != 0 || (flags & DCMD_ADDRSPEC))
-		return (DCMD_USAGE);
-
-	mdb_amd64_printregs(kt->k_regs);
-
+	mdb_amd64_printregs((const mdb_tgt_gregset_t *)addr);
 	return (DCMD_OK);
 }
 
-/*
- * Return a flag indicating if the specified %eip is likely to have an
- * interrupt frame on the stack.  We do this by comparing the address to the
- * range of addresses spanned by several well-known routines, and looking
- * to see if the next and previous %ebp values are "far" apart.  Sigh.
- */
-int
-mdb_kvm_intrframe(mdb_tgt_t *t, uintptr_t pc, uintptr_t fp,
-    uintptr_t prevfp)
-{
-	kt_data_t *kt = t->t_data;
-
-	return ((pc >= kt->k_intr_sym.st_value &&
-	    (pc < kt->k_intr_sym.st_value + kt->k_intr_sym.st_size)) ||
-	    (pc >= kt->k_trap_sym.st_value &&
-	    (pc < kt->k_trap_sym.st_value + kt->k_trap_sym.st_size)) ||
-	    (fp >= prevfp + 0x2000) || (fp <= prevfp - 0x2000));
-}
-
 static int
 kt_stack_common(uintptr_t addr, uint_t flags, int argc,
     const mdb_arg_t *argv, mdb_tgt_stack_f *func)
@@ -153,13 +90,13 @@
 	return (DCMD_OK);
 }
 
-static int
+int
 kt_stack(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
 	return (kt_stack_common(addr, flags, argc, argv, mdb_amd64_kvm_frame));
 }
 
-static int
+int
 kt_stackv(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
 	return (kt_stack_common(addr, flags, argc, argv, mdb_amd64_kvm_framev));
@@ -220,12 +157,43 @@
 };
 
 void
+kt_regs_to_kregs(struct regs *regs, mdb_tgt_gregset_t *gregs)
+{
+	gregs->kregs[KREG_SAVFP] = regs->r_savfp;
+	gregs->kregs[KREG_SAVPC] = regs->r_savpc;
+	gregs->kregs[KREG_RDI] = regs->r_rdi;
+	gregs->kregs[KREG_RSI] = regs->r_rsi;
+	gregs->kregs[KREG_RDX] = regs->r_rdx;
+	gregs->kregs[KREG_RCX] = regs->r_rcx;
+	gregs->kregs[KREG_R8] = regs->r_r8;
+	gregs->kregs[KREG_R9] = regs->r_r9;
+	gregs->kregs[KREG_RAX] = regs->r_rax;
+	gregs->kregs[KREG_RBX] = regs->r_rbx;
+	gregs->kregs[KREG_RBP] = regs->r_rbp;
+	gregs->kregs[KREG_R10] = regs->r_r10;
+	gregs->kregs[KREG_R11] = regs->r_r11;
+	gregs->kregs[KREG_R12] = regs->r_r12;
+	gregs->kregs[KREG_R13] = regs->r_r13;
+	gregs->kregs[KREG_R14] = regs->r_r14;
+	gregs->kregs[KREG_R15] = regs->r_r15;
+	gregs->kregs[KREG_DS] = regs->r_ds;
+	gregs->kregs[KREG_ES] = regs->r_es;
+	gregs->kregs[KREG_FS] = regs->r_fs;
+	gregs->kregs[KREG_GS] = regs->r_gs;
+	gregs->kregs[KREG_TRAPNO] = regs->r_trapno;
+	gregs->kregs[KREG_ERR] = regs->r_err;
+	gregs->kregs[KREG_RIP] = regs->r_rip;
+	gregs->kregs[KREG_CS] = regs->r_cs;
+	gregs->kregs[KREG_RFLAGS] = regs->r_rfl;
+	gregs->kregs[KREG_RSP] = regs->r_rsp;
+	gregs->kregs[KREG_SS] = regs->r_ss;
+}
+
+void
 kt_amd64_init(mdb_tgt_t *t)
 {
 	kt_data_t *kt = t->t_data;
-
 	panic_data_t pd;
-	kreg_t *kregs;
 	struct regs regs;
 	uintptr_t addr;
 
@@ -242,9 +210,10 @@
 	kt->k_dcmd_stack = kt_stack;
 	kt->k_dcmd_stackv = kt_stackv;
 	kt->k_dcmd_stackr = kt_stackv;
+	kt->k_dcmd_cpustack = kt_cpustack;
+	kt->k_dcmd_cpuregs = kt_cpuregs;
 
 	t->t_ops = &kt_amd64_ops;
-	kregs = kt->k_regs->kregs;
 
 	(void) mdb_dis_select("amd64");
 
@@ -264,7 +233,7 @@
 	 * Don't attempt to load any thread or register information if
 	 * we're examining the live operating system.
 	 */
-	if (strcmp(kt->k_symfile, "/dev/ksyms") == 0)
+	if (kt->k_symfile != NULL && strcmp(kt->k_symfile, "/dev/ksyms") == 0)
 		return;
 
 	/*
@@ -298,41 +267,23 @@
 
 		mdb_free(pdp, pd_size);
 
-	} else if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &addr, sizeof (addr),
+		return;
+	};
+
+	if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &addr, sizeof (addr),
 	    MDB_TGT_OBJ_EXEC, "panic_reg") == sizeof (addr) && addr != NULL &&
 	    mdb_tgt_vread(t, &regs, sizeof (regs), addr) == sizeof (regs)) {
+		kt_regs_to_kregs(&regs, kt->k_regs);
+		return;
+	}
 
-		kregs[KREG_SAVFP] = regs.r_savfp;
-		kregs[KREG_SAVPC] = regs.r_savpc;
-		kregs[KREG_RDI] = regs.r_rdi;
-		kregs[KREG_RSI] = regs.r_rsi;
-		kregs[KREG_RDX] = regs.r_rdx;
-		kregs[KREG_RCX] = regs.r_rcx;
-		kregs[KREG_R8] = regs.r_r8;
-		kregs[KREG_R9] = regs.r_r9;
-		kregs[KREG_RAX] = regs.r_rax;
-		kregs[KREG_RBX] = regs.r_rbx;
-		kregs[KREG_RBP] = regs.r_rbp;
-		kregs[KREG_R10] = regs.r_r10;
-		kregs[KREG_R11] = regs.r_r11;
-		kregs[KREG_R12] = regs.r_r12;
-		kregs[KREG_R13] = regs.r_r13;
-		kregs[KREG_R14] = regs.r_r14;
-		kregs[KREG_R15] = regs.r_r15;
-		kregs[KREG_DS] = regs.r_ds;
-		kregs[KREG_ES] = regs.r_es;
-		kregs[KREG_FS] = regs.r_fs;
-		kregs[KREG_GS] = regs.r_gs;
-		kregs[KREG_TRAPNO] = regs.r_trapno;
-		kregs[KREG_ERR] = regs.r_err;
-		kregs[KREG_RIP] = regs.r_rip;
-		kregs[KREG_CS] = regs.r_cs;
-		kregs[KREG_RFLAGS] = regs.r_rfl;
-		kregs[KREG_RSP] = regs.r_rsp;
-		kregs[KREG_SS] = regs.r_ss;
+	/*
+	 * If we can't read any panic regs, then our final try is for any CPU
+	 * context that may have been stored (for example, in Xen core dumps).
+	 */
+	if (kt_kvmregs(t, 0, kt->k_regs) == 0)
+		return;
 
-	} else {
-		warn("failed to read panicbuf and panic_reg -- "
-		    "current register set will be unavailable\n");
-	}
+	warn("failed to read panicbuf and panic_reg -- "
+	    "current register set will be unavailable\n");
 }
--- a/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -47,83 +46,21 @@
 #include <mdb/mdb_conf.h>
 #include <mdb/mdb_kreg_impl.h>
 #include <mdb/mdb_ia32util.h>
+#include <mdb/kvm_isadep.h>
 #include <mdb/mdb_kvm.h>
 #include <mdb/mdb_err.h>
 #include <mdb/mdb_debug.h>
 #include <mdb/mdb.h>
 
-static int
-kt_getareg(mdb_tgt_t *t, mdb_tgt_tid_t tid,
-    const char *rname, mdb_tgt_reg_t *rp)
-{
-	const mdb_tgt_regdesc_t *rdp;
-	kt_data_t *kt = t->t_data;
-
-	if (tid != kt->k_tid)
-		return (set_errno(EMDB_NOREGS));
-
-	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
-		if (strcmp(rname, rdp->rd_name) == 0) {
-			*rp = kt->k_regs->kregs[rdp->rd_num];
-			return (0);
-		}
-	}
-
-	return (set_errno(EMDB_BADREG));
-}
-
-static int
-kt_putareg(mdb_tgt_t *t, mdb_tgt_tid_t tid, const char *rname, mdb_tgt_reg_t r)
-{
-	const mdb_tgt_regdesc_t *rdp;
-	kt_data_t *kt = t->t_data;
-
-	if (tid != kt->k_tid)
-		return (set_errno(EMDB_NOREGS));
-
-	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
-		if (strcmp(rname, rdp->rd_name) == 0) {
-			kt->k_regs->kregs[rdp->rd_num] = (kreg_t)r;
-			return (0);
-		}
-	}
-
-	return (set_errno(EMDB_BADREG));
-}
 
 /*ARGSUSED*/
 int
 kt_regs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
-	kt_data_t *kt = mdb.m_target->t_data;
-
-	if (argc != 0 || (flags & DCMD_ADDRSPEC))
-		return (DCMD_USAGE);
-
-	mdb_ia32_printregs(kt->k_regs);
-
+	mdb_ia32_printregs((const mdb_tgt_gregset_t *)addr);
 	return (DCMD_OK);
 }
 
-/*
- * Return a flag indicating if the specified %eip is likely to have an
- * interrupt frame on the stack.  We do this by comparing the address to the
- * range of addresses spanned by several well-known routines, and looking
- * to see if the next and previous %ebp values are "far" apart.  Sigh.
- */
-int
-mdb_kvm_intrframe(mdb_tgt_t *t, uintptr_t pc, uintptr_t fp,
-    uintptr_t prevfp)
-{
-	kt_data_t *kt = t->t_data;
-
-	return ((pc >= kt->k_intr_sym.st_value &&
-	    (pc < kt->k_intr_sym.st_value + kt->k_intr_sym.st_size)) ||
-	    (pc >= kt->k_trap_sym.st_value &&
-	    (pc < kt->k_trap_sym.st_value + kt->k_trap_sym.st_size)) ||
-	    (fp >= prevfp + 0x2000) || (fp <= prevfp - 0x2000));
-}
-
 static int
 kt_stack_common(uintptr_t addr, uint_t flags, int argc,
     const mdb_arg_t *argv, mdb_tgt_stack_f *func)
@@ -153,13 +90,13 @@
 	return (DCMD_OK);
 }
 
-static int
+int
 kt_stack(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
 	return (kt_stack_common(addr, flags, argc, argv, mdb_ia32_kvm_frame));
 }
 
-static int
+int
 kt_stackv(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
 	return (kt_stack_common(addr, flags, argc, argv, mdb_ia32_kvm_framev));
@@ -220,14 +157,39 @@
 };
 
 void
+kt_regs_to_kregs(struct regs *regs, mdb_tgt_gregset_t *gregs)
+{
+	gregs->kregs[KREG_SAVFP] = regs->r_savfp;
+	gregs->kregs[KREG_SAVPC] = regs->r_savpc;
+	gregs->kregs[KREG_EAX] = regs->r_eax;
+	gregs->kregs[KREG_EBX] = regs->r_ebx;
+	gregs->kregs[KREG_ECX] = regs->r_ecx;
+	gregs->kregs[KREG_EDX] = regs->r_edx;
+	gregs->kregs[KREG_ESI] = regs->r_esi;
+	gregs->kregs[KREG_EDI] = regs->r_edi;
+	gregs->kregs[KREG_EBP] = regs->r_ebp;
+	gregs->kregs[KREG_ESP] = regs->r_esp;
+	gregs->kregs[KREG_CS] = regs->r_cs;
+	gregs->kregs[KREG_DS] = regs->r_ds;
+	gregs->kregs[KREG_SS] = regs->r_ss;
+	gregs->kregs[KREG_ES] = regs->r_es;
+	gregs->kregs[KREG_FS] = regs->r_fs;
+	gregs->kregs[KREG_GS] = regs->r_gs;
+	gregs->kregs[KREG_EFLAGS] = regs->r_efl;
+	gregs->kregs[KREG_EIP] = regs->r_eip;
+	gregs->kregs[KREG_UESP] = regs->r_uesp;
+	gregs->kregs[KREG_TRAPNO] = regs->r_trapno;
+	gregs->kregs[KREG_ERR] = regs->r_err;
+}
+
+void
 kt_ia32_init(mdb_tgt_t *t)
 {
 	kt_data_t *kt = t->t_data;
-
 	panic_data_t pd;
-	kreg_t *kregs;
 	label_t label;
 	struct regs regs;
+	kreg_t *kregs;
 	uintptr_t addr;
 
 	/*
@@ -243,6 +205,8 @@
 	kt->k_dcmd_stack = kt_stack;
 	kt->k_dcmd_stackv = kt_stackv;
 	kt->k_dcmd_stackr = kt_stackv;
+	kt->k_dcmd_cpustack = kt_cpustack;
+	kt->k_dcmd_cpuregs = kt_cpuregs;
 
 	t->t_ops = &kt_ia32_ops;
 	kregs = kt->k_regs->kregs;
@@ -265,7 +229,7 @@
 	 * Don't attempt to load any thread or register information if
 	 * we're examining the live operating system.
 	 */
-	if (strcmp(kt->k_symfile, "/dev/ksyms") == 0)
+	if (kt->k_symfile != NULL && strcmp(kt->k_symfile, "/dev/ksyms") == 0)
 		return;
 
 	/*
@@ -299,44 +263,38 @@
 
 		mdb_free(pdp, pd_size);
 
-	} else if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &addr, sizeof (addr),
+		return;
+	}
+
+	if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &addr, sizeof (addr),
 	    MDB_TGT_OBJ_EXEC, "panic_reg") == sizeof (addr) && addr != NULL &&
 	    mdb_tgt_vread(t, &regs, sizeof (regs), addr) == sizeof (regs)) {
+		kt_regs_to_kregs(&regs, kt->k_regs);
+		return;
+	}
 
-		kregs[KREG_SAVFP] = regs.r_savfp;
-		kregs[KREG_SAVPC] = regs.r_savpc;
-		kregs[KREG_EAX] = regs.r_eax;
-		kregs[KREG_EBX] = regs.r_ebx;
-		kregs[KREG_ECX] = regs.r_ecx;
-		kregs[KREG_EDX] = regs.r_edx;
-		kregs[KREG_ESI] = regs.r_esi;
-		kregs[KREG_EDI] = regs.r_edi;
-		kregs[KREG_EBP] = regs.r_ebp;
-		kregs[KREG_ESP] = regs.r_esp;
-		kregs[KREG_CS] = regs.r_cs;
-		kregs[KREG_DS] = regs.r_ds;
-		kregs[KREG_SS] = regs.r_ss;
-		kregs[KREG_ES] = regs.r_es;
-		kregs[KREG_FS] = regs.r_fs;
-		kregs[KREG_GS] = regs.r_gs;
-		kregs[KREG_EFLAGS] = regs.r_efl;
-		kregs[KREG_EIP] = regs.r_eip;
-		kregs[KREG_UESP] = regs.r_uesp;
-		kregs[KREG_TRAPNO] = regs.r_trapno;
-		kregs[KREG_ERR] = regs.r_err;
+	/*
+	 * If we can't read any panic regs, then our penultimate try is for any
+	 * CPU context that may have been stored (for example, in Xen core
+	 * dumps).  As this can only succeed for kernels with the above
+	 * methods available, we let it over-ride the older panic_regs method,
+	 * which will always manage to read the label_t, even if there's
+	 * nothing useful there.
+	 */
+	if (kt_kvmregs(t, 0, kt->k_regs) == 0)
+		return;
 
-	} else if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &label, sizeof (label),
+	if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &label, sizeof (label),
 	    MDB_TGT_OBJ_EXEC, "panic_regs") == sizeof (label)) {
-
 		kregs[KREG_EDI] = label.val[0];
 		kregs[KREG_ESI] = label.val[1];
 		kregs[KREG_EBX] = label.val[2];
 		kregs[KREG_EBP] = label.val[3];
 		kregs[KREG_ESP] = label.val[4];
 		kregs[KREG_EIP] = label.val[5];
+		return;
+	}
 
-	} else {
-		warn("failed to read panicbuf, panic_reg and panic_regs -- "
-		    "current register set will be unavailable\n");
-	}
+	warn("failed to read panicbuf, panic_reg and panic_regs -- "
+	    "current register set will be unavailable\n");
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,191 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Libkvm Kernel Target Intel component
+ *
+ * This file provides the Intel-dependent portion of the libkvm kernel target.
+ * For more details on the implementation refer to mdb_kvm.c.
+ */
+
+#include <mdb/mdb_target_impl.h>
+#include <mdb/mdb_kreg_impl.h>
+#include <mdb/mdb_errno.h>
+#include <mdb/mdb_err.h>
+#include <mdb/mdb_kvm.h>
+#include <mdb/mdb_ks.h>
+#include <mdb/mdb.h>
+#include <mdb/kvm_isadep.h>
+
+#include <sys/cpuvar.h>
+#include <sys/privmregs.h>
+
+int
+kt_getareg(mdb_tgt_t *t, mdb_tgt_tid_t tid,
+    const char *rname, mdb_tgt_reg_t *rp)
+{
+	const mdb_tgt_regdesc_t *rdp;
+	kt_data_t *kt = t->t_data;
+
+	if (tid != kt->k_tid)
+		return (set_errno(EMDB_NOREGS));
+
+	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
+		if (strcmp(rname, rdp->rd_name) == 0) {
+			*rp = kt->k_regs->kregs[rdp->rd_num];
+			return (0);
+		}
+	}
+
+	return (set_errno(EMDB_BADREG));
+}
+
+int
+kt_putareg(mdb_tgt_t *t, mdb_tgt_tid_t tid, const char *rname, mdb_tgt_reg_t r)
+{
+	const mdb_tgt_regdesc_t *rdp;
+	kt_data_t *kt = t->t_data;
+
+	if (tid != kt->k_tid)
+		return (set_errno(EMDB_NOREGS));
+
+	for (rdp = kt->k_rds; rdp->rd_name != NULL; rdp++) {
+		if (strcmp(rname, rdp->rd_name) == 0) {
+			kt->k_regs->kregs[rdp->rd_num] = (kreg_t)r;
+			return (0);
+		}
+	}
+
+	return (set_errno(EMDB_BADREG));
+}
+
+int
+kt_kvmregs(mdb_tgt_t *t, uint_t cpuid, mdb_tgt_gregset_t *kregs)
+{
+	kt_data_t *kt = t->t_data;
+	privmregs_t mregs;
+	int ret;
+
+	if ((ret = kt->k_kb_ops->kb_getmregs(kt->k_cookie, cpuid, &mregs)) != 0)
+		return (ret);
+
+	kt_regs_to_kregs(&mregs.pm_gregs, kregs);
+	return (0);
+}
+
+static int
+kt_cpu2cpuid(uintptr_t cpup)
+{
+	cpu_t cpu;
+
+	if (mdb_vread(&cpu, sizeof (cpu_t), cpup) != sizeof (cpu_t))
+		return (-1);
+
+	return (cpu.cpu_id);
+}
+
+int
+kt_cpustack(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	mdb_tgt_t *t = mdb.m_target;
+	mdb_tgt_gregset_t regs;
+	intptr_t cpuid = 0;
+	uint_t verbose = 0;
+	int i;
+
+	if (flags & DCMD_ADDRSPEC) {
+		if ((cpuid = kt_cpu2cpuid(addr)) < 0) {
+			(void) set_errno(EMDB_NOMAP);
+			mdb_warn("failed to find cpuid for cpu at %p", addr);
+			return (DCMD_ERR);
+		}
+		flags &= ~DCMD_ADDRSPEC;
+	}
+
+
+	i = mdb_getopts(argc, argv,
+	    'c', MDB_OPT_UINTPTR, &cpuid,
+	    'v', MDB_OPT_SETBITS, 1, &verbose,
+	    NULL);
+
+	argc -= i;
+	argv += i;
+
+	if (kt_kvmregs(t, cpuid, &regs) != 0) {
+		mdb_warn("failed to get regs for cpu %d\n", cpuid);
+		return (DCMD_ERR);
+	}
+
+	/*
+	 * Tell the stack walker that we have regs.
+	 */
+	flags |= DCMD_ADDRSPEC;
+	addr = regs.kregs[KREG_FP];
+
+	if (verbose)
+		return (kt_stackv(addr, flags, argc, argv));
+	else
+		return (kt_stack(addr, flags, argc, argv));
+}
+
+/*ARGSUSED*/
+int
+kt_cpuregs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	mdb_tgt_t *t = mdb.m_target;
+	mdb_tgt_gregset_t regs;
+	intptr_t cpuid = 0;
+	int i;
+
+	if (flags & DCMD_ADDRSPEC) {
+		if (argc != 0)
+			return (DCMD_USAGE);
+		if ((cpuid = kt_cpu2cpuid(addr)) < 0) {
+			(void) set_errno(EMDB_NOMAP);
+			mdb_warn("failed to find cpuid for cpu at %p", addr);
+			return (DCMD_ERR);
+		}
+	}
+
+
+	i = mdb_getopts(argc, argv,
+	    'c', MDB_OPT_UINTPTR, &cpuid,
+	    NULL);
+
+	argc -= i;
+	argv += i;
+
+	if (argc != 0)
+		return (DCMD_USAGE);
+
+	if (kt_kvmregs(t, cpuid, &regs) != 0) {
+		mdb_warn("failed to get regs for cpu %d\n", cpuid);
+		return (DCMD_ERR);
+	}
+
+	return (kt_regs((uintptr_t)&regs, flags, argc, argv));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,55 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_KVM_ISADEP_H
+#define	_KVM_ISADEP_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <mdb/mdb_modapi.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+extern int kt_cpustack(uintptr_t, uint_t, int, const mdb_arg_t *);
+extern int kt_cpuregs(uintptr_t, uint_t, int, const mdb_arg_t *);
+extern int kt_regs(uintptr_t, uint_t, int, const mdb_arg_t *);
+
+extern int kt_kvmregs(mdb_tgt_t *, uint_t, mdb_tgt_gregset_t *);
+extern void kt_regs_to_kregs(struct regs *, mdb_tgt_gregset_t *);
+
+extern int kt_putareg(mdb_tgt_t *, mdb_tgt_tid_t, const char *, mdb_tgt_reg_t);
+extern int kt_getareg(mdb_tgt_t *, mdb_tgt_tid_t,
+    const char *, mdb_tgt_reg_t *);
+
+extern int kt_stack(uintptr_t, uint_t, int, const mdb_arg_t *);
+extern int kt_stackv(uintptr_t, uint_t, int, const mdb_arg_t *);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _KVM_ISADEP_H */
--- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c	Tue Sep 18 15:46:43 2007 -0700
@@ -137,8 +137,6 @@
 	mdb_printf("   %%err = 0x%x\n", kregs[KREG_ERR]);
 }
 
-
-
 /*
  * Sun Studio 10 patch compiler and gcc 3.4.3 Sun branch implemented a
  * "-save_args" option on amd64.  When the option is specified, INTEGER
@@ -303,6 +301,22 @@
 	return (0);
 }
 
+/*
+ * We expect all proper Solaris core files to have STACK_ALIGN-aligned stacks.
+ * Hence the name.  However, if the core file resulted from a
+ * hypervisor-initiated panic, the hypervisor's frames may only be 64-bit
+ * aligned instead of 128.
+ */
+static int
+fp_is_aligned(uintptr_t fp, int xpv_panic)
+{
+	if (!xpv_panic && (fp & (STACK_ALIGN -1)))
+		return (0);
+	if ((fp & sizeof (uintptr_t) - 1))
+		return (0);
+	return (1);
+}
+
 int
 mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
     mdb_tgt_stack_f *func, void *arg)
@@ -322,13 +336,20 @@
 
 	uintptr_t fp = gsp->kregs[KREG_RBP];
 	uintptr_t pc = gsp->kregs[KREG_RIP];
-	uintptr_t curpc;
+	uintptr_t lastfp, curpc;
 
 	ssize_t size;
 
 	GElf_Sym s;
 	mdb_syminfo_t sip;
 	mdb_ctf_funcinfo_t mfp;
+	int xpv_panic = 0;
+#ifndef	_KMDB
+	int xp;
+
+	if ((mdb_readsym(&xp, sizeof (xp), "xpv_panicking") != -1) && (xp > 0))
+		xpv_panic = 1;
+#endif
 
 	bcopy(gsp, &gregs, sizeof (gregs));
 
@@ -336,7 +357,7 @@
 
 		curpc = pc;
 
-		if (fp & (STACK_ALIGN - 1))
+		if (!fp_is_aligned(fp, xpv_panic))
 			return (set_errno(EMDB_STKALIGN));
 
 		if (mdb_tgt_vread(t, &fr, sizeof (fr), fp) != sizeof (fr))
@@ -397,7 +418,21 @@
 
 		kregs[KREG_RSP] = kregs[KREG_RBP];
 
-		kregs[KREG_RBP] = fp = fr.fr_savfp;
+		lastfp = fp;
+		fp = fr.fr_savfp;
+		/*
+		 * The Xen hypervisor marks a stack frame as belonging to
+		 * an exception by inverting the bits of the pointer to
+		 * that frame.  We attempt to identify these frames by
+		 * inverting the pointer and seeing if it is within 0xfff
+		 * bytes of the last frame.
+		 */
+		if (xpv_panic)
+			if ((fp != 0) && (fp < lastfp) &&
+			    ((lastfp ^ ~fp) < 0xfff))
+			fp = ~fp;
+
+		kregs[KREG_RBP] = fp;
 		kregs[KREG_RIP] = pc = fr.fr_savpc;
 
 		if (curpc == pc)
--- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -53,9 +52,6 @@
 extern int mdb_amd64_kvm_framev(void *, uintptr_t, uint_t, const long *,
     const mdb_tgt_gregset_t *);
 
-/* Provided by the target */
-extern int mdb_kvm_intrframe(mdb_tgt_t *, uintptr_t, uintptr_t, uintptr_t);
-
 #ifdef __cplusplus
 }
 #endif
--- a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -186,9 +185,17 @@
 
 	uintptr_t fp = gsp->kregs[KREG_EBP];
 	uintptr_t pc = gsp->kregs[KREG_EIP];
+	uintptr_t lastfp;
 
 	ssize_t size;
 	uint_t argc;
+	int detect_exception_frames = 0;
+#ifndef	_KMDB
+	int xp;
+
+	if ((mdb_readsym(&xp, sizeof (xp), "xpv_panicking") != -1) && (xp > 0))
+		detect_exception_frames = 1;
+#endif
 
 	bcopy(gsp, &gregs, sizeof (gregs));
 
@@ -211,7 +218,21 @@
 
 		kregs[KREG_ESP] = kregs[KREG_EBP];
 
-		kregs[KREG_EBP] = fp = fr.fr_savfp;
+		lastfp = fp;
+		fp = fr.fr_savfp;
+		/*
+		 * The Xen hypervisor marks a stack frame as belonging to
+		 * an exception by inverting the bits of the pointer to
+		 * that frame.  We attempt to identify these frames by
+		 * inverting the pointer and seeing if it is within 0xfff
+		 * bytes of the last frame.
+		 */
+		if (detect_exception_frames)
+			if ((fp != 0) && (fp < lastfp) &&
+			    ((lastfp ^ ~fp) < 0xfff))
+				fp = ~fp;
+
+		kregs[KREG_EBP] = fp;
 		kregs[KREG_EIP] = pc = fr.fr_savpc;
 
 		got_pc = (pc != 0);
--- a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -53,9 +52,6 @@
 extern int mdb_ia32_kvm_framev(void *, uintptr_t, uint_t, const long *,
     const mdb_tgt_gregset_t *);
 
-/* Provided by the target */
-extern int mdb_kvm_intrframe(mdb_tgt_t *, uintptr_t, uintptr_t, uintptr_t);
-
 #ifdef __cplusplus
 }
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/modules/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+SUBDIRS = mdb_kb
+
+include ../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+include $(SRC)/Makefile.master
+SUBDIRS =		ia32
+$(BUILD64)SUBDIRS += 	$(MACH64)
+include ../../../Makefile.subdirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,47 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = mdb_kb.so
+MDBTGT = kvm
+MODULE_BUILD_TYPE = mdb
+
+MODSRCS = mdb_kb.c
+
+include ../../../../../Makefile.cmd
+include ../../../../../Makefile.cmd.64
+include ../../../../intel/Makefile.amd64
+include ../../../../Makefile.module
+
+C99MODE=	-xc99=%all
+C99LMODE=	-Xc99=%all
+
+CPPFLAGS += -DMP -D_MACHDEP -D_MDB -D__xpv
+CPPFLAGS += -U_KERNEL -D_KMEMUSER
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,46 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+MODULE = mdb_kb.so
+MDBTGT = kvm
+MODULE_BUILD_TYPE = mdb
+
+MODSRCS = mdb_kb.c
+
+include ../../../../../Makefile.cmd
+include ../../../../intel/Makefile.ia32
+include ../../../../Makefile.module
+
+C99MODE=	-xc99=%all
+C99LMODE=	-Xc99=%all
+
+CPPFLAGS += -DMP -D_MACHDEP -D_MDB -D__xpv
+CPPFLAGS += -U_KERNEL -D_KMEMUSER
+CPPFLAGS += -I../../../../common
+CPPFLAGS += -I$(SRC)/uts/common
+CPPFLAGS += -I$(SRC)/uts/i86pc
+CPPFLAGS += -I$(SRC)/uts/i86xpv
+CPPFLAGS += -I$(SRC)/uts/intel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1059 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * KVM backend for hypervisor domain dumps.  We don't use libkvm for such
+ * dumps, since they do not have a namelist file or the typical dump structures
+ * we expect to aid bootstrapping.  Instead, we bootstrap based upon a
+ * debug_info structure at a known VA, using the guest's own page tables to
+ * resolve to physical addresses, and construct the namelist in a manner
+ * similar to ksyms_snapshot().
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <strings.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <errno.h>
+
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/debug_info.h>
+#include <sys/xen_mmu.h>
+#include <sys/elf.h>
+#include <sys/machelf.h>
+#include <sys/modctl.h>
+#include <sys/kobj.h>
+#include <sys/kobj_impl.h>
+#include <sys/sysmacros.h>
+#include <sys/privmregs.h>
+#include <vm/as.h>
+
+#include <mdb/mdb_io.h>
+#include <mdb/mdb_kb.h>
+#include <mdb/mdb_target_impl.h>
+
+#include <xen/public/xen.h>
+
+#if defined(__i386)
+#define	DEF_DEBUG_INFO_VA 0xfb3ff000
+#define	PAE_DEBUG_INFO_VA 0xf4bff000
+#elif defined(__amd64)
+#define	DEF_DEBUG_INFO_VA 0xfffffffffb7ff000
+#endif
+
+#define	XKB_SHDR_NULL 0
+#define	XKB_SHDR_SYMTAB 1
+#define	XKB_SHDR_STRTAB 2
+#define	XKB_SHDR_SHSTRTAB 3
+#define	XKB_SHDR_NUM 4
+
+#define	XKB_WALK_LOCAL 0x1
+#define	XKB_WALK_GLOBAL 0x2
+#define	XKB_WALK_STR 0x4
+#define	XKB_WALK_ALL (XKB_WALK_LOCAL | XKB_WALK_GLOBAL | XKB_WALK_STR)
+
+#define	PAGE_SIZE 0x1000
+#define	PAGE_SHIFT 12
+#define	PAGE_OFFSET(a) ((a) & (PAGE_SIZE - 1))
+#define	PAGE_MASK(a) ((a) & ~(PAGE_SIZE - 1))
+#define	PT_PADDR 0x000ffffffffff000ull
+#define	PT_VALID 0x1
+
+/*
+ * Once the headers are available easily from within ON, we can use those, but
+ * until then these definitions are duplicates.
+ */
+
+#define	XC_CORE_MAGIC 0xF00FEBED
+#define	XC_CORE_MAGIC_HVM 0xF00FEBEE
+
+#define	VGCF_HVM_GUEST (1<<1)
+
+typedef struct xc_core_header {
+	unsigned int xch_magic;
+	unsigned int xch_nr_vcpus;
+	unsigned int xch_nr_pages;
+	unsigned int xch_ctxt_offset;
+	unsigned int xch_index_offset;
+	unsigned int xch_pages_offset;
+} xc_core_header_t;
+
+typedef struct mfn_map {
+	mfn_t mm_mfn;
+	char *mm_map;
+} mfn_map_t;
+
+typedef struct mmu_info {
+	size_t mi_max;
+	size_t mi_shift[4];
+	size_t mi_ptes;
+	size_t mi_ptesize;
+} mmu_info_t;
+
+typedef struct xkb {
+	char *xkb_path;
+	int xkb_fd;
+	xc_core_header_t xkb_hdr;
+	char *xkb_namelist;
+	size_t xkb_namesize;
+	struct vcpu_guest_context *xkb_ctxts;
+	mfn_t xkb_max_mfn;
+	mmu_info_t xkb_mmu;
+	char *xkb_pages;
+	mfn_t *xkb_p2m;
+	void *xkb_p2m_buf;
+	xen_pfn_t *xkb_m2p;
+	debug_info_t xkb_info;
+	mfn_map_t xkb_pt_map[4];
+	mfn_map_t xkb_map;
+} xkb_t;
+
+static const char xkb_shstrtab[] = "\0.symtab\0.strtab\0.shstrtab\0";
+
+typedef struct xkb_namelist {
+	Ehdr	kh_elf_hdr;
+	Phdr	kh_text_phdr;
+	Phdr	kh_data_phdr;
+	Shdr	kh_shdr[XKB_SHDR_NUM];
+	char	shstrings[sizeof (xkb_shstrtab)];
+} xkb_namelist_t;
+
+static int xkb_build_ksyms(xkb_t *);
+static offset_t xkb_mfn_to_offset(xkb_t *, mfn_t);
+static mfn_t xkb_va_to_mfn(xkb_t *, uintptr_t, mfn_t);
+static ssize_t xkb_read(xkb_t *, uintptr_t, void *, size_t);
+static int xkb_read_word(xkb_t *, uintptr_t, uintptr_t *);
+static char *xkb_map_mfn(xkb_t *, mfn_t, mfn_map_t *);
+static int xkb_close(xkb_t *);
+
+int
+xkb_identify(const char *file, int *longmode)
+{
+	xc_core_header_t header;
+	size_t sz;
+	int fd;
+
+	if ((fd = open64(file, O_RDONLY)) == -1)
+		return (-1);
+
+	if (pread64(fd, &header, sizeof (header), 0) != sizeof (header)) {
+		(void) close(fd);
+		return (0);
+	}
+
+	(void) close(fd);
+
+	if (header.xch_magic != XC_CORE_MAGIC)
+		return (0);
+
+	*longmode = 0;
+
+	/*
+	 * Indeed.
+	 */
+	sz = header.xch_index_offset - header.xch_ctxt_offset;
+#ifdef _LP64
+	if (sizeof (struct vcpu_guest_context) * header.xch_nr_vcpus == sz)
+		*longmode = 1;
+#else
+	if (sizeof (struct vcpu_guest_context) * header.xch_nr_vcpus != sz)
+		*longmode = 1;
+#endif /* _LP64 */
+
+	return (1);
+}
+
+static void *
+xkb_fail(xkb_t *xkb, const char *msg, ...)
+{
+	va_list args;
+
+	va_start(args, msg);
+	if (xkb != NULL)
+		(void) fprintf(stderr, "%s: ", xkb->xkb_path);
+	(void) vfprintf(stderr, msg, args);
+	(void) fprintf(stderr, "\n");
+	va_end(args);
+	if (xkb != NULL)
+		(void) xkb_close(xkb);
+	return (NULL);
+}
+
+static int
+xkb_build_m2p(xkb_t *xkb)
+{
+	size_t i;
+
+	for (i = 0; i < xkb->xkb_hdr.xch_nr_pages; i++) {
+		if (xkb->xkb_p2m[i] != MFN_INVALID &&
+		    xkb->xkb_p2m[i] > xkb->xkb_max_mfn)
+			xkb->xkb_max_mfn = xkb->xkb_p2m[i];
+	}
+
+	xkb->xkb_m2p = mdb_alloc((xkb->xkb_max_mfn + 1) * sizeof (xen_pfn_t),
+	    UM_SLEEP);
+
+	for (i = 0; i <= xkb->xkb_max_mfn; i++)
+		xkb->xkb_m2p[i] = PFN_INVALID;
+
+	for (i = 0; i < xkb->xkb_hdr.xch_nr_pages; i++) {
+		if (xkb->xkb_p2m[i] != MFN_INVALID)
+			xkb->xkb_m2p[xkb->xkb_p2m[i]] = i;
+	}
+
+	return (1);
+}
+
+/*
+ * Just to make things jolly fun, they've not page-aligned the p2m table.
+ */
+static int
+xkb_map_p2m(xkb_t *xkb)
+{
+	offset_t off;
+	size_t size;
+	size_t count = xkb->xkb_hdr.xch_nr_pages;
+	size_t boff = xkb->xkb_hdr.xch_index_offset;
+
+	size = sizeof (mfn_t) * count + (PAGE_SIZE) * 2;
+	size = PAGE_MASK(size);
+	off = PAGE_MASK(boff);
+
+	/* LINTED - alignment */
+	xkb->xkb_p2m_buf = (mfn_t *)mmap(NULL, size, PROT_READ,
+	    MAP_SHARED, xkb->xkb_fd, off);
+
+	if (xkb->xkb_p2m_buf == (xen_pfn_t *)MAP_FAILED) {
+		(void) xkb_fail(xkb, "cannot map p2m table");
+		return (0);
+	}
+
+	/* LINTED - alignment */
+	xkb->xkb_p2m = (mfn_t *)((char *)xkb->xkb_p2m_buf +
+	    PAGE_OFFSET(boff));
+
+	return (1);
+}
+
+/*
+ * Return the MFN of the top-level page table for the given as.
+ */
+static mfn_t
+xkb_as_to_mfn(xkb_t *xkb, struct as *as)
+{
+	uintptr_t asp = (uintptr_t)as;
+	uintptr_t hatp;
+	uintptr_t htablep;
+	uintptr_t pfn;
+
+	if (!xkb_read_word(xkb, asp + offsetof(struct as, a_hat), &hatp))
+		return (MFN_INVALID);
+	if (!xkb_read_word(xkb, hatp + xkb->xkb_info.di_hat_htable_off,
+	    &htablep))
+		return (MFN_INVALID);
+	if (!xkb_read_word(xkb, htablep + xkb->xkb_info.di_ht_pfn_off,
+	    &pfn))
+		return (MFN_INVALID);
+
+	if (pfn >= xkb->xkb_hdr.xch_nr_pages)
+		return (MFN_INVALID);
+
+	return (xkb->xkb_p2m[pfn]);
+}
+
+static ssize_t
+xkb_read_helper(xkb_t *xkb, struct as *as, int phys, uint64_t addr,
+    void *buf, size_t size)
+{
+	size_t left = size;
+	int windowed = xkb->xkb_pages == NULL;
+	mfn_t tlmfn = xen_cr3_to_pfn(xkb->xkb_ctxts[0].ctrlreg[3]);
+
+	if (as != NULL && (tlmfn = xkb_as_to_mfn(xkb, as)) == MFN_INVALID)
+		return (-1);
+
+	while (left) {
+		uint64_t pos = addr + (size - left);
+		char *outpos = (char *)buf + (size - left);
+		size_t pageoff = PAGE_OFFSET(pos);
+		size_t sz = MIN(left, PAGE_SIZE - pageoff);
+		mfn_t mfn;
+
+		if (!phys) {
+			mfn = xkb_va_to_mfn(xkb, pos, tlmfn);
+			if (mfn == MFN_INVALID)
+				return (-1);
+		} else {
+			xen_pfn_t pfn = pos >> PAGE_SHIFT;
+			if (pfn >= xkb->xkb_hdr.xch_nr_pages)
+				return (-1);
+			mfn = xkb->xkb_p2m[pfn];
+			if (mfn == MFN_INVALID)
+				return (-1);
+		}
+
+		/*
+		 * If we're windowed then pread() is much faster.
+		 */
+		if (windowed) {
+			offset_t off = xkb_mfn_to_offset(xkb, mfn);
+			int ret;
+
+			if (off == ~1ULL)
+				return (-1);
+
+			off += pageoff;
+
+			ret = pread64(xkb->xkb_fd, outpos, sz, off);
+			if (ret == -1)
+				return (-1);
+			if (ret != sz)
+				return ((size - left) + ret);
+
+			left -= ret;
+		} else {
+			if (xkb_map_mfn(xkb, mfn, &xkb->xkb_map) == NULL)
+				return (-1);
+
+			bcopy(xkb->xkb_map.mm_map + pageoff, outpos, sz);
+
+			left -= sz;
+		}
+	}
+
+	return (size);
+}
+
+static ssize_t
+xkb_pread(xkb_t *xkb, uint64_t addr, void *buf, size_t size)
+{
+	return (xkb_read_helper(xkb, NULL, 1, addr, buf, size));
+}
+
+static ssize_t
+xkb_aread(xkb_t *xkb, uintptr_t addr, void *buf, size_t size, struct as *as)
+{
+	return (xkb_read_helper(xkb, as, 0, addr, buf, size));
+}
+
+static ssize_t
+xkb_read(xkb_t *xkb, uintptr_t addr, void *buf, size_t size)
+{
+	return (xkb_aread(xkb, addr, buf, size, NULL));
+}
+
+static int
+xkb_read_word(xkb_t *xkb, uintptr_t addr, uintptr_t *buf)
+{
+	if (xkb_read(xkb, addr, buf, sizeof (uintptr_t)) !=
+	    sizeof (uintptr_t))
+		return (0);
+	return (1);
+}
+
+static char *
+xkb_readstr(xkb_t *xkb, uintptr_t addr)
+{
+	char *str = mdb_alloc(1024, UM_SLEEP);
+	size_t i;
+
+	for (i = 0; i < 1024; i++) {
+		if (xkb_read(xkb, addr + i, &str[i], 1) != 1) {
+			mdb_free(str, 1024);
+			return (NULL);
+		}
+
+		if (str[i] == '\0')
+			break;
+	}
+
+	if (i == 1024) {
+		mdb_free(str, 1024);
+		return (NULL);
+	}
+
+	return (str);
+}
+
+static offset_t
+xkb_mfn_to_offset(xkb_t *xkb, mfn_t mfn)
+{
+	xen_pfn_t pfn;
+
+	if (mfn > xkb->xkb_max_mfn)
+		return (-1ULL);
+
+	pfn = xkb->xkb_m2p[mfn];
+
+	if (pfn == PFN_INVALID)
+		return (-1ULL);
+
+	return (xkb->xkb_hdr.xch_pages_offset + (PAGE_SIZE * pfn));
+}
+
+static char *
+xkb_map_mfn(xkb_t *xkb, mfn_t mfn, mfn_map_t *mm)
+{
+	int windowed = xkb->xkb_pages == NULL;
+	offset_t off;
+
+	if (mm->mm_mfn == mfn)
+		return (mm->mm_map);
+
+	mm->mm_mfn = mfn;
+
+	if (windowed) {
+		if (mm->mm_map != (char *)MAP_FAILED) {
+			(void) munmap(mm->mm_map, PAGE_SIZE);
+			mm->mm_map = (void *)MAP_FAILED;
+		}
+
+		if ((off = xkb_mfn_to_offset(xkb, mfn)) == (-1ULL))
+			return (NULL);
+
+		mm->mm_map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED,
+		    xkb->xkb_fd, off);
+
+		if (mm->mm_map == (char *)MAP_FAILED)
+			return (NULL);
+	} else {
+		xen_pfn_t pfn;
+
+		mm->mm_map = NULL;
+
+		if (mfn > xkb->xkb_max_mfn)
+			return (NULL);
+
+		pfn = xkb->xkb_m2p[mfn];
+
+		if (pfn == PFN_INVALID)
+			return (NULL);
+
+		mm->mm_map = xkb->xkb_pages + (PAGE_SIZE * pfn);
+	}
+
+	return (mm->mm_map);
+}
+
+static mfn_t
+xkb_pte_to_mfn(mmu_info_t *mmu, char *ptep)
+{
+	/* LINTED - alignment */
+	uint64_t pte = *((uint64_t *)ptep);
+
+	if (mmu->mi_ptesize == 4) {
+		/* LINTED - alignment */
+		pte = *((uint32_t *)ptep);
+	}
+
+	if (!(pte & PT_VALID))
+		return (MFN_INVALID);
+
+	/* XXX: doesn't do large pages */
+	pte &= PT_PADDR;
+
+	return (pte >> PAGE_SHIFT);
+}
+
+/*
+ * Resolve the given VA into an MFN, using the provided mfn as a top-level page
+ * table.
+ */
+static mfn_t
+xkb_va_to_mfn(xkb_t *xkb, uintptr_t va, mfn_t mfn)
+{
+	mmu_info_t *mmu = &xkb->xkb_mmu;
+	size_t level;
+
+	for (level = mmu->mi_max; ; --level) {
+		size_t entry;
+		char *tmp;
+
+		if (xkb_map_mfn(xkb, mfn, &xkb->xkb_pt_map[level]) == NULL)
+			return (MFN_INVALID);
+
+		entry = (va >> mmu->mi_shift[level]) & (mmu->mi_ptes - 1);
+
+		tmp = (char *)xkb->xkb_pt_map[level].mm_map +
+		    entry * mmu->mi_ptesize;
+
+		if ((mfn = xkb_pte_to_mfn(mmu, tmp)) == MFN_INVALID)
+			return (MFN_INVALID);
+
+		if (level == 0)
+			break;
+	}
+
+	return (mfn);
+}
+
+static int
+xkb_read_module(xkb_t *xkb, uintptr_t modulep, struct module *module,
+    uintptr_t *sym_addr, uintptr_t *sym_count, uintptr_t *str_addr)
+{
+	if (xkb_read(xkb, modulep, module, sizeof (struct module)) !=
+	    sizeof (struct module))
+		return (0);
+
+	if (!xkb_read_word(xkb, (uintptr_t)module->symhdr +
+	    offsetof(Shdr, sh_addr), sym_addr))
+		return (0);
+
+	if (!xkb_read_word(xkb, (uintptr_t)module->strhdr +
+	    offsetof(Shdr, sh_addr), str_addr))
+		return (0);
+
+	if (!xkb_read_word(xkb, (uintptr_t)module->symhdr +
+	    offsetof(Shdr, sh_size), sym_count))
+		return (0);
+	*sym_count /= sizeof (Sym);
+
+	return (1);
+}
+
+static int
+xkb_read_modsyms(xkb_t *xkb, char **buf, size_t *sizes, int types,
+    uintptr_t sym_addr, uintptr_t str_addr, uintptr_t sym_count)
+{
+	size_t i;
+
+	for (i = 0; i < sym_count; i++) {
+		Sym sym;
+		char *name;
+		size_t sz;
+		int type = XKB_WALK_GLOBAL;
+
+		if (xkb_read(xkb, sym_addr + i * sizeof (sym), &sym,
+		    sizeof (sym)) != sizeof (sym))
+			return (0);
+
+		if (GELF_ST_BIND(sym.st_info) == STB_LOCAL)
+			type = XKB_WALK_LOCAL;
+
+		name = xkb_readstr(xkb, str_addr + sym.st_name);
+
+		sym.st_shndx = SHN_ABS;
+		sym.st_name = sizes[XKB_WALK_STR];
+
+		sizes[type] += sizeof (sym);
+		sz = strlen(name) + 1;
+		sizes[XKB_WALK_STR] += sz;
+
+		if (buf != NULL) {
+			if (types & type) {
+				bcopy(&sym, *buf, sizeof (sym));
+				*buf += sizeof (sym);
+			}
+			if (types & XKB_WALK_STR) {
+				bcopy(name, *buf, sz);
+				*buf += sz;
+			}
+		}
+
+		mdb_free(name, 1024);
+	}
+
+	return (1);
+}
+
+static int
+xkb_walk_syms(xkb_t *xkb, uintptr_t modhead, char **buf,
+    size_t *sizes, int types)
+{
+	uintptr_t modctl = modhead;
+	uintptr_t modulep;
+	struct module module;
+	uintptr_t sym_count;
+	uintptr_t sym_addr;
+	uintptr_t str_addr;
+	size_t max_iter = 500;
+
+	bzero(sizes, sizeof (*sizes) * (XKB_WALK_STR + 1));
+
+	/*
+	 * empty first symbol
+	 */
+	sizes[XKB_WALK_LOCAL] += sizeof (Sym);
+	sizes[XKB_WALK_STR] += 1;
+
+	if (buf != NULL) {
+		if (types & XKB_WALK_LOCAL) {
+			Sym tmp;
+			bzero(&tmp, sizeof (tmp));
+			bcopy(&tmp, *buf, sizeof (tmp));
+			*buf += sizeof (tmp);
+		}
+		if (types & XKB_WALK_STR) {
+			**buf = '\0';
+			(*buf)++;
+		}
+	}
+
+	for (;;) {
+		if (!xkb_read_word(xkb,
+		    modctl + offsetof(struct modctl, mod_mp), &modulep))
+			return (0);
+
+		if (modulep == NULL)
+			goto next;
+
+		if (!xkb_read_module(xkb, modulep, &module, &sym_addr,
+		    &sym_count, &str_addr))
+			return (0);
+
+		if ((module.flags & KOBJ_NOKSYMS))
+			goto next;
+
+		if (!xkb_read_modsyms(xkb, buf, sizes, types, sym_addr,
+		    str_addr, sym_count))
+			return (0);
+
+next:
+		if (!xkb_read_word(xkb,
+		    modctl + offsetof(struct modctl, mod_next), &modctl))
+			return (0);
+
+		if (modctl == modhead)
+			break;
+		/*
+		 * Try and prevent us looping forever if we have a broken list.
+		 */
+		if (--max_iter == 0)
+			break;
+	}
+
+	return (1);
+}
+
+/*
+ * Userspace equivalent of ksyms_snapshot().  Since we don't have a namelist
+ * file for hypervisor images, we fabricate one here using code similar
+ * to that of /dev/ksyms.
+ */
+static int
+xkb_build_ksyms(xkb_t *xkb)
+{
+	debug_info_t *info = &xkb->xkb_info;
+	size_t sizes[XKB_WALK_STR + 1];
+	xkb_namelist_t *hdr;
+	char *buf;
+	struct modctl modules;
+	uintptr_t module;
+	Shdr *shp;
+
+	if (xkb_read(xkb, info->di_modules, &modules,
+	    sizeof (struct modctl)) != sizeof (struct modctl))
+		return (0);
+
+	module = (uintptr_t)modules.mod_mp;
+
+	if (!xkb_walk_syms(xkb, info->di_modules, NULL, sizes,
+	    XKB_WALK_LOCAL | XKB_WALK_GLOBAL | XKB_WALK_STR))
+		return (0);
+
+	xkb->xkb_namesize = sizeof (xkb_namelist_t);
+	xkb->xkb_namesize += sizes[XKB_WALK_LOCAL];
+	xkb->xkb_namesize += sizes[XKB_WALK_GLOBAL];
+	xkb->xkb_namesize += sizes[XKB_WALK_STR];
+
+	if ((xkb->xkb_namelist = mdb_zalloc(xkb->xkb_namesize, UM_SLEEP))
+	    == NULL)
+		return (0);
+
+	/* LINTED - alignment */
+	hdr = (xkb_namelist_t *)xkb->xkb_namelist;
+
+	if (xkb_read(xkb, module + offsetof(struct module, hdr),
+	    &hdr->kh_elf_hdr, sizeof (Ehdr)) != sizeof (Ehdr))
+		return (0);
+
+	hdr->kh_elf_hdr.e_phoff = offsetof(xkb_namelist_t, kh_text_phdr);
+	hdr->kh_elf_hdr.e_shoff = offsetof(xkb_namelist_t, kh_shdr);
+	hdr->kh_elf_hdr.e_phnum = 2;
+	hdr->kh_elf_hdr.e_shnum = XKB_SHDR_NUM;
+	hdr->kh_elf_hdr.e_shstrndx = XKB_SHDR_SHSTRTAB;
+
+	hdr->kh_text_phdr.p_type = PT_LOAD;
+	hdr->kh_text_phdr.p_vaddr = (Addr)info->di_s_text;
+	hdr->kh_text_phdr.p_memsz = (Word)(info->di_e_text - info->di_s_text);
+	hdr->kh_text_phdr.p_flags = PF_R | PF_X;
+
+	hdr->kh_data_phdr.p_type = PT_LOAD;
+	hdr->kh_data_phdr.p_vaddr = (Addr)info->di_s_data;
+	hdr->kh_data_phdr.p_memsz = (Word)(info->di_e_data - info->di_s_data);
+	hdr->kh_data_phdr.p_flags = PF_R | PF_W | PF_X;
+
+	shp = &hdr->kh_shdr[XKB_SHDR_SYMTAB];
+	shp->sh_name = 1;	/* xkb_shstrtab[1] = ".symtab" */
+	shp->sh_type = SHT_SYMTAB;
+	shp->sh_offset = sizeof (xkb_namelist_t);
+	shp->sh_size = sizes[XKB_WALK_LOCAL] + sizes[XKB_WALK_GLOBAL];
+	shp->sh_link = XKB_SHDR_STRTAB;
+	shp->sh_info = sizes[XKB_WALK_LOCAL] / sizeof (Sym);
+	shp->sh_addralign = sizeof (Addr);
+	shp->sh_entsize = sizeof (Sym);
+	shp->sh_addr = (Addr)(xkb->xkb_namelist + shp->sh_offset);
+
+
+	shp = &hdr->kh_shdr[XKB_SHDR_STRTAB];
+	shp->sh_name = 9;	/* xkb_shstrtab[9] = ".strtab" */
+	shp->sh_type = SHT_STRTAB;
+	shp->sh_offset = sizeof (xkb_namelist_t) +
+	    sizes[XKB_WALK_LOCAL] + sizes[XKB_WALK_GLOBAL];
+	shp->sh_size = sizes[XKB_WALK_STR];
+	shp->sh_addralign = 1;
+	shp->sh_addr = (Addr)(xkb->xkb_namelist + shp->sh_offset);
+
+
+	shp = &hdr->kh_shdr[XKB_SHDR_SHSTRTAB];
+	shp->sh_name = 17;	/* xkb_shstrtab[17] = ".shstrtab" */
+	shp->sh_type = SHT_STRTAB;
+	shp->sh_offset = offsetof(xkb_namelist_t, shstrings);
+	shp->sh_size = sizeof (xkb_shstrtab);
+	shp->sh_addralign = 1;
+	shp->sh_addr = (Addr)(xkb->xkb_namelist + shp->sh_offset);
+
+	bcopy(xkb_shstrtab, hdr->shstrings, sizeof (xkb_shstrtab));
+
+	buf = xkb->xkb_namelist + sizeof (xkb_namelist_t);
+
+	if (!xkb_walk_syms(xkb, info->di_modules, &buf, sizes,
+	    XKB_WALK_LOCAL))
+		return (0);
+	if (!xkb_walk_syms(xkb, info->di_modules, &buf, sizes,
+	    XKB_WALK_GLOBAL))
+		return (0);
+	if (!xkb_walk_syms(xkb, info->di_modules, &buf, sizes,
+	    XKB_WALK_STR))
+		return (0);
+
+	return (1);
+}
+
+/*ARGSUSED*/
+xkb_t *
+xkb_open(const char *namelist, const char *corefile, const char *swapfile,
+    int flag, const char *err)
+{
+	struct stat64 corestat;
+	uintptr_t debug_va = DEF_DEBUG_INFO_VA;
+	size_t sz;
+	size_t i;
+	xkb_t *xkb = NULL;
+
+	if (stat64(corefile, &corestat) == -1)
+		return (xkb_fail(xkb, "cannot stat %s", corefile));
+
+	if (flag != O_RDONLY)
+		return (xkb_fail(xkb, "invalid open flags"));
+
+	xkb = mdb_zalloc(sizeof (*xkb), UM_SLEEP);
+
+	for (i = 0; i < 4; i++)
+		xkb->xkb_pt_map[i].mm_map = (char *)MAP_FAILED;
+
+	xkb->xkb_map.mm_map = (char *)MAP_FAILED;
+	xkb->xkb_p2m_buf = (char *)MAP_FAILED;
+
+	xkb->xkb_path = strdup(corefile);
+
+	if ((xkb->xkb_fd = open64(corefile, O_RDONLY)) == -1)
+		return (xkb_fail(xkb, "cannot open %s", corefile));
+
+	if (pread64(xkb->xkb_fd, &xkb->xkb_hdr, sizeof (xkb->xkb_hdr), 0) !=
+	    sizeof (xkb->xkb_hdr))
+		return (xkb_fail(xkb, "invalid dump file"));
+
+	if (xkb->xkb_hdr.xch_magic == XC_CORE_MAGIC_HVM)
+		return (xkb_fail(xkb, "cannot process HVM images"));
+
+	if (xkb->xkb_hdr.xch_magic != XC_CORE_MAGIC) {
+		return (xkb_fail(xkb, "invalid magic %d",
+		    xkb->xkb_hdr.xch_magic));
+	}
+
+	sz = xkb->xkb_hdr.xch_nr_vcpus * sizeof (*xkb->xkb_ctxts);
+
+	xkb->xkb_ctxts = mdb_alloc(sz, UM_SLEEP);
+
+	if (pread64(xkb->xkb_fd, xkb->xkb_ctxts, sz,
+	    xkb->xkb_hdr.xch_ctxt_offset) != sz)
+		return (xkb_fail(xkb, "cannot read VCPU contexts"));
+
+	if (xkb->xkb_ctxts[0].flags & VGCF_HVM_GUEST)
+		return (xkb_fail(xkb, "cannot process HVM images"));
+
+	/*
+	 * Try to map all the data pages. If we can't, fall back to the
+	 * window/pread() approach, which is significantly slower.
+	 */
+	xkb->xkb_pages = mmap(NULL, PAGE_SIZE * xkb->xkb_hdr.xch_nr_pages,
+	    PROT_READ, MAP_SHARED, xkb->xkb_fd,
+	    xkb->xkb_hdr.xch_pages_offset);
+
+	if (xkb->xkb_pages == (char *)MAP_FAILED)
+		xkb->xkb_pages = NULL;
+
+#if defined(__amd64)
+	xkb->xkb_mmu.mi_max = 3;
+	xkb->xkb_mmu.mi_shift[0] = 12;
+	xkb->xkb_mmu.mi_shift[1] = 21;
+	xkb->xkb_mmu.mi_shift[2] = 30;
+	xkb->xkb_mmu.mi_shift[3] = 39;
+	xkb->xkb_mmu.mi_ptes = 512;
+	xkb->xkb_mmu.mi_ptesize = 8;
+#elif defined(__i386)
+	/*
+	 * We'd like to adapt for correctness' sake, but we have no way of
+	 * detecting a PAE guest, since cr4 writes are disallowed.
+	 */
+	debug_va = PAE_DEBUG_INFO_VA;
+	xkb->xkb_mmu.mi_max = 2;
+	xkb->xkb_mmu.mi_shift[0] = 12;
+	xkb->xkb_mmu.mi_shift[1] = 21;
+	xkb->xkb_mmu.mi_shift[2] = 30;
+	xkb->xkb_mmu.mi_ptes = 512;
+	xkb->xkb_mmu.mi_ptesize = 8;
+#endif
+
+	if (!xkb_map_p2m(xkb))
+		return (NULL);
+
+	if (!xkb_build_m2p(xkb))
+		return (NULL);
+
+	if (xkb_read(xkb, debug_va, &xkb->xkb_info,
+	    sizeof (xkb->xkb_info)) != sizeof (xkb->xkb_info))
+		return (xkb_fail(xkb, "cannot read debug_info"));
+
+	if (xkb->xkb_info.di_magic != DEBUG_INFO_MAGIC) {
+		return (xkb_fail(xkb, "invalid debug info magic %d",
+		    xkb->xkb_info.di_magic));
+	}
+
+	if (xkb->xkb_info.di_version != DEBUG_INFO_VERSION) {
+		return (xkb_fail(xkb, "unknown debug info version %d",
+		    xkb->xkb_info.di_version));
+	}
+
+	if (!xkb_build_ksyms(xkb))
+		return (xkb_fail(xkb, "cannot construct namelist"));
+
+	return (xkb);
+}
+
+int
+xkb_close(xkb_t *xkb)
+{
+	size_t sz;
+	size_t i;
+
+	if (xkb == NULL)
+		return (0);
+
+	if (xkb->xkb_m2p != NULL) {
+		mdb_free(xkb->xkb_m2p,
+		    (xkb->xkb_max_mfn + 1) * sizeof (xen_pfn_t));
+	}
+
+	sz = sizeof (xen_pfn_t) * xkb->xkb_hdr.xch_nr_pages;
+
+	if (xkb->xkb_p2m_buf != (xen_pfn_t *)MAP_FAILED)
+		(void) munmap(xkb->xkb_p2m_buf, sz);
+
+	if (xkb->xkb_pages != NULL) {
+		(void) munmap((void *)xkb->xkb_pages,
+		    PAGE_SIZE * xkb->xkb_hdr.xch_nr_pages);
+	} else {
+		for (i = 0; i < 4; i++) {
+			char *addr = xkb->xkb_pt_map[i].mm_map;
+			if (addr != (char *)MAP_FAILED)
+				(void) munmap((void *)addr, PAGE_SIZE);
+		}
+		if (xkb->xkb_map.mm_map != (char *)MAP_FAILED) {
+			(void) munmap((void *)xkb->xkb_map.mm_map,
+			    PAGE_SIZE);
+		}
+	}
+
+	if (xkb->xkb_ctxts != NULL) {
+		mdb_free(xkb->xkb_ctxts, sizeof (struct vcpu_guest_context) *
+		    xkb->xkb_hdr.xch_nr_vcpus);
+	}
+
+	if (xkb->xkb_namelist != NULL)
+		mdb_free(xkb->xkb_namelist, xkb->xkb_namesize);
+
+	if (xkb->xkb_fd != -1)
+		(void) close(xkb->xkb_fd);
+
+	free(xkb->xkb_path);
+
+	mdb_free(xkb, sizeof (*xkb));
+	return (0);
+}
+
+/*ARGSUSED*/
+static mdb_io_t *
+xkb_sym_io(xkb_t *xkb, const char *symfile)
+{
+	mdb_io_t *io = mdb_memio_create(xkb->xkb_namelist, xkb->xkb_namesize);
+
+	if (io == NULL)
+		mdb_warn("failed to create namelist from %s", xkb->xkb_path);
+
+	return (io);
+}
+
+uint64_t
+xkb_vtop(xkb_t *xkb, struct as *as, uintptr_t addr)
+{
+	mfn_t tlmfn = xen_cr3_to_pfn(xkb->xkb_ctxts[0].ctrlreg[3]);
+	mfn_t mfn;
+
+	if (as != NULL && (tlmfn = xkb_as_to_mfn(xkb, as)) == MFN_INVALID)
+		return (-1ULL);
+
+	mfn = xkb_va_to_mfn(xkb, addr, tlmfn);
+
+	if (mfn == MFN_INVALID || mfn > xkb->xkb_max_mfn)
+		return (-1ULL);
+
+	return (((uint64_t)xkb->xkb_m2p[mfn] << PAGE_SHIFT)
+	    | PAGE_OFFSET(addr));
+}
+
+static int
+xkb_getmregs(xkb_t *xkb, uint_t cpu, struct privmregs *mregs)
+{
+	struct vcpu_guest_context *vcpu;
+	struct cpu_user_regs *ur;
+	struct regs *regs;
+
+	if (cpu >= xkb->xkb_hdr.xch_nr_vcpus) {
+		errno = EINVAL;
+		return (-1);
+	}
+
+	bzero(mregs, sizeof (*mregs));
+
+	vcpu = &xkb->xkb_ctxts[cpu];
+	ur = &vcpu->user_regs;
+	regs = &mregs->pm_gregs;
+
+	regs->r_ss = ur->ss;
+	regs->r_cs = ur->cs;
+	regs->r_ds = ur->ds;
+	regs->r_es = ur->es;
+	regs->r_fs = ur->fs;
+	regs->r_gs = ur->gs;
+	regs->r_trapno = ur->entry_vector;
+	regs->r_err = ur->error_code;
+#ifdef __amd64
+	regs->r_savfp = ur->rbp;
+	regs->r_savpc = ur->rip;
+	regs->r_rdi = ur->rdi;
+	regs->r_rsi = ur->rsi;
+	regs->r_rdx = ur->rdx;
+	regs->r_rcx = ur->rcx;
+	regs->r_r8 = ur->r8;
+	regs->r_r9 = ur->r9;
+	regs->r_rax = ur->rax;
+	regs->r_rbx = ur->rbx;
+	regs->r_rbp = ur->rbp;
+	regs->r_r10 = ur->r10;
+	regs->r_r11 = ur->r11;
+	regs->r_r12 = ur->r12;
+	regs->r_r13 = ur->r13;
+	regs->r_r14 = ur->r14;
+	regs->r_r15 = ur->r15;
+	regs->r_rip = ur->rip;
+	regs->r_rfl = ur->rflags;
+	regs->r_rsp = ur->rsp;
+#else
+	regs->r_savfp = ur->ebp;
+	regs->r_savpc = ur->eip;
+	regs->r_edi = ur->edi;
+	regs->r_esi = ur->esi;
+	regs->r_ebp = ur->ebp;
+	regs->r_esp = ur->esp;
+	regs->r_ebx = ur->ebx;
+	regs->r_edx = ur->edx;
+	regs->r_ecx = ur->ecx;
+	regs->r_eax = ur->eax;
+	regs->r_eip = ur->eip;
+	regs->r_efl = ur->eflags;
+	regs->r_uesp = 0;
+#endif
+
+	bcopy(&vcpu->ctrlreg, &mregs->pm_cr, 8 * sizeof (ulong_t));
+	bcopy(&vcpu->debugreg, &mregs->pm_dr, 8 * sizeof (ulong_t));
+
+	mregs->pm_flags = PM_GREGS | PM_CRREGS | PM_DRREGS;
+
+	return (0);
+}
+
+static mdb_kb_ops_t xpv_kb_ops = {
+	.kb_open = (void *(*)())xkb_open,
+	.kb_close = (int (*)())xkb_close,
+	.kb_sym_io = (mdb_io_t *(*)())xkb_sym_io,
+	.kb_kread = (ssize_t (*)())xkb_read,
+	.kb_kwrite = (ssize_t (*)())mdb_tgt_notsup,
+	.kb_aread = (ssize_t (*)())xkb_aread,
+	.kb_awrite = (ssize_t (*)())mdb_tgt_notsup,
+	.kb_pread = (ssize_t (*)())xkb_pread,
+	.kb_pwrite = (ssize_t (*)())mdb_tgt_notsup,
+	.kb_vtop = (uint64_t (*)())xkb_vtop,
+	.kb_getmregs = (int (*)())xkb_getmregs
+};
+
+mdb_kb_ops_t *
+mdb_kb_ops(void)
+{
+	return (&xpv_kb_ops);
+}
+
+static const mdb_dcmd_t dcmds[] = { NULL, };
+static const mdb_walker_t walkers[] = { NULL, };
+static const mdb_modinfo_t modinfo = { MDB_API_VERSION, dcmds, walkers };
+
+const mdb_modinfo_t *
+_mdb_init(void)
+{
+	return (&modinfo);
+}
+
+void
+_mdb_fini(void)
+{
+}
--- a/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -198,8 +197,8 @@
 static int
 kt_regs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
-	kt_data_t *kt = mdb.m_target->t_data;
-	const kreg_t *kregs = &kt->k_regs->kregs[0];
+	mdb_tgt_gregset_t *k_regs = (mdb_tgt_gregset_t *)addr;
+	const kreg_t *kregs = &k_regs->kregs[0];
 
 	if (argc != 0 || (flags & DCMD_ADDRSPEC))
 		return (DCMD_USAGE);
@@ -361,6 +360,14 @@
 	return (kt_stack_common(addr, flags, argc, argv, kt_framev));
 }
 
+/*ARGSUSED*/
+static int
+kt_notsup(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	errno = EMDB_TGTNOTSUP;
+	return (DCMD_ERR);
+}
+
 const mdb_tgt_ops_t kt_sparcv7_ops = {
 	kt_setflags,				/* t_setflags */
 	kt_setcontext,				/* t_setcontext */
@@ -438,6 +445,8 @@
 	kt->k_dcmd_stack = kt_stack;
 	kt->k_dcmd_stackv = kt_stackv;
 	kt->k_dcmd_stackr = kt_stackv;
+	kt->k_dcmd_cpustack = kt_notsup;
+	kt->k_dcmd_cpuregs = kt_notsup;
 
 	t->t_ops = &kt_sparcv7_ops;
 	kregs = kt->k_regs->kregs;
--- a/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -116,13 +115,7 @@
 static int
 kt_regs(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 {
-	kt_data_t *kt = mdb.m_target->t_data;
-
-	if (argc != 0 || (flags & DCMD_ADDRSPEC))
-		return (DCMD_USAGE);
-
-	mdb_v9printregs(kt->k_regs);
-
+	mdb_v9printregs((const mdb_tgt_gregset_t *)addr);
 	return (DCMD_OK);
 }
 
@@ -180,6 +173,14 @@
 	    PC_FAKE));
 }
 
+/*ARGSUSED*/
+static int
+kt_notsup(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
+{
+	errno = EMDB_TGTNOTSUP;
+	return (DCMD_ERR);
+}
+
 const mdb_tgt_ops_t kt_sparcv9_ops = {
 	kt_setflags,				/* t_setflags */
 	kt_setcontext,				/* t_setcontext */
@@ -260,6 +261,8 @@
 	kt->k_dcmd_stack = kt_stack;
 	kt->k_dcmd_stackv = kt_stackv;
 	kt->k_dcmd_stackr = kt_stackr;
+	kt->k_dcmd_cpustack = kt_notsup;
+	kt->k_dcmd_cpuregs = kt_notsup;
 
 	t->t_ops = &kt_sparcv9_ops;
 	kregs = kt->k_regs->kregs;
--- a/usr/src/cmd/netadm/iu.ap.sh	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/netadm/iu.ap.sh	Tue Sep 18 15:46:43 2007 -0700
@@ -37,6 +37,7 @@
 
 	wc	0	0	ldterm ttcompat
 	asy	-1	0	ldterm ttcompat
+	xencons	0	0	ldterm ttcompat
 	ptsl	0	47	ldterm ttcompat
 	usbsacm -1	0	ldterm ttcompat
 	usbser_edge	-1	0	ldterm ttcompat
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL	Tue Sep 18 15:46:43 2007 -0700
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -45,7 +45,7 @@
 	    ' -I/usr/platform/sun4v/include';
 } elsif ($arch eq 'i386') {
 	$includes .= '-I/usr/platform/i86pc/include' .
-	    ' -I/usr/platform/i86xen/include';
+	    ' -I/usr/platform/i86xpv/include';
 } else {
 	die("Unknown architecture $arch\n");
 }
--- a/usr/src/cmd/svc/milestone/net-physical	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/cmd/svc/milestone/net-physical	Tue Sep 18 15:46:43 2007 -0700
@@ -294,7 +294,7 @@
 		echo "starting DHCP on primary interface $primary"
 		/sbin/ifconfig $primary auto-dhcp primary $cmdline
 		# Exit code 4 means ifconfig timed out waiting for dhcpagent
-		[ $? != 0 ]  && [ $? != 4 ] && i4d_fail="$i4d_fail $primary"
+		[ $? != 0 ] && [ $? != 4 ] && i4d_fail="$i4d_fail $primary"
 	fi
 
 	set -- $interface_names
@@ -346,6 +346,69 @@
 fi
 
 #
+# If we get here and were not asked to plumb any IPv4 interfaces, look
+# for boot properties that direct us.
+#
+# - The "network-interface" property is required and indicates the
+#   interface name.
+# - The "xpv-hcp" property, if present, is used by the hypervisor
+#   tools to indicate how the specified interface should be configured.
+#   Permitted values are "dhcp" and "off", where "off" indicates static
+#   IP configuration.
+#
+# In the case where "xpv-hcp" is set to "dhcp", no further properties
+# are required or examined.
+#
+# In the case where "xpv-hcp" is not present or set to "off", the
+# "host-ip" and "subnet-mask" properties are used to configure
+# the specified interface.  The "router-ip" property, if present,
+# is used to add a default route.
+#
+nic="`/sbin/devprop network-interface`"
+if smf_is_globalzone && [ -z "$inet_list" ] && [ -n "$nic" ]; then
+	hcp="`/sbin/devprop xpv-hcp`"
+	case "$hcp" in
+	"dhcp")
+		/sbin/ifconfig $nic plumb 2>/dev/null
+		[ -n "`/sbin/ifconfig $nic 2>/dev/null`" ] && (
+			# The interface is successfully plumbed, so
+			# modify "inet_list" to force the exit code
+			# checks to work.
+			inet_list=$nic;
+			# Given that this is the only IPv4 interface,
+			# we assert that it is primary.
+			echo "starting DHCP on primary interface $primary";
+			/sbin/ifconfig $nic auto-dhcp primary;
+			# Exit code 4 means ifconfig timed out waiting
+			# for dhcpagent
+			[ $? != 0 ] && [ $? != 4 ] && \
+			    i4d_fail="$i4d_fail $nic";
+		)
+		;;
+
+	"off"|"")
+		/sbin/devprop host-ip subnet-mask router-ip | (
+			read ip;
+			read mask;
+			read router;
+			[ -n "$ip" ] && [ -n "$mask" ] && \
+				/sbin/ifconfig $nic plumb 2>/dev/null
+			[ -n "`/sbin/ifconfig $nic 2>/dev/null`" ] && (
+				# The interface is successfully
+				# plumbed, so modify "inet_list" to
+				# force the exit code checks to work.
+				inet_list=$nic;
+				/sbin/ifconfig $nic  inet $ip \
+				    netmask $mask broadcast + up 2>/dev/null;
+				[ -n "$router" ] && route add \
+				    default $router 2>/dev/null;
+			)
+		)
+		;;
+	esac
+fi
+
+#
 # We tell smf this service is online if any of the following is true:
 # - no interfaces were configured for plumbing and no DHCP failures
 # - any non-loopback IPv4 interfaces are up and have a non-zero address
@@ -363,7 +426,7 @@
 if [ -n "`/sbin/ifconfig -a4u`" ]; then
     	/sbin/ifconfig -a4u | while read intf addr rest; do
 		[ $intf = inet ] && [ $addr != 127.0.0.1 ] &&
-		[ $addr != 0.0.0.0 ] && exit 0
+		[ $addr != 0.0.0.0 ] && exit $SMF_EXIT_OK
 	done && exit $SMF_EXIT_OK
 fi
 
@@ -373,7 +436,7 @@
 # Any non-loopback IPv6 interfaces up?
 if [ -n "`/sbin/ifconfig -au6`" ]; then
 	/sbin/ifconfig -au6 | while read intf addr rest; do
-		[ $intf = inet6 ] && [ $addr != ::1/128 ] && exit 0
+		[ $intf = inet6 ] && [ $addr != ::1/128 ] && exit $SMF_EXIT_OK
 	done && exit $SMF_EXIT_OK
 fi
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/vna/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+PROG		= vna
+
+include		../Makefile.cmd
+
+LDLIBS		+= -ldladm -lsocket
+
+.KEEP_STATE:
+
+all:		$(PROG)
+
+install:	all $(ROOTLIBPROG)
+
+clean:
+
+lint:		lint_PROG
+
+include		../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/vna/vna.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,182 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * This utility constitutes a private interface - it will be removed
+ * in a future release of Solaris.  Neither users nor other software
+ * components can depend on the actions or existence of the utility.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <sys/types.h>
+#include <sys/ethernet.h>
+#include <libdlvnic.h>
+
+/*ARGSUSED*/
+static dladm_status_t
+v_print(void *arg, dladm_vnic_attr_sys_t *attr)
+{
+	if (attr->va_mac_len != ETHERADDRL)
+		return (DLADM_STATUS_OK);
+
+	(void) printf("%d\t%s\t%s\n", attr->va_vnic_id, attr->va_dev_name,
+	    ether_ntoa((struct ether_addr *)(attr->va_mac_addr)));
+
+	return (DLADM_STATUS_OK);
+}
+
+static int
+v_list(void)
+{
+	dladm_status_t status;
+
+	status = dladm_vnic_walk_sys(v_print, NULL);
+
+	if (status != DLADM_STATUS_OK)
+		return (-1);
+
+	return (0);
+}
+
+static dladm_status_t
+v_find(void *arg, dladm_vnic_attr_sys_t *attr)
+{
+	dladm_vnic_attr_sys_t *specp = arg;
+
+	if (strncmp(attr->va_dev_name, specp->va_dev_name,
+	    strlen(attr->va_dev_name)) != 0)
+		return (DLADM_STATUS_OK);
+
+	if (attr->va_mac_len != specp->va_mac_len)
+		return (DLADM_STATUS_OK);
+
+	if (memcmp(attr->va_mac_addr, specp->va_mac_addr,
+	    attr->va_mac_len) != 0)
+		return (DLADM_STATUS_OK);
+
+	specp->va_vnic_id = attr->va_vnic_id;
+
+	return (DLADM_STATUS_EXIST);
+}
+
+static int
+v_add(char *dev, char *addr)
+{
+	struct ether_addr *ea;
+	dladm_vnic_attr_sys_t spec;
+	uint_t vid;
+
+	ea = ether_aton(addr);
+	if (ea == NULL) {
+		(void) fprintf(stderr, "Invalid ethernet address: %s\n",
+		    addr);
+		return (-1);
+	}
+
+	/*
+	 * If a VNIC already exists over the specified device
+	 * with this MAC address, use it.
+	 */
+	(void) strncpy(spec.va_dev_name, dev, sizeof (spec.va_dev_name) - 1);
+	spec.va_mac_len = ETHERADDRL;
+	(void) memcpy(spec.va_mac_addr, (uchar_t *)ea->ether_addr_octet,
+	    spec.va_mac_len);
+
+	if (dladm_vnic_walk_sys(v_find, &spec) == DLADM_STATUS_OK) {
+		dladm_status_t status;
+
+		/*
+		 * None found, so create.
+		 */
+		status = dladm_vnic_create(0, dev, VNIC_MAC_ADDR_TYPE_FIXED,
+		    (uchar_t *)ea->ether_addr_octet, ETHERADDRL,
+		    &vid, DLADM_VNIC_OPT_TEMP | DLADM_VNIC_OPT_AUTOID);
+		if (status != DLADM_STATUS_OK) {
+			char buf[DLADM_STRSIZE];
+
+			(void) fprintf(stderr, "dladm_vnic_create: %s\n",
+			    dladm_status2str(status, buf));
+			return (-1);
+		}
+	} else {
+		vid = spec.va_vnic_id;
+	}
+
+	(void) printf("%d\n", vid);
+
+	return (0);
+}
+
+static int
+v_remove(char *vdev)
+{
+	uint_t vid;
+	dladm_status_t status;
+
+	vid = atoi(vdev);
+
+	status = dladm_vnic_delete(vid, DLADM_VNIC_OPT_TEMP);
+
+	if (status != DLADM_STATUS_OK) {
+		char buf[DLADM_STRSIZE];
+
+		(void) fprintf(stderr, "dladm_vnic_delete: %s\n",
+		    dladm_status2str(status, buf));
+		return (-1);
+	}
+
+	return (0);
+}
+
+int
+main(int argc, char *argv[])
+{
+	switch (argc) {
+	case 1:
+		/* List operation. */
+		return (v_list());
+		/* NOTREACHED */
+	case 2:
+		/* Remove operation. */
+		return (v_remove(argv[1]));
+		/* NOTREACHED */
+	case 3:
+		/* Add operation. */
+		return (v_add(argv[1], argv[2]));
+		/* NOTREACHED */
+	default:
+		(void) fprintf(stderr, "Incorrect number of arguments - "
+		    "must have 0, 1 or 2.\n");
+		return (-1);
+		/* NOTREACHED */
+	}
+
+	/* NOTREACHED */
+}
--- a/usr/src/common/util/memset.h	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef	_COMMON_UTIL_MEMSET_H
-#define	_COMMON_UTIL_MEMSET_H
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void *memset(void *, int, size_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _COMMON_UTIL_MEMSET_H */
--- a/usr/src/grub/grub-0.95/stage2/fsys_zfs.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/grub/grub-0.95/stage2/fsys_zfs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -59,7 +59,8 @@
 /*
  * Global Memory addresses to store MOS and DNODE data
  */
-#define	MOS		((dnode_phys_t *)(RAW_ADDR(0x100000)))
+#define	MOS		((dnode_phys_t *)\
+	(RAW_ADDR ((mbi.mem_upper << 10) + 0x100000) - ZFS_SCRATCH_SIZE))
 #define	DNODE		(MOS+1) /* move sizeof(dnode_phys_t) bytes */
 #define	ZFS_SCRATCH	((char *)(DNODE+1))
 
--- a/usr/src/grub/grub-0.95/stage2/gunzip.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/grub/grub-0.95/stage2/gunzip.c	Tue Sep 18 15:46:43 2007 -0700
@@ -174,6 +174,7 @@
 reset_linalloc (void)
 {
   linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000);
+  linalloc_topaddr -= ZFS_SCRATCH_SIZE;
 }
 
 
--- a/usr/src/grub/grub-0.95/stage2/shared.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/grub/grub-0.95/stage2/shared.h	Tue Sep 18 15:46:43 2007 -0700
@@ -44,6 +44,9 @@
 # define RAW_SEG(x) (x)
 #endif
 
+/* ZFS will use the top 4 Meg of physical memory (below 4Gig) for sratch */
+#define ZFS_SCRATCH_SIZE 0x400000
+
 #define	MAXNAMELEN	256
 #define MIN(x, y) ((x) < (y) ? (x) : (y))
 
--- a/usr/src/lib/libc/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libc/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -54,13 +54,16 @@
 #
 VAR1 =		hwcap1
 VAR2 =		hwcap2
+VAR3 =		hwcap3
 
 VAR1_DYNLIB =	$(LIBRARY:%.a=%_$(VAR1).so$(VERS))
 VAR1_BLDDIR =	$(MACH)_$(VAR1)
 VAR2_DYNLIB =	$(LIBRARY:%.a=%_$(VAR2).so$(VERS))
 VAR2_BLDDIR =	$(MACH)_$(VAR2)
+VAR3_DYNLIB =	$(LIBRARY:%.a=%_$(VAR3).so$(VERS))
+VAR3_BLDDIR =	$(MACH)_$(VAR3)
 
-i386_VARIANTS=	$(VAR1) $(VAR2)
+i386_VARIANTS=	$(VAR1) $(VAR2) $(VAR3)
 sparc_VARIANTS=
 
 i386_ETC=	$(MACH)/etc
@@ -96,6 +99,7 @@
 $(ROOTVARIANTDIR)			:= FILEMODE= 755
 $(ROOTVARIANTDIR)/$(VAR1_DYNLIB)	:= FILEMODE= 755
 $(ROOTVARIANTDIR)/$(VAR2_DYNLIB)	:= FILEMODE= 755
+$(ROOTVARIANTDIR)/$(VAR3_DYNLIB)	:= FILEMODE= 755
 
 .KEEP_STATE:
 
@@ -168,6 +172,8 @@
 	$(INS.file)
 $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR2_BLDDIR)/%
 	$(INS.file)
+$(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR3_BLDDIR)/%
+	$(INS.file)
 
 # install rule for lint library target
 $(ROOTFS_LINTDIR)/%: port/%
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/libc/i386_hwcap3/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,48 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# lib/libc/i386_hwcap3/Makefile
+#
+
+LIBCBASE=	../i386
+
+LIBRARY=	libc_hwcap3.a
+
+EXTN_CPPFLAGS=	-D_CMOV_INSN -D_SSE_INSN -D_MMX_INSN
+EXTN_CFLAGS=	-xtarget=pentium_pro
+EXTN_DYNFLAGS=	-M mapfile
+
+# Defining this means build targets will first try to use source from this
+# directory before falling back to unoptimized i386 source.
+#
+# Currently, the only differences between hwcap3 and hwcap1 is the kernel entry
+# method (hwcap1 uses "sysenter" and hwcap2 uses "syscall" while hwcap3 uses
+# "int 0x91".  So for now, build libc_hwcap3 with the optimized sources for
+# libc_hwcap1.
+#
+OPTIMIZED_LIBCBASE=../i386_hwcap1
+
+include ../i386/Makefile.com
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/libc/i386_hwcap3/mapfile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,26 @@
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+hwcap_1 = fpu cmov mmx sse;
--- a/usr/src/lib/libdladm/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -28,7 +28,7 @@
 include $(SRC)/lib/Makefile.lib
 
 HDRS =		libdladm.h libdladm_impl.h libdllink.h libdlaggr.h	\
-		libdlwlan.h libdlwlan_impl.h
+		libdlwlan.h libdlwlan_impl.h libdlvnic.h
 HDRDIR =	common
 
 SUBDIRS =	$(MACH)
@@ -36,7 +36,8 @@
 
 POFILE =	libdladm.po
 MSGFILES =	common/libdladm.c common/linkprop.c common/secobj.c	\
-		common/libdllink.c common/libdlaggr.c common/libdlwlan.c
+		common/libdllink.c common/libdlaggr.c	\
+		common/libdlwlan.c common/libdlvnic.c
 XGETFLAGS =     -a -x libdladm.xcl
 
 all :=		TARGET = all
--- a/usr/src/lib/libdladm/Makefile.com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/Makefile.com	Tue Sep 18 15:46:43 2007 -0700
@@ -27,7 +27,8 @@
 
 LIBRARY = libdladm.a
 VERS    = .1
-OBJECTS = libdladm.o secobj.o linkprop.o libdllink.o libdlaggr.o libdlwlan.o
+OBJECTS = libdladm.o secobj.o linkprop.o libdllink.o libdlaggr.o \
+	libdlwlan.o libdlvnic.o
 
 include ../../Makefile.lib
 
--- a/usr/src/lib/libdladm/common/libdladm.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/common/libdladm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -127,6 +127,25 @@
 	case DLADM_STATUS_KEYINVAL:
 		s = "invalid key";
 		break;
+	case DLADM_STATUS_INVALIDID:
+		s = "invalid VNIC id";
+		break;
+	case DLADM_STATUS_INVALIDMACADDRLEN:
+		s = "invalid MAC address length";
+		break;
+	case DLADM_STATUS_INVALIDMACADDRTYPE:
+		s = "invalid MAC address type";
+		break;
+	case DLADM_STATUS_AUTOIDNOTEMP:
+		s = "automatic VNIC ID assigment not supported with"
+		    "persistant operations";
+		break;
+	case DLADM_STATUS_AUTOIDNOAVAILABLEID:
+		s = "no available VNIC ID for automatic assignment";
+		break;
+	case DLADM_STATUS_BUSY:
+		s = "device busy";
+		break;
 	default:
 		s = "<unknown error>";
 		break;
@@ -160,6 +179,8 @@
 		return (DLADM_STATUS_DENIED);
 	case EIO:
 		return (DLADM_STATUS_IOERR);
+	case EBUSY:
+		return (DLADM_STATUS_BUSY);
 	default:
 		return (DLADM_STATUS_FAILED);
 	}
--- a/usr/src/lib/libdladm/common/libdladm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/common/libdladm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -65,7 +65,13 @@
 	DLADM_STATUS_NOTCONN,
 	DLADM_STATUS_REPOSITORYINVAL,
 	DLADM_STATUS_MACADDRINVAL,
-	DLADM_STATUS_KEYINVAL
+	DLADM_STATUS_KEYINVAL,
+	DLADM_STATUS_INVALIDID,
+	DLADM_STATUS_INVALIDMACADDRLEN,
+	DLADM_STATUS_INVALIDMACADDRTYPE,
+	DLADM_STATUS_AUTOIDNOTEMP,
+	DLADM_STATUS_AUTOIDNOAVAILABLEID,
+	DLADM_STATUS_BUSY
 } dladm_status_t;
 
 typedef enum {
--- a/usr/src/lib/libdladm/common/libdlaggr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/common/libdlaggr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -195,19 +195,6 @@
 
 static int i_dladm_aggr_fput_grp(FILE *, dladm_aggr_grp_attr_db_t *);
 
-static int
-i_dladm_aggr_strioctl(int fd, int cmd, void *ptr, int ilen)
-{
-	struct strioctl str;
-
-	str.ic_cmd = cmd;
-	str.ic_timout = 0;
-	str.ic_len = ilen;
-	str.ic_dp = ptr;
-
-	return (ioctl(fd, I_STR, &str));
-}
-
 /*
  * Open and lock the aggregation configuration file lock. The lock is
  * acquired as a reader (F_RDLCK) or writer (F_WRLCK).
@@ -286,7 +273,7 @@
 	}
 
 tryagain:
-	rc = i_dladm_aggr_strioctl(fd, LAIOC_INFO, ioc, bufsize);
+	rc = i_dladm_ioctl(fd, LAIOC_INFO, ioc, bufsize);
 
 	if (rc != 0) {
 		if (errno == ENOSPC) {
@@ -549,7 +536,7 @@
 		goto done;
 	}
 
-	rc = i_dladm_aggr_strioctl(fd, cmd, iocp, len);
+	rc = i_dladm_ioctl(fd, cmd, iocp, len);
 	if (rc < 0) {
 		if (errno == EINVAL)
 			status = DLADM_STATUS_LINKINVAL;
@@ -596,7 +583,7 @@
 	if ((fd = open(DLADM_AGGR_DEV, O_RDWR)) < 0)
 		return (dladm_errno2status(errno));
 
-	rc = i_dladm_aggr_strioctl(fd, LAIOC_MODIFY, &ioc, sizeof (ioc));
+	rc = i_dladm_ioctl(fd, LAIOC_MODIFY, &ioc, sizeof (ioc));
 	if (rc < 0) {
 		if (errno == EINVAL)
 			status = DLADM_STATUS_MACADDRINVAL;
@@ -651,7 +638,7 @@
 	bcopy(attr->lt_mac, iocp->lc_mac, ETHERADDRL);
 	iocp->lc_mac_fixed = attr->lt_mac_fixed;
 
-	rc = i_dladm_aggr_strioctl(fd, LAIOC_CREATE, iocp, len);
+	rc = i_dladm_ioctl(fd, LAIOC_CREATE, iocp, len);
 	if (rc < 0)
 		status = DLADM_STATUS_LINKINVAL;
 
@@ -722,7 +709,7 @@
 
 	ioc.ld_key = attr->lg_key;
 
-	return (i_dladm_aggr_strioctl(fd, LAIOC_DELETE, &ioc, sizeof (ioc)));
+	return (i_dladm_ioctl(fd, LAIOC_DELETE, &ioc, sizeof (ioc)));
 }
 
 /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/libdladm/common/libdlvnic.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,549 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stropts.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <strings.h>
+#include <libintl.h>
+#include <net/if_types.h>
+#include <net/if_dl.h>
+#include <libdladm_impl.h>
+#include <libdlvnic.h>
+
+/*
+ * VNIC administration library.
+ */
+
+#define	VNIC_DEV	"/devices/pseudo/vnic@0:" VNIC_CTL_NODE_NAME
+
+/*
+ * Because by default the id is used as the DLPI device PPA and default
+ * VLAN PPA's are calculated as ((1000 * vid) + PPA), the largest id
+ * can't be > 999. We reserve the last 100 VNIC ids for automatic
+ * VNIC id assignment.
+ */
+#define	DLADM_VNIC_MIN_VNIC_ID		1	/* total range */
+#define	DLADM_VNIC_MAX_VNIC_ID		999
+#define	DLADM_VNIC_MIN_VNIC_SPEC_ID	1	/* specified by user */
+#define	DLADM_VNIC_MAX_VNIC_SPEC_ID	899
+#define	DLADM_VNIC_MIN_VNIC_AUTO_ID	900	/* picked automatically */
+#define	DLADM_VNIC_MAX_VNIC_AUTO_ID	999
+
+#define	DLADM_VNIC_NUM_VNIC_AUTO_ID	(DLADM_VNIC_MAX_VNIC_AUTO_ID - \
+    DLADM_VNIC_MIN_VNIC_AUTO_ID + 1)
+
+/* Limits on buffer size for VNIC_IOC_INFO request */
+#define	MIN_INFO_SIZE (4*1024)
+#define	MAX_INFO_SIZE (128*1024)
+
+/* configuration database entry */
+typedef struct dladm_vnic_attr_db {
+	uint_t		vt_vnic_id;
+	char		vt_dev_name[MAXNAMELEN];
+	vnic_mac_addr_type_t vt_mac_addr_type;
+	uint_t		vt_mac_len;
+	uchar_t		vt_mac_addr[MAXMACADDRLEN];
+} dladm_vnic_attr_db_t;
+
+typedef struct dladm_vnic_up {
+	uint_t		vu_vnic_id;
+	boolean_t	vu_found;
+	int		vu_fd;
+} dladm_vnic_up_t;
+
+typedef struct dladm_vnic_down {
+	uint32_t	vd_vnic_id;
+	boolean_t	vd_found;
+} dladm_vnic_down_t;
+
+typedef struct dladm_vnic_modify {
+	uint32_t	vm_vnic_id;
+	boolean_t	vm_found;
+} dladm_vnic_modify_t;
+
+typedef struct dladm_vnic_modify_attr {
+	vnic_mac_addr_type_t	vm_mac_addr_type;
+	int			vm_mac_len;
+	uchar_t			vm_mac_addr[MAXMACADDRLEN];
+} dladm_vnic_modify_attr_t;
+
+/*
+ * Send a create command to the VNIC driver.
+ */
+static dladm_status_t
+i_dladm_vnic_create_sys(int fd, dladm_vnic_attr_db_t *attr)
+{
+	int rc;
+	vnic_ioc_create_t ioc;
+
+	ioc.vc_vnic_id = attr->vt_vnic_id;
+	bcopy(attr->vt_dev_name, ioc.vc_dev_name, MAXNAMELEN);
+	ioc.vc_mac_addr_type = attr->vt_mac_addr_type;
+	ioc.vc_mac_len = attr->vt_mac_len;
+	bcopy(attr->vt_mac_addr, ioc.vc_mac_addr, attr->vt_mac_len);
+
+	rc = i_dladm_ioctl(fd, VNIC_IOC_CREATE, &ioc, sizeof (ioc));
+
+	if (rc < 0)
+		return (dladm_errno2status(errno));
+
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Invoked to bring up a VNIC.
+ */
+static dladm_status_t
+i_dladm_vnic_up(void *arg, dladm_vnic_attr_db_t *attr)
+{
+	dladm_vnic_up_t *up = (dladm_vnic_up_t *)arg;
+	dladm_status_t status;
+
+	if (up->vu_vnic_id != 0 && up->vu_vnic_id != attr->vt_vnic_id)
+		return (DLADM_STATUS_OK);
+
+	up->vu_found = B_TRUE;
+
+	status = i_dladm_vnic_create_sys(up->vu_fd, attr);
+	if ((status != DLADM_STATUS_OK) && (up->vu_vnic_id != 0))
+		return (status);
+
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Send a modify command to the VNIC driver.
+ */
+static dladm_status_t
+i_dladm_vnic_modify_sys(uint_t vnic_id, uint32_t modify_mask,
+    dladm_vnic_modify_attr_t *attr)
+{
+	int rc;
+	int fd;
+	vnic_ioc_modify_t ioc;
+
+	ioc.vm_vnic_id = vnic_id;
+
+	ioc.vm_modify_mask = 0;
+	if (modify_mask & DLADM_VNIC_MODIFY_ADDR)
+		ioc.vm_modify_mask |= VNIC_IOC_MODIFY_ADDR;
+
+	ioc.vm_mac_addr_type = attr->vm_mac_addr_type;
+	ioc.vm_mac_len = attr->vm_mac_len;
+	bcopy(attr->vm_mac_addr, ioc.vm_mac_addr, MAXMACADDRLEN);
+
+	if ((fd = open(VNIC_DEV, O_RDWR)) < 0)
+		return (dladm_errno2status(errno));
+
+	rc = i_dladm_ioctl(fd, VNIC_IOC_MODIFY, &ioc, sizeof (ioc));
+
+	(void) close(fd);
+
+	if (rc < 0)
+		return (dladm_errno2status(errno));
+
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Walk through the vnics defined on the system and for each vnic <vnic>,
+ * invoke <fn>(<arg>, <vnic>);
+ */
+dladm_status_t
+dladm_vnic_walk_sys(dladm_status_t (*fn)(void *, dladm_vnic_attr_sys_t *),
+    void *arg)
+{
+	vnic_ioc_info_t *ioc;
+	vnic_ioc_info_vnic_t *vnic;
+	dladm_vnic_attr_sys_t attr;
+	int rc, i, bufsize, fd;
+	char *where;
+	dladm_status_t status = DLADM_STATUS_OK;
+
+	if ((fd = open(VNIC_DEV, O_RDWR)) == -1)
+		return (dladm_errno2status(errno));
+
+	bufsize = MIN_INFO_SIZE;
+	ioc = (vnic_ioc_info_t *)calloc(1, bufsize);
+	if (ioc == NULL) {
+		(void) close(fd);
+		return (dladm_errno2status(ENOMEM));
+	}
+
+tryagain:
+
+	rc = i_dladm_ioctl(fd, VNIC_IOC_INFO, ioc, bufsize);
+
+	if (rc != 0) {
+		if (errno == ENOSPC) {
+			bufsize *= 2;
+			if (bufsize <= MAX_INFO_SIZE) {
+				ioc = (vnic_ioc_info_t *)realloc(ioc, bufsize);
+				if (ioc != NULL) {
+					bzero(ioc, bufsize);
+					goto tryagain;
+				}
+			}
+		}
+		status = dladm_errno2status(errno);
+		goto bail;
+	}
+
+	/*
+	 * Go through each vnic returned by the vnic driver
+	 */
+	where = (char *)(ioc + 1);
+
+	for (i = 0; i < ioc->vi_nvnics; i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
+		vnic = (vnic_ioc_info_vnic_t *)where;
+
+		attr.va_vnic_id = vnic->vn_vnic_id;
+		bcopy(vnic->vn_dev_name, attr.va_dev_name,
+		    MAXNAMELEN);
+		attr.va_mac_addr_type = vnic->vn_mac_addr_type;
+		bcopy(vnic->vn_mac_addr, attr.va_mac_addr, ETHERADDRL);
+		attr.va_mac_len = vnic->vn_mac_len;
+		where = (char *)(vnic + 1);
+
+		status = fn(arg, &attr);
+		if (status != DLADM_STATUS_OK)
+			goto bail;
+	}
+
+bail:
+	free(ioc);
+	(void) close(fd);
+
+	return (status);
+}
+
+/*
+ * Remove a VNIC from the kernel.
+ */
+static dladm_status_t
+i_dladm_vnic_delete_sys(int fd, dladm_vnic_attr_sys_t *attr)
+{
+	vnic_ioc_delete_t ioc;
+	int rc;
+
+	ioc.vd_vnic_id = attr->va_vnic_id;
+
+	rc = i_dladm_ioctl(fd, VNIC_IOC_DELETE, &ioc, sizeof (ioc));
+
+	if (rc < 0)
+		return (dladm_errno2status(errno));
+
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Invoked to bring down a VNIC.
+ */
+static dladm_status_t
+i_dladm_vnic_down(void *arg, dladm_vnic_attr_sys_t *attr)
+{
+	dladm_vnic_down_t *down = (dladm_vnic_down_t *)arg;
+	int fd;
+	dladm_status_t status;
+
+	if (down->vd_vnic_id != 0 && down->vd_vnic_id != attr->va_vnic_id)
+		return (DLADM_STATUS_OK);
+
+	down->vd_found = B_TRUE;
+
+	if ((fd = open(VNIC_DEV, O_RDWR)) < 0)
+		return (dladm_errno2status(errno));
+
+	status = i_dladm_vnic_delete_sys(fd, attr);
+	if ((status != DLADM_STATUS_OK) && (down->vd_vnic_id != 0)) {
+		(void) close(fd);
+		return (status);
+	}
+
+	(void) close(fd);
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Convert between MAC address types and their string representations.
+ */
+
+typedef struct dladm_vnic_addr_type_s {
+	char *va_str;
+	vnic_mac_addr_type_t va_type;
+} dladm_vnic_addr_type_t;
+
+static dladm_vnic_addr_type_t addr_types[] = {
+	{"fixed", VNIC_MAC_ADDR_TYPE_FIXED},
+};
+
+#define	NADDR_TYPES (sizeof (addr_types) / sizeof (dladm_vnic_addr_type_t))
+
+/* returns B_TRUE if a matching type was found, B_FALSE otherwise */
+boolean_t
+dladm_vnic_mac_addr_str_to_type(const char *str, vnic_mac_addr_type_t *val)
+{
+	int i;
+	dladm_vnic_addr_type_t *type;
+
+	for (i = 0; i < NADDR_TYPES; i++) {
+		type = &addr_types[i];
+		if (strncmp(str, type->va_str, strlen(type->va_str)) == 0) {
+			*val = type->va_type;
+			return (B_TRUE);
+		}
+	}
+
+	return (B_FALSE);
+}
+
+/*
+ * Select a VNIC id automatically.
+ */
+
+typedef struct dladm_vnic_auto_state_s {
+	uint_t		as_nslots;
+	uint_t		*as_slots;
+} dladm_vnic_auto_state_t;
+
+static dladm_status_t
+i_dladm_vnic_create_auto_walker(void *arg, dladm_vnic_attr_sys_t *attr)
+{
+	dladm_vnic_auto_state_t *state = arg;
+
+	if (attr->va_vnic_id < DLADM_VNIC_MIN_VNIC_AUTO_ID ||
+	    attr->va_vnic_id > DLADM_VNIC_MAX_VNIC_AUTO_ID)
+		return (DLADM_STATUS_OK);
+
+	state->as_slots[state->as_nslots++] = attr->va_vnic_id;
+
+	return (DLADM_STATUS_OK);
+}
+
+static int
+i_dladm_vnic_compare(const void *p1, const void *p2)
+{
+	uint_t i = *((uint_t *)p1);
+	uint_t j = *((uint_t *)p2);
+
+	if (i > j)
+		return (1);
+	if (i < j)
+		return (-1);
+	return (0);
+}
+
+/*ARGSUSED*/
+static dladm_status_t
+i_dladm_vnic_get_auto_id(dladm_vnic_attr_db_t *attr, uint32_t *vnic_id_out)
+{
+	dladm_vnic_auto_state_t state;
+	uint_t vnic_ids[DLADM_VNIC_NUM_VNIC_AUTO_ID];
+	int i;
+	uint_t last_id, vnic_id;
+	dladm_status_t status;
+
+	/*
+	 * Build a sorted array containing the existing VNIC ids in the range
+	 * allocated for automatic allocation.
+	 */
+	state.as_nslots = 0;
+	state.as_slots = vnic_ids;
+
+	status = dladm_vnic_walk_sys(i_dladm_vnic_create_auto_walker, &state);
+	if (status != DLADM_STATUS_OK)
+		return (status);
+
+	qsort(vnic_ids, state.as_nslots, sizeof (uint_t),
+	    i_dladm_vnic_compare);
+
+	/*
+	 * Find a gap in the sequence of existing VNIC ids.
+	 */
+	last_id = DLADM_VNIC_MIN_VNIC_AUTO_ID - 1;
+	vnic_id = 0;
+	for (i = 0; i < state.as_nslots; i++) {
+		if (vnic_ids[i] > (last_id + 1)) {
+			vnic_id = last_id + 1;
+			break;
+		}
+		last_id = vnic_ids[i];
+	}
+
+	if (vnic_id == 0) {
+		/*
+		 * Did not find a gap between existing entries, see if we
+		 * can add one.
+		 */
+		if (last_id + 1 > DLADM_VNIC_MAX_VNIC_AUTO_ID)
+			return (DLADM_STATUS_AUTOIDNOAVAILABLEID);
+
+		/* still have room for one more VNIC */
+		vnic_id = last_id + 1;
+	}
+
+	*vnic_id_out = vnic_id;
+
+	return (DLADM_STATUS_OK);
+}
+
+/*
+ * Create a new VNIC. Update the configuration file and bring it up.
+ */
+dladm_status_t
+dladm_vnic_create(uint_t vnic_id, char *dev_name,
+    vnic_mac_addr_type_t mac_addr_type, uchar_t *mac_addr, int mac_len,
+    uint_t *vnic_id_out, uint32_t flags)
+{
+	dladm_vnic_attr_db_t attr;
+	int i;
+	boolean_t tempop = ((flags & DLADM_VNIC_OPT_TEMP) != 0);
+	boolean_t autoid = ((flags & DLADM_VNIC_OPT_AUTOID) != 0);
+	dladm_vnic_up_t up;
+	dladm_status_t status;
+
+	/*
+	 * Sanity test arguments.
+	 */
+	if (autoid && !tempop)
+		return (DLADM_STATUS_AUTOIDNOTEMP);
+
+	if (!autoid && ((vnic_id < DLADM_VNIC_MIN_VNIC_SPEC_ID) ||
+	    (vnic_id > DLADM_VNIC_MAX_VNIC_SPEC_ID)))
+		return (DLADM_STATUS_INVALIDID);
+
+	if (mac_len > MAXMACADDRLEN)
+		return (DLADM_STATUS_INVALIDMACADDRLEN);
+
+	for (i = 0; i < NADDR_TYPES; i++) {
+		if (mac_addr_type == addr_types[i].va_type)
+			break;
+	}
+	if (i == NADDR_TYPES)
+		return (DLADM_STATUS_INVALIDMACADDRTYPE);
+
+	/* for now, only temporary creations are supported */
+	if (!tempop)
+		return (dladm_errno2status(ENOTSUP));
+
+auto_again:
+	if (autoid) {
+		/*
+		 * Find an unused VNIC id.
+		 */
+		status = i_dladm_vnic_get_auto_id(&attr, vnic_id_out);
+		if (status != DLADM_STATUS_OK)
+			return (status);
+		vnic_id = *vnic_id_out;
+	}
+
+	bzero(&attr, sizeof (attr));
+	attr.vt_vnic_id = vnic_id;
+	(void) strncpy(attr.vt_dev_name, dev_name,
+	    sizeof (attr.vt_dev_name) - 1);
+	attr.vt_mac_addr_type = mac_addr_type;
+	attr.vt_mac_len = mac_len;
+	bcopy(mac_addr, attr.vt_mac_addr, mac_len);
+
+	up.vu_vnic_id = vnic_id;
+	up.vu_found = B_FALSE;
+	up.vu_fd = open(VNIC_DEV, O_RDWR);
+	if (up.vu_fd < 0)
+		return (dladm_errno2status(errno));
+
+	status = i_dladm_vnic_up((void *)&up, &attr);
+	(void) close(up.vu_fd);
+
+	if ((status == DLADM_STATUS_EXIST) && autoid)
+		goto auto_again;
+
+	return (status);
+}
+
+/*
+ * Modify the properties of a VNIC.
+ */
+dladm_status_t
+dladm_vnic_modify(uint_t vnic_id, uint32_t modify_mask,
+    vnic_mac_addr_type_t mac_addr_type, uint_t mac_len, uchar_t *mac_addr,
+    uint32_t flags)
+{
+	dladm_vnic_modify_attr_t new_attr;
+	boolean_t tempop = ((flags & DLADM_VNIC_OPT_TEMP) != 0);
+
+	if ((vnic_id < DLADM_VNIC_MIN_VNIC_ID) ||
+	    (vnic_id > DLADM_VNIC_MAX_VNIC_ID))
+		return (DLADM_STATUS_INVALIDID);
+
+	/* for now, only temporary creations are supported */
+	if (!tempop)
+		return (dladm_errno2status(ENOTSUP));
+
+	bzero(&new_attr, sizeof (new_attr));
+
+	if (modify_mask & DLADM_VNIC_MODIFY_ADDR) {
+		new_attr.vm_mac_addr_type = mac_addr_type;
+		new_attr.vm_mac_len = mac_len;
+		bcopy(mac_addr, new_attr.vm_mac_addr, MAXMACADDRLEN);
+	}
+
+	/* update the properties of the existing VNIC */
+	return (i_dladm_vnic_modify_sys(vnic_id, modify_mask, &new_attr));
+}
+
+
+/*
+ * Delete a VNIC.
+ */
+dladm_status_t
+dladm_vnic_delete(uint_t vnic_id, uint32_t flags)
+{
+	boolean_t tempop = ((flags & DLADM_VNIC_OPT_TEMP) != 0);
+	dladm_vnic_down_t down;
+	dladm_vnic_attr_sys_t sys_attr;
+
+	if ((vnic_id < DLADM_VNIC_MIN_VNIC_ID) ||
+	    (vnic_id > DLADM_VNIC_MAX_VNIC_ID))
+		return (DLADM_STATUS_INVALIDID);
+
+	/* for now, only temporary deletes are supported */
+	if (!tempop)
+		return (dladm_errno2status(ENOTSUP));
+
+	down.vd_vnic_id = vnic_id;
+	down.vd_found = B_FALSE;
+	sys_attr.va_vnic_id = vnic_id;
+	return (i_dladm_vnic_down((void *)&down, &sys_attr));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/libdladm/common/libdlvnic.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,73 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _LIBDLVNIC_H
+#define	_LIBDLVNIC_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <libdladm.h>
+#include <sys/vnic.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef struct dladm_vnic_attr_sys {
+	uint_t			va_vnic_id;
+	char			va_dev_name[MAXNAMELEN + 1];
+	vnic_mac_addr_type_t	va_mac_addr_type;
+	uchar_t			va_mac_addr[ETHERADDRL];
+	uint_t			va_mac_len;
+} dladm_vnic_attr_sys_t;
+
+/*
+ * General operations flags.
+ */
+#define	DLADM_VNIC_OPT_TEMP	0x00000001
+#define	DLADM_VNIC_OPT_AUTOID	0x00000002
+
+/*
+ * Modification flags for dladm_vnic_modify().
+ */
+#define	DLADM_VNIC_MODIFY_ADDR		0x01
+
+extern dladm_status_t dladm_vnic_create(uint_t, char *, vnic_mac_addr_type_t,
+    uchar_t *, int, uint_t *, uint32_t);
+extern dladm_status_t dladm_vnic_modify(uint_t, uint32_t, vnic_mac_addr_type_t,
+    uint_t, uchar_t *, uint32_t);
+extern dladm_status_t dladm_vnic_delete(uint_t, uint32_t);
+extern dladm_status_t dladm_vnic_walk_sys(
+	dladm_status_t (*)(void *, dladm_vnic_attr_sys_t *), void *);
+extern boolean_t dladm_vnic_mac_addr_str_to_type(const char *,
+    vnic_mac_addr_type_t *);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _LIBDLVNIC_H */
--- a/usr/src/lib/libdladm/common/llib-ldladm	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/common/llib-ldladm	Tue Sep 18 15:46:43 2007 -0700
@@ -31,3 +31,4 @@
 #include <libdllink.h>
 #include <libdlaggr.h>
 #include <libdlwlan.h>
+#include <libdlvnic.h>
--- a/usr/src/lib/libdladm/common/mapfile-vers	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/lib/libdladm/common/mapfile-vers	Tue Sep 18 15:46:43 2007 -0700
@@ -97,6 +97,11 @@
 	dladm_wlan_wpa_del_key;
 	dladm_wlan_wpa_set_key;
 	dladm_wlan_wpa_set_mlme;
+	dladm_vnic_create;
+	dladm_vnic_modify;
+	dladm_vnic_delete;
+	dladm_vnic_walk_sys;
+	dladm_vnic_mac_addr_str_to_type;
 
     local:
 	*;
--- a/usr/src/pkgdefs/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -114,7 +114,9 @@
 	SUNWatheros \
 	SUNWaudiohd \
 	SUNWcakr.i \
+	SUNWcakrx.i \
 	SUNWcar.i  \
+	SUNWcarx.i  \
 	SUNWcpc.i \
 	SUNWdfb.i  \
 	SUNWdrmr \
--- a/usr/src/pkgdefs/SUNWcakr.i/prototype_com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWcakr.i/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -55,10 +55,6 @@
 f none boot/solaris/bin/update_grub 0555 root sys
 f none boot/solaris/filelist.ramdisk 0644 root sys
 f none boot/solaris/filelist.safe 0644 root sys
-d none boot/platform 755 root sys
-d none boot/platform/i86pc 755 root sys
-d none boot/platform/i86pc/kernel 755 root sys
-f none boot/platform/i86pc/kernel/unix 755 root sys
 d none platform 755 root sys
 d none platform/i86pc 755 root sys
 d none platform/i86pc/amd64 755 root sys
@@ -83,7 +79,6 @@
 f none platform/i86pc/kernel/drv/amd64/pci 755 root sys
 f none platform/i86pc/kernel/drv/amd64/rootnex 755 root sys
 f none platform/i86pc/kernel/drv/cpudrv 755 root sys
-f none platform/i86pc/kernel/drv/cpunex 755 root sys
 f none platform/i86pc/kernel/drv/isa 755 root sys
 f none platform/i86pc/kernel/drv/mc-amd 755 root sys
 f none platform/i86pc/kernel/drv/mc-amd.conf 644 root sys
@@ -109,5 +104,4 @@
 d none platform/i86pc/ucode 755 root sys
 v none platform/i86pc/ucode/intel-ucode.txt 444 root sys
 f none platform/i86pc/kernel/drv/amd64/cpudrv 755 root sys
-f none platform/i86pc/kernel/drv/amd64/cpunex 755 root sys
 f none platform/i86pc/kernel/drv/amd64/ppm 755 root sys
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcakrx.i/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,36 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+include ../Makefile.com
+
+.KEEP_STATE:
+
+all: $(FILES)
+
+install: all pkg
+
+include ../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,56 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file describes characteristics of the
+# package, such as package abbreviation, full package name, package version,
+# and package architecture.
+#
+PKG="SUNWcakrx"
+NAME="Core Kernel Architecture i86xpv, (Root)"
+ARCH="i386.i86pc"
+VERSION="ONVERS,REV=0.0.0"
+SUNW_PRODNAME="SunOS"
+SUNW_PRODVERS="RELEASE/VERSION"
+SUNW_PKGTYPE="root"
+MAXINST="1000"
+CATEGORY="system"
+DESC="core kernel software for the i86xpv virtual hardware platform"
+VENDOR="Sun Microsystems, Inc."
+HOTLINE="Please contact your local service provider"
+EMAIL=""
+CLASSES="none"
+BASEDIR=/
+SUNW_PKGVERS="1.0"
+SUNW_PKG_ALLZONES="true"
+SUNW_PKG_HOLLOW="true"
+SUNW_PKG_THISZONE="false"
+#VSTOCK="<reserved by Release Engineering for package part #>"
+#ISTATES="<developer defined>"
+#RSTATES='<developer defined>'
+#ULIMIT="<developer defined>"
+#ORDER="<developer defined>"
+#PSTAMP="<developer defined>"
+#INTONLY="<developer defined>"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcakrx.i/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,116 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+#
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+# packaging files
+i pkginfo
+i copyright
+
+#
+# source locations relative to the prototype file
+#
+# SUNWcakrx.i
+#
+d none platform 755 root sys
+d none platform/i86xpv 755 root sys
+d none platform/i86xpv/kernel 755 root sys
+d none platform/i86xpv/kernel/cpu 755 root sys
+d none platform/i86xpv/kernel/cpu/amd64 755 root sys
+f none platform/i86xpv/kernel/cpu/amd64/cpu.generic 755 root sys
+f none platform/i86xpv/kernel/cpu/cpu.generic 755 root sys
+d none platform/i86xpv/kernel/dacf 755 root sys
+f none platform/i86xpv/kernel/dacf/consconfig_dacf 755 root sys
+d none platform/i86xpv/kernel/drv 755 root sys
+f none platform/i86xpv/kernel/drv/balloon 755 root sys
+f none platform/i86xpv/kernel/drv/domcaps 755 root sys
+f none platform/i86xpv/kernel/drv/evtchn 755 root sys
+f none platform/i86xpv/kernel/drv/isa 755 root sys
+f none platform/i86xpv/kernel/drv/npe 755 root sys
+f none platform/i86xpv/kernel/drv/pci 755 root sys
+f none platform/i86xpv/kernel/drv/privcmd 755 root sys
+f none platform/i86xpv/kernel/drv/rootnex 755 root sys
+f none platform/i86xpv/kernel/drv/xdb 755 root sys
+f none platform/i86xpv/kernel/drv/xdf 755 root sys
+f none platform/i86xpv/kernel/drv/xenbus 755 root sys
+f none platform/i86xpv/kernel/drv/xencons 755 root sys
+f none platform/i86xpv/kernel/drv/xencons.conf 644 root sys
+f none platform/i86xpv/kernel/drv/xnbe 755 root sys
+f none platform/i86xpv/kernel/drv/xnbo 755 root sys
+f none platform/i86xpv/kernel/drv/xnbu 755 root sys
+f none platform/i86xpv/kernel/drv/xnf 755 root sys
+f none platform/i86xpv/kernel/drv/xpvd 755 root sys
+d none platform/i86xpv/kernel/mach 755 root sys
+f none platform/i86xpv/kernel/mach/xpv_psm 755 root sys
+d none platform/i86xpv/kernel/misc 755 root sys
+f none platform/i86xpv/kernel/misc/gfx_private 755 root sys
+f none platform/i86xpv/kernel/misc/pcie 755 root sys
+f none platform/i86xpv/kernel/misc/xnb 755 root sys
+f none platform/i86xpv/kernel/misc/xpv_autoconfig 755 root sys
+d none platform/i86xpv/kernel/tod 755 root sys
+f none platform/i86xpv/kernel/tod/xpvtod 755 root sys
+f none platform/i86xpv/kernel/unix 755 root sys
+#
+d none platform/i86xpv/kernel/dacf/amd64 755 root sys
+f none platform/i86xpv/kernel/dacf/amd64/consconfig_dacf 755 root sys
+d none platform/i86xpv/kernel/drv/amd64 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/balloon 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/domcaps 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/evtchn 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/isa 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/npe 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/pci 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/privcmd 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/rootnex 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xenbus 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xdb 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xdf 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xencons 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xnbe 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xnbo 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xnbu 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xnf 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xpvd 755 root sys
+d none platform/i86xpv/kernel/mach/amd64 755 root sys
+f none platform/i86xpv/kernel/mach/amd64/xpv_psm 755 root sys
+d none platform/i86xpv/kernel/misc/amd64 755 root sys
+f none platform/i86xpv/kernel/misc/amd64/gfx_private 755 root sys
+f none platform/i86xpv/kernel/misc/amd64/pcie 755 root sys
+f none platform/i86xpv/kernel/misc/amd64/xnb 755 root sys
+f none platform/i86xpv/kernel/misc/amd64/xpv_autoconfig 755 root sys
+d none platform/i86xpv/kernel/tod/amd64 755 root sys
+f none platform/i86xpv/kernel/tod/amd64/xpvtod 755 root sys
+d none platform/i86xpv/kernel/amd64 755 root sys
+f none platform/i86xpv/kernel/amd64/unix 755 root sys
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcakrx.i/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,48 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+#
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+# List files which are i386 specific here
+#
+# source locations relative to the prototype file
+#
+# SUNWcakr.x
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcarx.i/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,35 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+include ../Makefile.com
+
+.KEEP_STATE:
+
+all: $(FILES)
+install: all pkg
+
+include ../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,56 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file describes characteristics of the
+# package, such as package abbreviation, full package name, package version,
+# and package architecture.
+#
+PKG="SUNWcarx"
+NAME="Core Architecture i86xpv, (Root)"
+ARCH="i386.i86pc"
+VERSION="ONVERS,REV=0.0.0"
+SUNW_PRODNAME="SunOS"
+SUNW_PRODVERS="RELEASE/VERSION"
+SUNW_PKGTYPE="root"
+MAXINST="1000"
+CATEGORY="system"
+DESC="core software for the i86xpv virtual hardware platform"
+VENDOR="Sun Microsystems, Inc."
+HOTLINE="Please contact your local service provider"
+EMAIL=""
+CLASSES="none"
+BASEDIR=/
+SUNW_PKGVERS="1.0"
+SUNW_PKG_ALLZONES="true"
+SUNW_PKG_HOLLOW="false"
+SUNW_PKG_THISZONE="false"
+#VSTOCK="<reserved by Release Engineering for package part #>"
+#ISTATES="<developer defined>"
+#RSTATES='<developer defined>'
+#ULIMIT="<developer defined>"
+#ORDER="<developer defined>"
+#PSTAMP="<developer defined>"
+#INTONLY="<developer defined>"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcarx.i/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,47 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+#
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+# packaging files
+i pkginfo
+i copyright
+#
+# source locations relative to the prototype file
+#
+# SUNWcarx.i
+#
+d none platform 755 root sys
+d none platform/i86xpv 755 root sys
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWcarx.i/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,49 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+#
+#
+# List files which are Intel specific here
+#
+# source locations relative to the prototype file
+#
+#
+# SUNWcar.x
+#
--- a/usr/src/pkgdefs/SUNWckr/prototype_com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWckr/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
@@ -117,6 +117,7 @@
 f none kernel/drv/udp.conf 644 root sys
 f none kernel/drv/udp6.conf 644 root sys
 f none kernel/drv/vni.conf 644 root sys
+f none kernel/drv/vnic.conf 644 root sys
 f none kernel/drv/wc.conf 644 root sys
 d none kernel/exec 755 root sys
 d none kernel/fs 755 root sys
--- a/usr/src/pkgdefs/SUNWckr/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWckr/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -75,6 +75,7 @@
 f none kernel/drv/conskbd 755 root sys
 f none kernel/drv/consms 755 root sys
 f none kernel/drv/cpuid 755 root sys
+f none kernel/drv/cpunex 755 root sys
 f none kernel/drv/crypto 755 root sys
 f none kernel/drv/cryptoadm 755 root sys
 f none kernel/drv/devinfo 755 root sys
@@ -137,6 +138,7 @@
 f none kernel/drv/udp6 755 root sys
 f none kernel/drv/vgatext 755 root sys
 f none kernel/drv/vni 755 root sys
+f none kernel/drv/vnic 755 root sys
 f none kernel/drv/wc 755 root sys
 f none kernel/exec/elfexec 755 root sys
 f none kernel/exec/intpexec 755 root sys
@@ -274,6 +276,7 @@
 f none kernel/drv/amd64/conskbd 755 root sys
 f none kernel/drv/amd64/consms 755 root sys
 f none kernel/drv/amd64/cpuid 755 root sys
+f none kernel/drv/amd64/cpunex 755 root sys
 f none kernel/drv/amd64/crypto 755 root sys
 f none kernel/drv/amd64/cryptoadm 755 root sys
 f none kernel/drv/amd64/devinfo 755 root sys
@@ -331,6 +334,7 @@
 f none kernel/drv/amd64/udp6 755 root sys
 f none kernel/drv/amd64/vgatext 755 root sys
 f none kernel/drv/amd64/vni 755 root sys
+f none kernel/drv/amd64/vnic 755 root sys
 f none kernel/drv/amd64/wc 755 root sys
 d none kernel/exec/amd64 755 root sys
 f none kernel/exec/amd64/elfexec 755 root sys
--- a/usr/src/pkgdefs/SUNWckr/prototype_sparc	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWckr/prototype_sparc	Tue Sep 18 15:46:43 2007 -0700
@@ -135,6 +135,7 @@
 f none kernel/drv/sparcv9/udp 755 root sys
 f none kernel/drv/sparcv9/udp6 755 root sys
 f none kernel/drv/sparcv9/vni 755 root sys
+f none kernel/drv/sparcv9/vnic 755 root sys
 f none kernel/drv/sparcv9/wc 755 root sys
 d none kernel/exec/sparcv9 755 root sys
 f none kernel/exec/sparcv9/aoutexec 755 root sys
--- a/usr/src/pkgdefs/SUNWcsl/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWcsl/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -50,6 +50,7 @@
 d none usr/lib/libc 755 root bin
 f none usr/lib/libc/libc_hwcap1.so.1 755 root bin
 f none usr/lib/libc/libc_hwcap2.so.1 755 root bin
+f none usr/lib/libc/libc_hwcap3.so.1 755 root bin
 d none usr/ccs/lib/amd64 755 root bin
 s none usr/ccs/lib/amd64/libcurses.so=../../../../lib/amd64/libcurses.so.1
 s none usr/ccs/lib/amd64/libform.so=../../../lib/amd64/libform.so.1
--- a/usr/src/pkgdefs/SUNWcsr/prototype_com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWcsr/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -389,6 +389,7 @@
 d none sbin 755 root sys
 f none sbin/autopush 555 root bin
 f none sbin/bootadm 555 root bin
+f none sbin/devprop 555 root bin
 f none sbin/dhcpagent 555 root bin
 f none sbin/dhcpinfo 555 root bin
 f none sbin/fdisk 555 root bin
--- a/usr/src/pkgdefs/SUNWcsu/prototype_com	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWcsu/prototype_com	Tue Sep 18 15:46:43 2007 -0700
@@ -647,6 +647,7 @@
 d none usr/lib/term 755 root bin
 f none usr/lib/utmp_update 4555 root bin
 f none usr/lib/utmpd 555 root bin
+f none usr/lib/vna 555 root bin
 f none usr/lib/vplot 555 root bin
 s none usr/mail=../var/mail
 d none usr/net 755 root sys
--- a/usr/src/pkgdefs/SUNWcsu/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWcsu/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -84,6 +84,7 @@
 f none usr/kernel/sys/sysacct 755 root sys
 f none usr/lib/devfsadm/linkmod/SUNW_ieee1394_link.so 755 root sys
 f none usr/lib/devfsadm/linkmod/SUNW_misc_link_i386.so 755 root sys
+f none usr/lib/devfsadm/linkmod/SUNW_xen_link.so 755 root sys
 s none usr/sbin/installgrub=../../sbin/installgrub
 f none usr/sbin/prtdiag 2755 root sys
 f none usr/sbin/rtc 555 root bin
--- a/usr/src/pkgdefs/SUNWhea/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWhea/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -59,12 +59,14 @@
 d none usr/include/amd64 755 root bin
 d none usr/include/amd64/sys 755 root bin
 f none usr/include/amd64/sys/kdi_regs.h 644 root bin
+f none usr/include/amd64/sys/privmregs.h 644 root bin
 f none usr/include/amd64/sys/privregs.h 644 root bin
 d none usr/include/ia32 755 root bin
 d none usr/include/ia32/sys 755 root bin
 f none usr/include/ia32/sys/asm_linkage.h 644 root bin
 f none usr/include/ia32/sys/kdi_regs.h 644 root bin
 f none usr/include/ia32/sys/machtypes.h 644 root bin
+f none usr/include/ia32/sys/privmregs.h 644 root bin
 f none usr/include/ia32/sys/privregs.h 644 root bin
 f none usr/include/ia32/sys/psw.h 644 root bin
 f none usr/include/ia32/sys/pte.h 644 root bin
@@ -98,6 +100,7 @@
 f none usr/include/sys/pic.h 644 root bin
 f none usr/include/sys/pit.h 644 root bin
 f none usr/include/sys/pmem.h 644 root bin
+f none usr/include/sys/privmregs.h 644 root bin
 f none usr/include/sys/privregs.h 644 root bin
 f none usr/include/sys/prom_emul.h 644 root bin
 f none usr/include/sys/prom_isa.h 644 root bin
@@ -126,8 +129,10 @@
 f none usr/platform/i86pc/include/sys/debug_info.h 644 root bin
 f none usr/platform/i86pc/include/sys/ddi_subrdefs.h 644 root bin
 f none usr/platform/i86pc/include/sys/mach_mmu.h 644 root bin
+f none usr/platform/i86pc/include/sys/machclock.h 644 root bin
 f none usr/platform/i86pc/include/sys/machcpuvar.h 644 root bin
 f none usr/platform/i86pc/include/sys/machparam.h 644 root bin
+f none usr/platform/i86pc/include/sys/machprivregs.h 644 root bin
 f none usr/platform/i86pc/include/sys/machsystm.h 644 root bin
 f none usr/platform/i86pc/include/sys/machthread.h 644 root bin
 f none usr/platform/i86pc/include/sys/memnode.h 644 root bin
@@ -148,6 +153,20 @@
 f none usr/platform/i86pc/include/vm/htable.h 644 root bin
 f none usr/platform/i86pc/include/vm/hment.h 644 root bin
 f none usr/platform/i86pc/include/vm/kboot_mmu.h 644 root bin
+d none usr/platform/i86xpv 755 root sys
+d none usr/platform/i86xpv/include 755 root bin
+d none usr/platform/i86xpv/include/sys 755 root bin
+f none usr/platform/i86xpv/include/sys/balloon.h 644 root bin
+f none usr/platform/i86xpv/include/sys/hypervisor.h 644 root bin
+f none usr/platform/i86xpv/include/sys/machprivregs.h 644 root bin
+f none usr/platform/i86xpv/include/sys/xen_errno.h 644 root bin
+f none usr/platform/i86xpv/include/sys/xen_mmu.h 644 root bin
+f none usr/platform/i86xpv/include/sys/xpv_impl.h 644 root bin
+d none usr/platform/i86xpv/include/vm 755 root bin
+f none usr/platform/i86xpv/include/vm/seg_mf.h 644 root bin
 d none usr/share/src/uts/i86pc 755 root bin
 s none usr/share/src/uts/i86pc/sys=../../../../platform/i86pc/include/sys
 s none usr/share/src/uts/i86pc/vm=../../../../platform/i86pc/include/vm
+d none usr/share/src/uts/i86xpv 755 root bin
+s none usr/share/src/uts/i86xpv/sys=../../../../platform/i86xpv/include/sys
+s none usr/share/src/uts/i86xpv/vm=../../../../platform/i86xpv/include/vm
--- a/usr/src/pkgdefs/SUNWmdb/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWmdb/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -46,6 +46,17 @@
 f none usr/platform/i86pc/lib/mdb/kvm/pcplusmp.so 555 root sys
 f none usr/platform/i86pc/lib/mdb/kvm/uppc.so 555 root sys
 f none usr/platform/i86pc/lib/mdb/kvm/unix.so 555 root sys
+d none usr/platform/i86xpv 755 root sys
+d none usr/platform/i86xpv/lib 755 root bin
+d none usr/platform/i86xpv/lib/mdb 755 root sys
+d none usr/platform/i86xpv/lib/mdb/kvm 755 root sys
+d none usr/platform/i86xpv/lib/mdb/kvm/amd64 755 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/amd64/unix.so 555 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/amd64/xpv.so 555 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/amd64/xpv_psm.so 555 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/unix.so 555 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/xpv.so 555 root sys
+f none usr/platform/i86xpv/lib/mdb/kvm/xpv_psm.so 555 root sys
 d none usr/lib/mdb/kvm/amd64 755 root sys
 f none usr/lib/mdb/kvm/amd64/arp.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/audiosup.so 555 root sys
@@ -61,6 +72,7 @@
 f none usr/lib/mdb/kvm/amd64/lofs.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/logindmux.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/md.so 555 root sys
+f none usr/lib/mdb/kvm/amd64/mdb_kb.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/mdb_ks.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/mpt.so 555 root sys
 f none usr/lib/mdb/kvm/amd64/nca.so 555 root sys
@@ -89,6 +101,7 @@
 f none usr/lib/mdb/kvm/lofs.so 555 root sys
 f none usr/lib/mdb/kvm/logindmux.so 555 root sys
 f none usr/lib/mdb/kvm/md.so 555 root sys
+f none usr/lib/mdb/kvm/mdb_kb.so 555 root sys
 f none usr/lib/mdb/kvm/mdb_ks.so 555 root sys
 f none usr/lib/mdb/kvm/mpt.so 555 root sys
 f none usr/lib/mdb/kvm/nca.so 555 root sys
--- a/usr/src/pkgdefs/SUNWmdbr/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWmdbr/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -98,3 +98,12 @@
 f none platform/i86pc/kernel/kmdb/pcplusmp 555 root sys
 f none platform/i86pc/kernel/kmdb/uppc 555 root sys
 f none platform/i86pc/kernel/kmdb/unix 555 root sys
+
+d none platform/i86xpv 755 root sys
+d none platform/i86xpv/kernel 755 root sys
+d none platform/i86xpv/kernel/kmdb 755 root sys
+d none platform/i86xpv/kernel/kmdb/amd64 755 root sys
+f none platform/i86xpv/kernel/kmdb/amd64/unix 555 root sys
+f none platform/i86xpv/kernel/kmdb/amd64/xpv_psm 555 root sys
+f none platform/i86xpv/kernel/kmdb/unix 555 root sys
+f none platform/i86xpv/kernel/kmdb/xpv_psm 555 root sys
--- a/usr/src/pkgdefs/SUNWpsdir/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWpsdir/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -69,3 +69,10 @@
 f none platform/i86pc/kernel/drv/pci-ide.conf 644 root sys
 d none platform/i86pc/kernel/drv/amd64 755 root sys
 f none platform/i86pc/kernel/drv/amd64/pci-ide 755 root sys
+d none platform/i86xpv 755 root sys
+d none platform/i86xpv/kernel 755 root sys
+d none platform/i86xpv/kernel/drv 755 root sys
+d none platform/i86xpv/kernel/drv/amd64 755 root sys
+f none platform/i86xpv/kernel/drv/amd64/pci-ide 755 root sys
+f none platform/i86xpv/kernel/drv/pci-ide 755 root sys
+f none platform/i86xpv/kernel/drv/pci-ide.conf 644 root sys
--- a/usr/src/pkgdefs/SUNWxsvc/prototype_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/SUNWxsvc/prototype_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -55,3 +55,10 @@
 f none platform/i86pc/kernel/drv/xsvc.conf 644 root sys
 d none platform/i86pc/kernel/drv/amd64 0755 root sys
 f none platform/i86pc/kernel/drv/amd64/xsvc 755 root sys
+d none platform/i86xpv 0755 root sys
+d none platform/i86xpv/kernel 0755 root sys
+d none platform/i86xpv/kernel/drv 0755 root sys
+d none platform/i86xpv/kernel/drv/amd64 0755 root sys
+f none platform/i86xpv/kernel/drv/amd64/xsvc 755 root sys
+f none platform/i86xpv/kernel/drv/xsvc 755 root sys
+f none platform/i86xpv/kernel/drv/xsvc.conf 644 root sys
--- a/usr/src/pkgdefs/common_files/i.iuap	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/common_files/i.iuap	Tue Sep 18 15:46:43 2007 -0700
@@ -67,6 +67,7 @@
 			cp /tmp/x.$$ $dest
 			rm -f /tmp/x.$$
 		fi
+		add_driver xencons
 		add_driver_replace se
 		add_driver_replace su
 		add_driver usbser_edge
--- a/usr/src/pkgdefs/etc/exception_list_i386	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/etc/exception_list_i386	Tue Sep 18 15:46:43 2007 -0700
@@ -98,12 +98,18 @@
 usr/include/libdlaggr.h		i386
 usr/include/libdlwlan.h		i386
 usr/include/libdlwlan_impl.h	i386
+usr/include/libdlvnic.h		i386
 lib/libdladm.so			i386
 lib/llib-ldladm.ln		i386
 lib/amd64/libdladm.so		i386
 lib/amd64/llib-ldladm.ln	i386
 lib/llib-ldladm			i386
 #
+# Virtual Network Interface Card (VNIC)
+#
+usr/include/sys/vnic.h		i386
+usr/include/sys/vnic_impl.h	i386
+#
 # The following files are used by the dhcpmgr.
 #
 usr/share/lib/locale/com/sun/dhcpmgr/bridge/ResourceBundle.properties	i386
--- a/usr/src/pkgdefs/etc/exception_list_sparc	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/pkgdefs/etc/exception_list_sparc	Tue Sep 18 15:46:43 2007 -0700
@@ -87,12 +87,18 @@
 usr/include/libdlaggr.h		sparc
 usr/include/libdlwlan.h		sparc
 usr/include/libdlwlan_impl.h	sparc
+usr/include/libdlvnic.h		sparc
 lib/libdladm.so			sparc
 lib/llib-ldladm.ln		sparc
 lib/sparcv9/libdladm.so		sparc
 lib/sparcv9/llib-ldladm.ln	sparc
 lib/llib-ldladm			sparc
 #
+# Virtual Network Interface Card (VNIC)
+#
+usr/include/sys/vnic.h		sparc
+usr/include/sys/vnic_impl.h	sparc
+#
 # IKE and IPsec support library exceptions.  The IKE support
 # library contains exclusively private interfaces, as does
 # libipsecutil.  My apologies for the glut of header files here.
--- a/usr/src/tools/abi/etc/ABI_i386.db	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/tools/abi/etc/ABI_i386.db	Tue Sep 18 15:46:43 2007 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # CDDL HEADER START
@@ -2689,30 +2689,37 @@
 _D_cplx_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_lr_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_lr_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_lr_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_lr_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_mul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_mul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_mul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_D_cplx_mul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _D_cplx_mul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _Default_Item usr/lib/libmenu.so.1 1 60 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _Default_Item usr/lib/amd64/libmenu.so.1 1 60 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -2721,34 +2728,42 @@
 _Exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _Exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _Exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_Exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _Exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _F_cplx_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_lr_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_lr_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_lr_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_lr_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_mul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_mul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_mul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_F_cplx_mul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _F_cplx_mul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _Panel_cnt usr/lib/libpanel.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _Panel_cnt usr/lib/amd64/libpanel.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -2791,30 +2806,37 @@
 _X_cplx_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_lr_div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_ix lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_ix usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_ix usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_lr_div_ix usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_ix lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_rx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_rx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_rx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_lr_div_rx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_lr_div_rx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_mul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_mul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_mul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_X_cplx_mul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _X_cplx_mul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __0FPfns_link_symbolPCcTB usr/lib/libxfn.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __0FUFN_ref_xdr_serializeRC6GFN_refRi usr/lib/libxfn.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -3325,11 +3347,13 @@
 ___Argv lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___Argv usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___Argv usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+___Argv usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___Argv lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ____loc1 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ____loc1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ____loc1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ____loc1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+____loc1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ____loc1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ___braelist usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ___braelist lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -3344,6 +3368,7 @@
 ___errno lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ___errno usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ___errno usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+___errno usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ___errno lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ___errno lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 ___loc1 usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -3375,6 +3400,7 @@
 ___tls_get_addr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___tls_get_addr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___tls_get_addr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+___tls_get_addr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___tls_get_addr lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ___xpg4_putmsg usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 ___xpg4_putpmsg usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -3429,10 +3455,12 @@
 __assert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __assert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __assert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__assert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __assert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __assert_c99 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __assert_c99 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __assert_c99 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__assert_c99 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __assert_c99 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __assertion_failed usr/lib/libresolv.so.2 1 4 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __assertion_failed lib/amd64/libresolv.so.2 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -3467,21 +3495,25 @@
 __btowc_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__btowc_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __btowc_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__btowc_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __btowc_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__btowc_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __btowc_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __builtin_alloca usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __builtin_alloca lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __builtin_alloca usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __builtin_alloca usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__builtin_alloca usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __builtin_alloca lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __cclass usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __cclass usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3491,6 +3523,7 @@
 __charmap_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __charmap_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __charmap_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__charmap_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __charmap_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __check_history usr/lib/amd64/passwdutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __check_history usr/lib/passwdutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3502,11 +3535,13 @@
 __cladm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __cladm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __cladm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__cladm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __cladm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __class_quadruple usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __class_quadruple lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __class_quadruple usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __class_quadruple usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__class_quadruple usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __class_quadruple lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clear_directory_ptr usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __clear_directory_ptr lib/amd64/libnsl.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3521,25 +3556,30 @@
 __clock_getres lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_getres usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_getres usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__clock_getres usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_getres lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_gettime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __clock_gettime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_gettime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_gettime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__clock_gettime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_gettime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_nanosleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_nanosleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_nanosleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__clock_nanosleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_nanosleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_settime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __clock_settime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_settime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_settime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__clock_settime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __clock_settime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __collate_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __collate_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __collate_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __collate_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__collate_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __collate_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __context_debug_entry usr/lib/gss/mech_dh.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __context_debug_entry usr/lib/amd64/gss/mech_dh.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3575,16 +3615,19 @@
 __ctype lib/libc.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __ctype usr/lib/libc/libc_hwcap1.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __ctype usr/lib/libc/libc_hwcap2.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__ctype usr/lib/libc/libc_hwcap3.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __ctype lib/amd64/libc.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __ctype_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __ctype_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__ctype_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_mask usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __ctype_mask lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_mask usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_mask usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__ctype_mask usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ctype_mask lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __cvt2attr usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __cvt2attr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3605,13 +3648,16 @@
 __div64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __div64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __div64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__div64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __divdi3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __divdi3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __divdi3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__divdi3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __divrem64 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __divrem64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __divrem64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __divrem64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__divrem64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __dl_gen_common_dhkeys usr/lib/gss/dh640-0.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __dl_gen_common_dhkeys usr/lib/gss/dh1024-0.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __dl_gen_common_dhkeys usr/lib/amd64/gss/dh640-0.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3633,60 +3679,72 @@
 __door_bind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_bind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_bind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_bind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_bind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_call usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_call lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_call usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_call usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_call usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_call lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create_pid usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_create_pid lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create_pid usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create_pid usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_create_pid usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_create_pid lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_cred usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_cred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_cred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_cred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_cred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_cred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_info usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_return usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_return lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_return usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_return usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_return usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_return lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_revoke usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_revoke lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_revoke usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_revoke usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_revoke usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_revoke lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_server_func usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_server_func lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_server_func usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_server_func usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_server_func usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_server_func lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_ucred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_ucred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_ucred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_ucred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_ucred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unbind usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __door_unbind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unbind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unbind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_unbind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unbind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unref usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 __door_unref lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unref usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unref usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__door_unref usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __door_unref lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __empty_yp_cache usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __empty_yp_cache lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3698,6 +3756,7 @@
 __environ_lock lib/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __environ_lock usr/lib/libc/libc_hwcap1.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __environ_lock usr/lib/libc/libc_hwcap2.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__environ_lock usr/lib/libc/libc_hwcap3.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __environ_lock lib/amd64/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __eptr_ usr/lib/libform.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __eptr_ usr/lib/amd64/libform.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3706,6 +3765,7 @@
 __eucpctowc_gen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __eucpctowc_gen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __eucpctowc_gen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__eucpctowc_gen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __eucpctowc_gen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __evAddTime usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __evAddTime lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -3785,81 +3845,97 @@
 __fbufsize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fbufsize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fbufsize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__fbufsize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fbufsize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fdsync usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fdsync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fdsync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fdsync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fdsync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fdsync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fgetwc_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fgetwc_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fgetwc_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fgetwc_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fgetwc_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fgetwc_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fgetwc_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fgetwc_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetwc_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetws_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fgetws_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetws_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetws_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fgetws_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fgetws_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __filbuf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 __filbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __filbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __filbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__filbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __filbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __fini_daemon_priv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fini_daemon_priv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fini_daemon_priv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fini_daemon_priv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fini_daemon_priv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __flbf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __flbf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __flbf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __flbf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__flbf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __flbf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __flsbuf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 __flsbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flsbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flsbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__flsbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flsbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __flt_rounds usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 __flt_rounds usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 __flt_rounds lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flt_rounds usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flt_rounds usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__flt_rounds usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __flt_rounds lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __fltrounds usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fltrounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fltrounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fltrounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fltrounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fltrounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_C usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fnmatch_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fnmatch_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fnmatch_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fnmatch_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fnmatch_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fnmatch_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fnmatch_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fp_nquery usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fp_nquery lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -3874,36 +3950,43 @@
 __fpending lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpending usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpending usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__fpending usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpending lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpstart usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 __fpstart lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __fpstart usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __fpstart usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__fpstart usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __fpstart lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __fpurge usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __fpurge lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpurge usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpurge usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__fpurge usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fpurge lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fputwc_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fputwc_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputwc_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputwc_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fputwc_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputwc_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputws_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __fputws_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputws_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputws_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fputws_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fputws_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __freadable usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __freadable lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freadable usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freadable usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__freadable usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freadable lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freading usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __freading lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freading usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freading usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__freading usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __freading lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __free_all_selectors usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __free_nis_server usr/lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
@@ -3915,21 +3998,25 @@
 __fseterror_u lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fseterror_u usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fseterror_u usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__fseterror_u usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fseterror_u lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __fsetlocking usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.18.1 SUNW_1.21 SUNW_1.18.1 SUNW_1.21 SUNW_1.18.1 SUNW_1.21.2 SUNW_1.18.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 __fsetlocking lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18.1 0000001 0000001 0 0 0 0 0 0
 __fsetlocking usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18.1 0000001 0000001 0 0 0 0 0 0
 __fsetlocking usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18.1 0000001 0000001 0 0 0 0 0 0
+__fsetlocking usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18.1 0000001 0000001 0 0 0 0 0 0
 __fsetlocking lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18.1 0000001 0000001 0 0 0 0 0 0
 __fwritable usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __fwritable lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwritable usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwritable usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__fwritable usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwritable lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwriting usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 __fwriting lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwriting usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwriting usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__fwriting usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __fwriting lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __gen_common_dhkeys_g usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __gen_common_dhkeys_g lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3947,11 +4034,13 @@
 __getcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__getcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getdate_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __getdate_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getdate_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getdate_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__getdate_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getdate_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gethostent6 usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 __gethostent6 lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -3962,6 +4051,7 @@
 __getloadavg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getloadavg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getloadavg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__getloadavg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getloadavg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getnetnamebyuid usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __getnetnamebyuid lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3986,6 +4076,7 @@
 __gettsp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gettsp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gettsp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__gettsp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gettsp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gettsp lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gettsp lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -3993,11 +4084,13 @@
 __getwc_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwc_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwc_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__getwc_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwc_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwchar_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __getwchar_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwchar_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwchar_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__getwchar_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __getwchar_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __gss_get_kmodName usr/lib/libgss.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __gss_get_kmodName usr/lib/amd64/libgss.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4035,6 +4128,7 @@
 __huge_val lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __huge_val usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __huge_val usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__huge_val usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __huge_val lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __i_size usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __i_size usr/lib/libform.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -4042,6 +4136,7 @@
 __i_size usr/lib/amd64/libform.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __i_size usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __i_size usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__i_size usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __i_size lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __incr_failed_count usr/lib/amd64/passwdutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __incr_failed_count usr/lib/passwdutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4076,24 +4171,29 @@
 __inf_read lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_read usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_read usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__inf_read usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_read lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_written usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __inf_written lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_written usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_written usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__inf_written usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __inf_written lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_daemon_priv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_daemon_priv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_daemon_priv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__init_daemon_priv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_daemon_priv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_suid_priv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_suid_priv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_suid_priv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__init_suid_priv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __init_suid_priv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iob usr/lib/libc.so.1 1 960 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 __iob lib/libc.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __iob usr/lib/libc/libc_hwcap1.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __iob usr/lib/libc/libc_hwcap2.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+__iob usr/lib/libc/libc_hwcap3.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 __iob lib/amd64/libc.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __irs_irp_acc usr/lib/dns/irs.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 __irs_irp_acc usr/lib/dns/amd64/irs.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4103,16 +4203,19 @@
 __iswctype_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__iswctype_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __iswctype_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__iswctype_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __iswctype_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__iswctype_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __iswctype_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __kadm5_get_priv usr/lib/krb5/libkadm5srv.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
 __key_decryptsession_pk_LOCAL usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -4128,41 +4231,49 @@
 __lc_charmap lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_charmap usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_charmap usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_charmap usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_charmap lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_collate usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_collate lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_collate usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_collate usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_collate usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_collate lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_ctype usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_ctype lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_ctype usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_ctype usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_ctype usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_ctype lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_locale usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_locale lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_locale usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_locale usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_locale usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_locale lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_messages usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_messages lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_messages usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_messages usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_messages usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_messages lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_monetary usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_monetary lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_monetary usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_monetary usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_monetary usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_monetary lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_numeric usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_numeric lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_numeric usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_numeric usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_numeric usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_numeric lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_time usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lc_time lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_time usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_time usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lc_time usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lc_time lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ldt_lock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __ldt_unlock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -4182,6 +4293,7 @@
 __loc1 usr/lib/amd64/libform.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __loc1 usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __loc1 usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__loc1 usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __loc1 lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __loc_aton usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __loc_aton lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -4193,11 +4305,13 @@
 __locale_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __locale_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __locale_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__locale_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __locale_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __localeconv_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __localeconv_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __localeconv_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __localeconv_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__localeconv_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __localeconv_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lock_clear usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lock_try usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -4266,31 +4380,37 @@
 __lwp_cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_reltimedwait usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 __lwp_cond_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_cond_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_signal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_timedwait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_wait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_continue usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_continue lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_continue usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_continue usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_continue usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_continue lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_create usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_detach usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
@@ -4300,53 +4420,63 @@
 __lwp_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_kill usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_makecontext usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_mutex_lock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_trylock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_unlock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_schedctl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_self usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_sema_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_sema_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_post usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_sema_post lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_post usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_post usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_sema_post usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_post lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_trywait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_sema_trywait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_trywait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_trywait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_sema_trywait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_trywait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_wait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_sema_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_sema_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_sema_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_setprivate usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_sigredirect usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -4355,6 +4485,7 @@
 __lwp_suspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_suspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_suspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__lwp_suspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_suspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __lwp_suspend2 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __lwp_wait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -4362,12 +4493,14 @@
 __major lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __major usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __major usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__major usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __major lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __make_legal usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 __makedev usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __makedev lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __makedev usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __makedev usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__makedev usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __makedev lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __mallinfo usr/lib/libmapmalloc.so.1 1 40 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __mallinfo usr/lib/amd64/libmapmalloc.so.1 1 40 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4375,136 +4508,163 @@
 __malloc_lock lib/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __malloc_lock usr/lib/libc/libc_hwcap1.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __malloc_lock usr/lib/libc/libc_hwcap2.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__malloc_lock usr/lib/libc/libc_hwcap3.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __malloc_lock lib/amd64/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbftowc_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbftowc_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbftowc_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbftowc_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbftowc_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbftowc_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbftowc_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_gen usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mblen_gen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_gen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_gen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mblen_gen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_gen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mblen_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mblen_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mblen_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_gen usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbrlen_gen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_gen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_gen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbrlen_gen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_gen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbrlen_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbrlen_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrlen_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbrtowc_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbrtowc_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbrtowc_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbrtowc_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbrtowc_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbrtowc_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbrtowc_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsinit_gen usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbsinit_gen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsinit_gen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsinit_gen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbsinit_gen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsinit_gen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbsrtowcs_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbsrtowcs_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbsrtowcs_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbsrtowcs_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbsrtowcs_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbsrtowcs_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbsrtowcs_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_consumed_array usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_get_consumed_array lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_consumed_array usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_consumed_array usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_get_consumed_array usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_consumed_array lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_locale usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_get_locale lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_locale usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_locale usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_get_locale usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_locale lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_nconsumed usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_get_nconsumed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_nconsumed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_nconsumed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_get_nconsumed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_get_nconsumed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_consumed_array usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_set_consumed_array lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_consumed_array usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_consumed_array usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_set_consumed_array usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_consumed_array lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_locale usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_set_locale lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_locale usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_locale usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_set_locale usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_locale lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_nconsumed usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbst_set_nconsumed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_nconsumed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_nconsumed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbst_set_nconsumed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbst_set_nconsumed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbstowcs_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbstowcs_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbstowcs_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbstowcs_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbstowcs_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbstowcs_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbstowcs_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbtowc_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbtowc_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbtowc_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbtowc_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mbtowc_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mbtowc_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mbtowc_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __memactive usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.2 0 0 0000011 0 0000010 0000001 0 0 0 0
 __memactive lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.2 0000001 0 0000001 0 0 0 0 0
@@ -4528,53 +4688,65 @@
 __messages_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __messages_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __messages_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__messages_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __messages_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __minor usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __minor lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __minor usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __minor usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__minor usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __minor lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __moddi3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __moddi3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __moddi3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__moddi3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __monetary_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __monetary_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __monetary_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __monetary_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__monetary_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __monetary_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mt_sigpending usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __mul64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __mul64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __mul64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __mul64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__mul64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __multi_innetgr usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __multi_innetgr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __multi_innetgr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __multi_innetgr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__multi_innetgr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __multi_innetgr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __name_distance usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __name_distance lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4583,11 +4755,13 @@
 __nan_read lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_read usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_read usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nan_read usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_read lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_written usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nan_written lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_written usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_written usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nan_written usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nan_written lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nanosleep usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0001111 0 0001000 0000111 0 0 0 0
@@ -4596,6 +4770,7 @@
 __nanosleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nanosleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nanosleep lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4705,21 +4880,25 @@
 __nis_debug_bind lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_bind usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_bind usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_debug_bind usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_bind lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_calls usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nis_debug_calls lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_calls usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_calls usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_debug_calls usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_calls lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_file usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nis_debug_file lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_file usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_file usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_debug_file usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_file lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_rpc usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nis_debug_rpc lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_rpc usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_rpc usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_debug_rpc usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debug_rpc lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_debuglevel usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nis_debuglevel lib/amd64/libnsl.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4750,6 +4929,7 @@
 __nis_get_environment lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_get_environment usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_get_environment usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_get_environment usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_get_environment lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_get_mechanism_library usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nis_get_mechanism_library lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4840,11 +5020,13 @@
 __nis_prefsrv lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_prefsrv usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_prefsrv usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_prefsrv usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_prefsrv lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_preftype usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nis_preftype lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_preftype usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_preftype usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_preftype usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_preftype lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_principal usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nis_principal lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4881,6 +5063,7 @@
 __nis_server lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_server usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_server usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nis_server usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_server lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nis_serverRefreshCache usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __nis_serverRefreshCache lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -4904,6 +5087,7 @@
 __nl_langinfo_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nl_langinfo_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nl_langinfo_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nl_langinfo_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nl_langinfo_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ns_datetosecs usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 __ns_datetosecs lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -5121,40 +5305,48 @@
 __nsw_extended_action lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_extended_action usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_extended_action usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__nsw_extended_action usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_extended_action lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_extended_action_v1 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nsw_extended_action_v1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_extended_action_v1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_extended_action_v1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nsw_extended_action_v1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_extended_action_v1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_freeconfig usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __nsw_freeconfig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_freeconfig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_freeconfig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__nsw_freeconfig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_freeconfig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_freeconfig_v1 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nsw_freeconfig_v1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_freeconfig_v1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_freeconfig_v1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nsw_freeconfig_v1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_freeconfig_v1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_getconfig usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __nsw_getconfig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_getconfig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_getconfig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__nsw_getconfig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_getconfig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __nsw_getconfig_v1 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __nsw_getconfig_v1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_getconfig_v1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_getconfig_v1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nsw_getconfig_v1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nsw_getconfig_v1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nthreads lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nthreads usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nthreads usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__nthreads usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __nthreads lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __numeric_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __numeric_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __numeric_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __numeric_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__numeric_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __numeric_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __p2close usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __p2close lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -5222,100 +5414,122 @@
 __posix_asctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_asctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_asctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_asctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_asctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ctime_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_ctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_ctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrgid_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_getgrgid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrgid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrgid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_getgrgid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrgid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_getgrnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_getgrnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getgrnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getlogin_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_getlogin_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getlogin_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getlogin_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_getlogin_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getlogin_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_getpwnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_getpwnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwuid_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_getpwuid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwuid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwuid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_getpwuid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_getpwuid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_readdir_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_readdir_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_readdir_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_readdir_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_readdir_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_sigwait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_sigwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_sigwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_sigwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_sigwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_sigwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ttyname_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __posix_ttyname_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ttyname_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ttyname_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__posix_ttyname_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __posix_ttyname_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __priocntl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __priocntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__priocntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntlset usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __priocntlset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntlset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntlset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__priocntlset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priocntlset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __priv_bracket lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_bracket usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_bracket usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__priv_bracket usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_bracket lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_free_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_free_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_free_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_free_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_free_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_getbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_getbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getdata lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getdata usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getdata usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_getdata usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getdata lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_getsetbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_getsetbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_getsetbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_parse_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_parse_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_parse_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_parse_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_parse_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_relinquish lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_relinquish usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_relinquish usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__priv_relinquish usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_relinquish lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __priv_set_to_str lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_set_to_str usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_set_to_str usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+__priv_set_to_str usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __priv_set_to_str lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 __proc_dirname usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 __pthread_cleanup_pop usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -5327,6 +5541,7 @@
 __pthread_cleanup_pop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_pop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_pop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__pthread_cleanup_pop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_pop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_pop lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_pop lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -5341,6 +5556,7 @@
 __pthread_cleanup_push lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_push usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_push usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__pthread_cleanup_push usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_push lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_push lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 __pthread_cleanup_push lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -5359,6 +5575,7 @@
 __pthread_min_stack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __pthread_min_stack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __pthread_min_stack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__pthread_min_stack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __pthread_min_stack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __pthread_min_stack lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __pthread_min_stack lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -5374,11 +5591,13 @@
 __putwc_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwc_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwc_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__putwc_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwc_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwchar_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __putwchar_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwchar_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwchar_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__putwchar_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __putwchar_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __readColdStartFile usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __readColdStartFile lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -5387,36 +5606,43 @@
 __regcomp_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regcomp_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __regcomp_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regcomp_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regcomp_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regerror_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __regerror_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regerror_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regerror_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regerror_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regerror_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_C usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __regexec_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regexec_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __regexec_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regexec_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regexec_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regfree_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __regfree_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regfree_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regfree_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__regfree_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __regfree_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __rem64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __rem64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __rem64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __rem64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__rem64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __res_disable_mt usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __res_disable_mt lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
 __res_disable_mt lib/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -5585,6 +5811,7 @@
 __set_errno lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __set_errno usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __set_errno usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__set_errno usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __set_errno lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __setcontext usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 __seterr_reply usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -5599,12 +5826,14 @@
 __signotify lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __signotify usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __signotify usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__signotify usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __signotify lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __signotifywait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __sigqueue usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __sigqueue lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigqueue usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigqueue usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__sigqueue usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigqueue lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __sigtimedwait usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -5615,6 +5844,7 @@
 __sigtimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__sigtimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sigtimedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -5641,51 +5871,61 @@
 __strcoll_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strcoll_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strcoll_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strcoll_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strcoll_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strcoll_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strcoll_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strfmon_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strfmon_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strfmon_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strfmon_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strfmon_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strfmon_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strftime_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strftime_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strftime_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strftime_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strftime_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strftime_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_dontzero usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 __strptime_dontzero lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_dontzero usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_dontzero usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strptime_dontzero usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_dontzero lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strptime_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strptime_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strptime_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_C usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strxfrm_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strxfrm_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strxfrm_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strxfrm_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __strxfrm_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__strxfrm_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __strxfrm_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __svc_get_svcauth usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __svc_get_svcauth lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -5720,14 +5960,17 @@
 __swapEX lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapEX usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapEX usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__swapEX usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapRD usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __swapRD lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapRD usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapRD usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__swapRD usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapTE usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __swapTE lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapTE usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __swapTE usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__swapTE usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __sym_ntop usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __sym_ntop lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
 __sym_ntop lib/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -5741,11 +5984,13 @@
 __sysconf_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __sysconf_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __sysconf_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+__sysconf_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __sysconf_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 __systemcall usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 __systemcall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __systemcall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __systemcall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__systemcall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __systemcall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __t_errno usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __t_errno usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -5989,6 +6234,7 @@
 __thr_door_server_func lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_server_func usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_server_func usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__thr_door_server_func usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_server_func lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __thr_door_unbind usr/lib/libpthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -5998,6 +6244,7 @@
 __thr_door_unbind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__thr_door_unbind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __thr_door_unbind lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6007,42 +6254,50 @@
 __threaded lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __threaded usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __threaded usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__threaded usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __threaded lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __time_init usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __time_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __time_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __time_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__time_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __time_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_create usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __timer_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__timer_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_delete usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __timer_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__timer_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_getoverrun usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __timer_getoverrun lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_getoverrun usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_getoverrun usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__timer_getoverrun usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_getoverrun lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_gettime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __timer_gettime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_gettime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_gettime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__timer_gettime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_gettime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_settime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __timer_settime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_settime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_settime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__timer_settime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __timer_settime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0001111 0 0001000 0000111 0 0 0 0
 __tls_get_addr usr/lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 __tls_get_addr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__tls_get_addr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __tls_get_addr lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6066,70 +6321,85 @@
 __towctrans_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towctrans_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __towctrans_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towctrans_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towctrans_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_bc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __towlower_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towlower_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __towlower_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towlower_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towlower_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_bc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __towupper_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towupper_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __towupper_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__towupper_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __towupper_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_lower usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __trans_lower lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_lower usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_lower usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__trans_lower usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_lower lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_upper usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __trans_upper lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_upper usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_upper usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__trans_upper usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trans_upper lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trwctype_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __trwctype_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trwctype_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trwctype_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__trwctype_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __trwctype_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udiv64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __udiv64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __udiv64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __udiv64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__udiv64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __udivdi3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udivdi3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udivdi3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__udivdi3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udivrem64 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __udivrem64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udivrem64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __udivrem64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__udivrem64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __umoddi3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __umoddi3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __umoddi3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__umoddi3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ungetwc_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __ungetwc_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ungetwc_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ungetwc_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__ungetwc_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __ungetwc_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __urem64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 __urem64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __urem64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __urem64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+__urem64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 __user_to_authenticate usr/lib/passwdutil.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 __user_to_authenticate usr/lib/amd64/passwdutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __verify_rpc_passwd usr/lib/passwdutil.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -6140,187 +6410,225 @@
 __wcrtomb_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcrtomb_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcrtomb_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcrtomb_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcrtomb_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcrtomb_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcrtomb_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_C usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcscoll_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcscoll_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_bc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcscoll_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcscoll_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcscoll_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcscoll_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcscoll_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsftime_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsftime_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsftime_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsftime_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsftime_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsrtombs_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsrtombs_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsrtombs_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsrtombs_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsrtombs_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsrtombs_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsrtombs_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstok_xpg5 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcstok_xpg5 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstok_xpg5 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstok_xpg5 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcstok_xpg5 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstok_xpg5 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcstombs_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcstombs_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcstombs_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcstombs_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcstombs_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcstombs_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcstombs_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcswidth_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcswidth_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcswidth_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcswidth_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcswidth_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcswidth_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcswidth_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcswidth_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcswidth_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_C usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsxfrm_C lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_C usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_C usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsxfrm_C usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_C lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_bc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsxfrm_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsxfrm_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcsxfrm_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcsxfrm_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcsxfrm_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctob_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctob_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctob_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctob_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctob_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctob_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctob_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctoeucpc_gen usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctoeucpc_gen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctoeucpc_gen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctoeucpc_gen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctoeucpc_gen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctoeucpc_gen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctomb_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctomb_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctomb_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctomb_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctomb_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctomb_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctomb_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctrans_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctrans_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctrans_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctrans_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctrans_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctrans_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctype_std usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wctype_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctype_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctype_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wctype_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wctype_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_bc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_bc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_bc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcwidth_bc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_bc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_dense usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcwidth_dense lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_dense usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_dense usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcwidth_dense usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_dense lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_euc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcwidth_euc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_euc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_euc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcwidth_euc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_euc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_sb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __wcwidth_sb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_sb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_sb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcwidth_sb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_sb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_std lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_std usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_std usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__wcwidth_std usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __wcwidth_std lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xgetRD usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __xgetRD lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xgetRD usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xgetRD usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xgetRD usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xgetRD lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xnet_bind usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_1.1 0 0 SUNW_1.4 SUNW_1.1 SUNW_1.4 SUNW_1.1 SUNW_1.4 SUNW_1.1 SUNW_1.4 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __xnet_bind usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -6382,6 +6690,7 @@
 __xpg4 lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 __xpg4 usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 __xpg4 usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+__xpg4 usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 __xpg4 lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 __xpg4_putmsg usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_1.4 0 0 SUNW_1.5 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6.1 SUNW_1.4 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -6392,6 +6701,7 @@
 __xpg4_putmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__xpg4_putmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 __xpg4_putmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -6406,6 +6716,7 @@
 __xpg4_putpmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putpmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putpmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+__xpg4_putpmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putpmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 __xpg4_putpmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 __xpg4_putpmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -6414,6 +6725,7 @@
 __xpg6 lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xpg6 usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xpg6 usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xpg6 usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xpg6 lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xpop usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 __xpop usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6423,21 +6735,25 @@
 __xtol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xtol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoll usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __xtoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xtoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoul usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __xtoul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xtoul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoull usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __xtoull lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoull usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoull usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+__xtoull usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __xtoull lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 __yp_add_binding usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 __yp_add_binding lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6476,6 +6792,7 @@
 _a64l lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _a64l usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _a64l usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_a64l usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _a64l lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _accept usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _accept lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6485,22 +6802,26 @@
 _access lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _access usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _access usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_access usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _access lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _acct usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _acct usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _acct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _acct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _acct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_acct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _acct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _acctctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 _acctctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acctctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acctctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_acctctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acctctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _acl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_acl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _acl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _adddevtabrec usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _adddevtabrec lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6512,11 +6833,13 @@
 _addseverity lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _addseverity usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _addseverity usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_addseverity usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _addseverity lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _adjtime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _adjtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _adjtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _adjtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_adjtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _adjtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _adjust_cursor usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _adjust_cursor usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6533,6 +6856,7 @@
 _alarm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _alarm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _alarm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_alarm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _alarm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _alarm lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _alarm lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6543,15 +6867,18 @@
 _alphasort lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_alphasort usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _alphasort64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_alphasort64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _altzone usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _altzone usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _altzone lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _altzone usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _altzone usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_altzone usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _altzone lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _argv_to_csl usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _argv_to_csl lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6560,20 +6887,24 @@
 _ascftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ascftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ascftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ascftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ascftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _asctime_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _asctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _asctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _asctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_asctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _asctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assert usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _assert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _assert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _assert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_assert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _assert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _assert_c99 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assert_c99 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assert_c99 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_assert_c99 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assert_c99 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _assfail usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0011111 0 0011000 0000111 0 0 0 0
@@ -6581,6 +6912,7 @@
 _assfail lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_assfail usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _assfail lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6588,69 +6920,85 @@
 _atoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_16 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_16_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_16_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_32_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_32_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_64_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_64_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_long usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_add_long_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_add_long_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_and_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_uint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_uint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_uint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_and_uint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_and_uint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_or_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_uint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_uint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_uint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_atomic_or_uint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _atomic_or_uint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _attropen usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _attropen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_attropen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _attropen64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _attropen64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_attropen64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _auth_match lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _auth_match lib/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _autofssys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _autofssys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _autofssys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_autofssys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _autofssys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _beg_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _beg_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6678,6 +7026,7 @@
 _brk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _brk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _brk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_brk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _brk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _buf_to_win usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _buf_to_win usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6685,6 +7034,7 @@
 _bufendtab lib/libc.so.1 1 244 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _bufendtab usr/lib/libc/libc_hwcap1.so.1 1 244 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _bufendtab usr/lib/libc/libc_hwcap2.so.1 1 244 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_bufendtab usr/lib/libc/libc_hwcap3.so.1 1 244 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _bufsplit usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _bufsplit lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _bufsplit lib/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6692,6 +7042,7 @@
 _bufsync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _bufsync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _bufsync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_bufsync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _bufsync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _build_internal_algs lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _build_internal_algs lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
@@ -6706,6 +7057,7 @@
 _canceloff lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _canceloff usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _canceloff usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_canceloff usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _canceloff lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _canceloff lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _canceloff lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6719,6 +7071,7 @@
 _cancelon lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cancelon usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cancelon usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cancelon usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cancelon lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cancelon lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cancelon lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6729,18 +7082,21 @@
 _catclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_catclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _catgets usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _catgets usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _catgets lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catgets usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catgets usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_catgets usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catgets lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _catopen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _catopen usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _catopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_catopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _catopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ccleanup usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ccleanup lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6749,11 +7105,13 @@
 _cfgetispeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetispeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetispeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cfgetispeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetispeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _cfgetospeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _cfgetospeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetospeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetospeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cfgetospeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfgetospeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _cfree usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _cfree usr/lib/libmalloc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -6763,21 +7121,25 @@
 _cfree usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _cfree usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cfree usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cfree usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cfree lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cfsetispeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _cfsetispeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetispeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetispeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cfsetispeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetispeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _cfsetospeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _cfsetospeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetospeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetospeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cfsetospeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cfsetospeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _cftime usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _cftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _change_color usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _change_color lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6790,6 +7152,7 @@
 _chdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_chdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _check_daemon_lock lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _check_daemon_lock lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
@@ -6811,23 +7174,27 @@
 _chmod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chmod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chmod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_chmod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chmod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _chown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _chown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _chown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_chown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _chroot usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _chroot usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _chroot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chroot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chroot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_chroot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _chroot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _cladm usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _cladm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cladm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cladm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cladm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cladm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _clean_trash lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _clean_trash lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
@@ -6835,6 +7202,7 @@
 _cleanup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cleanup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cleanup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cleanup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cleanup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _clock_getres usr/lib/librt.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _clock_getres lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6855,6 +7223,7 @@
 _close lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _close usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _close usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_close usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _close lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _close lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _closedir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -6862,16 +7231,19 @@
 _closedir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _closedir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _closedir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_closedir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _closedir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _closefrom usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _closefrom lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _closefrom usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _closefrom usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_closefrom usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _closefrom lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _closelog usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _closelog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _closelog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _closelog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_closelog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _closelog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _clr_eof usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _clr_eof usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6891,6 +7263,7 @@
 _cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_broadcast lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_broadcast lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6905,6 +7278,7 @@
 _cond_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6919,6 +7293,7 @@
 _cond_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6933,6 +7308,7 @@
 _cond_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_reltimedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_reltimedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6947,6 +7323,7 @@
 _cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_signal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_signal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6961,6 +7338,7 @@
 _cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_timedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_timedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -6978,6 +7356,7 @@
 _cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cond_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7001,64 +7380,78 @@
 _core_get_default_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_default_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_default_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_default_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_global_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_get_global_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_global_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_global_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_options usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_get_options lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_options usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_options usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_options usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_options lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_process_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_get_process_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_get_process_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_get_process_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_default_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_default_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_default_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_global_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_set_global_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_global_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_global_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_options usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_set_options lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_options usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_options usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_options usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_options lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_process_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _core_set_process_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_core_set_process_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _core_set_process_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _countchar usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _countchar lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7068,11 +7461,13 @@
 _creat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _creat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _creat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_creat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _creat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _creat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _creat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _creat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _creat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_creat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _create_daemon_lock lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _create_daemon_lock lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _crypt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -7083,6 +7478,7 @@
 _crypt usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _crypt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _crypt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_crypt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _crypt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _crypt_close usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _crypt_close usr/lib/libcrypt_i.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -7098,26 +7494,31 @@
 _cswidth lib/libc.so.1 1 16 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cswidth usr/lib/libc/libc_hwcap1.so.1 1 16 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cswidth usr/lib/libc/libc_hwcap2.so.1 1 16 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_cswidth usr/lib/libc/libc_hwcap3.so.1 1 16 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _cswidth lib/amd64/libc.so.1 1 16 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctermid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ctermid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ctermid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ctermid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ctermid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ctermid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ctermid_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ctermid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctermid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctermid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ctermid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctermid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctime_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ctype usr/lib/libc.so.1 1 521 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ctype lib/libc.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ctype usr/lib/libc/libc_hwcap1.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ctype usr/lib/libc/libc_hwcap2.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_ctype usr/lib/libc/libc_hwcap3.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ctype lib/amd64/libc.so.1 1 521 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _curs_mbstowcs usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _curs_mbstowcs lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7138,6 +7539,7 @@
 _cuserid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cuserid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cuserid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_cuserid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _cuserid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _data_beg usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _data_beg usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7154,6 +7556,7 @@
 _daylight lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _daylight usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _daylight usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_daylight usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _daylight lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _dd_lock_db usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
 _dd_tempfile usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
@@ -7162,21 +7565,25 @@
 _decimal_to_double lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_double usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_double usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_decimal_to_double usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_double lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_extended usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _decimal_to_extended lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_extended usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_extended usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_decimal_to_extended usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_extended lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_quadruple usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _decimal_to_quadruple lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_quadruple usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_quadruple usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_decimal_to_quadruple usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_quadruple lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_single usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _decimal_to_single lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_single usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_single usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_decimal_to_single usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _decimal_to_single lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _del_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _del_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7193,6 +7600,7 @@
 _delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _des_crypt usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _des_crypt usr/lib/libcrypt_i.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -7226,6 +7634,7 @@
 _dgettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dgettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dgettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dgettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dgettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dgettext lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _dgrptabpath usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -7242,6 +7651,7 @@
 _dladdr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dladdr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7253,6 +7663,7 @@
 _dladdr1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dladdr1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr1 lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dladdr1 lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7267,6 +7678,7 @@
 _dlclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlclose lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlclose lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7278,6 +7690,7 @@
 _dldump lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dldump usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dldump usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dldump usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dldump lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dldump lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dldump lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7289,6 +7702,7 @@
 _dlerror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlerror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlerror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlerror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlerror lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlerror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlerror lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7300,6 +7714,7 @@
 _dlinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlinfo lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlinfo lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7311,6 +7726,7 @@
 _dlmopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlmopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlmopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlmopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlmopen lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlmopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlmopen lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7322,6 +7738,7 @@
 _dlopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlopen lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlopen lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7333,6 +7750,7 @@
 _dlsym lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlsym usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlsym usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_dlsym usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlsym lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlsym lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _dlsym lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7355,67 +7773,80 @@
 _door_bind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_bind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_bind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_bind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_bind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_call usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_call lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_call usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_call usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_call usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_call lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_create usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_cred usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_cred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_cred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_cred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_cred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_cred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_info usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_return usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_return lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_return usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_return usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_return usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_return lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_revoke usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_revoke lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_revoke usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_revoke usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_revoke usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_revoke lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_ucred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_ucred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_ucred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_ucred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_ucred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unbind usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _door_unbind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unbind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unbind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_unbind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unbind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unref usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _door_unref lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unref usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unref usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_door_unref usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _door_unref lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doprnt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _doprnt usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _doprnt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doprnt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doprnt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_doprnt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doprnt usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doprnt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doscan usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _doscan lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doscan usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doscan usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_doscan usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _doscan lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _double_to_decimal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _double_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _double_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _double_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_double_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _double_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _down_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _down_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7425,6 +7856,7 @@
 _drand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _drand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _drand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_drand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _drand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _draw usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _draw usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7437,11 +7869,13 @@
 _dup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_dup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _dup2 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _dup2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_dup2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _dup2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _dup_execstr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _dup_execstr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7457,11 +7891,13 @@
 _econvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _econvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _econvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_econvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _econvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ecvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ecvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ecvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ecvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ecvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ecvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _elf32_fsize usr/lib/libelf.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _elf32_fsize lib/libelf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7601,6 +8037,7 @@
 _encrypt usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _encrypt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _encrypt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_encrypt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _encrypt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _end_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _end_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7624,6 +8061,7 @@
 _endgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_endgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endprofattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _endprofattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7632,11 +8070,13 @@
 _endpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_endpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endspent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _endspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_endspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _enduserattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _enduserattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7645,11 +8085,13 @@
 _endutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_endutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutxent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _endutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_endutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _endwin usr/lib/libcurses.so.1 1 1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _endwin usr/ucblib/libcurses.so.1 1 1 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -7666,12 +8108,14 @@
 _environ lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _environ usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _environ usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_environ usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _environ lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _environ lib/amd64/ld.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _erand48 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _erand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _erand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _erand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_erand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _erand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _escape usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _escape lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7689,168 +8133,199 @@
 _execl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _execle usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _execle usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _execle lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execle usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execle usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execle usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execle lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _execlp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _execlp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _execlp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execlp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execlp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execlp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execlp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _execv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _execv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _execv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _execve usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _execve usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _execve lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execve usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execve usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execve usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execve lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _execvp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _execvp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _execvp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execvp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execvp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_execvp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _execvp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _exit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _exit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _exithandle usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _exithandle lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _exithandle usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _exithandle usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_exithandle usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _exithandle lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _exportfs usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _exportfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _exportfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _exportfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_exportfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _exportfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _extended_to_decimal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _extended_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _extended_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _extended_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_extended_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _extended_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _facl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _facl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _facl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _facl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_facl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _facl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fattach usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fattach usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fattach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fattach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fattach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fattach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fattach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fchdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fchdir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fchdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fchdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fchmod usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fchmod usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fchmod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchmod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchmod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fchmod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchmod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fchown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fchown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fchown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fchown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fchown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fchownat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _fchownat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fchownat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fchownat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_fchownat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fchownat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fchroot usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fchroot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fchroot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fchroot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fchroot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fchroot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fcntl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fcntl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fcntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fcvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fdetach usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fdetach usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fdetach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdetach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdetach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fdetach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdetach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fdopen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fdopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fdopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fdopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fdopendir usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _fdopendir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdopendir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdopendir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_fdopendir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdopendir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdwalk usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _fdwalk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdwalk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdwalk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_fdwalk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fdwalk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _ffs usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ffs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ffs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ffs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ffs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ffs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetgrent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetgrent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetgrent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetpwent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetpwent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetpwent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fgetspent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fgetspent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetspent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fgetuserattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _fgetuserattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -7861,26 +8336,31 @@
 _filbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _filbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _filbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_filbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _filbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _file_to_decimal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _file_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _file_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _file_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_file_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _file_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fileno usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fileno lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fileno usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fileno usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fileno usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fileno lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _findbuf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _findbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_findbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findiop usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _findiop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findiop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findiop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_findiop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _findiop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fini usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 0 1000000 0111111 0 0 0 0
 _fini usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 0 1000000 0111111 0 0 0 0
@@ -7898,6 +8378,7 @@
 _finite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _finite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _finite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_finite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _finite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _first_active usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _first_active usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7912,21 +8393,25 @@
 _flockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _flockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _flockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_flockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _flockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _flsbuf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _flsbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _flsbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _flsbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_flsbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _flsbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _flushlbf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 _flushlbf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 _flushlbf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 _flushlbf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+_flushlbf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 _flushlbf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 _fmtmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fmtmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fmtmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fmtmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fmtmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fmtmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fn_ctx_handle_from_initial_with_ns usr/lib/libxfn.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fn_ctx_handle_from_initial_with_uid usr/lib/libxfn.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -7942,6 +8427,7 @@
 _fork lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fork lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7956,6 +8442,7 @@
 _fork1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fork1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork1 lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fork1 lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -7964,66 +8451,79 @@
 _forkall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _forkall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _forkall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_forkall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _forkall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fp_hw usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fp_hw usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fp_hw lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fp_hw usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fp_hw usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fp_hw usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpathconf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fpathconf usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fpathconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpathconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpathconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fpathconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpathconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fpclass usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpclass lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpclass usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpclass usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpclass usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpclass lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetmask usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpgetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpgetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetround usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpgetround lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetround usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetround usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpgetround usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetround lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetsticky usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpgetsticky lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetsticky usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetsticky usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpgetsticky usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpgetsticky lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetmask usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpsetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpsetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetround usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpsetround lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetround usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetround usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpsetround usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetround lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetsticky usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fpsetsticky lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetsticky usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetsticky usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fpsetsticky usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpsetsticky lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fpstart usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fpstart usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fpstart lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpstart usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpstart usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fpstart usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fpstart lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _free_argv usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _free_argv lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8050,110 +8550,133 @@
 _fscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fstat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fstat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fstat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fstat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_fstat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fstatat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _fstatat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_fstatat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _fstatat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_fstatat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fstatfs usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _fstatfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fstatfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fstatfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fstatfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fstatfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fstatvfs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fstatvfs usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fstatvfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstatvfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstatvfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fstatvfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fstatvfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _fstatvfs64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fstatvfs64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fstatvfs64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fstatvfs64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_fstatvfs64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _fsync usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fsync usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fsync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fsync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fsync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fsync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fsync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ftok usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ftok usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _ftok lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ftok usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ftok usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ftok usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ftok lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ftruncate usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ftruncate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftruncate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftruncate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ftruncate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftruncate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftruncate64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ftruncate64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ftruncate64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ftruncate64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_ftruncate64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ftrylockfile usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ftrylockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftrylockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftrylockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ftrylockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftrylockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftw usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ftw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ftw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ftw64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ftw64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ftw64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ftw64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_ftw64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _func_to_decimal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _func_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _func_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _func_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_func_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _func_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _funlockfile usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _funlockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _funlockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _funlockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_funlockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _funlockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _futimesat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _futimesat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _futimesat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _futimesat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_futimesat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _futimesat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _fwprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fwprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fwprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fwprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fwscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fwscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fwscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_fwscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _fxstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _fxstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _fxstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fxstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _fxstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_fxstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _gconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _gconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_gconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gcvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _gcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_gcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_auth_policy lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_auth_policy lib/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8161,6 +8684,7 @@
 _get_exit_frame_monitor lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_exit_frame_monitor usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_exit_frame_monitor usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_get_exit_frame_monitor usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_exit_frame_monitor lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _get_hostserv_inetnetdir_byaddr usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _get_hostserv_inetnetdir_byaddr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8172,6 +8696,7 @@
 _getacct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getacct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getacct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_getacct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getacct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getacdir lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getacdir lib/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8188,6 +8713,7 @@
 _getarg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getarg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getarg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getarg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getarg usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getarg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getauthattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -8206,64 +8732,76 @@
 _getc_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getc_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getc_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getc_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getc_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getchar_unlocked usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getchar_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getchar_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getchar_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getchar_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getchar_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getcontext usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getcontext usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getcpuid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _getcpuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getcpuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getcpuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_getcpuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getcpuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getcwd usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getcwd usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getcwd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcwd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcwd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getcwd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getcwd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getdate usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getdate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getdate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getdate_err usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getdate_err lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate_err usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate_err usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getdate_err usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getdate_err lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getdate_err_addr usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getdate_err_addr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 _getdate_err_addr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 _getdate_err_addr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+_getdate_err_addr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 _getdate_err_addr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 _getdents usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getdents lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getdents usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getdents usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getdents usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getdents lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getdents64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getdents64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getdents64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getdents64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_getdents64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getegid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getegid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _geteuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _geteuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _geteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _geteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _geteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_geteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _geteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getexecattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _getexecattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -8272,6 +8810,7 @@
 _getexecname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getexecname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getexecname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_getexecname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getexecname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getexecprof usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _getexecprof lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -8284,6 +8823,7 @@
 _getfp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getfp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getfp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getfp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getfp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getfp lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getfp lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -8294,74 +8834,88 @@
 _getgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getgrent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getgrent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getgrent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getgrgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getgrgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getgrgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrgid_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getgrgid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrgid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrgid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getgrgid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrgid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getgrnam usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getgrnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getgrnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgrnam_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getgrnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getgrnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgrnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgroups usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getgroups usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getgroupsbymember usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getgroupsbymember lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgroupsbymember usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgroupsbymember usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getgroupsbymember usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getgroupsbymember lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gethomelgroup usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _gethomelgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _gethomelgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _gethomelgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_gethomelgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _gethomelgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getisax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getisax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getisax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getisax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getisax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getitimer usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getitimer lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getitimer usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getitimer usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_getitimer usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getitimer lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getlogin usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getlogin usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getlogin lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getlogin usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getlogin usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getlogin usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getlogin lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getlogin_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getlogin_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getlogin_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getlogin_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getlogin_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getlogin_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getlong usr/lib/libresolv.so.2 0 0 SUNW_2.1 SUNW_2.1 0 0 SUNW_2.1 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getlong usr/lib/libresolv.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -8372,39 +8926,47 @@
 _getmntany lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntany usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntany usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getmntany usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntany lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getmntent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getmntent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmntent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getmsg usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getopt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getopt_clip lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_clip usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_clip usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getopt_clip usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_clip lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getopt_long usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long_only lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long_only usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long_only usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getopt_long_only usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getopt_long_only lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpass usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpass lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpass usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpass usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpass usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpass lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getpeername usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpeername lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8412,48 +8974,57 @@
 _getpeerucred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpeerucred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpeerucred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getpeerucred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpeerucred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getpgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpgrp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getpid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getpmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpmsg usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getppid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getppid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getppid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getppid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getppid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getppid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getppid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getppriv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getppriv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getppriv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getppriv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getppriv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getprivimplinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getprivimplinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getprivimplinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_getprivimplinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getprivimplinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _getprofattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _getprofattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -8465,59 +9036,70 @@
 _getprojid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getprojid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getprojid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_getprojid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getprojid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _getpw usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getpw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpwent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getpwent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpwnam usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpwnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpwnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwnam_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpwnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getpwnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getpwuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getpwuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getpwuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getpwuid_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getpwuid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwuid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwuid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getpwuid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getpwuid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getrctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _getrctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getrctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getrctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_getrctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getrctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _getrlimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getrlimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getrlimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getrlimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getrlimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getrlimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getrlimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getrlimit64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getrlimit64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getrlimit64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getrlimit64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_getrlimit64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _getshort usr/lib/libresolv.so.2 0 0 SUNW_2.1 SUNW_2.1 0 0 SUNW_2.1 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getshort usr/lib/libresolv.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getshort lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_2.2 SUNW_2.1 0000001 0000001 0 0 0 0 0 0
@@ -8528,6 +9110,7 @@
 _getsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getsockname usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getsockname lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8539,32 +9122,38 @@
 _getsp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getsp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getsp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getsp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getsp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getsp lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getspent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getspent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getspnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getspnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getspnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getspnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getspnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getsubopt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getsubopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsubopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsubopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getsubopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getsubopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getsyx usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getsyx lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -8573,23 +9162,27 @@
 _gettaskid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _gettaskid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _gettaskid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_gettaskid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _gettaskid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _gettimeofday usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _gettimeofday lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _gettimeofday usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _gettimeofday usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_gettimeofday usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _gettimeofday lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _gettxt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _gettxt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _gettxt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _gettxt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _gettxt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_gettxt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _gettxt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _getuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _getuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getuserattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _getuserattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -8601,66 +9194,79 @@
 _getustack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _getustack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _getustack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_getustack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _getustack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _getutent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutid usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutline usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmp usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmpx usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutmpx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmpx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmpx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutmpx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutmpx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxid usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutxid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutxid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxline usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getutxline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getutxline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getutxline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsany usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getvfsany lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsany usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsany usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getvfsany usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsany lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getvfsent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getvfsent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsfile usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getvfsfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getvfsfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsspec usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getvfsspec lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsspec usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsspec usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getvfsspec usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvfsspec lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getvol usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _getvol lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8669,18 +9275,22 @@
 _getw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_getw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _getw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _getzoneid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getzoneid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneidbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneidbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneidbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getzoneidbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzoneidbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzonenamebyid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzonenamebyid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzonenamebyid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_getzonenamebyid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _getzonenamebyid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gmatch usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _gmatch lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8689,12 +9299,14 @@
 _gmtime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gmtime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gmtime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_gmtime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gmtime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _grantpt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _grantpt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _grantpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _grantpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _grantpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_grantpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _grantpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _grow_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _grow_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8702,26 +9314,31 @@
 _gsignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gsignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gsignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_gsignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gsignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gtty usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _gtty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gtty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gtty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_gtty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _gtty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _hasmntopt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _hasmntopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _hasmntopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _hasmntopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_hasmntopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _hasmntopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _hcreate usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _hcreate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hcreate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hcreate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_hcreate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hcreate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _hdestroy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _hdestroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hdestroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hdestroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_hdestroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hdestroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _herrno2nss usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _herrno2nss lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8730,21 +9347,25 @@
 _hsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_hsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _hsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _iconv usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _iconv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_iconv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_close usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _iconv_close lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_close usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_close usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_iconv_close usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_close lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_open usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _iconv_open lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_open usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_open usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_iconv_open usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iconv_open lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _image usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _image lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8752,9 +9373,11 @@
 _imaxabs_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _imaxabs_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _imaxabs_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_imaxabs_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _imaxdiv_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _imaxdiv_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _imaxdiv_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_imaxdiv_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _init usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 0 1000000 0111111 0 0 0 0
 _init usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 0 1000000 0111111 0 0 0 0
 _init usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 0 1000000 0111111 0 0 0 0
@@ -8778,6 +9401,7 @@
 _initgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _initgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _initgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_initgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _initgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ins_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _ins_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8789,6 +9413,7 @@
 _insert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _insert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _insert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_insert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _insert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _insert2kva usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _insert2kva lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8797,11 +9422,13 @@
 _insque lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _insque usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _insque usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_insque usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _insque lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _inst_sync usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _inst_sync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _inst_sync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _inst_sync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_inst_sync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _inst_sync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _intersect_panel usr/lib/libpanel.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _intersect_panel usr/lib/amd64/libpanel.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8809,38 +9436,45 @@
 _iob lib/libc.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _iob usr/lib/libc/libc_hwcap1.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _iob usr/lib/libc/libc_hwcap2.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_iob usr/lib/libc/libc_hwcap3.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _iob lib/amd64/libc.so.1 1 960 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ioctl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ioctl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _ioctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ioctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ioctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ioctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ioctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _is_euc_fc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _is_euc_fc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_fc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_fc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_is_euc_fc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_fc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_pc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _is_euc_pc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_pc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_pc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_is_euc_pc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _is_euc_pc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _isascii usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _isascii lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isascii usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isascii usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_isascii usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isascii lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _isastream usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _isastream usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _isastream lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isastream usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isastream usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_isastream usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isastream lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _isatty usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _isatty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isatty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isatty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_isatty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isatty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _isencrypt usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _isencrypt lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8849,31 +9483,37 @@
 _isnan lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnan usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnan usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_isnan usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnan lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _isnand usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _isnand lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnand usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnand usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_isnand usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _isnand lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _isnanf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _isnanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _isnanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _isnanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_isnanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _isnanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _issetugid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _issetugid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _issetugid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _issetugid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_issetugid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _issetugid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _iswctype usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _iswctype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iswctype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iswctype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_iswctype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _iswctype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _jrand48 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _jrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _jrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _jrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_jrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _jrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _kadm5_get_kpasswd_protocol usr/lib/krb5/libkadm5clnt.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 _kadm5_get_kpasswd_protocol usr/lib/krb5/libkadm5srv.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
@@ -8882,12 +9522,14 @@
 _kaio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _kaio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _kaio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_kaio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _kaio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _kill usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _kill usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _kmsgout usr/lib/libkrb.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 0 0 0 0 0 0 0 0 0 0 1111111 1000000 0 0111111 0 0 0 0
 _kva2str usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -8903,11 +9545,13 @@
 _l64a lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _l64a usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _l64a usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_l64a usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _l64a lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ladd usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ladd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ladd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ladd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ladd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ladd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _last_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _last_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8917,21 +9561,25 @@
 _lastbuf lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lastbuf usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lastbuf usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lastbuf usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lchown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lchown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _lchown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lchown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lchown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lchown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lchown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lckpwdf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lckpwdf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lckpwdf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lckpwdf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lckpwdf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lckpwdf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lcong48 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lcong48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lcong48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lcong48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lcong48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lcong48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_concurrency etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ld_concurrency usr/lib/libdl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -8948,6 +9596,7 @@
 _ld_libc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_libc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_libc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ld_libc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_libc lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_libc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ld_libc lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -8955,6 +9604,7 @@
 _ldivide lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ldivide usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ldivide usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ldivide usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ldivide lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _left_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _left_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -8964,22 +9614,26 @@
 _lexp10 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lexp10 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lexp10 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lexp10 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lexp10 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lfind usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lfind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lfind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lfind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lfind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lfind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lflag usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lgrp_home_fast usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 _lgrp_home_fast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrp_home_fast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrp_home_fast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lgrp_home_fast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrp_home_fast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrpsys usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 _lgrpsys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrpsys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrpsys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lgrpsys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lgrpsys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lib_version usr/lib/libcurses.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -9011,6 +9665,7 @@
 _lib_version usr/lib/amd64/libvt0.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lib_version usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version lib/amd64/libcurses.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lib_version lib/libmp.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9047,6 +9702,7 @@
 _link lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _link usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _link usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_link usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _link lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _link_aton lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.3 0000001 0 0000001 0 0 0 0 0
 _link_aton lib/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.3 0000001 0 0000001 0 0 0 0 0
@@ -9061,31 +9717,37 @@
 _llabs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llabs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llabs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_llabs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llabs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lldiv usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lldiv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lldiv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lldiv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lldiv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lldiv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llog10 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _llog10 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llog10 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llog10 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_llog10 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llog10 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llseek usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _llseek lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llseek usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llseek usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_llseek usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _llseek lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lltostr usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lltostr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lltostr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lltostr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lltostr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lltostr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lmul usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lmul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lmul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lmul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lmul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lmul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _loadtab usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _loc1 usr/lib/libgen.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -9099,26 +9761,31 @@
 _localtime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _localtime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _localtime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_localtime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _localtime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_clear usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lock_clear lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_clear usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_clear usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lock_clear usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_clear lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_try usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lock_try lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_try usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_try usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lock_try usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lock_try lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lockf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lockf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lockf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lockf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lockf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lockf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lockf64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lockf64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lockf64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lockf64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_lockf64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _locs usr/lib/libgen.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _locs lib/amd64/libgen.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _locs lib/libgen.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9126,17 +9793,20 @@
 _logb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _logb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _logb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_logb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _logb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lone usr/lib/libc.so.1 1 8 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lone lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lone usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lone usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lone usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lone lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _longjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _longjmp usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _longjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _longjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _longjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_longjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _longjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lpostfork_child_handler usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 _lpostfork_parent_handler usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
@@ -9146,81 +9816,97 @@
 _lrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lsearch usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lseek usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lseek usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _lseek lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lseek usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lseek usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lseek usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lseek lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lseek64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lseek64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lseek64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lseek64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_lseek64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lshiftl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lshiftl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lshiftl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lshiftl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lshiftl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lshiftl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _lstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lstat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lstat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lstat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lstat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lstat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_lstat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lsub usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lsub lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lsub usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lsub usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lsub usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lsub lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lten usr/lib/libc.so.1 1 8 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lten lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lten usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lten usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lten usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lten lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ltzset usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ltzset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ltzset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ltzset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ltzset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ltzset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lwp_cond_broadcast usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_reltimedwait usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0001111 0001110 0 0000001 0 0 0 0
 _lwp_cond_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_lwp_cond_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_signal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_timedwait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_wait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_continue usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_continue lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_continue usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_continue usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_continue usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_continue lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_create usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_detach usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0001111 0001110 0 0000001 0 0 0 0
@@ -9230,53 +9916,63 @@
 _lwp_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_kill usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_makecontext usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_mutex_lock usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_trylock usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_unlock usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_schedctl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lwp_self usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_init usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_sema_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_sema_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_post usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_sema_post lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_post usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_post usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_sema_post usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_post lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_trywait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_sema_trywait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_trywait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_trywait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_lwp_sema_trywait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_trywait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_wait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_sema_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_sema_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_sema_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_setprivate usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_sigredirect usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -9285,6 +9981,7 @@
 _lwp_suspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_suspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_suspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_lwp_suspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_suspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _lwp_suspend2 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _lwp_wait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -9293,10 +9990,12 @@
 _lxstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lxstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lxstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_lxstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _lzero usr/lib/libc.so.1 1 8 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _lzero lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lzero usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lzero usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_lzero usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _lzero lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _m_check_format_status usr/lib/smedia/sm_scsi.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 _m_device_type usr/lib/smedia/sm_scsi.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -9339,6 +10038,7 @@
 _madvise lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _madvise usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _madvise usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_madvise usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _madvise lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makearg usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _makearg usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9347,6 +10047,7 @@
 _makecontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _makecontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _makecontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_makecontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _makecontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _makekey usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _makekey usr/lib/libcrypt_i.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -9359,11 +10060,13 @@
 _makeut lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeut usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeut usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_makeut usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeut lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeutx usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _makeutx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeutx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeutx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_makeutx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _makeutx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mallinfo usr/lib/libmalloc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 _mallinfo usr/lib/watchmalloc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -9385,6 +10088,7 @@
 _mbftowc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mbftowc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mbftowc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mbftowc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mbftowc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mbinsshift usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _mbinsshift lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9407,42 +10111,50 @@
 _memalign usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _memalign usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memalign usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_memalign usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memalign lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memccpy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _memccpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memccpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memccpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_memccpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memccpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _memcmp usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _memcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_memcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcntl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _memcntl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _memcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_memcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _memcntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _memcpy usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _memcpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_memcpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memcpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _meminfo usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _meminfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _meminfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _meminfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_meminfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _meminfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _memmove usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _memmove lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memmove usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memmove usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_memmove usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memmove lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memset usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _memset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_memset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _memset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _meta usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _meta lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -9451,6 +10163,7 @@
 _mincore lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mincore usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mincore usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mincore usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mincore lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _misc_request usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _misc_request usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9459,6 +10172,7 @@
 _mkarglst lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mkarglst usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mkarglst usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mkarglst usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mkarglst usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mkarglst lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mkdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -9466,6 +10180,7 @@
 _mkdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mkdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkdirp usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _mkdirp lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9474,48 +10189,57 @@
 _mkfifo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkfifo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkfifo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mkfifo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mkfifo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mknod usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mknod usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _mknod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mknod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mknod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mknod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mknod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkstemp usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 _mkstemp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkstemp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkstemp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_mkstemp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkstemp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mkstemp64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mkstemp64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _mkstemp64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _mkstemp64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_mkstemp64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _mktemp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mktemp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mktemp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mktemp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mktemp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mktemp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mlock usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mlock usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _mlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mlockall usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _mlockall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mlockall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mlockall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mlockall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mlockall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mmap usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mmap usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _mmap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mmap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mmap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mmap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mmap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mmap64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mmap64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _mmap64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _mmap64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_mmap64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _moddevtabrec usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _moddevtabrec lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _moddevtabrec lib/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9523,27 +10247,32 @@
 _modf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _modf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _modf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_modf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _modf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _modff usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _modff lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modff usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modff usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_modff usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modff lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modutx usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _modutx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modutx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modutx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_modutx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _modutx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _monitor usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _monitor lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _monitor usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _monitor usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_monitor usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _monitor lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mount usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _mount usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _mount lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mount usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mount usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mount usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mount lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _move_post_item usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _move_post_item usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9563,73 +10292,86 @@
 _mprotect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mprotect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mprotect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_mprotect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _mprotect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mrand48 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _mrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _msgctl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _msgctl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _msgctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_msgctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _msgctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _msgctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _msgctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _msgctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_msgctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _msgctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _msgget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _msgget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _msgget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_msgget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _msgids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _msgids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_msgids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgrcv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _msgrcv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _msgrcv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgrcv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgrcv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_msgrcv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgrcv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _msgsnap usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _msgsnap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgsnap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgsnap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_msgsnap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgsnap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _msgsnd usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _msgsnd usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _msgsnd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgsnd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgsnd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_msgsnd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msgsnd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _msync usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _msync usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _msync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_msync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _msync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _munlock usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _munlock usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _munlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_munlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _munlockall usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _munlockall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _munlockall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _munlockall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_munlockall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _munlockall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _munmap usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _munmap usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _munmap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munmap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munmap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_munmap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _munmap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_destroy usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _mutex_destroy usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -9640,6 +10382,7 @@
 _mutex_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mutex_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9652,6 +10395,7 @@
 _mutex_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_mutex_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -9664,6 +10408,7 @@
 _mutex_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mutex_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9678,6 +10423,7 @@
 _mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _mutex_lock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_lock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -9692,6 +10438,7 @@
 _mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_trylock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_trylock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9706,6 +10453,7 @@
 _mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _mutex_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9749,6 +10497,7 @@
 _nextafter lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nextafter usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nextafter usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_nextafter usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nextafter lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nextchoice usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _nextchoice usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9756,36 +10505,43 @@
 _nfs_getfh lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfs_getfh usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfs_getfh usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nfs_getfh usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfs_getfh lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssvc usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nfssvc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssvc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssvc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nfssvc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssvc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssys usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nfssys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nfssys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nfssys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nftw usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nftw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nftw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nftw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_nftw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nftw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nftw64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nftw64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _nftw64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _nftw64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_nftw64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _nice usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nice usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _nice lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nice usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nice usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_nice usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nice lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nl_langinfo usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nl_langinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nl_langinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nl_langinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_nl_langinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nl_langinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nlscall usr/lib/libnls.so.1 1 4 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 _nlscall usr/lib/amd64/libnls.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9797,6 +10553,7 @@
 _nrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ns_flagdata usr/lib/libresolv.so.2 1 128 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ns_flagdata lib/amd64/libresolv.so.2 1 128 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -9805,21 +10562,25 @@
 _nsc_trydoorcall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 _nsc_trydoorcall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 _nsc_trydoorcall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+_nsc_trydoorcall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 _nsc_trydoorcall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_alloc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nss_XbyY_buf_alloc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_alloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_alloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_nss_XbyY_buf_alloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_alloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_free usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nss_XbyY_buf_free lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_free usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_free usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_nss_XbyY_buf_free usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_buf_free lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_XbyY_fgets usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _nss_XbyY_fgets lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_XbyY_fgets usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_XbyY_fgets usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_XbyY_fgets usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_XbyY_fgets lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_compat_audit_user_constr usr/lib/nss_compat.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 _nss_compat_audit_user_constr lib/amd64/nss_compat.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9840,16 +10601,19 @@
 _nss_db_state_destr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_db_state_destr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_db_state_destr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_db_state_destr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_db_state_destr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_default_finders usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nss_default_finders lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_default_finders usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_default_finders usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_default_finders usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_default_finders lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_delete usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nss_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_dns_hosts_constr usr/lib/nss_dns.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nss_dns_hosts_constr lib/amd64/nss_dns.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -9861,6 +10625,7 @@
 _nss_endent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_endent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_endent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_endent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_endent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_files__printers_constr etc/lib/nss_files.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _nss_files__printers_constr usr/lib/nss_files.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -9946,11 +10711,13 @@
 _nss_getent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_getent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_getent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_getent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_getent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_initf_netgroup usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nss_initf_netgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_initf_netgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_initf_netgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_initf_netgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_initf_netgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_ldap__printers_constr usr/lib/nss_ldap.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 _nss_ldap__printers_constr usr/lib/amd64/nss_ldap.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10000,6 +10767,7 @@
 _nss_netdb_aliases lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_netdb_aliases usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_netdb_aliases usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_nss_netdb_aliases usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_netdb_aliases lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nss_nis__printers_constr usr/lib/nss_nis.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _nss_nis__printers_constr lib/amd64/nss_nis.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10128,11 +10896,13 @@
 _nss_search lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_search usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_search usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_search usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_search lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_setent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _nss_setent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_setent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_setent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_nss_setent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_setent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _nss_user__printers_constr usr/lib/nss_user.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _nss_user__printers_constr lib/amd64/nss_user.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10146,11 +10916,13 @@
 _ntp_adjtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_adjtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_adjtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_ntp_adjtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_adjtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_gettime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ntp_gettime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_gettime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_gettime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_ntp_gettime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _ntp_gettime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _null_auth usr/lib/libnsl.so.1 1 12 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _null_auth lib/amd64/libnsl.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -10160,12 +10932,14 @@
 _numeric lib/libc.so.1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _numeric usr/lib/libc/libc_hwcap1.so.1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _numeric usr/lib/libc/libc_hwcap2.so.1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_numeric usr/lib/libc/libc_hwcap3.so.1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _numeric lib/amd64/libc.so.1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _nuname usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _nuname usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _nuname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nuname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _nuname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_nuname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _open etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 _open usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _open usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -10174,23 +10948,27 @@
 _open lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _open usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _open usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_open usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _open lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _open lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _open64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _open64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _open64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _open64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_open64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _openac lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _openac lib/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _openat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _openat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_openat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _openat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _openat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_openat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _opendevtab usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _opendevtab lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _opendevtab lib/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10202,11 +10980,13 @@
 _opendir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _opendir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _opendir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_opendir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _opendir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _openlog usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _openlog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _openlog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _openlog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_openlog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _openlog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _outch usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _outch lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10239,6 +11019,7 @@
 _pathconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pathconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pathconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_pathconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pathconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pathfind usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pathfind lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10248,11 +11029,13 @@
 _pause lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pause usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pause usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_pause usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pause lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pclose usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _pclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_pclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pfast usr/ucblib/libcurses.so.1 1 1 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 _pfast usr/ucblib/amd64/libcurses.so.1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -10261,58 +11044,71 @@
 _pipe lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pipe usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pipe usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_pipe usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _pipe lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _plock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _plock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _plock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _plock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_plock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _plock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _poll usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _poll usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _poll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _poll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _poll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_poll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _poll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _popen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _popen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _popen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _popen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_popen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _popen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _port_alert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_alert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_alert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_alert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_alert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_associate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_associate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_associate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_associate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_associate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dispatch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dispatch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dispatch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_dispatch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dispatch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dissociate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dissociate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dissociate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_dissociate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_dissociate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_get lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_get usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_get usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_get usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_get lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_getn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_getn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_getn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_getn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_getn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_send lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_send usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_send usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_send usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_send lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_sendn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_sendn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_sendn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_port_sendn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _port_sendn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pos_form_cursor usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _pos_form_cursor usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10321,90 +11117,112 @@
 _posix_openpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_openpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_openpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_openpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_openpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_adddup2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_adddup2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_addopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawn_file_actions_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawn_file_actions_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getpgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getpgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigdefault lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigdefault lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_getsigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setpgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setpgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigdefault lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigdefault lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnattr_setsigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_posix_spawnp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _posix_spawnp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _post_item usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _post_item usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10414,11 +11232,13 @@
 _pread lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pread usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pread usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pread usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pread lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pread64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _pread64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _pread64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _pread64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_pread64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _prefork_handler usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 _prefresh usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _prefresh lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10440,126 +11260,156 @@
 _printf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_printf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printstack usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _printstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_printstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _printstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _priv_addset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_addset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_addset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_addset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_addset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_allocset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_allocset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_allocset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_allocset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_allocset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_copyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_copyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_copyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_copyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_copyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_delset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_delset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_delset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_delset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_delset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_emptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_emptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_emptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_emptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_emptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_fillset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_fillset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_fillset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_fillset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_fillset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_freeset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_freeset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_freeset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_freeset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_freeset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_getbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_getbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_getsetbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_getsetbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_getsetbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_gettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_gettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_gettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_gettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_gettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ineffect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ineffect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ineffect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_ineffect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ineffect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_intersect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_intersect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_intersect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_intersect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_intersect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_inverse lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_inverse usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_inverse usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_inverse usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_inverse lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isemptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isemptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isemptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_isemptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isemptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isequalset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isequalset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isequalset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_isequalset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isequalset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isfullset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isfullset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isfullset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_isfullset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_isfullset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ismember lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ismember usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ismember usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_ismember usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_ismember lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_issubset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_issubset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_issubset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_issubset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_issubset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_set usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set_to_str lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set_to_str usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set_to_str usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_set_to_str usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_set_to_str lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_str_to_set lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_str_to_set usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_str_to_set usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_str_to_set usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_str_to_set lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_union lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_union usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_union usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_priv_union usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _priv_union lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _profil usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _profil usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _profil lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _profil usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _profil usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_profil usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _profil lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pselect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pselect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pselect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pselect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pselect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psiginfo usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _psiginfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psiginfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psiginfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_psiginfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psiginfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psignal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _psignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_psignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _psignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_atfork usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_atfork usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
@@ -10568,6 +11418,7 @@
 _pthread_atfork lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_atfork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_atfork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_atfork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_atfork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_attr_destroy usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -10578,6 +11429,7 @@
 _pthread_attr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10592,6 +11444,7 @@
 _pthread_attr_getdetachstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getdetachstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getdetachstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getdetachstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getdetachstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getdetachstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getdetachstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10606,6 +11459,7 @@
 _pthread_attr_getguardsize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getguardsize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getguardsize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getguardsize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getguardsize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getguardsize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getguardsize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10620,6 +11474,7 @@
 _pthread_attr_getinheritsched lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getinheritsched usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getinheritsched usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getinheritsched usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getinheritsched lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getinheritsched lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getinheritsched lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10634,6 +11489,7 @@
 _pthread_attr_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10648,6 +11504,7 @@
 _pthread_attr_getschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedpolicy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getschedpolicy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10662,6 +11519,7 @@
 _pthread_attr_getscope lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getscope usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getscope usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getscope usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getscope lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getscope lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getscope lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10670,6 +11528,7 @@
 _pthread_attr_getstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_attr_getstackaddr usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -10680,6 +11539,7 @@
 _pthread_attr_getstackaddr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getstackaddr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstackaddr lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10694,6 +11554,7 @@
 _pthread_attr_getstacksize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstacksize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstacksize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_getstacksize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstacksize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstacksize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_getstacksize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10708,6 +11569,7 @@
 _pthread_attr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10722,6 +11584,7 @@
 _pthread_attr_setdetachstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setdetachstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setdetachstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setdetachstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setdetachstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setdetachstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setdetachstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10736,6 +11599,7 @@
 _pthread_attr_setguardsize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setguardsize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setguardsize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setguardsize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setguardsize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setguardsize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setguardsize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10750,6 +11614,7 @@
 _pthread_attr_setinheritsched lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setinheritsched usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setinheritsched usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setinheritsched usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setinheritsched lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setinheritsched lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setinheritsched lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10764,6 +11629,7 @@
 _pthread_attr_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10778,6 +11644,7 @@
 _pthread_attr_setschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedpolicy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setschedpolicy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10792,6 +11659,7 @@
 _pthread_attr_setscope lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setscope usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setscope usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setscope usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setscope lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setscope lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setscope lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10800,6 +11668,7 @@
 _pthread_attr_setstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_attr_setstackaddr usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -10810,6 +11679,7 @@
 _pthread_attr_setstackaddr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setstackaddr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstackaddr lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10824,6 +11694,7 @@
 _pthread_attr_setstacksize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstacksize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstacksize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_attr_setstacksize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstacksize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstacksize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_attr_setstacksize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10832,30 +11703,37 @@
 _pthread_barrier_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrier_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrier_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrier_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrier_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrierattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrierattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_barrierattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_cancel usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -10866,6 +11744,7 @@
 _pthread_cancel lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cancel usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cancel lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10880,6 +11759,7 @@
 _pthread_cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_broadcast lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_broadcast lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10894,6 +11774,7 @@
 _pthread_cond_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10908,6 +11789,7 @@
 _pthread_cond_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10922,6 +11804,7 @@
 _pthread_cond_reltimedwait_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_reltimedwait_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_reltimedwait_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_reltimedwait_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10936,6 +11819,7 @@
 _pthread_cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_signal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_signal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10950,6 +11834,7 @@
 _pthread_cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_timedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_timedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10964,6 +11849,7 @@
 _pthread_cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_cond_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10978,6 +11864,7 @@
 _pthread_condattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -10986,6 +11873,7 @@
 _pthread_condattr_getclock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getclock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getclock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_getclock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getclock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_condattr_getpshared usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -10996,6 +11884,7 @@
 _pthread_condattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11010,6 +11899,7 @@
 _pthread_condattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11018,6 +11908,7 @@
 _pthread_condattr_setclock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setclock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setclock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_setclock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setclock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_condattr_setpshared usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11028,6 +11919,7 @@
 _pthread_condattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_condattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_condattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11042,6 +11934,7 @@
 _pthread_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11056,6 +11949,7 @@
 _pthread_detach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_detach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_detach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_detach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_detach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_detach lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_detach lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11070,6 +11964,7 @@
 _pthread_equal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_equal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_equal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_equal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_equal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_equal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_equal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11084,6 +11979,7 @@
 _pthread_exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_exit lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_exit lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11098,6 +11994,7 @@
 _pthread_getconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_getconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11112,6 +12009,7 @@
 _pthread_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11126,6 +12024,7 @@
 _pthread_getspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_getspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_getspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11140,6 +12039,7 @@
 _pthread_join lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_join usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_join usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_join usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_join lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_join lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_join lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11154,6 +12054,7 @@
 _pthread_key_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_key_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11168,6 +12069,7 @@
 _pthread_key_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_key_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_delete lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_key_delete lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11182,6 +12084,7 @@
 _pthread_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_kill lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_kill lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11197,6 +12100,7 @@
 _pthread_mutex_consistent_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_consistent_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_consistent_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_consistent_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_consistent_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_consistent_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_consistent_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11211,6 +12115,7 @@
 _pthread_mutex_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11225,6 +12130,7 @@
 _pthread_mutex_getprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_getprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_getprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_getprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11239,6 +12145,7 @@
 _pthread_mutex_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11253,6 +12160,7 @@
 _pthread_mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_lock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_lock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11261,6 +12169,7 @@
 _pthread_mutex_reltimedlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_reltimedlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_mutex_setprioceiling usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11271,6 +12180,7 @@
 _pthread_mutex_setprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_setprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11279,6 +12189,7 @@
 _pthread_mutex_timedlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_timedlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_timedlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_timedlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_timedlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_mutex_trylock usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11289,6 +12200,7 @@
 _pthread_mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_trylock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11303,6 +12215,7 @@
 _pthread_mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutex_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11317,6 +12230,7 @@
 _pthread_mutexattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11331,6 +12245,7 @@
 _pthread_mutexattr_getprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11345,6 +12260,7 @@
 _pthread_mutexattr_getprotocol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprotocol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprotocol lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getprotocol lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11359,6 +12275,7 @@
 _pthread_mutexattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11372,6 +12289,7 @@
 _pthread_mutexattr_getrobust_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getrobust_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getrobust_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_getrobust_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11386,6 +12304,7 @@
 _pthread_mutexattr_gettype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_gettype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_gettype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_gettype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_gettype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_gettype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_gettype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11400,6 +12319,7 @@
 _pthread_mutexattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11414,6 +12334,7 @@
 _pthread_mutexattr_setprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11428,6 +12349,7 @@
 _pthread_mutexattr_setprotocol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprotocol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprotocol lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setprotocol lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11442,6 +12364,7 @@
 _pthread_mutexattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11455,6 +12378,7 @@
 _pthread_mutexattr_setrobust_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setrobust_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setrobust_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_setrobust_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11469,6 +12393,7 @@
 _pthread_mutexattr_settype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_settype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_settype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_mutexattr_settype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_settype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_settype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_mutexattr_settype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11483,6 +12408,7 @@
 _pthread_once lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_once usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_once usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_once usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_once lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_once lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_once lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11497,6 +12423,7 @@
 _pthread_rwlock_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11511,6 +12438,7 @@
 _pthread_rwlock_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11525,6 +12453,7 @@
 _pthread_rwlock_rdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_rdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_rdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_rdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_rdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_rdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_rdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11533,18 +12462,22 @@
 _pthread_rwlock_reltimedrdlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedrdlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedwrlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_reltimedwrlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedwrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_timedwrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_rwlock_tryrdlock usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11555,6 +12488,7 @@
 _pthread_rwlock_tryrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_tryrdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11569,6 +12503,7 @@
 _pthread_rwlock_trywrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_trywrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_trywrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_trywrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11583,6 +12518,7 @@
 _pthread_rwlock_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11597,6 +12533,7 @@
 _pthread_rwlock_wrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_wrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_wrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlock_wrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_wrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_wrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlock_wrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11611,6 +12548,7 @@
 _pthread_rwlockattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11625,6 +12563,7 @@
 _pthread_rwlockattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11639,6 +12578,7 @@
 _pthread_rwlockattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlockattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11653,6 +12593,7 @@
 _pthread_rwlockattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_rwlockattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11667,6 +12608,7 @@
 _pthread_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_self lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_self lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11681,6 +12623,7 @@
 _pthread_setcancelstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcancelstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcancelstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setcancelstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcancelstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcancelstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcancelstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11695,6 +12638,7 @@
 _pthread_setcanceltype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcanceltype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcanceltype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setcanceltype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcanceltype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcanceltype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcanceltype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11708,6 +12652,7 @@
 _pthread_setcleanupinit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcleanupinit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcleanupinit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setcleanupinit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcleanupinit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcleanupinit lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setcleanupinit lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11722,6 +12667,7 @@
 _pthread_setconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11736,6 +12682,7 @@
 _pthread_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11744,6 +12691,7 @@
 _pthread_setschedprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setschedprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setschedprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_setspecific usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11754,6 +12702,7 @@
 _pthread_setspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_setspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_setspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11768,6 +12717,7 @@
 _pthread_sigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_sigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_sigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_sigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_sigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_sigmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_sigmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11776,22 +12726,27 @@
 _pthread_spin_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_spin_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_spin_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_spin_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_spin_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_spin_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_spin_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pthread_testcancel usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -11802,6 +12757,7 @@
 _pthread_testcancel lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pthread_testcancel usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pthread_testcancel lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11812,22 +12768,26 @@
 _ptrace lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptrace usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptrace usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ptrace usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptsname usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ptsname usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _ptsname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptsname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptsname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ptsname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ptsname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pure_error_ usr/lib/libxfn.so.2 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _putacct usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _putacct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _putacct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _putacct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_putacct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _putacct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _putc_unlocked usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _putc_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putc_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putc_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_putc_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putc_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putchar usr/ucblib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _putchar usr/ucblib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11835,92 +12795,110 @@
 _putchar_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putchar_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putchar_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_putchar_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putchar_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putenv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _putenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_putenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _putmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _putmsg usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _putmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_putmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _putpmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _putpmsg usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _putpmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putpmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putpmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_putpmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putpmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _putpwent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _putpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_putpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putspent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _putspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_putspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututline usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pututline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pututline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututxline usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pututxline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututxline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututxline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pututxline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pututxline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _putw usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _putw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_putw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _putw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _pwrite usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _pwrite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pwrite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pwrite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_pwrite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pwrite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _pwrite64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _pwrite64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _pwrite64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _pwrite64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_pwrite64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _qeconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qeconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qeconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qeconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qeconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qeconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qecvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qecvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qecvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qecvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qecvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qecvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qfconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qfconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfcvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qfcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qfcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qfcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qgconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qgconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgcvt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _qgcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_qgcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _qgcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _quadruple_to_decimal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _quadruple_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _quadruple_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _quadruple_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_quadruple_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _quadruple_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _quick_echo usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _quick_echo lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11932,6 +12910,7 @@
 _rand_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rand_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rand_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rand_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rand_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rawcombuf usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _rawcombuf lib/amd64/libnsl.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -11942,17 +12921,20 @@
 _rctlctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctlctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctlctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rctlctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctlctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctllist usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _rctllist lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctllist usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctllist usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rctllist usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rctllist lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _read usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _read usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _read lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _read usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _read usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_read usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _read lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _readbufline usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _readbufline lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -11962,31 +12944,37 @@
 _readdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_readdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _readdir64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _readdir64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_readdir64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir64_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _readdir64_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir64_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir64_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_readdir64_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _readdir_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _readdir_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _readdir_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _readdir_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_readdir_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _readdir_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _readlink usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _readlink usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _readlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_readlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _readv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _readv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _readv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_readv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _readv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _real_getipsecalgs lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _real_getipsecalgs lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
@@ -11996,11 +12984,13 @@
 _realbufend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realbufend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realbufend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_realbufend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realbufend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realpath usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _realpath lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realpath usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realpath usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_realpath usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _realpath lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _recv usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _recv lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12024,12 +13014,14 @@
 _remque lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _remque usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _remque usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_remque usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _remque lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rename usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _rename usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _rename lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rename usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rename usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_rename usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rename lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _res usr/lib/libresolv.so.2 1 512 SUNW_2.1 SUNW_2.1 0 0 SUNW_2.1 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _res usr/lib/libresolv.so.1 1 512 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -12050,6 +13042,7 @@
 _resolvepath lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _resolvepath usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _resolvepath usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_resolvepath usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _resolvepath lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _restarter_commit_states lib/amd64/librestart.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _restarter_commit_states lib/librestart.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12063,6 +13056,7 @@
 _resume lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_resume usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12078,6 +13072,7 @@
 _resume_ret usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume_ret usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume_ret usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_resume_ret usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume_ret lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume_ret lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _resume_ret lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12090,6 +13085,7 @@
 _rewinddir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rewinddir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rewinddir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_rewinddir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rewinddir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _right_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _right_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12118,6 +13114,7 @@
 _rmdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rmdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rmdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_rmdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _rmdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rmdirp usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _rmdirp lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12126,6 +13123,7 @@
 _rpcsys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rpcsys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rpcsys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rpcsys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rpcsys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rsm_create_localmemory_handle usr/lib/librsm.so.2 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 _rsm_create_localmemory_handle usr/lib/amd64/librsm.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12238,6 +13236,7 @@
 _rw_rdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_rdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_rdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rw_rdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_rdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_rdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_rdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12250,6 +13249,7 @@
 _rw_read_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_read_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_read_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_rw_read_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_read_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_read_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_read_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -12262,6 +13262,7 @@
 _rw_tryrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_tryrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_tryrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rw_tryrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_tryrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_tryrdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_tryrdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12276,6 +13277,7 @@
 _rw_trywrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_trywrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_trywrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rw_trywrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_trywrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_trywrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_trywrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12290,6 +13292,7 @@
 _rw_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rw_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12302,6 +13305,7 @@
 _rw_write_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_write_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_write_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_rw_write_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_write_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_write_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _rw_write_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -12314,6 +13318,7 @@
 _rw_wrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_wrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_wrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rw_wrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_wrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_wrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rw_wrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12326,6 +13331,7 @@
 _rwlock_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _rwlock_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _rwlock_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_rwlock_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _rwlock_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _rwlock_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_destroy lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12338,6 +13344,7 @@
 _rwlock_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_rwlock_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _rwlock_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12347,6 +13354,7 @@
 _s_fcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _s_fcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _s_fcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_s_fcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _sasl_auxprop_add_plugin usr/lib/amd64/libsasl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sasl_auxprop_add_plugin usr/lib/libsasl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sasl_canonuser_add_plugin usr/lib/amd64/libsasl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12368,34 +13376,41 @@
 _sbrk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sbrk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sbrk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sbrk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sbrk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sbrk_grow_aligned usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 _sbrk_grow_aligned lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_grow_aligned usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_grow_aligned usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sbrk_grow_aligned usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_grow_aligned lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_unlocked usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sbrk_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sbrk_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sbrk_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scalb usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _scalb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _scalb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _scalb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_scalb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _scalb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _scale usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _scale usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scandir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_scandir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scandir64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_scandir64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _scanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_scanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scf_handle_decorations lib/amd64/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scf_handle_decorations lib/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scf_notify_add_pgname lib/amd64/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12421,14 +13436,17 @@
 _schedctl_exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_schedctl_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_schedctl_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_lookup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_lookup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_lookup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_schedctl_lookup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _schedctl_lookup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _scr_all usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _scr_all lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12464,22 +13482,26 @@
 _seconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_seconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seed48 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _seed48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seed48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seed48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_seed48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seed48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seekdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _seekdir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _seekdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _seekdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _seekdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_seekdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _seekdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _select usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _select lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _select usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _select usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_select usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _select lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sem_close usr/lib/librt.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sem_close lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12521,6 +13543,7 @@
 _sema_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _sema_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _sema_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_sema_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _sema_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _sema_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12533,6 +13556,7 @@
 _sema_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sema_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sema_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sema_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sema_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sema_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sema_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -12545,6 +13569,7 @@
 _sema_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12559,6 +13584,7 @@
 _sema_post lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_post usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_post usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_post usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_post lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_post lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_post lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12567,10 +13593,12 @@
 _sema_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sema_trywait usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -12581,6 +13609,7 @@
 _sema_trywait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_trywait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_trywait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12595,6 +13624,7 @@
 _sema_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sema_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sema_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12608,33 +13638,39 @@
 _semctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_semctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _semctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _semctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _semctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _semctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_semctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _semctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _semget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _semget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _semget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_semget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _semids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _semids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _semids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _semids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_semids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _semids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _semop usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _semop usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _semop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_semop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _semop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _semtimedop usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.4 SUNW_1.21 SUNW_1.20.4 SUNW_1.21.2 SUNW_1.20.4 0 0 0001111 0001110 0 0000001 0 0 0 0
 _semtimedop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 _semtimedop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 _semtimedop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
+_semtimedop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 _semtimedop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 _send usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _send lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12659,6 +13695,7 @@
 _setbufend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setbufend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setbufend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setbufend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setbufend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setcontext usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setcontext usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -12668,6 +13705,7 @@
 _setcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setcontext lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setcontext lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12678,15 +13716,18 @@
 _setegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seteuid usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _seteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_seteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _seteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setexecattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _setexecattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -12696,17 +13737,20 @@
 _setgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setgrent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setgroups usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setgroups usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setidln usr/lib/libcurses.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setidln lib/amd64/libcurses.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12720,6 +13764,7 @@
 _setitimer lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setitimer usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setitimer usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_setitimer usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setitimer lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setitimer lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setitimer lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12730,6 +13775,7 @@
 _setjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_setjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setkey usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setkey usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -12739,11 +13785,13 @@
 _setkey usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setkey usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setkey usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_setkey usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setkey lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setlogmask usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setlogmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setlogmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setlogmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setlogmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setlogmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setnonl usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setnonl lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -12751,22 +13799,26 @@
 _setpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_setpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setpgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setpgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setpgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setpgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setpgrp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setppriv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setppriv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setppriv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_setppriv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setppriv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _setprofattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _setprofattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -12775,6 +13827,7 @@
 _setpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setqiflush usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setqiflush lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -12783,32 +13836,38 @@
 _setrctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _setrctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _setrctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_setrctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _setrctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _setregid usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setregid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setregid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setregid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setregid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setregid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setreuid usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setreuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setreuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setreuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setreuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setreuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setrlimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setrlimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setrlimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setrlimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setrlimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setrlimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setrlimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setrlimit64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setrlimit64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setrlimit64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setrlimit64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_setrlimit64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _setsid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setsid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setsockopt usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setsockopt lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12817,22 +13876,26 @@
 _setspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _settaskid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _settaskid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _settaskid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _settaskid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_settaskid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _settaskid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _settimeofday usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _settimeofday lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _settimeofday usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _settimeofday usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_settimeofday usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _settimeofday lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _setuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _setuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_setuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _setuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _setuserattr usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _setuserattr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -12841,21 +13904,25 @@
 _setustack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _setustack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _setustack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_setustack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _setustack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _setutent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutxent usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _setutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_setutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _setutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sfconvert usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sfconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sfconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sfconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sfconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sfconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sfirst_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _sfirst_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12863,40 +13930,47 @@
 _sgconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sgconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sgconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sgconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sgconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _shmat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _shmat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _shmat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_shmat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _shmctl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _shmctl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _shmctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_shmctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _shmctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _shmctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _shmctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _shmctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_shmctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _shmctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _shmdt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _shmdt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _shmdt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmdt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmdt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_shmdt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmdt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _shmget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _shmget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _shmget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_shmget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _shmget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _shmids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _shmids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _shmids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _shmids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_shmids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _shmids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _show usr/lib/libmenu.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _show usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12907,11 +13981,13 @@
 _sibuf lib/libc.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sibuf usr/lib/libc/libc_hwcap1.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sibuf usr/lib/libc/libc_hwcap2.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sibuf usr/lib/libc/libc_hwcap3.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sibuf lib/amd64/libc.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sig2str usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sig2str lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sig2str usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sig2str usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sig2str usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sig2str lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigaction usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigaction usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -12923,6 +13999,7 @@
 _sigaction lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaction usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaction usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigaction usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaction lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigaction lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigaction lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12935,12 +14012,14 @@
 _sigaddset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaddset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaddset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigaddset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaddset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigaltstack usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigaltstack usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigaltstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaltstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaltstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigaltstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigaltstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigblock usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _sigblock usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -12949,45 +14028,53 @@
 _sigdelset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigdelset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigdelset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigdelset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigdelset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigemptyset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigemptyset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigemptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigemptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigemptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigemptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigemptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigfillset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigfillset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigfillset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigfillset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigfillset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigfillset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigfillset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigflag usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sigflag lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigflag usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigflag usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sigflag usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigflag lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigfpe usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sigfpe lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigfpe usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigfpe usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sigfpe usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigfpe lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sighold usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sighold usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sighold lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sighold usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sighold usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sighold usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sighold lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigignore usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigignore usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigignore lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigignore usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigignore usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigignore usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigignore lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _siginterrupt usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _siginterrupt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _siginterrupt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _siginterrupt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_siginterrupt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _siginterrupt usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _siginterrupt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigismember usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -12995,6 +14082,7 @@
 _sigismember lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigismember usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigismember usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigismember usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigismember lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _siglongjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _siglongjmp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -13005,6 +14093,7 @@
 _siglongjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _siglongjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _siglongjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_siglongjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _siglongjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _siglongjmp lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _siglongjmp lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13012,6 +14101,7 @@
 _signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _signotifywait usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sigoff usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -13020,6 +14110,7 @@
 _sigoff lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigoff usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigoff usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sigoff usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigoff lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigoff lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigoff lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13029,6 +14120,7 @@
 _sigon lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigon usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigon usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sigon usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigon lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigon lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigon lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13037,12 +14129,14 @@
 _sigpause lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpause usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpause usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigpause usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpause lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigpending usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigpending usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigpending lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpending usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpending usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigpending usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigpending lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigprocmask usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigprocmask usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -13054,6 +14148,7 @@
 _sigprocmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigprocmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigprocmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigprocmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigprocmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigprocmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigprocmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13067,24 +14162,28 @@
 _sigrelse lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigrelse usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigrelse usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigrelse usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigrelse lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigsend usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigsend usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigsend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigsend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigsendset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigsendset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigsendset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsendset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsendset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigsendset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsendset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sigset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigsetjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sigsetjmp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -13096,6 +14195,7 @@
 _sigsetjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsetjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsetjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigsetjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsetjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigsetjmp lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigsetjmp lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13115,6 +14215,7 @@
 _sigsuspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsuspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsuspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sigsuspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sigsuspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sigsuspend lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigsuspend lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13139,6 +14240,7 @@
 _sigwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sigwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sigwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13151,6 +14253,7 @@
 _single_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _single_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _single_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_single_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _single_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _slast_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _slast_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13163,6 +14266,7 @@
 _sleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sleep lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sleep lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13178,6 +14282,7 @@
 _smbuf lib/libc.so.1 1 488 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _smbuf usr/lib/libc/libc_hwcap1.so.1 1 488 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _smbuf usr/lib/libc/libc_hwcap2.so.1 1 488 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_smbuf usr/lib/libc/libc_hwcap3.so.1 1 488 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _smbuf lib/amd64/libc.so.1 1 488 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _smf_refresh_instance_i lib/amd64/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _smf_refresh_instance_i lib/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13186,100 +14291,120 @@
 _snprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _snprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _snprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_snprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_accept usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_accept lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_accept usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_accept usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_accept usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_accept lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_bind usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_bind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_bind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_bind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_bind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_bind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_connect usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_connect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_connect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_connect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_connect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_connect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getpeername usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_getpeername lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getpeername usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getpeername usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_getpeername usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getpeername lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockname usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_getsockname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_getsockname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockopt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_getsockopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_getsockopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_getsockopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_listen usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_listen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_listen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_listen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_listen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_listen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recv usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_recv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_recv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvfrom usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_recvfrom lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvfrom usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvfrom usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_recvfrom usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvfrom lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvmsg usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_recvmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_recvmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_recvmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_send usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_send lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_send usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_send usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_send usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_send lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendmsg usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_sendmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_sendmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendto usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_sendto lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendto usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendto usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_sendto usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_sendto lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_setsockopt usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_setsockopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_setsockopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_setsockopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_setsockopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_setsockopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_shutdown usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_shutdown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_shutdown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_shutdown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_shutdown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_shutdown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socket usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_socket lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socket usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socket usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_socket usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socket lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socketpair usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _so_socketpair lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socketpair usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socketpair usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_so_socketpair usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _so_socketpair lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sobuf usr/lib/libc.so.1 1 1032 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sobuf lib/libc.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sobuf usr/lib/libc/libc_hwcap1.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sobuf usr/lib/libc/libc_hwcap2.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sobuf usr/lib/libc/libc_hwcap3.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sobuf lib/amd64/libc.so.1 1 1032 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sockconfig usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sockconfig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sockconfig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sockconfig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sockconfig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sockconfig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _socket usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _socket lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13297,12 +14422,14 @@
 _sp lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sp usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sp usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sp usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sp lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprev_field usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _sprev_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprintw usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sprintw lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sprintw lib/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13310,29 +14437,35 @@
 _srand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _srand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _srand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_srand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _srand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sse_hw usr/lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 _sse_hw lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sse_hw usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sse_hw usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sse_hw usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ssignal usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ssignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ssignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ssignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ssignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ssignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _stack_getbounds usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 _stack_getbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_getbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_getbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_stack_getbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_getbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_grow usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 _stack_grow usr/lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.6.1 0 0 0000011 0000010 0 0000001 0 0 0 0
 _stack_grow lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_grow usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_grow usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_stack_grow usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_grow lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_grow lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.6.1 0000001 0000001 0 0 0 0 0 0
 _stack_grow lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.6.1 0000001 0000001 0 0 0 0 0 0
@@ -13340,42 +14473,50 @@
 _stack_inbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_inbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_inbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_stack_inbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_inbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_setbounds usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 _stack_setbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_setbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_setbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_stack_setbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_setbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_violation usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 _stack_violation lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_violation usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_violation usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+_stack_violation usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stack_violation lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 _stat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _stat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _stat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_stat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _stat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _stat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _stat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _stat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_stat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _statfs usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _statfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _statfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _statfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_statfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _statfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _statvfs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _statvfs usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _statvfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _statvfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _statvfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_statvfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _statvfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _statvfs64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _statvfs64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _statvfs64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _statvfs64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_statvfs64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _step usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _step lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _step lib/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13384,6 +14525,7 @@
 _stime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_stime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _stime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _str2kva usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 _str2kva lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13392,6 +14534,7 @@
 _str2sig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _str2sig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _str2sig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_str2sig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _str2sig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _str_to_ipsec_exec_mode lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
 _str_to_ipsec_exec_mode lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.4 0000001 0 0000001 0 0 0 0 0
@@ -13411,6 +14554,7 @@
 _strdup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _strdup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _strdup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_strdup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _strdup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _strdup_null usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _strdup_null lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -13425,10 +14569,12 @@
 _strerror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strerror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strerror_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strerror_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strfind usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _strfind lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13437,6 +14583,7 @@
 _string_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _string_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _string_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_string_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _string_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strpbrk_escape usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _strpbrk_escape lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -13448,10 +14595,12 @@
 _strsignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strsignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strsignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strsignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strsignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoimax_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoimax_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoimax_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strtoimax_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtok_escape usr/lib/libnsl.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
 _strtok_escape lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _strtok_escape lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -13459,20 +14608,24 @@
 _strtok_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtok_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtok_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strtok_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtok_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoll usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _strtoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strtoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoull usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _strtoull lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoull usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoull usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strtoull usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoull lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoumax_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoumax_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtoumax_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_strtoumax_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtrns usr/lib/libgen.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _strtrns lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _strtrns lib/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13480,6 +14633,7 @@
 _stty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _stty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _stty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_stty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _stty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _svc_getreqset_proc usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _svc_getreqset_proc lib/amd64/libnsl.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13489,17 +14643,20 @@
 _swab lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swab usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swab usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_swab usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swab lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _swapcontext usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _swapcontext usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.3 0 0 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 SYSVABI_1.3 1111111 1011111 0 0100000 0 0 0 0
 _swapcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swapcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swapcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_swapcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _swapcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _swapctl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _swapctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swapctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swapctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_swapctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swapctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _switch_gethostbyaddr_r usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _switch_gethostbyaddr_r lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13516,20 +14673,24 @@
 _swprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_swprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _swscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_swscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _symlink usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _symlink usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _symlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _symlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _symlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_symlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _symlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sync usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sync usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sync_attrs usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _sync_attrs usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13545,112 +14706,135 @@
 _sys_buslist lib/libc.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_buslist usr/lib/libc/libc_hwcap1.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_buslist usr/lib/libc/libc_hwcap2.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_buslist usr/lib/libc/libc_hwcap3.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_buslist lib/amd64/libc.so.1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_cldlist usr/lib/libc.so.1 1 24 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_cldlist lib/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_cldlist usr/lib/libc/libc_hwcap1.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_cldlist usr/lib/libc/libc_hwcap2.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_cldlist usr/lib/libc/libc_hwcap3.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_cldlist lib/amd64/libc.so.1 1 24 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_errlist usr/lib/libc.so.1 1 608 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sys_errlist lib/libc.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_errlist usr/lib/libc/libc_hwcap1.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_errlist usr/lib/libc/libc_hwcap2.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sys_errlist usr/lib/libc/libc_hwcap3.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_errs usr/lib/libc.so.1 1 3202 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sys_errs lib/libc.so.1 1 3202 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_errs usr/lib/libc/libc_hwcap1.so.1 1 3202 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_errs usr/lib/libc/libc_hwcap2.so.1 1 3202 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sys_errs usr/lib/libc/libc_hwcap3.so.1 1 3202 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_fpelist usr/lib/libc.so.1 1 32 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_fpelist lib/libc.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_fpelist usr/lib/libc/libc_hwcap1.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_fpelist usr/lib/libc/libc_hwcap2.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_fpelist usr/lib/libc/libc_hwcap3.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_fpelist lib/amd64/libc.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_illlist usr/lib/libc.so.1 1 32 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_illlist lib/libc.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_illlist usr/lib/libc/libc_hwcap1.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_illlist usr/lib/libc/libc_hwcap2.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_illlist usr/lib/libc/libc_hwcap3.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_illlist lib/amd64/libc.so.1 1 32 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_index usr/lib/libc.so.1 1 608 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sys_index lib/libc.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_index usr/lib/libc/libc_hwcap1.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_index usr/lib/libc/libc_hwcap2.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sys_index usr/lib/libc/libc_hwcap3.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_nerr usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sys_nerr lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_nerr usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_nerr usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sys_nerr usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_nsig usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_nsig lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_nsig usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_nsig usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_nsig usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_num_err usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sys_num_err lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_num_err usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_num_err usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sys_num_err usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sys_segvlist usr/lib/libc.so.1 1 8 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_segvlist lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_segvlist usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_segvlist usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_segvlist usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_segvlist lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siginfolistp usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_siginfolistp lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siginfolistp usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siginfolistp usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_siginfolistp usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siginfolistp lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglist usr/lib/libc.so.1 1 136 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_siglist lib/libc.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglist usr/lib/libc/libc_hwcap1.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglist usr/lib/libc/libc_hwcap2.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_siglist usr/lib/libc/libc_hwcap3.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglist lib/amd64/libc.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistn usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_siglistn lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistn usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistn usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_siglistn usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistn lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistp usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_siglistp lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistp usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistp usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_siglistp usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_siglistp lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_traplist usr/lib/libc.so.1 1 20 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sys_traplist lib/libc.so.1 1 20 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_traplist usr/lib/libc/libc_hwcap1.so.1 1 20 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_traplist usr/lib/libc/libc_hwcap2.so.1 1 20 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sys_traplist usr/lib/libc/libc_hwcap3.so.1 1 20 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sys_traplist lib/amd64/libc.so.1 1 20 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syscall usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _syscall usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _syscall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syscall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syscall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_syscall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syscall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sysconf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sysconf usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _sysconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sysconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sysconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_sysconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _sysconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sysconfig usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sysconfig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysconfig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysconfig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sysconfig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysconfig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysfs usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sysfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sysfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysi86 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _sysi86 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysi86 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysi86 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_sysi86 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysi86 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _sysinfo usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _sysinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sysinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sysinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_sysinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _sysinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syslog usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 _syslog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syslog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syslog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+_syslog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _syslog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _t_strerror usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _t_strerror lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13661,31 +14845,37 @@
 _tcdrain lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcdrain usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcdrain usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcdrain usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcdrain lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcflow usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcflow lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflow usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflow usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcflow usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflow lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcflush usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcflush lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflush usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflush usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcflush usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcflush lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcgetattr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcgetattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcgetattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcgetpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcgetpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcgetpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcgetsid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcgetsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcgetsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcgetsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcsearch usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _tcsearch lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13694,50 +14884,60 @@
 _tcsendbreak lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsendbreak usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsendbreak usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcsendbreak usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsendbreak lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcsetattr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcsetattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcsetattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tcsetpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tcsetpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tcsetpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tcsetpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tdb_bootstrap lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tdb_bootstrap usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tdb_bootstrap usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_tdb_bootstrap usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tdb_bootstrap lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tdelete usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tdelete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tdelete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tdelete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tdelete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tdelete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tell usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tell64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tell64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _tell64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _tell64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_tell64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _telldir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _telldir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _telldir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _telldir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _telldir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_telldir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _telldir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tempnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tempnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tempnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tempnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tempnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tempnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tfind usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tfind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tfind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tfind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tfind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tfind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _thr_continue usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _thr_continue usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -13748,6 +14948,7 @@
 _thr_continue lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_continue usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13759,6 +14960,7 @@
 _thr_continue_allmutators lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_allmutators usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_allmutators usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_continue_allmutators usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_allmutators lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_allmutators lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_allmutators lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13768,6 +14970,7 @@
 _thr_continue_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_continue_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_continue_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13780,6 +14983,7 @@
 _thr_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13791,6 +14995,7 @@
 _thr_detach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_detach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_detach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_detach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_detach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_detach lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_detach lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13808,6 +15013,7 @@
 _thr_exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_exit lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_exit lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13817,11 +15023,13 @@
 _thr_get_inf_read lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_inf_read usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_inf_read usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_get_inf_read usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_inf_read lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_nan_read usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _thr_get_nan_read lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_nan_read usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_nan_read usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_get_nan_read usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_get_nan_read lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _thr_getconcurrency usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -13832,6 +15040,7 @@
 _thr_getconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_getconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13846,6 +15055,7 @@
 _thr_getprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_getprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getprio lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getprio lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13860,6 +15070,7 @@
 _thr_getspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_getspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13871,6 +15082,7 @@
 _thr_getstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_getstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_getstate lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13883,6 +15095,7 @@
 _thr_join lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_join usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_join usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_join usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_join lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_join lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_join lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13894,6 +15107,7 @@
 _thr_key_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_key_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_key_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_key_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_key_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_key_delete lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_key_delete lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13906,6 +15120,7 @@
 _thr_keycreate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_keycreate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_keycreate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_keycreate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_keycreate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_keycreate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_keycreate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13920,6 +15135,7 @@
 _thr_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_kill lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_kill lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13937,6 +15153,7 @@
 _thr_main lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_main usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_main usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_main usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_main lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_main lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_main lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13951,6 +15168,7 @@
 _thr_min_stack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_min_stack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_min_stack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_min_stack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_min_stack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_min_stack lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_min_stack lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13962,6 +15180,7 @@
 _thr_mutators_barrier lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_mutators_barrier usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_mutators_barrier usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_mutators_barrier usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_mutators_barrier lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_mutators_barrier lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_mutators_barrier lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13974,6 +15193,7 @@
 _thr_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_self lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_self lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13988,6 +15208,7 @@
 _thr_setconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_setconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -13999,6 +15220,7 @@
 _thr_setmutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setmutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setmutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_setmutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setmutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setmutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setmutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14011,6 +15233,7 @@
 _thr_setprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_setprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setprio lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setprio lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14025,6 +15248,7 @@
 _thr_setspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_setspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14036,6 +15260,7 @@
 _thr_setstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_setstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_setstate lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14045,6 +15270,7 @@
 _thr_sighndlrinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sighndlrinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sighndlrinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_sighndlrinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sighndlrinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sighndlrinfo lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sighndlrinfo lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14057,6 +15283,7 @@
 _thr_sigsetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sigsetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sigsetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_sigsetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sigsetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sigsetmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_sigsetmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14065,6 +15292,7 @@
 _thr_slot_offset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_slot_offset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_slot_offset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_slot_offset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_slot_offset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _thr_stksegment usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -14075,6 +15303,7 @@
 _thr_stksegment lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_stksegment usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_stksegment lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14089,6 +15318,7 @@
 _thr_suspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_suspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14100,6 +15330,7 @@
 _thr_suspend_allmutators lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_allmutators usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_allmutators usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_suspend_allmutators usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_allmutators lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_allmutators lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_allmutators lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14109,6 +15340,7 @@
 _thr_suspend_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_suspend_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_suspend_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14118,6 +15350,7 @@
 _thr_wait_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_wait_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_wait_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_wait_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_wait_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_wait_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_wait_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14130,6 +15363,7 @@
 _thr_yield lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_yield usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_yield usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_thr_yield usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_yield lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_yield lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _thr_yield lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14140,6 +15374,7 @@
 _time lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _time usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _time usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_time usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _time lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _timer_create usr/lib/librt.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _timer_create lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14162,21 +15397,25 @@
 _times lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _times usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _times usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_times usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _times lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _timezone usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _timezone usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _timezone lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _timezone usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _timezone usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_timezone usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _timezone lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tmpnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_tmpnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _tmpnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_tmpnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tmpnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tnfctl_externally_traced_pid usr/lib/libtnfctl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _tnfctl_externally_traced_pid usr/lib/amd64/libtnfctl.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14188,16 +15427,19 @@
 _toascii lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toascii usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toascii usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_toascii usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toascii lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tolower usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tolower lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tolower usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tolower usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tolower usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tolower lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _toupper usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _toupper lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toupper usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toupper usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_toupper usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _toupper lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tpmask usr/lib/libthread_db.so.0 1 16 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 1111111 0 1011000 0100111 0 0 0 0
 _tpmask usr/lib/old_libthread/libthread_db.so.0 1 16 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
@@ -14205,20 +15447,24 @@
 _truncate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _truncate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _truncate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_truncate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _truncate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _truncate64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _truncate64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _truncate64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _truncate64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_truncate64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _trwctype usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _trwctype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _trwctype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _trwctype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_trwctype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _trwctype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _tsearch usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tstp usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _tstp lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14232,37 +15478,44 @@
 _ttyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ttyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ttyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ttyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ttyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ttyname_dev usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _ttyname_dev lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_dev usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_dev usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ttyname_dev usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_dev lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ttyname_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ttyname_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyname_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyslot usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ttyslot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyslot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyslot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ttyslot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ttyslot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _twalk usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _twalk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _twalk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _twalk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_twalk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _twalk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tzname usr/lib/libc.so.1 1 8 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tzname usr/lib/libsys.so.1 1 8 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _tzname lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzname usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzname usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tzname usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzname lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _tzset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _tzset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_tzset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _tzset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _uaddr2taddr usr/lib/straddr.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 _uaddr2taddr usr/lib/amd64/straddr.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -14270,139 +15523,170 @@
 _uadmin lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uadmin usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uadmin usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uadmin usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uadmin lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uberdata lib/libc.so.1 1 4356 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uberdata usr/lib/libc/libc_hwcap1.so.1 1 4356 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uberdata usr/lib/libc/libc_hwcap2.so.1 1 4356 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uberdata usr/lib/libc/libc_hwcap3.so.1 1 4356 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uberdata lib/amd64/libc.so.1 1 4356 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_alloc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_alloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_alloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ucred_alloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_alloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_free lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_free usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_free usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_free usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_free lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_get lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_get usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_get usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_get usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_get lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getamask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getamask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getamask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ucred_getamask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getamask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getasid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getasid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getasid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ucred_getasid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getasid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getatid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getatid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getatid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ucred_getatid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getatid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getauid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getauid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getauid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ucred_getauid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getauid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ucred_getegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_geteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_geteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_geteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_geteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_geteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprivset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprivset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprivset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getprivset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprivset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprojid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprojid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprojid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getprojid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getprojid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getrgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getrgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getrgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getrgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getrgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getruid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getruid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getruid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getruid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getruid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getsgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getsuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getsuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getzoneid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getzoneid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getzoneid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_getzoneid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_getzoneid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_size lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_size usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_size usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+_ucred_size usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ucred_size lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 _ulckpwdf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ulckpwdf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulckpwdf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulckpwdf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ulckpwdf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulckpwdf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _ulimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _ulimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ulimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ulimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_ulimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _ulimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _ulltostr usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ulltostr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulltostr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulltostr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ulltostr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ulltostr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _umask usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _umask usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _umask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_umask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _umount usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _umount usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _umount lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umount usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umount usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_umount usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _umount lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _umount2 usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21.2 SUNW_1.19 0 0 0011111 0011110 0 0000001 0 0 0 0
 _umount2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 _umount2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 _umount2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
+_umount2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 _umount2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 _uname usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _uname usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _uname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _uname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _uname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_uname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _uname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _uncached_getgrgid_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _uncached_getgrgid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrgid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrgid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uncached_getgrgid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrgid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrnam_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _uncached_getgrnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uncached_getgrnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getgrnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_gethostbyaddr_r usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _uncached_gethostbyaddr_r lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14420,11 +15704,13 @@
 _uncached_getpwnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uncached_getpwnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwuid_r usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _uncached_getpwuid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwuid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwuid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_uncached_getpwuid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _uncached_getpwuid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unctrl usr/lib/libcurses.so.1 1 512 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _unctrl usr/ucblib/libcurses.so.1 1 512 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -14438,12 +15724,14 @@
 _ungetc_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ungetc_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ungetc_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ungetc_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ungetc_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unlink usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _unlink usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _unlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_unlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _unlink_obs usr/lib/libpanel.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _unlink_obs usr/lib/amd64/libpanel.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14451,22 +15739,26 @@
 _unlinkat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _unlinkat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _unlinkat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_unlinkat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _unlinkat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _unlockpt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _unlockpt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _unlockpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlockpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlockpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_unlockpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _unlockpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _unordered usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _unordered lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unordered usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unordered usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_unordered usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unordered lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unregister_forkhandler usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 _unsetenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unsetenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unsetenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_unsetenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _unsetenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _up_char usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _up_char usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14481,11 +15773,13 @@
 _updwtmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_updwtmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmpx usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _updwtmpx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmpx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmpx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_updwtmpx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _updwtmpx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _use_env usr/lib/libcurses.so.1 1 1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _use_env lib/amd64/libcurses.so.1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14497,37 +15791,44 @@
 _usleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _usleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _usleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_usleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _usleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ustat usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _ustat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ustat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ustat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_ustat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _ustat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utime usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _utime usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _utime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _utime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _utime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_utime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _utime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _utimes usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _utimes lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utimes usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utimes usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_utimes usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utimes lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpname usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _utmpname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_utmpname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpxname usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _utmpxname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpxname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpxname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_utmpxname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utmpxname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utssys usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _utssys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utssys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utssys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_utssys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _utssys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _validalias usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _validalias lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14542,33 +15843,41 @@
 _valloc usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _valloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _valloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_valloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _valloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfork usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _vfork lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vfork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vfprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _vfscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vfscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vfscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_vfscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vfscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vfscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vfscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vfwprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vfwscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vfwscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vhangup usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _vhangup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vhangup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vhangup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vhangup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vhangup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _virtscr usr/lib/libcurses.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _virtscr lib/amd64/libcurses.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14576,85 +15885,105 @@
 _vprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _vscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_vscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsnprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsnprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsnprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vsnprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vsprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsscanf usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 1111111 0 1011000 0100111 0 0 0 0
 _vsscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 _vsscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vsscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vsscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+_vsscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vsscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 _vsscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vsscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vswprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vswscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vswscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsyslog usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _vsyslog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsyslog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsyslog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vsyslog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vsyslog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vwprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _vwscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_vwscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wait usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _wait usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _wait3 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _wait3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wait3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wait3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wait3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wait3 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _waitid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _waitid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _waitid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_waitid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _waitpid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _waitpid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _waitpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_waitpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _waitpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _walkcontext usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 _walkcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _walkcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _walkcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_walkcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _walkcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcptr usr/lib/libc.so.1 1 12 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _wcstoimax_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcstoimax_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcstoimax_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wcstoimax_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcstoumax_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcstoumax_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wcstoumax_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wcstoumax_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wctomb usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _wctomb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wctomb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wctomb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wctomb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wctomb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _whsp_beg usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 _whsp_beg usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14665,10 +15994,12 @@
 _wprintf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wprintf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wprintf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wprintf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wracct usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 _wracct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _wracct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _wracct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+_wracct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _wracct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 _write etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 _write usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -14678,6 +16009,7 @@
 _write lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _write usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _write usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_write usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _write lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _write lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 _writev usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -14685,44 +16017,53 @@
 _writev lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _writev usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _writev usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_writev usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _writev lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _wrtchk usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _wrtchk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wrtchk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wrtchk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wrtchk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wrtchk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wscanf_c89 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wscanf_c89 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _wscanf_c89 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_wscanf_c89 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xflsbuf usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _xflsbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xflsbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xflsbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_xflsbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xflsbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xftw usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xftw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xftw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xftw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_xftw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xftw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 _xftw64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xftw64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _xftw64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _xftw64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+_xftw64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 _xgetwidth usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 _xgetwidth lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xgetwidth usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xgetwidth usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_xgetwidth usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xgetwidth lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _xmknod usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xmknod usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _xmknod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xmknod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xmknod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_xmknod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 _xstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+_xstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 _xti_accept usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_1.1 0 0 SUNW_1.7 SUNW_1.1 SUNW_1.8 SUNW_1.1 SUNW_1.8 SUNW_1.1 SUNW_1.8 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xti_accept usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 _xti_accept lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -14946,22 +16287,26 @@
 _yield lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _yield usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _yield usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+_yield usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 _yield lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 a64l usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 a64l lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 a64l usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 a64l usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+a64l usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 a64l lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 abort usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 abort lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abort usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abort usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+abort usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abort lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 abort_transaction usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 abs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 abs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+abs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 abs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 abspath usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 accept usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -14975,6 +16320,7 @@
 access lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 access usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 access usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+access usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 access lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 access_policy_list_free usr/lib/libssagent.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 access_policy_list_free usr/lib/amd64/libssagent.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -14987,16 +16333,19 @@
 acct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 acct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 acct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+acct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 acct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 acctctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 acctctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 acctctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 acctctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+acctctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 acctctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 acl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 acl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 acl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 acl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+acl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 acl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 acl_check usr/lib/krb5/libkadm5srv.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
 acl_finish usr/lib/krb5/libkadm5srv.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
@@ -15108,11 +16457,13 @@
 addsev lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 addsev usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 addsev usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+addsev usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 addsev lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 addseverity usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 addseverity lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 addseverity usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 addseverity usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+addseverity usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 addseverity lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 addstr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 addstr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -15141,6 +16492,7 @@
 adjtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 adjtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 adjtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+adjtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 adjtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 adler32 usr/lib/libz.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
 adr_char usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -15374,6 +16726,7 @@
 alarm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 alarm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 alarm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+alarm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 alarm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 alarm lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 alarm lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -15398,16 +16751,19 @@
 alphasort lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+alphasort usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 alphasort lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort64 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.3 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 alphasort64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 alphasort64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+alphasort64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 altzone usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 altzone lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 altzone usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 altzone usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+altzone usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 altzone lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ami_decrypt usr/lib/libami-domestic.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
 ami_decrypt usr/lib/libami-global.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
@@ -15507,17 +16863,20 @@
 ascftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ascftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ascftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ascftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ascftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ascii_to_octet usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
 asctime usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 asctime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 asctime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 asctime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+asctime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 asctime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 asctime_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 asctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 asctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 asctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+asctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 asctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 asn12krb5_buf usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 asn12krb5_buf usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -16096,74 +17455,91 @@
 atexit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atexit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atexit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+atexit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atexit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atof usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 atof lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atof usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atof usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+atof usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atof lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atoi usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 atoi lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atoi usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atoi usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+atoi usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atoi lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atol usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 atol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+atol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 atol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atoll usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 atoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+atoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 atomic_add_16 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_16 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_16_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_16_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_32_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_32_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_64_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_64_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_long usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long_nv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long_nv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long_nv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_add_long_nv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_add_long_nv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_and_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_uint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_uint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_uint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_and_uint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_and_uint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_32 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_32 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_32 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_or_32 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_32 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_uint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_uint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_uint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+atomic_or_uint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 atomic_or_uint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 attr_get usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 attr_get usr/xpg4/lib/libcurses.so.2 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
@@ -16199,11 +17575,13 @@
 attropen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+attropen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 attropen64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attropen64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+attropen64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 attrset usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 attrset usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 attrset usr/xpg4/lib/libcurses.so.2 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
@@ -16741,6 +18119,7 @@
 basename lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 basename usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 basename usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+basename usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 basename lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 baudrate usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 baudrate usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -16754,6 +18133,7 @@
 bcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+bcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcmp usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 bcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcopy usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -16761,6 +18141,7 @@
 bcopy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcopy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcopy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+bcopy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bcopy usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 bcopy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 beep usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
@@ -16865,6 +18246,7 @@
 bind_textdomain_codeset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 bind_textdomain_codeset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 bind_textdomain_codeset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+bind_textdomain_codeset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 bind_textdomain_codeset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 bindresvport usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 bindresvport lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -16874,6 +18256,7 @@
 bindtextdomain lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bindtextdomain usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bindtextdomain usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+bindtextdomain usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bindtextdomain lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bindtextdomain lib/amd64/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 bindtextdomain lib/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -17012,22 +18395,26 @@
 brk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 brk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 brk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+brk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 brk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 bsd_addr_create usr/lib/libprint.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 bsd_signal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 bsd_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bsd_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bsd_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+bsd_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bsd_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 bsearch usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 bsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 bsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 bsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+bsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 bsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 btowc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 btowc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 btowc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 btowc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+btowc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 btowc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 bufsplit usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 bufsplit lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -17055,6 +18442,7 @@
 bzero lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bzero usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bzero usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+bzero usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bzero usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 bzero lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 bzerror usr/lib/libbz2.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
@@ -17099,6 +18487,7 @@
 calloc usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 calloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 calloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+calloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 calloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 calloc lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 calloc lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -17124,18 +18513,21 @@
 catclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+catclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 catgets usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 catgets usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 catgets lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catgets usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catgets usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+catgets usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catgets lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 catopen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 catopen usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 catopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+catopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 catopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cbc_crypt usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 cbc_crypt usr/lib/amd64/libcrypt_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -17255,11 +18647,13 @@
 cfgetispeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetispeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetispeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+cfgetispeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetispeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cfgetospeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 cfgetospeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetospeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetospeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+cfgetospeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfgetospeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cfree usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 cfree usr/lib/libmalloc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -17271,27 +18665,32 @@
 cfree usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 cfree usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 cfree usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+cfree usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 cfree lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 cfsetispeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 cfsetispeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetispeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetispeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+cfsetispeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetispeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cfsetospeed usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 cfsetospeed lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetospeed usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetospeed usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+cfsetospeed usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cfsetospeed lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cftime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 cftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+cftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 chdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 chdir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 chdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+chdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 check_client_spool usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 check_dd_access usr/lib/libdhcp.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
@@ -17312,12 +18711,14 @@
 chmod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chmod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chmod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+chmod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chmod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 chown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 chown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 chown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+chown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 chpass_principal_1 usr/lib/krb5/libkadm5clnt.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 chpass_principal_1 usr/lib/krb5/amd64/libkadm5clnt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -17330,6 +18731,7 @@
 chroot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chroot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chroot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+chroot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 chroot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 circf usr/lib/libadm.so.1 1 4 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 circf lib/libadm.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -17513,6 +18915,7 @@
 clearerr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clearerr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clearerr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+clearerr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clearerr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 clearok usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 clearok usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -17703,6 +19106,7 @@
 clock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+clock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 clock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 clock_getres usr/lib/librt.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 SUNW_1.3 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 clock_getres lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -17727,6 +19131,7 @@
 close lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 close usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 close usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+close usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 close lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 close lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 close lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17757,16 +19162,19 @@
 closedir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 closedir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 closedir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+closedir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 closedir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 closefrom usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 closefrom lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 closefrom usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 closefrom usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+closefrom usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 closefrom lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 closelog usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 closelog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 closelog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 closelog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+closelog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 closelog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 closepl usr/lib/libplot.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 closepl usr/lib/lib300.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -17857,6 +19265,7 @@
 cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_broadcast lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_broadcast lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17871,6 +19280,7 @@
 cond_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17885,6 +19295,7 @@
 cond_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17899,6 +19310,7 @@
 cond_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 cond_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 cond_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+cond_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 cond_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 cond_reltimedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.6 0000001 0000001 0 0 0 0 0 0
 cond_reltimedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
@@ -17913,6 +19325,7 @@
 cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_signal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_signal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17927,6 +19340,7 @@
 cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_timedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_timedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17941,6 +19355,7 @@
 cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 cond_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cond_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -17971,6 +19386,7 @@
 confstr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 confstr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 confstr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+confstr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 confstr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 connect usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 connect usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -18025,64 +19441,78 @@
 core_get_default_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_default_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_default_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_default_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_global_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_get_global_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_global_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_global_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_options usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_get_options lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_options usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_options usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_options usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_options lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_process_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_get_process_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_get_process_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_get_process_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_default_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_default_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_default_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_global_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_set_global_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_global_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_global_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_options usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_set_options lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_options usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_options usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_options usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_options lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_content lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_content usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_content usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_process_content usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_content lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_path usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 core_set_process_path lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_path usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_path usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+core_set_process_path usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 core_set_process_path lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 cp_associatorNames usr/sadm/lib/wbem/libWBEMdisk.so 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 cp_associatorNames usr/sadm/lib/wbem/libWBEMnfs.so 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -18249,6 +19679,7 @@
 creat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 creat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 creat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+creat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 creat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 creat lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 creat lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -18263,6 +19694,7 @@
 creat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 creat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 creat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+creat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 creat64 lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 creat64 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 createQuery usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
@@ -18285,6 +19717,7 @@
 crypt usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 crypt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 crypt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+crypt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 crypt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 crypt_close usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 crypt_close usr/lib/libcrypt_i.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -18304,6 +19737,7 @@
 crypt_gensalt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.1 0000001 0000001 0 0 0 0 0 0
 crypt_gensalt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.1 0000001 0000001 0 0 0 0 0 0
 crypt_gensalt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.1 0000001 0000001 0 0 0 0 0 0
+crypt_gensalt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.1 0000001 0000001 0 0 0 0 0 0
 crypt_gensalt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.1 0000001 0000001 0 0 0 0 0 0
 crypt_gensalt_impl usr/lib/security/crypt_bsdmd5.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.0 SUNW_1.0 SUNW_1.0 SUNW_1.0 0000011 0000011 0 0 0 0 0 0
 crypt_gensalt_impl usr/lib/security/crypt_bsdbf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.0 SUNW_1.0 SUNW_1.0 SUNW_1.0 0000011 0000011 0 0 0 0 0 0
@@ -18315,11 +19749,13 @@
 csetcol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetcol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetcol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+csetcol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetcol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetlen usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 csetlen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetlen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetlen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+csetlen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 csetlen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cswidth usr/lib/libcurses.so.1 1 8 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 cswidth lib/amd64/libcurses.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -18444,11 +19880,13 @@
 ctermid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctermid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctermid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ctermid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctermid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctermid_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ctermid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctermid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctermid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ctermid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctermid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctf_add_array lib/amd64/libctf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 ctf_add_array lib/libctf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -18596,11 +20034,13 @@
 ctime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ctime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ctime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctime_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ctime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ctime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ctlr_cache_add usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 ctlr_cache_add lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -18662,6 +20102,7 @@
 cuserid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cuserid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cuserid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+cuserid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 cuserid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 cvt_picl2ptree usr/lib/libpicltree.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
 cvt_ptree2picl usr/lib/libpicltree.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
@@ -18965,6 +20406,7 @@
 daylight lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 daylight usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 daylight usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+daylight usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 daylight lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbCreateFromLDAP usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 db_abort_merge_dict usr/lib/libnisdb.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
@@ -19005,70 +20447,82 @@
 dbm_clearerr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_clearerr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_clearerr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+dbm_clearerr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_clearerr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_close usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_close usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_close lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_close usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_close usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_close usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_close lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_close_status usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 dbm_close_status lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_close_status usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_close_status usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+dbm_close_status usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_close_status lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_delete usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_delete usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_dirfno usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_do_nextkey usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 dbm_do_nextkey lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_do_nextkey usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_do_nextkey usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+dbm_do_nextkey usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_do_nextkey lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_error usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_error usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_error lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_error usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_error usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+dbm_error usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_error lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dbm_fetch usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_fetch usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_fetch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_fetch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_fetch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_fetch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_fetch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_firstkey usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_firstkey usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_firstkey lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_firstkey usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_firstkey usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_firstkey usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_firstkey lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_nextkey usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_nextkey usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_nextkey lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_nextkey usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_nextkey usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_nextkey usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_nextkey lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_open usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_open usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_open lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_open usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_open usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_open usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_open lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_setdefwrite usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 dbm_setdefwrite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_setdefwrite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_setdefwrite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+dbm_setdefwrite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_setdefwrite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 dbm_store usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbm_store usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 dbm_store lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_store usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_store usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+dbm_store usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbm_store lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dbmclose usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 dbmclose usr/ucblib/libdbm.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -19092,6 +20546,7 @@
 dcgettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dcgettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dcgettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+dcgettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dcgettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dcgettext lib/amd64/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 dcgettext lib/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -19099,6 +20554,7 @@
 dcngettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dcngettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dcngettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+dcngettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dcngettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dd_list_dup usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 dd_list_dup lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -19110,21 +20566,25 @@
 decimal_to_double lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_double usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_double usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+decimal_to_double usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_double lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_extended usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 decimal_to_extended lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_extended usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_extended usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+decimal_to_extended usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_extended lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_quadruple usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 decimal_to_quadruple lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_quadruple usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_quadruple usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+decimal_to_quadruple usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_quadruple lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_single usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 decimal_to_single lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_single usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_single usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+decimal_to_single usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decimal_to_single lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 decode_krb5_alt_method usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 decode_krb5_alt_method usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -19687,6 +21147,7 @@
 dgettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dgettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dgettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+dgettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dgettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dgettext lib/amd64/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dgettext lib/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -20054,6 +21515,7 @@
 difftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 difftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 difftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+difftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 difftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dirbuf usr/lib/libnsl.so.1 1 4096 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 dirbuf usr/ucblib/libdbm.so.1 1 4096 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -20064,6 +21526,7 @@
 directio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 directio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 directio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+directio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 directio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dirf usr/lib/libnsl.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 dirf usr/ucblib/libdbm.so.1 1 4 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -20074,6 +21537,7 @@
 dirname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dirname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dirname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+dirname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dirname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 display_status usr/lib/krb5/libkadm5clnt.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 display_status usr/lib/krb5/amd64/libkadm5clnt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -20091,6 +21555,7 @@
 div lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 div usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 div usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+div usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 div lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dladdr etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 dladdr usr/lib/libdl.so.1 0 0 SUNW_1.3 SUNW_0.8 0 0 SUNW_1.3 SUNW_0.8 SUNW_1.4 SUNW_0.8 SUNW_1.4 SUNW_0.8 SUNW_1.4 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -20100,6 +21565,7 @@
 dladdr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dladdr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 dladdr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20111,6 +21577,7 @@
 dladdr1 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dladdr1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr1 lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 dladdr1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dladdr1 lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20125,6 +21592,7 @@
 dlclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlclose lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dlclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlclose lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20136,6 +21604,7 @@
 dldump lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dldump usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dldump usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dldump usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dldump lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dldump lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dldump lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20147,6 +21616,7 @@
 dlerror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlerror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlerror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlerror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlerror lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dlerror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlerror lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20158,6 +21628,7 @@
 dlinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlinfo lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dlinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlinfo lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20169,6 +21640,7 @@
 dlmopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlmopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlmopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlmopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlmopen lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 dlmopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlmopen lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20180,6 +21652,7 @@
 dlopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlopen lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dlopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlopen lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20191,6 +21664,7 @@
 dlsym lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlsym usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlsym usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+dlsym usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlsym lib/amd64/libdl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dlsym lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 dlsym lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -20248,6 +21722,7 @@
 dngettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dngettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dngettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+dngettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dngettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 dns_puthostent usr/lib/inet/dhcp/nsu/rfc2136.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 do_interactive usr/lib/libipsecutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -20306,6 +21781,7 @@
 double_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 double_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 double_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+double_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 double_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 doupdate usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 doupdate usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -20325,6 +21801,7 @@
 drand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 drand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 drand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+drand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 drand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 drdup usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 drdup lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -20597,11 +22074,13 @@
 dup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+dup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dup2 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 dup2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+dup2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 dup2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 dup_field usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 dup_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -20703,11 +22182,13 @@
 econvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 econvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 econvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+econvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 econvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ecvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ecvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ecvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ecvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ecvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ecvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ef_expand_file usr/lib/amd64/libtecla.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tecla_1.6 tecla_1.2 0000001 0000001 0 0 0 0 0 0
 ef_expand_file usr/lib/libtecla.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tecla_1.6 tecla_1.2 0000001 0000001 0 0 0 0 0 0
@@ -21033,6 +22514,7 @@
 encrypt usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 encrypt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 encrypt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+encrypt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 encrypt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endTransaction usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 endac usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 0 0 0011111 0011110 0 0000001 0 0 0 0
@@ -21063,6 +22545,7 @@
 endgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endhostent usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 endhostent usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -21083,6 +22566,7 @@
 endnetgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endnetgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endnetgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endnetgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endnetgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endnetpath usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 endnetpath lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -21103,6 +22587,7 @@
 endpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endrpcent usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 endrpcent lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -21117,6 +22602,7 @@
 endspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 enduserattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 enduserattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -21125,16 +22611,19 @@
 endusershell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 endusershell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 endusershell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+endusershell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 endusershell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 endutent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 endutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutxent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 endutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+endutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 endwin usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 endwin usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -21157,6 +22646,7 @@
 environ lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 environ usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 environ usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+environ usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 environ lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 environ lib/amd64/ld.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 eprintf etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -21167,6 +22657,7 @@
 erand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 erand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 erand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+erand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 erand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 erase usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 erase usr/lib/libplot.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -21203,6 +22694,7 @@
 errno lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 errno usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 errno usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+errno usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 errno lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 errno_string usr/lib/libssasnmp.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 errno_string usr/lib/amd64/libssasnmp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -21249,16 +22741,19 @@
 euccol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euccol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euccol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+euccol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euccol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euclen usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 euclen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euclen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euclen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+euclen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 euclen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 eucscol usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 eucscol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 eucscol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 eucscol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+eucscol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 eucscol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 evPollfdAdd usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
 evPollfdDel usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
@@ -21275,36 +22770,42 @@
 execl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 execle usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 execle usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 execle lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execle usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execle usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execle usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execle lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 execlp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 execlp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 execlp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execlp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execlp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execlp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execlp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 execv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 execv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 execv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 execve usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 execve usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 execve lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execve usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execve usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execve usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execve lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 execvp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 execvp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 execvp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execvp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execvp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+execvp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 execvp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 exit etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 0 0 0 1111111 0 1010100 0101011 0 0 0 0
 exit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -21313,61 +22814,72 @@
 exit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 exportfs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 exportfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 exportfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 exportfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+exportfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 exportfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 extended_to_decimal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 extended_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 extended_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 extended_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+extended_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 extended_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 extract_pkcs11_public usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
 facl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 facl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 facl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 facl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+facl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 facl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 fattach usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fattach usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fattach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fattach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fattach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fattach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fattach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fchdir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fchdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fchdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchmod usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fchmod usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fchmod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchmod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchmod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fchmod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchmod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fchown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fchown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fchown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fchown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchownat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 fchownat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fchownat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fchownat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+fchownat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fchownat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fchroot usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fchroot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchroot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchroot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fchroot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fchroot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fclose usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcntl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fcntl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -21379,6 +22891,7 @@
 fcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fcntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcntl lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 fcntl lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -21388,11 +22901,13 @@
 fconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fdatasync usr/lib/librt.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 SUNW_1.3 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fdatasync lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -21402,31 +22917,37 @@
 fdetach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdetach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdetach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fdetach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdetach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fdopen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fdopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fdopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fdopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fdopendir usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 fdopendir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdopendir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdopendir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+fdopendir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdopendir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdwalk usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 fdwalk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdwalk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdwalk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+fdwalk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fdwalk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 feof usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 feof lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 feof usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 feof usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+feof usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 feof lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ferror usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 ferror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ferror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ferror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ferror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ferror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fetch usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fetch usr/ucblib/libdbm.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -21438,62 +22959,74 @@
 fflush lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fflush usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fflush usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fflush usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fflush lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ffs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ffs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ffs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ffs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ffs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ffs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetc usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fgetc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetgrent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetgrent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetgrent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpos usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetpos lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetpos usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetpos usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fgetpos usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgetpos lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpos64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetpos64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetpos64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetpos64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fgetpos64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetprojent usr/lib/libproject.so.1 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0001111 0001111 0 0 0 0 0 0
 fgetprojent usr/lib/amd64/libproject.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetpwent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetpwent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetpwent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetpwent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgets usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgets lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgets usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgets usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fgets usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fgets lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fgetspent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fgetspent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetspent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetuserattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 fgetuserattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -21503,6 +23036,7 @@
 fgetwc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetwc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetwc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fgetwc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetwc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetwc lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetwc lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -21511,6 +23045,7 @@
 fgetws lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetws usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetws usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fgetws usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetws lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fgetws lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fgetws lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -21553,11 +23088,13 @@
 file_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 file_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 file_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+file_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 file_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fileno usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fileno lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fileno usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fileno usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fileno usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fileno lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 files_put_printer usr/lib/libprint.so.2 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0011111 0 0011111 0 0 0 0 0
 fileutil_add_string_to_array usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -21579,6 +23116,7 @@
 finite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 finite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 finite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+finite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 finite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 firsthash usr/lib/libnsl.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 SUNWprivate_1.3 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 firsthash lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -21605,6 +23143,7 @@
 flockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 flockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 flockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+flockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 flockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 flushinp usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 flushinp usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -21697,6 +23236,7 @@
 fmtmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fmtmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fmtmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fmtmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fmtmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fn_attr_bind usr/lib/libxfn.so.2 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fn_attr_create_subcontext usr/lib/libxfn.so.2 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22083,12 +23623,14 @@
 fnmatch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 fnmatch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 fnmatch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+fnmatch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 fnmatch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 fopen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fopen usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 fopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fopen usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fopen64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22096,6 +23638,7 @@
 fopen64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fopen64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fopen64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fopen64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 force_doupdate usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 force_doupdate lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 force_doupdate lib/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -22115,6 +23658,7 @@
 fork usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 fork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fork lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 fork lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -22135,6 +23679,7 @@
 fork1 usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 fork1 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fork1 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fork1 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fork1 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fork1 lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fork1 lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -22143,6 +23688,7 @@
 forkall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.3 0000001 0000001 0 0 0 0 0 0
 forkall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.3 0000001 0000001 0 0 0 0 0 0
 forkall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.3 0000001 0000001 0 0 0 0 0 0
+forkall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.3 0000001 0000001 0 0 0 0 0 0
 forkall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.3 0000001 0000001 0 0 0 0 0 0
 form_driver usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 form_driver usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -22182,26 +23728,31 @@
 fpathconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fpathconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fpathconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fpathconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fpathconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpclass usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpclass lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpclass usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpclass usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fpclass usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpclass lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetmask usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpgetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fpgetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetround usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpgetround lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpgetround usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpgetround usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fpgetround usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpgetround lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpgetsticky usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpgetsticky lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetsticky usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetsticky usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fpgetsticky usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpgetsticky lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpkginfo usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 fpkginfo lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -22217,38 +23768,45 @@
 fprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fprintf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetmask usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpsetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fpsetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetround usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpsetround lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpsetround usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpsetround usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fpsetround usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpsetround lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fpsetsticky usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fpsetsticky lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetsticky usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetsticky usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fpsetsticky usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fpsetsticky lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fputc usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fputc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fputc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fputs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fputs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fputs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fputs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fputwc usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fputwc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fputwc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputwc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputwc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fputwc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputwc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputwc lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fputwc lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -22257,6 +23815,7 @@
 fputws lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputws usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputws usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fputws usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputws lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fputws lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fputws lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -22266,6 +23825,7 @@
 fread lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fread usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fread usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fread usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fread lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 free etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 free usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22286,6 +23846,7 @@
 free usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 free usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 free usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+free usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 free lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 free lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 free lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -22365,6 +23926,7 @@
 freopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 freopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 freopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+freopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 freopen usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 freopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 freopen64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22372,10 +23934,12 @@
 freopen64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 freopen64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 freopen64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+freopen64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 frexp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 frexp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 frexp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 frexp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+frexp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 frexp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fs_add_DFStab_ent usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 fs_add_mount_default usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -22420,54 +23984,65 @@
 fscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fseek usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fseek lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fseek usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fseek usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fseek usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fseek lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fseeko usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fseeko lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fseeko usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fseeko64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fseeko64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fseeko64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fsetpos usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fsetpos lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsetpos usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsetpos usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fsetpos usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsetpos lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fsetpos64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fsetpos64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fsetpos64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fsetpos64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fsetpos64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fstat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fstat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstatat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 fstatat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+fstatat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 fstatat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+fstatat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fstatfs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 fstatfs usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 fstatfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+fstatfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatfs usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatvfs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22475,11 +24050,13 @@
 fstatvfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstatvfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstatvfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fstatvfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fstatvfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fstatvfs64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 fstatvfs64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstatvfs64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fstatvfs64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+fstatvfs64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fsync usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fsync usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 fsync usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22490,6 +24067,7 @@
 fsync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fsync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fsync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fsync lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 fsync lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -22499,21 +24077,25 @@
 ftell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ftell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftello usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftello lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ftello usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftello64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftello64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ftello64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftime usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 ftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+ftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ftime usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ftok usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -22521,65 +24103,78 @@
 ftok lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftok usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftok usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ftok usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ftok lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftruncate usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftruncate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftruncate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftruncate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ftruncate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftruncate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftruncate64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftruncate64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftruncate64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftruncate64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ftruncate64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftrylockfile usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftrylockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftrylockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftrylockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ftrylockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftrylockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftw usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ftw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ftw64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ftw64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftw64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ftw64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ftw64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 fullObjName usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 func_to_decimal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 func_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 func_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 func_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+func_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 func_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 funlockfile usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 funlockfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 funlockfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 funlockfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+funlockfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 funlockfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 futimesat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 futimesat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 futimesat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 futimesat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+futimesat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 futimesat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 fwide usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 fwide lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwide usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwide usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+fwide usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwide lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 fwprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+fwprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwrite usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 fwrite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fwrite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fwrite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+fwrite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 fwrite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 fwscanf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 fwscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+fwscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 fwscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 g_canonicalize_host usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 g_canonicalize_host usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -22712,11 +24307,13 @@
 gconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gcvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 gcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gelf_checksum usr/lib/libelf.so.1 0 0 0 0 0 0 SUNW_1.3 SUNW_1.3 SUNW_1.5 SUNW_1.3 SUNW_1.3 SUNW_1.3 SUNW_1.5 SUNW_1.3 0 0 0011111 0011110 0 0000001 0 0 0 0
 gelf_checksum lib/libelf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
@@ -22901,6 +24498,7 @@
 getacct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getacct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getacct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+getacct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getacct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getacdir usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 0 0 0011111 0011110 0 0000001 0 0 0 0
 getacdir lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23012,11 +24610,13 @@
 getc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getc_unlocked usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getc_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getc_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getc_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getc_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getc_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getcap usr/ucblib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 getcap usr/ucblib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23035,22 +24635,26 @@
 getchar lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getchar usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getchar usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getchar usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getchar lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getchar_unlocked usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getchar_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getchar_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getchar_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getchar_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getchar_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getcontext usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getcontext usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getcpuid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 getcpuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getcpuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getcpuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+getcpuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getcpuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getctid lib/amd64/libcontract.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 getctid lib/libcontract.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23065,6 +24669,7 @@
 getcwd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcwd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcwd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getcwd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getcwd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdadfield usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 getdadfield lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23082,11 +24687,13 @@
 getdate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getdate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdate_err usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getdate_err lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate_err usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate_err usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getdate_err usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getdate_err lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdatype usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 getdatype lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23097,11 +24704,13 @@
 getdents lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdents usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdents usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getdents usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdents lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdents64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getdents64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getdents64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getdents64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getdents64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getdev usr/lib/libadm.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getdev lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 getdev lib/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23138,6 +24747,7 @@
 getdtablesize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getdtablesize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getdtablesize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+getdtablesize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getdtablesize usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getdtablesize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getegid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -23145,17 +24755,20 @@
 getegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getenv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 geteuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 geteuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 geteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 geteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 geteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+geteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 geteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getexecattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 getexecattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23164,6 +24777,7 @@
 getexecname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getexecname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getexecname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getexecname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getexecname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getexecprof usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 getexecprof lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23175,6 +24789,7 @@
 getextmntent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 getextmntent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 getextmntent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
+getextmntent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 getextmntent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 getfauditflags usr/lib/libbsm.so.1 0 0 0 0 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 0 0 0011111 0011110 0 0000001 0 0 0 0
 getfauditflags lib/amd64/libbsm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23190,49 +24805,58 @@
 getgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getgrent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getgrgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getgrgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrgid_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrgid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrgid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrgid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getgrgid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrgid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrnam usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getgrnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getgrnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgrnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgrnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getgrnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgrnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getgroups usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getgroups usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethomelgroup usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 gethomelgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 gethomelgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 gethomelgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+gethomelgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 gethomelgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 gethostbyaddr usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 gethostbyaddr usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -23266,6 +24890,7 @@
 gethostid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+gethostid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostid usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethostid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostname usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -23275,6 +24900,7 @@
 gethostname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+gethostname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostname usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethostname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gethostname lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23285,11 +24911,13 @@
 gethrtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gethrtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrvtime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 gethrvtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrvtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrvtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gethrvtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gethrvtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getinput usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 getinput lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23313,27 +24941,32 @@
 getisax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getisax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getisax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getisax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getisax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getitimer usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getitimer lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getitimer usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getitimer usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getitimer usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getitimer lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getloadavg usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 getloadavg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 getloadavg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 getloadavg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+getloadavg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 getloadavg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 getlogin usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getlogin usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getlogin lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getlogin usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getlogin usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getlogin usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getlogin lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getlogin_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getlogin_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getlogin_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getlogin_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getlogin_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getlogin_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmaxoffset usr/lib/libcmd.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 getmaxoffset lib/amd64/libcmd.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23348,11 +24981,13 @@
 getmntany lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntany usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntany usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getmntany usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntany lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getmntent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getmntent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmntent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmouse usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getmouse lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23367,6 +25002,7 @@
 getmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 getmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -23420,11 +25056,13 @@
 getnetgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getnetgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getnetgrent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getnetgrent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetgrent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getnetmaskbyaddr usr/lib/libsocket.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 0 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 SUNWprivate_1.3 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 getnetmaskbyaddr lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -23451,30 +25089,36 @@
 getopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getopt_clip lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_clip usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_clip usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getopt_clip usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_clip lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getopt_long usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long_only lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long_only usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long_only usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getopt_long_only usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getopt_long_only lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpagesize usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpagesize usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 getpagesize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpagesize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpagesize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+getpagesize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpagesize usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpagesize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpagesizes usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 getpagesizes lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getpagesizes usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getpagesizes usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+getpagesizes usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getpagesizes lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getparx usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 getparx lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23486,11 +25130,13 @@
 getpass lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpass usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpass usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpass usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpass lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpassphrase usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpassphrase lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getpassphrase usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getpassphrase usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getpassphrase usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getpassphrase lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getpeername usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpeername usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -23501,28 +25147,33 @@
 getpeerucred lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpeerucred usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpeerucred usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getpeerucred usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpeerucred lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getpgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getpgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpgrp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpmsg usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpmsg usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -23534,6 +25185,7 @@
 getpmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 getpmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -23544,10 +25196,12 @@
 getppid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getppid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getppid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getppid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getppid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getppriv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getppriv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getppriv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getppriv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getppriv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getprinterbyname usr/lib/libprint.so.2 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0011111 0 0011111 0 0 0 0 0
 getprinterentry usr/lib/libprint.so.2 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0011111 0 0011111 0 0 0 0 0
@@ -23556,10 +25210,12 @@
 getpriority lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpriority usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpriority usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+getpriority usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getpriority lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getprivimplinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getprivimplinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getprivimplinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getprivimplinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getprivimplinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getprofattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 getprofattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23580,6 +25236,7 @@
 getprojid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getprojid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getprojid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+getprojid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getprojid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getprojidbyname usr/lib/libproject.so.1 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0001111 0001111 0 0 0 0 0 0
 getprojidbyname usr/lib/amd64/libproject.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23620,54 +25277,64 @@
 getpw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getpw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getpwent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwnam usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getpwnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpwnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getpwnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getpwuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getpwuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getpwuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwuid_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getpwuid_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwuid_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwuid_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getpwuid_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getpwuid_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getrctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 getrctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getrctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getrctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+getrctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getrctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 getrlimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getrlimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getrlimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getrlimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getrlimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getrlimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getrlimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getrlimit64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getrlimit64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getrlimit64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getrlimit64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getrlimit64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getrpcbyname usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getrpcbyname lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getrpcbyname lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23696,12 +25363,14 @@
 getrusage lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getrusage usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getrusage usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+getrusage usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getrusage usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getrusage lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 gets usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 gets lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gets usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gets usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+gets usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gets lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getsecretkey usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getsecretkey lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23745,6 +25414,7 @@
 getsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getsockname usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getsockname usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -23762,21 +25432,25 @@
 getspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getspent_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getspent_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspent_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getspnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getspnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getspnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getspnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getspnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getstr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 getstr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -23789,11 +25463,13 @@
 getsubopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsubopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsubopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getsubopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getsubopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettaskid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 gettaskid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 gettaskid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 gettaskid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+gettaskid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 gettaskid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 getterm usr/lib/libcmd.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 getterm lib/amd64/libcmd.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23803,6 +25479,7 @@
 gettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 gettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 gettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+gettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 gettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 gettext lib/amd64/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettext lib/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23811,6 +25488,7 @@
 gettimeofday lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettimeofday usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettimeofday usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gettimeofday usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettimeofday usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettimeofday lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gettmode usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -23823,12 +25501,14 @@
 gettxt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gettxt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gettxt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+gettxt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gettxt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 getuid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 getuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getuserattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 getuserattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23840,6 +25520,7 @@
 getusershell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getusershell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getusershell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getusershell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getusershell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getuseruid usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 getuseruid lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -23848,66 +25529,79 @@
 getustack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 getustack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 getustack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+getustack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 getustack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 getutent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutid usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutline usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmp usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmpx usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutmpx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmpx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmpx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutmpx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutmpx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxid usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutxid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutxid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxline usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getutxline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getutxline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getutxline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsany usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getvfsany lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsany usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsany usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getvfsany usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsany lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getvfsent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getvfsent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsfile usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getvfsfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getvfsfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsspec usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getvfsspec lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsspec usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsspec usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getvfsspec usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvfsspec lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getvol usr/lib/libadm.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getvol lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -23916,12 +25610,14 @@
 getw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+getw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 getw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwc usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 getwc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getwc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getwc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwc lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 getwc lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -23933,6 +25629,7 @@
 getwchar lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwchar usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwchar usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getwchar usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwchar lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getwchar lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwchar lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23941,12 +25638,14 @@
 getwd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getwd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getwd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+getwd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getwd usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 getwidth usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 getwidth lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwidth usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwidth usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+getwidth usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwidth lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getwin usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 getwin usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -23960,6 +25659,7 @@
 getws lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getws usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getws usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+getws usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getws lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 getws lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 getws lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -23973,14 +25673,17 @@
 getzoneid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getzoneid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneidbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneidbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneidbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getzoneidbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzoneidbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzonenamebyid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzonenamebyid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzonenamebyid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+getzonenamebyid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 getzonenamebyid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ggss_error_table usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 ggss_error_table usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -24082,12 +25785,14 @@
 glob lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 glob usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 glob usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+glob usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 glob lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 glob_to_regexp usr/lib/krb5/libkadm5srv.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
 globfree usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 globfree lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 globfree usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 globfree usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+globfree usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 globfree lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 gmatch usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 gmatch lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -24100,22 +25805,26 @@
 gmtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gmtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gmtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+gmtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 gmtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gmtime_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 gmtime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gmtime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gmtime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gmtime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gmtime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 grantpt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 grantpt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 grantpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 grantpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 grantpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+grantpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 grantpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gsignal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 gsignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gsignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gsignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+gsignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gsignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 gss_accept_sec_context usr/lib/libgss.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 1111111 0001111 1010000 0100000 0 0 0 0
 gss_accept_sec_context usr/lib/amd64/libgss.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -24277,6 +25986,7 @@
 gtty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 gtty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 gtty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+gtty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 gtty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 gzclose usr/lib/libz.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
 gzdopen usr/lib/libz.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
@@ -24350,6 +26060,7 @@
 hasmntopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 hasmntopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 hasmntopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+hasmntopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 hasmntopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 havedisk usr/lib/librpcsvc.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 havedisk lib/amd64/librpcsvc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -24359,12 +26070,14 @@
 hcreate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hcreate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hcreate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+hcreate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hcreate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 hdestroy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 hdestroy usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 hdestroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hdestroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hdestroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+hdestroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hdestroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 herror usr/lib/libresolv.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNW_2.2 SUNW_2.2 SUNW_2.2 SUNW_2.2 SUNW_2.2 SUNW_2.2 0 0 1111111 0001110 1010000 0100001 0 0 0 0
 herror lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_2.2 SUNW_2.2 0000001 0000001 0 0 0 0 0 0
@@ -24410,6 +26123,7 @@
 hsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+hsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 hsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 hstrerror usr/lib/libresolv.so.2 0 0 SUNW_2.1 SUNW_2.1 0 0 SUNW_2.1 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 SUNW_2.2 SUNW_2.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 hstrerror lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_2.2 SUNW_2.1 0000001 0000001 0 0 0 0 0 0
@@ -24420,6 +26134,7 @@
 htonl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htonl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htonl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+htonl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htonl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htonl lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 htonl lib/amd64/libxnet.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -24431,6 +26146,7 @@
 htons lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htons usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htons usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+htons usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htons lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 htons lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 htons lib/amd64/libxnet.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -24545,16 +26261,19 @@
 iconv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+iconv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_close usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 iconv_close lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_close usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_close usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+iconv_close usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_close lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_open usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 iconv_open lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_open usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_open usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+iconv_open usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iconv_open lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 idcok usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 idcok usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24610,10 +26329,12 @@
 imaxabs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxabs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxabs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+imaxabs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxabs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxdiv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxdiv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxdiv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+imaxdiv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 imaxdiv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 immedok usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 immedok usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24670,6 +26391,7 @@
 index lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 index usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 index usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+index usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 index usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 index lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 inet6_opt_append lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.5 0000001 0000001 0 0 0 0 0 0
@@ -24806,6 +26528,7 @@
 initgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 initgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 initgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+initgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 initgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 initscr usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 initscr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24823,6 +26546,7 @@
 initstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 initstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 initstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+initstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 initstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 inittab_decode usr/lib/libdhcputil.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 inittab_decode lib/libdhcputil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -24846,6 +26570,7 @@
 innetgr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 innetgr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 innetgr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+innetgr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 innetgr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 innstr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 innstr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24916,6 +26641,7 @@
 insque lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 insque usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 insque usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+insque usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 insque lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 insstr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 insstr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24928,6 +26654,7 @@
 inst_sync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 inst_sync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 inst_sync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+inst_sync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 inst_sync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 instr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 instr usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -24973,6 +26700,7 @@
 ioctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ioctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ioctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ioctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ioctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ip_address_string usr/lib/libssasnmp.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 ip_address_string usr/lib/amd64/libssasnmp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -25056,36 +26784,43 @@
 isaexec lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 isaexec usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 isaexec usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+isaexec usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 isaexec lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 isalnum usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isalnum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalnum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalnum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isalnum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalnum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isalpha usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isalpha lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalpha usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalpha usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isalpha usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isalpha lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isascii usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isascii lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isascii usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isascii usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isascii usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isascii lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isastream usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isastream usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 isastream lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isastream usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isastream usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isastream usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isastream lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isatty usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isatty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isatty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isatty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isatty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isatty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isblank lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 isblank usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 isblank usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+isblank usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 isblank lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 isc_gethexstring usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.2 0 0 0000011 0 0000010 0000001 0 0 0 0
 isc_gethexstring lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.2 0000001 0 0000001 0 0 0 0 0
@@ -25097,11 +26832,13 @@
 iscntrl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 iscntrl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 iscntrl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+iscntrl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 iscntrl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isdigit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isdigit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isdigit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isdigit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isdigit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isdigit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isencrypt usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 isencrypt lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -25118,6 +26855,7 @@
 isenglish lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isenglish usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isenglish usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+isenglish usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isenglish lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isenglish lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isenglish lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25125,12 +26863,14 @@
 isgraph lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isgraph usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isgraph usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isgraph usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isgraph lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isideogram usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 isideogram usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 isideogram lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isideogram usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isideogram usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+isideogram usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isideogram lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isideogram lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isideogram lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25138,27 +26878,32 @@
 islower lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 islower usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 islower usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+islower usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 islower lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnan usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isnan lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnan usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnan usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isnan usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnan lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnand usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isnand lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnand usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnand usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isnand usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isnand lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnanf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 isnanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+isnanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnumber usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 isnumber usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 isnumber lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isnumber usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isnumber usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+isnumber usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isnumber lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isnumber lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isnumber lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25167,6 +26912,7 @@
 isphonogram lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isphonogram usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isphonogram usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+isphonogram usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isphonogram lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isphonogram lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isphonogram lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25174,27 +26920,32 @@
 isprint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isprint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isprint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isprint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isprint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ispunct usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 ispunct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ispunct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ispunct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ispunct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ispunct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 issetugid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 issetugid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 issetugid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 issetugid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+issetugid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 issetugid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 isspace usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 isspace lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isspace usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isspace usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isspace usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isspace lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isspecial usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 isspecial usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 isspecial lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isspecial usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isspecial usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+isspecial usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isspecial lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 isspecial lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isspecial lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25202,6 +26953,7 @@
 isupper lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isupper usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isupper usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isupper usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isupper lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 isvalid_tz usr/lib/libzoneinfo.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 iswalnum usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -25209,6 +26961,7 @@
 iswalnum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalnum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalnum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswalnum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalnum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalnum lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswalnum lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25217,18 +26970,21 @@
 iswalpha lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalpha usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalpha usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswalpha usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalpha lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswalpha lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswalpha lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswblank lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 iswblank usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 iswblank usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+iswblank usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 iswblank lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 iswcntrl usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 iswcntrl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 iswcntrl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswcntrl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswcntrl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswcntrl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswcntrl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswcntrl lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswcntrl lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25237,6 +26993,7 @@
 iswctype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswctype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswctype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswctype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswctype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswctype lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 iswctype lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -25245,6 +27002,7 @@
 iswdigit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswdigit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswdigit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswdigit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswdigit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswdigit lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswdigit lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25253,6 +27011,7 @@
 iswgraph lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswgraph usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswgraph usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswgraph usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswgraph lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswgraph lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswgraph lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25261,6 +27020,7 @@
 iswlower lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswlower usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswlower usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswlower usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswlower lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswlower lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswlower lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25269,6 +27029,7 @@
 iswprint lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswprint usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswprint usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswprint usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswprint lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswprint lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswprint lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25277,6 +27038,7 @@
 iswpunct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswpunct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswpunct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswpunct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswpunct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswpunct lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswpunct lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25285,6 +27047,7 @@
 iswspace lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswspace usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswspace usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswspace usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswspace lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswspace lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswspace lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25293,6 +27056,7 @@
 iswupper lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswupper usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswupper usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswupper usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswupper lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswupper lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswupper lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25301,6 +27065,7 @@
 iswxdigit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswxdigit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswxdigit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+iswxdigit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswxdigit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 iswxdigit lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 iswxdigit lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -25308,6 +27073,7 @@
 isxdigit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isxdigit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isxdigit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+isxdigit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 isxdigit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 item_count usr/lib/libmenu.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 item_count usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -25382,6 +27148,7 @@
 jrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 jrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 jrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+jrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 jrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 justTesting usr/lib/libnisdb.so.2 1 4 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 k5_ef_hash usr/lib/gss/mech_krb5.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -25520,6 +27287,7 @@
 kaio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 kaio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 kaio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+kaio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 kaio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 kdb2_dbm_clearerr usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 kdb2_dbm_close usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -25755,6 +27523,7 @@
 kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 kill lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 kill lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -25771,6 +27540,7 @@
 killpg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 killpg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 killpg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+killpg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 killpg usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 killpg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 killwchar usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -27991,6 +29761,7 @@
 l64a lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 l64a usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 l64a usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+l64a usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 l64a lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 la_amd64_pltenter usr/lib/link_audit/amd64/ldprof.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 la_i86_pltenter usr/lib/link_audit/truss.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -28033,27 +29804,32 @@
 labs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 labs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 labs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+labs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 labs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ladd usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ladd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ladd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ladd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ladd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ladd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lchown usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 lchown usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 lchown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lchown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lchown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lchown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lchown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lckpwdf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lckpwdf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lckpwdf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lckpwdf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lckpwdf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lckpwdf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lcong48 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lcong48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lcong48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lcong48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lcong48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lcong48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ld_atexit usr/lib/libldstab.so.1 0 0 0 0 0 0 SUNW_1.2 SUNW_1.2 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0010000 0001111 0 0 0 0 0
 ld_atexit usr/lib/amd64/libldstab.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -28895,6 +30671,7 @@
 ldexp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldexp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldexp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ldexp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldexp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ldif_base64_decode usr/lib/amd64/libldap.so.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ldif_base64_decode usr/lib/libldap.so.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -28909,11 +30686,13 @@
 ldiv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldiv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldiv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ldiv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ldiv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ldivide usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ldivide lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ldivide usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ldivide usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ldivide usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ldivide lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 leaveok usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 leaveok usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -28926,16 +30705,19 @@
 lexp10 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lexp10 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lexp10 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lexp10 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lexp10 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lfind usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 lfind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lfind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lfind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lfind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lfind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lfmt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 lfmt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 lfmt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 lfmt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+lfmt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 lfmt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 lgrp_affinity_get usr/lib/liblgrp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0000011 0000011 0 0 0 0 0 0
 lgrp_affinity_get usr/lib/amd64/liblgrp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -28999,6 +30781,7 @@
 link lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 link usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 link usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+link usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 link lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 link_field usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 link_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -29044,26 +30827,31 @@
 llabs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llabs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llabs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+llabs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llabs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lldiv usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lldiv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lldiv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lldiv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lldiv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lldiv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llog10 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 llog10 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llog10 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llog10 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+llog10 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llog10 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llseek usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 llseek lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llseek usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llseek usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+llseek usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 llseek lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lltostr usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lltostr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lltostr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lltostr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lltostr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lltostr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lm_shutdown usr/lib/liblm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 lm_shutdown usr/lib/amd64/liblm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -29075,6 +30863,7 @@
 lmul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lmul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lmul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lmul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lmul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 loadAllLDAP usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 load_enterprise_oid usr/lib/libssagent.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -29101,16 +30890,19 @@
 localeconv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localeconv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localeconv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+localeconv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localeconv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 localtime usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 localtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+localtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 localtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 localtime_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 localtime_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 localtime_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 localtime_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+localtime_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 localtime_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lockTransLog usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 lock_core usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000011 0 0000011 0 0 0 0 0
@@ -29124,6 +30916,7 @@
 lockf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lockf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lockf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lockf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lockf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lockf lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 lockf lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -29138,6 +30931,7 @@
 lockf64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lockf64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lockf64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+lockf64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lockf64 lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
 lockf64 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 locs usr/lib/libadm.so.1 1 4 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -29151,12 +30945,14 @@
 logb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 logb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 logb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+logb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 logb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 logmsg usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 lone usr/lib/libc.so.1 1 8 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lone lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lone usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lone usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lone usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lone lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 long_date usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 longjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -29164,6 +30960,7 @@
 longjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 longjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 longjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+longjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 longjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 longname usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 longname usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -29198,46 +30995,55 @@
 lrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lsearch usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 lsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lseek usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 lseek usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 lseek lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lseek usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lseek usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lseek usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lseek lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lseek64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 lseek64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lseek64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lseek64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+lseek64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lshiftl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lshiftl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lshiftl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lshiftl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lshiftl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lshiftl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lstat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 lstat usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 lstat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lstat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lstat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+lstat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 lstat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lstat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 lstat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lstat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lstat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+lstat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 lsub usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lsub lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lsub usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lsub usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lsub usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lsub lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lten usr/lib/libc.so.1 1 8 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lten lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lten usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lten usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lten usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lten lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lwp_self usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.7 0 0 SUNW_1.5 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 lwp_self usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 SUNW_1.6 SUNW_0.7 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
@@ -29245,6 +31051,7 @@
 lwp_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 lwp_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 lwp_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+lwp_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 lwp_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 lwp_self lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lwp_self lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -29252,6 +31059,7 @@
 lzero lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lzero usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lzero usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+lzero usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 lzero lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 m_addch usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 m_addch lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -29283,6 +31091,7 @@
 madvise lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 madvise usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 madvise usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+madvise usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 madvise lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 maildomain usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 maildomain usr/lib/amd64/libmail.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -29307,6 +31116,7 @@
 makecontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 makecontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 makecontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+makecontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 makecontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 makekey usr/lib/libcrypt_d.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 makekey usr/lib/libcrypt_i.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -29319,11 +31129,13 @@
 makeut lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeut usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeut usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+makeut usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeut lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeutx usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 makeutx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeutx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeutx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+makeutx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 makeutx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mallinfo usr/lib/libmalloc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 mallinfo usr/lib/libmapmalloc.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
@@ -29350,6 +31162,7 @@
 malloc usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 malloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 malloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+malloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 malloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 malloc lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 malloc lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -29400,16 +31213,19 @@
 mblen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mblen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mblen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mblen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mblen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mbrlen usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 mbrlen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrlen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrlen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+mbrlen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrlen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrtowc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 mbrtowc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrtowc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrtowc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+mbrtowc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbrtowc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbscrw usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 mbscrw lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -29418,26 +31234,31 @@
 mbsinit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsinit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsinit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+mbsinit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsinit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsrtowcs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 mbsrtowcs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsrtowcs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsrtowcs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+mbsrtowcs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbsrtowcs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 mbstowcs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mbstowcs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbstowcs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbstowcs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mbstowcs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbstowcs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mbtowc usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mbtowc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbtowc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbtowc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mbtowc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mbtowc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mcfiller usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 mcfiller lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mcfiller usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mcfiller usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+mcfiller usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mcfiller lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mcmp usr/lib/libmp.so.1 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 mcmp lib/libmp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -29757,6 +31578,7 @@
 memalign usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 memalign usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memalign usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+memalign usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memalign lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memalign lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 memalign lib/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -29764,22 +31586,26 @@
 memccpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memccpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memccpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memccpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memccpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memchr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memcmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memcntl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memcntl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 memcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memcpy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memcpy etc/lib/ld.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -29788,22 +31614,26 @@
 memcpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memcpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memcpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memcpy lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 meminfo usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 meminfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 meminfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 meminfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+meminfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 meminfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 memmove usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memmove lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memmove usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memmove usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memmove usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memmove lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 memset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 memset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+memset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 memset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 menu_back usr/lib/libmenu.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 menu_back usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -30606,6 +32436,7 @@
 mincore lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mincore usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mincore usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+mincore usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mincore lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mit_afs_string_to_key usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0011111 0 0011000 0000111 0 0 0 0
 mit_afs_string_to_key usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0011111 0 0011000 0000111 0 0 0 0
@@ -30668,6 +32499,7 @@
 mkdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mkdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkdirp usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 mkdirp lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -30676,6 +32508,7 @@
 mkfifo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkfifo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkfifo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mkfifo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mkfifo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mklocation usr/lib/inet/dhcp/svc/ds_SUNWnisplus.so.0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 mklocation usr/lib/inet/dhcp/svc/ds_SUNWbinfiles.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -30691,47 +32524,56 @@
 mknod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mknod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mknod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mknod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mknod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkstemp usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 mkstemp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkstemp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkstemp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+mkstemp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkstemp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mkstemp64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 mkstemp64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mkstemp64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mkstemp64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+mkstemp64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mktemp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mktemp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktemp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktemp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mktemp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktemp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mktime usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mktime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mktime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mktime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mlock usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mlock usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 mlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mlockall usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 mlockall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mlockall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mlockall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+mlockall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mlockall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mmap usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mmap usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 mmap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mmap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mmap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mmap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mmap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mmap64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 mmap64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mmap64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mmap64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+mmap64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 mnnr_cache_add usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 mnnr_cache_add lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mnnr_cache_del usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
@@ -30742,22 +32584,26 @@
 mntopt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mntopt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mntopt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+mntopt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mntopt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mod_dd_entry usr/lib/libdhcp.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
 modctl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 modctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+modctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 modf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 modf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 modf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+modf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 modf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 modff usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 modff lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 modff usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 modff usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+modff usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 modff lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 modify_dd_entry usr/lib/libdhcpsvc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 modify_dn usr/lib/inet/dhcp/svc/ds_SUNWnisplus.so.0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -30779,17 +32625,20 @@
 modutx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modutx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modutx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+modutx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 modutx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 monitor usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 monitor lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 monitor usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 monitor usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+monitor usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 monitor lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mount usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 mount usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 mount lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mount usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mount usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mount usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mount lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mouse_off usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 mouse_off lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -30892,6 +32741,7 @@
 mprotect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mprotect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mprotect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+mprotect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 mprotect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mq_close usr/lib/librt.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 SUNW_1.3 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 mq_close lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -30929,28 +32779,33 @@
 mrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+mrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msgctl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 msgctl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 msgctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+msgctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msgctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 msgctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 msgctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 msgctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+msgctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 msgctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 msgget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 msgget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 msgget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+msgget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msgids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 msgids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+msgids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgrcv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 msgrcv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -30962,6 +32817,7 @@
 msgrcv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgrcv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgrcv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+msgrcv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgrcv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msgrcv lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 msgrcv lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -30971,6 +32827,7 @@
 msgsnap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgsnap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgsnap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+msgsnap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgsnap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 msgsnd usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 msgsnd usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -30982,6 +32839,7 @@
 msgsnd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgsnd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgsnd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+msgsnd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msgsnd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msgsnd lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 msgsnd lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -31001,6 +32859,7 @@
 msync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+msync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 msync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 msync lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 msync lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31023,17 +32882,20 @@
 munlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+munlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 munlockall usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 munlockall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 munlockall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 munlockall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+munlockall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 munlockall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 munmap usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 munmap usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 munmap lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munmap usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munmap usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+munmap usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 munmap lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_destroy usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 mutex_destroy usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.7 0 0 SUNW_1.5 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -31044,6 +32906,7 @@
 mutex_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+mutex_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31056,6 +32919,7 @@
 mutex_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mutex_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mutex_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+mutex_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mutex_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mutex_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 mutex_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -31068,6 +32932,7 @@
 mutex_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+mutex_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31082,6 +32947,7 @@
 mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_lock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_lock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31096,6 +32962,7 @@
 mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_trylock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_trylock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31110,6 +32977,7 @@
 mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 mutex_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 mutex_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -31818,6 +33686,7 @@
 nextafter lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nextafter usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nextafter usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+nextafter usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nextafter lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nextkey usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nextkey usr/ucblib/libdbm.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -31834,6 +33703,7 @@
 nfs_getfh lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfs_getfh usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfs_getfh usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nfs_getfh usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfs_getfh lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfssec_free_secmode_list usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfssec_get_default_secmode usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -31842,20 +33712,24 @@
 nfssvc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfssvc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfssvc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nfssvc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nfssvc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nftw usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 nftw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nftw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nftw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+nftw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nftw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nftw64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 nftw64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 nftw64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 nftw64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+nftw64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ngettext usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0001111 0001110 0 0000001 0 0 0 0
 ngettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 ngettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 ngettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+ngettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 ngettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 nice usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 nice usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -31863,6 +33737,7 @@
 nice lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nice usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nice usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+nice usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nice usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nice lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nis_add usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -32109,6 +33984,7 @@
 nl_langinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nl_langinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nl_langinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+nl_langinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nl_langinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nlist usr/lib/libelf.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.3 SUNW_0.7 SUNW_1.5 SUNW_0.7 SUNW_1.3 SUNW_0.7 SUNW_1.5 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nlist usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
@@ -32192,6 +34068,7 @@
 nrand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nrand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nrand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+nrand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nrand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ns_bsd_addr_get_all usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 ns_bsd_addr_get_default usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
@@ -32213,21 +34090,25 @@
 nss_default_finders lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nss_default_finders usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nss_default_finders usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+nss_default_finders usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nss_default_finders lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 nss_delete usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nss_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nss_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_endent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nss_endent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_endent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_endent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nss_endent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_endent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_getent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nss_getent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_getent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_getent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nss_getent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_getent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_ioctl lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_ioctl lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -32235,11 +34116,13 @@
 nss_search lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_search usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_search usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nss_search usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_search lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_setent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 nss_setent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_setent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_setent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+nss_setent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 nss_setent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohl usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 ntohl usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -32247,6 +34130,7 @@
 ntohl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ntohl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohl lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ntohl lib/amd64/libxnet.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -32258,6 +34142,7 @@
 ntohs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ntohs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ntohs lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ntohs lib/amd64/libxnet.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -32267,11 +34152,13 @@
 ntp_adjtime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_adjtime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_adjtime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ntp_adjtime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_adjtime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_gettime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ntp_gettime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_gettime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_gettime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ntp_gettime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ntp_gettime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 numCallItem usr/lib/libssagent.so.1 1 4 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
 numCallItem usr/lib/amd64/libssagent.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -32298,6 +34185,7 @@
 nuname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nuname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nuname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+nuname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 nv_alloc_fini lib/amd64/libnvpair.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
 nv_alloc_fini lib/libnvpair.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
 nv_alloc_init lib/amd64/libnvpair.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -32618,6 +34506,7 @@
 open lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 open usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 open usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+open usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 open lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 open lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 open lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -32632,6 +34521,7 @@
 open64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 open64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 open64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+open64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 open64 lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 open64 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 open_admin usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
@@ -32657,21 +34547,25 @@
 openat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+openat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 openat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 openat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+openat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 opendir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 opendir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 opendir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opendir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opendir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+opendir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opendir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 openlog usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 openlog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 openlog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 openlog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+openlog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 openlog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 openpl usr/lib/libplot.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 openpl usr/lib/lib300.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -32701,21 +34595,25 @@
 optarg lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optarg usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optarg usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+optarg usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optarg lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 opterr usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 opterr lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opterr usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opterr usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+opterr usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 opterr lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 optind usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 optind lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optind usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optind usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+optind usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optind lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 optopt usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 optopt lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optopt usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optopt usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+optopt usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 optopt lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 order_haddrlist_af lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 order_haddrlist_af lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.5 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -32809,6 +34707,7 @@
 p_online lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 p_online usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 p_online usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+p_online usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 p_online lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 p_query usr/lib/libresolv.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 p_query usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0001111 0 0001110 0000001 0 0 0 0
@@ -33104,6 +35003,7 @@
 pathconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pathconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pathconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+pathconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pathconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pathfind usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pathfind lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -33120,6 +35020,7 @@
 pause lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pause usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pause usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+pause usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pause lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pause lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pause lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -33137,6 +35038,7 @@
 pclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+pclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pclosevp usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 pclosevp usr/lib/amd64/libmail.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -33144,6 +35046,7 @@
 pcsample lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pcsample usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pcsample usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pcsample usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pcsample lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pctx_capture usr/lib/libpctx.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
 pctx_capture usr/lib/amd64/libpctx.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -33173,12 +35076,14 @@
 perror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 perror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 perror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+perror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 perror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pflag usr/lib/libipsecutil.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pfmt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 pfmt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 pfmt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 pfmt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+pfmt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 pfmt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 picl_find_node usr/lib/amd64/libpicl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
 picl_find_node usr/lib/libpicl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
@@ -33227,6 +35132,7 @@
 pipe lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pipe usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pipe usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+pipe usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 pipe lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pkcs11_ek_ops usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
 pkcs11_get_session usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
@@ -33256,6 +35162,7 @@
 plock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 plock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 plock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+plock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 plock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pmap_getmaps usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 pmap_getmaps lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -33302,6 +35209,7 @@
 poll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 poll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 poll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+poll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 poll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 poll lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 poll lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -33449,44 +35357,54 @@
 popen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 popen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 popen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+popen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 popen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 popenvp usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 popenvp usr/lib/amd64/libmail.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 port_alert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_alert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_alert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_alert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_alert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_associate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_associate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_associate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_associate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_associate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_dispatch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 port_dispatch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 port_dispatch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+port_dispatch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 port_dispatch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 port_dissociate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_dissociate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_dissociate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_dissociate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_dissociate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_get lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_get usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_get usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_get usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_get lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_getn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_getn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_getn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_getn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_getn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_send lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_send usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_send usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_send usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_send lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_sendn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_sendn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_sendn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+port_sendn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 port_sendn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pos_form_cursor usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 pos_form_cursor usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -33496,90 +35414,112 @@
 posix_openpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_openpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_openpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_openpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_openpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addclose lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn_file_actions_addclose usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addclose lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_adddup2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn_file_actions_adddup2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_adddup2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addopen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn_file_actions_addopen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_addopen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn_file_actions_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawn_file_actions_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawn_file_actions_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getpgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getpgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getpgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigdefault lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getsigdefault usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigdefault lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_getsigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_getsigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setpgroup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setpgroup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setpgroup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigdefault lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setsigdefault usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigdefault lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnattr_setsigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnattr_setsigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+posix_spawnp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 posix_spawnp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 post_form usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 post_form usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -33776,6 +35716,7 @@
 pread lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pread usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pread usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+pread usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pread lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pread lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pread lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -33790,6 +35731,7 @@
 pread64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pread64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pread64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pread64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pread64 lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
 pread64 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 preen_build_devs usr/lib/drv/preen_md.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000111 0 0000111 0 0 0 0 0
@@ -33834,6 +35776,7 @@
 printf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 printf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 printf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+printf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 printf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 printf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 printmenu usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -33843,6 +35786,7 @@
 printstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 printstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 printstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+printstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 printstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 printw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 printw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -33857,107 +35801,133 @@
 priocntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+priocntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntlset usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 priocntlset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntlset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntlset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+priocntlset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priocntlset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 priv_addset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_addset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_addset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_addset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_addset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_allocset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_allocset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_allocset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_allocset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_allocset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_copyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_copyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_copyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_copyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_copyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_delset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_delset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_delset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_delset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_delset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_emptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_emptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_emptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_emptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_emptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_fillset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_fillset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_fillset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_fillset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_fillset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_freeset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_freeset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_freeset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_freeset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_freeset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_getbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_getbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_getsetbyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbynum lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbynum usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbynum usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_getsetbynum usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_getsetbynum lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_gettext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_gettext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_gettext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_gettext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_gettext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ineffect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ineffect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ineffect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_ineffect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ineffect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_intersect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_intersect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_intersect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_intersect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_intersect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_inverse lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_inverse usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_inverse usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_inverse usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_inverse lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isemptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isemptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isemptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_isemptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isemptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isequalset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isequalset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isequalset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_isequalset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isequalset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isfullset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isfullset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isfullset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_isfullset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_isfullset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ismember lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ismember usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ismember usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_ismember usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_ismember lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_issubset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_issubset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_issubset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_issubset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_issubset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_set usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set_to_str lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set_to_str usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set_to_str usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_set_to_str usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_set_to_str lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_str_to_set lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_str_to_set usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_str_to_set usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_str_to_set usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_str_to_set lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_union lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_union usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_union usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+priv_union usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 priv_union lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 privstr2num usr/lib/libipsecutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 proc_addr_to_map usr/lib/libproc.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0 0 0 0 0 0 1111111 1000000 0 0111111 0 0 0 0
@@ -34057,11 +36027,13 @@
 processor_bind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_bind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_bind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+processor_bind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_bind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_info usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 processor_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+processor_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 processor_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 procsigs usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 procsigs lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -34074,6 +36046,7 @@
 profil lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 profil usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 profil usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+profil usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 profil lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 profile_add_node usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 profile_add_node usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -34266,69 +36239,83 @@
 pselect lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pselect usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect_large_fdset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect_large_fdset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pselect_large_fdset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pselect_large_fdset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pset_assign usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pset_assign lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_assign usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_assign usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pset_assign usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_assign lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_assign_forced lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pset_assign_forced usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pset_assign_forced usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+pset_assign_forced usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pset_assign_forced lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pset_bind usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pset_bind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_bind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_bind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pset_bind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_bind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_create usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pset_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pset_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_destroy usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pset_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pset_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_getattr usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 pset_getattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+pset_getattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getloadavg usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 pset_getloadavg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getloadavg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getloadavg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+pset_getloadavg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_getloadavg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_info usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pset_info lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_info usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_info usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pset_info usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_info lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pset_list usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 pset_list lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_list usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_list usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+pset_list usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_list lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_setattr usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 pset_setattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_setattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_setattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+pset_setattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pset_setattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 psiginfo usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 psiginfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psiginfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psiginfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+psiginfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psiginfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psignal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 psignal usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 psignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+psignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psignal usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 psignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pthread_atfork usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34338,6 +36325,7 @@
 pthread_atfork lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_atfork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_atfork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_atfork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_atfork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_attr_destroy usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34348,6 +36336,7 @@
 pthread_attr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34362,6 +36351,7 @@
 pthread_attr_getdetachstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getdetachstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getdetachstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getdetachstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getdetachstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getdetachstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getdetachstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34376,6 +36366,7 @@
 pthread_attr_getguardsize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getguardsize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getguardsize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getguardsize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getguardsize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getguardsize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getguardsize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -34390,6 +36381,7 @@
 pthread_attr_getinheritsched lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getinheritsched usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getinheritsched usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getinheritsched usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getinheritsched lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getinheritsched lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getinheritsched lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34404,6 +36396,7 @@
 pthread_attr_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34418,6 +36411,7 @@
 pthread_attr_getschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedpolicy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getschedpolicy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34432,6 +36426,7 @@
 pthread_attr_getscope lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getscope usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getscope usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getscope usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getscope lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getscope lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getscope lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34440,6 +36435,7 @@
 pthread_attr_getstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_attr_getstackaddr usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34450,6 +36446,7 @@
 pthread_attr_getstackaddr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getstackaddr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstackaddr lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34464,6 +36461,7 @@
 pthread_attr_getstacksize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstacksize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstacksize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_getstacksize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstacksize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstacksize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_getstacksize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34478,6 +36476,7 @@
 pthread_attr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34492,6 +36491,7 @@
 pthread_attr_setdetachstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setdetachstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setdetachstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setdetachstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setdetachstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setdetachstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setdetachstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34506,6 +36506,7 @@
 pthread_attr_setguardsize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setguardsize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setguardsize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setguardsize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setguardsize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setguardsize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setguardsize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -34520,6 +36521,7 @@
 pthread_attr_setinheritsched lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setinheritsched usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setinheritsched usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setinheritsched usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setinheritsched lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setinheritsched lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setinheritsched lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34534,6 +36536,7 @@
 pthread_attr_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34548,6 +36551,7 @@
 pthread_attr_setschedpolicy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setschedpolicy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedpolicy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedpolicy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setschedpolicy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34562,6 +36566,7 @@
 pthread_attr_setscope lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setscope usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setscope usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setscope usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setscope lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setscope lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setscope lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34570,6 +36575,7 @@
 pthread_attr_setstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_attr_setstackaddr usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34580,6 +36586,7 @@
 pthread_attr_setstackaddr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setstackaddr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstackaddr lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34594,6 +36601,7 @@
 pthread_attr_setstacksize lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstacksize usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstacksize usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_attr_setstacksize usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstacksize lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstacksize lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_attr_setstacksize lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34602,30 +36610,37 @@
 pthread_barrier_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrier_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrier_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrier_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrier_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrierattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrierattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrierattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_barrierattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_barrierattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_cancel usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_cancel usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34636,6 +36651,7 @@
 pthread_cancel lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_cancel usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_cancel usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_cancel usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_cancel lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_cancel lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cancel lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34650,6 +36666,7 @@
 pthread_cond_broadcast lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_broadcast usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_broadcast usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_broadcast usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_broadcast lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_broadcast lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_broadcast lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34664,6 +36681,7 @@
 pthread_cond_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34678,6 +36696,7 @@
 pthread_cond_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34692,6 +36711,7 @@
 pthread_cond_reltimedwait_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+pthread_cond_reltimedwait_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pthread_cond_reltimedwait_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 pthread_cond_reltimedwait_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.6 0000001 0000001 0 0 0 0 0 0
 pthread_cond_reltimedwait_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
@@ -34706,6 +36726,7 @@
 pthread_cond_signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_signal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_signal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34720,6 +36741,7 @@
 pthread_cond_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_timedwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_timedwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34734,6 +36756,7 @@
 pthread_cond_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_cond_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_cond_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34748,6 +36771,7 @@
 pthread_condattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34756,6 +36780,7 @@
 pthread_condattr_getclock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getclock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getclock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_getclock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getclock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_condattr_getpshared usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34766,6 +36791,7 @@
 pthread_condattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34780,6 +36806,7 @@
 pthread_condattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34788,6 +36815,7 @@
 pthread_condattr_setclock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setclock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setclock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_setclock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setclock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_condattr_setpshared usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -34798,6 +36826,7 @@
 pthread_condattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_condattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_condattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34814,6 +36843,7 @@
 pthread_create usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pthread_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34828,6 +36858,7 @@
 pthread_detach lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_detach usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_detach usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_detach usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_detach lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_detach lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_detach lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34842,6 +36873,7 @@
 pthread_equal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_equal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_equal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_equal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_equal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_equal lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_equal lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34858,6 +36890,7 @@
 pthread_exit usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 pthread_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_exit lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_exit lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34872,6 +36905,7 @@
 pthread_getconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_getconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_getconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_getconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_getconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_getconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_getconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -34886,6 +36920,7 @@
 pthread_getschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_getschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_getschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34900,6 +36935,7 @@
 pthread_getspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_getspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_getspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_getspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34914,6 +36950,7 @@
 pthread_join lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_join usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_join usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_join usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_join lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_join lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_join lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34928,6 +36965,7 @@
 pthread_key_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_key_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_key_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34942,6 +36980,7 @@
 pthread_key_delete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_delete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_delete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_key_delete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_delete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_key_delete lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_key_delete lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34956,6 +36995,7 @@
 pthread_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_kill lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_kill lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34971,6 +37011,7 @@
 pthread_mutex_consistent_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_consistent_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_consistent_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_consistent_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_consistent_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_consistent_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.5 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_consistent_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
@@ -34985,6 +37026,7 @@
 pthread_mutex_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -34999,6 +37041,7 @@
 pthread_mutex_getprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_getprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_getprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_getprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_getprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35013,6 +37056,7 @@
 pthread_mutex_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35027,6 +37071,7 @@
 pthread_mutex_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_lock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_lock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35035,6 +37080,7 @@
 pthread_mutex_reltimedlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_reltimedlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_reltimedlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_mutex_setprioceiling usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -35045,6 +37091,7 @@
 pthread_mutex_setprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_setprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_setprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35053,6 +37100,7 @@
 pthread_mutex_timedlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_timedlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_timedlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_timedlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_timedlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_mutex_trylock usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -35063,6 +37111,7 @@
 pthread_mutex_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_trylock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35077,6 +37126,7 @@
 pthread_mutex_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutex_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutex_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35091,6 +37141,7 @@
 pthread_mutexattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35105,6 +37156,7 @@
 pthread_mutexattr_getprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_getprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35119,6 +37171,7 @@
 pthread_mutexattr_getprotocol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_getprotocol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprotocol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprotocol lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getprotocol lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35133,6 +37186,7 @@
 pthread_mutexattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35146,6 +37200,7 @@
 pthread_mutexattr_getrobust_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_getrobust_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getrobust_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getrobust_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.5 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_getrobust_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
@@ -35160,6 +37215,7 @@
 pthread_mutexattr_gettype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_gettype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_gettype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_gettype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_gettype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_gettype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_gettype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35174,6 +37230,7 @@
 pthread_mutexattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35188,6 +37245,7 @@
 pthread_mutexattr_setprioceiling lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_setprioceiling usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprioceiling lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprioceiling lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprioceiling lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35202,6 +37260,7 @@
 pthread_mutexattr_setprotocol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_setprotocol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprotocol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprotocol lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setprotocol lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35216,6 +37275,7 @@
 pthread_mutexattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35229,6 +37289,7 @@
 pthread_mutexattr_setrobust_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_setrobust_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setrobust_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setrobust_np lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.5 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_setrobust_np lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.3 0000001 0000001 0 0 0 0 0 0
@@ -35243,6 +37304,7 @@
 pthread_mutexattr_settype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_settype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_settype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_mutexattr_settype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_settype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_settype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_mutexattr_settype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35257,6 +37319,7 @@
 pthread_once lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_once usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_once usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_once usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_once lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_once lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_once lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35271,6 +37334,7 @@
 pthread_rwlock_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35285,6 +37349,7 @@
 pthread_rwlock_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35299,6 +37364,7 @@
 pthread_rwlock_rdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_rdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_rdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_rdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_rdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_rdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_rdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35307,18 +37373,22 @@
 pthread_rwlock_reltimedrdlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_reltimedrdlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedrdlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedwrlock_np lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_reltimedwrlock_np usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_reltimedwrlock_np lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_timedrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedwrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_timedwrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_timedwrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_rwlock_tryrdlock usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_1.4 0 0 SUNW_1.5 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6.1 SUNW_1.4 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -35329,6 +37399,7 @@
 pthread_rwlock_tryrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_tryrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_tryrdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35343,6 +37414,7 @@
 pthread_rwlock_trywrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_trywrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_trywrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_trywrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_trywrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35357,6 +37429,7 @@
 pthread_rwlock_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35371,6 +37444,7 @@
 pthread_rwlock_wrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_wrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_wrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlock_wrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_wrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_wrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlock_wrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35385,6 +37459,7 @@
 pthread_rwlockattr_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlockattr_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35399,6 +37474,7 @@
 pthread_rwlockattr_getpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlockattr_getpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_getpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_getpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_getpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35413,6 +37489,7 @@
 pthread_rwlockattr_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlockattr_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35427,6 +37504,7 @@
 pthread_rwlockattr_setpshared lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_rwlockattr_setpshared usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_setpshared lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_setpshared lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_rwlockattr_setpshared lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35441,6 +37519,7 @@
 pthread_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_self lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_self lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35455,6 +37534,7 @@
 pthread_setcancelstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcancelstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcancelstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_setcancelstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcancelstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcancelstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_setcancelstate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35469,6 +37549,7 @@
 pthread_setcanceltype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcanceltype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcanceltype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_setcanceltype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcanceltype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setcanceltype lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_setcanceltype lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35483,6 +37564,7 @@
 pthread_setconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_setconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_setconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+pthread_setconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_setconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 pthread_setconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pthread_setconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35497,6 +37579,7 @@
 pthread_setschedparam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setschedparam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setschedparam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_setschedparam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setschedparam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setschedparam lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_setschedparam lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35505,6 +37588,7 @@
 pthread_setschedprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_setschedprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_setschedprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_setschedprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_setschedprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_setspecific usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -35515,6 +37599,7 @@
 pthread_setspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_setspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_setspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35529,6 +37614,7 @@
 pthread_sigmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_sigmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_sigmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_sigmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_sigmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_sigmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_sigmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35537,22 +37623,27 @@
 pthread_spin_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_spin_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_spin_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_lock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_lock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_lock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_spin_lock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_lock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_trylock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_trylock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_trylock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_spin_trylock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_trylock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+pthread_spin_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_spin_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 pthread_testcancel usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.9 0 0 SUNW_1.5 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6 SUNW_0.9 SUNW_1.6.1 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -35563,6 +37654,7 @@
 pthread_testcancel lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pthread_testcancel usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 pthread_testcancel lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -35573,6 +37665,7 @@
 ptrace lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptrace usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptrace usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ptrace usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptree_add_node usr/lib/libpicltree.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.3 SUNW_1.1 0000111 0000111 0 0 0 0 0 0
 ptree_add_prop usr/lib/libpicltree.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.3 SUNW_1.1 0000111 0000111 0 0 0 0 0 0
 ptree_add_row_to_table usr/lib/libpicltree.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.3 SUNW_1.1 0000111 0000111 0 0 0 0 0 0
@@ -35609,6 +37702,7 @@
 ptsname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptsname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptsname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ptsname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ptsname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pty_error_table usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
 pty_error_table usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0011111 0 0011110 0000001 0 0 0 0
@@ -35621,16 +37715,19 @@
 putacct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 putacct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 putacct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+putacct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 putacct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 putc usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 putc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putc_unlocked usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 putc_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putc_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putc_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+putc_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putc_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putch usr/lib/lib4014.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 putch usr/lib/amd64/lib4014.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -35638,16 +37735,19 @@
 putchar lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putchar usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putchar usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putchar usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putchar lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putchar_unlocked usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 putchar_unlocked lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putchar_unlocked usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putchar_unlocked usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+putchar_unlocked usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putchar_unlocked lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putenv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 putenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 puterror usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 puterror lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -35670,6 +37770,7 @@
 putmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 putmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35692,6 +37793,7 @@
 putpmsg lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putpmsg usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putpmsg usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putpmsg usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putpmsg lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putpmsg lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 putpmsg lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35704,11 +37806,13 @@
 putpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+putpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 puts usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 puts lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 puts usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 puts usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+puts usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 puts lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putshort usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 putshort lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -35719,6 +37823,7 @@
 putspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+putspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 puttext usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 puttext lib/amd64/libadm.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -35727,22 +37832,26 @@
 pututline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+pututline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututxline usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 pututxline lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututxline usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututxline usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+pututxline usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pututxline lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putw usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 putw lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putw usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putw usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+putw usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 putw lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putwc usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 putwc usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 putwc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+putwc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwc lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 putwc lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -35751,6 +37860,7 @@
 putwchar lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwchar usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwchar usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+putwchar usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwchar lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putwchar lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putwchar lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -35766,6 +37876,7 @@
 putws lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putws usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putws usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+putws usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putws lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 putws lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 putws lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -35782,6 +37893,7 @@
 pwrite lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pwrite usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pwrite usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+pwrite usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pwrite lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 pwrite lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 pwrite lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -35796,37 +37908,44 @@
 pwrite64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pwrite64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pwrite64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+pwrite64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 pwrite64 lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
 pwrite64 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 qeconvert usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qeconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qeconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qeconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qeconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qeconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qecvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qecvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qecvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qecvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qecvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qecvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfconvert usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qfconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qfconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfcvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qfcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qfcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qfcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgconvert usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qgconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qgconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgcvt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 qgcvt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgcvt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgcvt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+qgcvt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qgcvt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qiflush usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 qiflush usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -35842,12 +37961,14 @@
 qsort lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 qsort usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 qsort usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+qsort usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 qsort lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 qsort lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 quadruple_to_decimal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 quadruple_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 quadruple_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 quadruple_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+quadruple_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 quadruple_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 query_dhcp_defaults usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
 query_dsvc_conf usr/lib/libdhcpsvc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -35865,23 +37986,27 @@
 raise lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 raise usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 raise usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+raise usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 raise lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 rand usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 rand lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rand usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rand usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+rand usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rand usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 rand_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+rand_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rand_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 random usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 random lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 random usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 random usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+random usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 random lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 raw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 raw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -35992,90 +38117,108 @@
 rctl_walk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctl_walk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctl_walk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctl_walk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctl_walk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_enforced_value usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_enforced_value lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_enforced_value usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_enforced_value usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_enforced_value usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_enforced_value lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_firing_time usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_firing_time lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_firing_time usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_firing_time usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_firing_time usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_firing_time lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_action usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_global_action lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_action usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_action usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_global_action usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_action lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_flags usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_global_flags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_flags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_flags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_global_flags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_global_flags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_action usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_local_action lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_action usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_action usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_local_action usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_action lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_flags usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_local_flags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_flags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_flags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_local_flags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_local_flags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_privilege usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_privilege lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_privilege usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_privilege usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_privilege usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_privilege lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_recipient_pid usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_recipient_pid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_recipient_pid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_recipient_pid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_recipient_pid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_recipient_pid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_value usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_get_value lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_value usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_value usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_get_value usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_get_value lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_action usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_set_local_action lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_action usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_action usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_set_local_action usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_action lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_flags usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_set_local_flags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_flags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_flags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_set_local_flags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_local_flags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_privilege usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_set_privilege lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_privilege usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_privilege usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_set_privilege usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_privilege lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_recipient_pid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_recipient_pid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_recipient_pid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+rctlblk_set_recipient_pid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_recipient_pid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_value usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_set_value lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_value usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_value usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_set_value usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_set_value lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_size usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 rctlblk_size lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_size usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_size usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+rctlblk_size usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlblk_size lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 rctlctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 rctlctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctlctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctlctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+rctlctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctlctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctllist usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 rctllist lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctllist usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctllist usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+rctllist usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rctllist lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rd_delete usr/lib/librtld_db.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 rd_delete lib/amd64/librtld_db.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -36120,6 +38263,7 @@
 re_comp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_comp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_comp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+re_comp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_comp usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 re_comp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_exec usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36127,6 +38271,7 @@
 re_exec lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_exec usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_exec usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+re_exec usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 re_exec usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 re_exec lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 read usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36139,6 +38284,7 @@
 read lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 read usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 read usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+read usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 read lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 read lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 read lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -36160,6 +38306,7 @@
 readdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+readdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readdir usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readdir64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36167,14 +38314,17 @@
 readdir64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+readdir64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir64_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 readdir64_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir64_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir64_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+readdir64_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 readdir_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 readdir_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readdir_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readdir_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+readdir_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readdir_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readfile usr/lib/libipsecutil.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 readlink usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36182,6 +38332,7 @@
 readlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+readlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readv usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 readv usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -36193,6 +38344,7 @@
 readv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+readv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 readv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 readv lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 readv lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -36217,6 +38369,7 @@
 realloc usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 realloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 realloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+realloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 realloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 realloc lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 realloc lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -36225,12 +38378,14 @@
 realpath lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 realpath usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 realpath usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+realpath usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 realpath lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 reboot usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 reboot usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 reboot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 reboot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 reboot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+reboot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 reboot usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 reboot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 recv usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36276,12 +38431,14 @@
 regcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+regcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regcmp_p2 usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 regcomp usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 regcomp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regcomp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regcomp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+regcomp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regcomp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regerrno usr/lib/libgen.so.1 1 4 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 regerrno lib/amd64/libgen.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -36290,23 +38447,27 @@
 regerror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regerror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regerror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+regerror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regerror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regex usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 regex usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 regex lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regex usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regex usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+regex usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regex lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 regex_p2 usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 regexec usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 regexec lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regexec usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regexec usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+regexec usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regexec lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regfree usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 regfree lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regfree usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regfree usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+regfree usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 regfree lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 registerrpc usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 registerrpc lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -36326,6 +38487,7 @@
 remove lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 remove usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 remove usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+remove usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 remove lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 remove_dd usr/lib/libdhcpsvc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
 remove_dn usr/lib/inet/dhcp/svc/ds_SUNWnisplus.so.0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -36345,12 +38507,14 @@
 remque lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 remque usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 remque usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+remque usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 remque lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rename usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 rename usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 rename lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rename usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rename usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+rename usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rename lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rename_map usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000011 0 0000011 0 0 0 0 0
 rename_principal_1 usr/lib/krb5/libkadm5clnt.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -36359,6 +38523,7 @@
 renameat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 renameat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 renameat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+renameat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 renameat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 replace_dhcp_defaults usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
 replace_dsvc_conf usr/lib/libdhcpsvc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -36563,6 +38728,7 @@
 resetmnttab lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 resetmnttab usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 resetmnttab usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
+resetmnttab usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 resetmnttab lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20 0000001 0000001 0 0 0 0 0 0
 resetterm usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 resetterm lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -36580,6 +38746,7 @@
 resolvepath lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 resolvepath usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 resolvepath usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+resolvepath usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 resolvepath lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 restarter_bind_handle lib/amd64/librestart.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 restarter_bind_handle lib/librestart.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -36639,12 +38806,14 @@
 rewind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+rewind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rewinddir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 rewinddir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 rewinddir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewinddir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewinddir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+rewinddir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rewinddir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rexec usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 rexec lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -36657,6 +38826,7 @@
 rindex lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 rindex usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 rindex usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+rindex usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 rindex usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rindex lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ripoffline usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -36672,6 +38842,7 @@
 rmdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rmdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rmdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+rmdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 rmdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rmdirp usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 rmdirp lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -36916,6 +39087,7 @@
 rw_rdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_rdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_rdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_rdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_rdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_rdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rw_rdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -36928,6 +39100,7 @@
 rw_read_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_read_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_read_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_read_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_read_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_read_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rw_read_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -36940,6 +39113,7 @@
 rw_tryrdlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_tryrdlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_tryrdlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_tryrdlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_tryrdlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_tryrdlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rw_tryrdlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -36954,6 +39128,7 @@
 rw_trywrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_trywrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_trywrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_trywrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_trywrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_trywrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rw_trywrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -36968,6 +39143,7 @@
 rw_unlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_unlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_unlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_unlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_unlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_unlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rw_unlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -36980,6 +39156,7 @@
 rw_write_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_write_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_write_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_write_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_write_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_write_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 rw_write_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -36992,6 +39169,7 @@
 rw_wrlock lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_wrlock usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_wrlock usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rw_wrlock usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_wrlock lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rw_wrlock lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rw_wrlock lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37007,6 +39185,7 @@
 rwlock_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 rwlock_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 rwlock_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+rwlock_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 rwlock_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 rwlock_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rwlock_destroy lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -37019,6 +39198,7 @@
 rwlock_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rwlock_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rwlock_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+rwlock_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rwlock_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 rwlock_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 rwlock_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37035,12 +39215,14 @@
 s_fcntl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_fcntl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_fcntl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+s_fcntl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_free usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 s_grow usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 s_ioctl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 s_ioctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_ioctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_ioctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+s_ioctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 s_new usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 s_ownset usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 s_ownset lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -37189,12 +39371,14 @@
 sbrk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sbrk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sbrk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sbrk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sbrk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sc2buf usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 scalb usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 scalb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scalb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scalb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+scalb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scalb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 scale_form usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 scale_form usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -37226,16 +39410,19 @@
 scandir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+scandir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 scandir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir64 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.3 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 scandir64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scandir64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+scandir64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scanf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 scanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+scanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 scanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 scanw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 scanw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -37621,18 +39808,21 @@
 schedctl_exit usr/lib/amd64/libsched.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 schedctl_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+schedctl_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_init usr/lib/libsched.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 schedctl_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_init usr/lib/amd64/libsched.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 schedctl_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+schedctl_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_lookup usr/lib/libsched.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 schedctl_lookup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_lookup usr/lib/amd64/libsched.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 schedctl_lookup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_lookup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+schedctl_lookup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 schedctl_lookup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 scr_dump usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 scr_dump usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -37695,6 +39885,7 @@
 scrwidth lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 scrwidth usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 scrwidth usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+scrwidth usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 scrwidth lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sctp_bindx usr/lib/amd64/libsctp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sctp_bindx usr/lib/libsctp.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -37809,6 +40000,7 @@
 seconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+seconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sed usr/lib/libadm.so.1 1 4 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sed lib/libadm.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -37816,12 +40008,14 @@
 seed48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seed48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seed48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+seed48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seed48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seekdir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 seekdir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 seekdir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 seekdir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 seekdir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+seekdir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 seekdir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 select usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 select usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_1.4 0 0 SUNW_1.5 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6 SUNW_1.4 SUNW_1.6.1 SUNW_1.4 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -37832,6 +40026,7 @@
 select lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 select usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 select usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+select usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 select lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 select lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 select lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -37841,6 +40036,7 @@
 select_large_fdset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 select_large_fdset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 select_large_fdset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+select_large_fdset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 sem_close usr/lib/librt.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 SUNW_1.3 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sem_close lib/amd64/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sem_close lib/librt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -37881,6 +40077,7 @@
 sema_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sema_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sema_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+sema_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sema_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sema_destroy lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sema_destroy lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37893,6 +40090,7 @@
 sema_held lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_held usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_held usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sema_held usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_held lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_held lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sema_held lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -37905,6 +40103,7 @@
 sema_init lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_init usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_init usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sema_init usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_init lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_init lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sema_init lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37919,6 +40118,7 @@
 sema_post lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_post usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_post usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sema_post usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_post lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_post lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sema_post lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37927,10 +40127,12 @@
 sema_reltimedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_reltimedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_reltimedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+sema_reltimedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_reltimedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_timedwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_timedwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_timedwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+sema_timedwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_timedwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 sema_trywait usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 sema_trywait usr/lib/libthread.so.1 0 0 SUNW_1.4 SUNW_0.7 0 0 SUNW_1.5 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6 SUNW_0.7 SUNW_1.6.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -37941,6 +40143,7 @@
 sema_trywait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_trywait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_trywait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sema_trywait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_trywait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_trywait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sema_trywait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37955,6 +40158,7 @@
 sema_wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sema_wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sema_wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sema_wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -37965,33 +40169,39 @@
 semctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+semctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 semctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 semctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 semctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 semctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+semctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 semctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 semget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 semget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 semget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+semget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 semids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 semids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 semids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 semids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+semids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 semids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 semop usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 semop usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 semop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+semop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 semop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 semtimedop usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.4 SUNW_1.21 SUNW_1.20.4 SUNW_1.21.2 SUNW_1.20.4 0 0 0001111 0001110 0 0000001 0 0 0 0
 semtimedop lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 semtimedop usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 semtimedop usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
+semtimedop usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 semtimedop lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.4 0000001 0000001 0 0 0 0 0 0
 send usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 send usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38187,18 +40397,21 @@
 setbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setbuffer usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 setbuffer usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 setbuffer lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setbuffer usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setbuffer usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setbuffer usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setbuffer usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setbuffer lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setcat usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 setcat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 setcat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 setcat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+setcat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 setcat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 setcchar usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 setcchar usr/xpg4/lib/libcurses.so.2 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
@@ -38212,6 +40425,7 @@
 setcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setcontext lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setcontext lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -38244,15 +40458,18 @@
 setegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+setenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 seteuid usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 seteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+seteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 seteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setexecattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
 setexecattr lib/amd64/libsecdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -38262,17 +40479,20 @@
 setgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setgrent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setgroups usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setgroups usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 setgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sethostent usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sethostent usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38285,6 +40505,7 @@
 sethostname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sethostname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sethostname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+sethostname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sethostname usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sethostname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setinvis usr/lib/libadm.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -38302,6 +40523,7 @@
 setitimer lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setitimer usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setitimer usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setitimer usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setitimer lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setitimer lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setitimer lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38312,6 +40534,7 @@
 setjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setkey usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setkey usr/lib/libcrypt_d.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -38321,6 +40544,7 @@
 setkey usr/lib/amd64/libcrypt_i.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setkey usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setkey usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setkey usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setkey lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setkeymap usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 setkeymap lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -38329,12 +40553,14 @@
 setlabel lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlabel usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlabel usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setlabel usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlabel lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlinebuf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 setlinebuf usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 setlinebuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setlinebuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setlinebuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setlinebuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setlinebuf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlinebuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setlocale usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38342,11 +40568,13 @@
 setlocale lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlocale usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlocale usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setlocale usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setlocale lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlogmask usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setlogmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlogmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlogmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setlogmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setlogmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setnetconfig usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setnetconfig lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -38361,6 +40589,7 @@
 setnetgrent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setnetgrent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setnetgrent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setnetgrent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setnetgrent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setnetpath usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setnetpath lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -38368,12 +40597,14 @@
 setpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+setpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setpgid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setpgid usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 setpgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setpgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setpgrp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -38381,11 +40612,13 @@
 setpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setpgrp usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setppriv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setppriv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setppriv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+setppriv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setppriv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 setprinterentry usr/lib/libprint.so.2 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0011111 0 0011111 0 0 0 0 0
 setpriority usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38393,6 +40626,7 @@
 setpriority lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setpriority usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setpriority usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setpriority usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setpriority lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setproctitle usr/lib/libinetsvc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 setprofattr usr/lib/libsecdb.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0011111 0011110 0 0000001 0 0 0 0
@@ -38416,32 +40650,38 @@
 setpwent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setpwent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setpwent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setpwent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setpwent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setrctl usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 setrctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 setrctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 setrctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+setrctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 setrctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 setregid usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 setregid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setregid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setregid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setregid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setregid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setreuid usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 setreuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setreuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setreuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setreuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setreuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setrlimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setrlimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 setrlimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setrlimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setrlimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setrlimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setrlimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setrlimit64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 setrlimit64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setrlimit64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setrlimit64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+setrlimit64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setrpcent usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setrpcent lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setrpcent lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -38463,6 +40703,7 @@
 setsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setsockopt usr/lib/libsocket.so.1 0 0 SUNW_1.3 SUNW_0.7 0 0 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 SUNW_1.4 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setsockopt usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38474,11 +40715,13 @@
 setspent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setspent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setspent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setspent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setspent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setstate usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 setstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+setstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 setsyx usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 setsyx lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -38487,6 +40730,7 @@
 settaskid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 settaskid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 settaskid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+settaskid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 settaskid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 setterm usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 setterm usr/ucblib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -38498,6 +40742,7 @@
 settimeofday lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 settimeofday usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 settimeofday usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+settimeofday usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 settimeofday usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 settimeofday lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setuid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38505,6 +40750,7 @@
 setuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setup_db_bydd usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 setup_db_bydd lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -38527,26 +40773,31 @@
 setusershell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setusershell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setusershell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+setusershell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setusershell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 setustack usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 setustack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 setustack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 setustack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+setustack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 setustack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 setutent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setutent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setutent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutxent usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 setutxent lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutxent usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutxent usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+setutxent usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setutxent lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setvbuf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 setvbuf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setvbuf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setvbuf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+setvbuf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 setvbuf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 setzoneent usr/lib/amd64/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 setzoneent usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -38554,12 +40805,14 @@
 sfconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sfconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sfconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sfconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sfconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sfree usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 sgconvert usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sgconvert lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sgconvert usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sgconvert usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sgconvert usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sgconvert lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 shell_istermios usr/lib/libcurses.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 shell_istermios lib/amd64/libcurses.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -38591,34 +40844,40 @@
 shmat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+shmat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 shmctl usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 shmctl usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 shmctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+shmctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 shmctl64 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 shmctl64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 shmctl64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 shmctl64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+shmctl64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 shmctl64 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 shmdt usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 shmdt usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 shmdt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmdt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmdt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+shmdt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmdt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 shmget usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 shmget usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 shmget lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmget usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmget usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+shmget usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 shmget lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 shmids usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_1.20.1 SUNW_1.21.2 SUNW_1.20.1 0 0 0001111 0001110 0 0000001 0 0 0 0
 shmids lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 shmids usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 shmids usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+shmids usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 shmids lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 short_circuit_getset usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
 short_circuit_getset lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -38635,6 +40894,7 @@
 sig2str lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sig2str usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sig2str usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sig2str usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sig2str lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigaction usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigaction usr/lib/libaio.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38647,6 +40907,7 @@
 sigaction lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaction usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaction usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigaction usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaction lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigaction lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigaction lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38659,12 +40920,14 @@
 sigaddset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaddset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaddset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigaddset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaddset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigaltstack usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigaltstack usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sigaltstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaltstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaltstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigaltstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigaltstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigblock usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 sigblock usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -38673,34 +40936,40 @@
 sigdelset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigdelset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigdelset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigdelset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigdelset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigemptyset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigemptyset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sigemptyset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigemptyset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigemptyset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigemptyset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigemptyset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigfillset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigfillset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sigfillset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigfillset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigfillset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigfillset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigfillset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigflag usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 sigflag lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sigflag usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sigflag usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+sigflag usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sigflag lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sigfpe usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigfpe lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sigfpe usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sigfpe usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+sigfpe usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sigfpe lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 sighold usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sighold usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sighold lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sighold usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sighold usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sighold usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sighold lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigignore usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigignore usr/lib/libaio.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38708,12 +40977,14 @@
 sigignore lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigignore usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigignore usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigignore usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigignore lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 siginterrupt usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 siginterrupt usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 siginterrupt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 siginterrupt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 siginterrupt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+siginterrupt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 siginterrupt usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 siginterrupt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sigismember usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38721,6 +40992,7 @@
 sigismember lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigismember usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigismember usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigismember usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigismember lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 siglongjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 siglongjmp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -38731,6 +41003,7 @@
 siglongjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 siglongjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 siglongjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+siglongjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 siglongjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 siglongjmp lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 siglongjmp lib/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38741,6 +41014,7 @@
 signal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 signal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 signal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+signal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 signal usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 signal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 signals_init usr/lib/libssasnmp.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -38756,6 +41030,7 @@
 sigpause lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpause usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpause usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigpause usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpause usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigpause lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigpause lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
@@ -38770,6 +41045,7 @@
 sigpending lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpending usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpending usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigpending usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigpending lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigpending lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sigpending lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38783,6 +41059,7 @@
 sigprocmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigprocmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigprocmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigprocmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigprocmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigprocmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigprocmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38796,18 +41073,21 @@
 sigrelse lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigrelse usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigrelse usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigrelse usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigrelse lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigsend usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigsend usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sigsend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigsend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigsendset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigsendset usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sigsendset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsendset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsendset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigsendset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsendset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigset usr/lib/libaio.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38815,6 +41095,7 @@
 sigset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigsetjmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sigsetjmp usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
@@ -38826,6 +41107,7 @@
 sigsetjmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsetjmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsetjmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigsetjmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsetjmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigsetjmp lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sigsetjmp lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38838,6 +41120,7 @@
 sigstack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sigstack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sigstack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+sigstack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sigstack usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigstack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sigsuspend usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -38850,6 +41133,7 @@
 sigsuspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsuspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsuspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sigsuspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sigsuspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigsuspend lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 sigsuspend lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38871,6 +41155,7 @@
 sigwait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigwait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigwait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sigwait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigwait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigwait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sigwait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -38884,6 +41169,7 @@
 single_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 single_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 single_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+single_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 single_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 skey_keyproc usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0011111 0 0011100 0000011 0 0 0 0
 skey_keyproc usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0011111 0 0011100 0000011 0 0 0 0
@@ -38902,6 +41188,7 @@
 sleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sleep usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sleep lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -39093,6 +41380,7 @@
 snprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 snprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 snprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+snprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 snprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 snprintf lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 sockatmark lib/amd64/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.5 SUNW_1.5 0000001 0000001 0 0 0 0 0 0
@@ -39188,6 +41476,7 @@
 sprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sprintf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sprintf lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
@@ -39210,17 +41499,20 @@
 srand lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 srand usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 srand usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+srand usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 srand usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srand lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srand48 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 srand48 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srand48 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srand48 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+srand48 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srand48 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 srandom usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 srandom lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 srandom usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 srandom usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+srandom usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 srandom lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ss_abort_subsystem usr/lib/krb5/libss.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 ss_add_info_dir usr/lib/krb5/libss.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -39262,6 +41554,7 @@
 sscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ssh_audit_init usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
 ssh_base64_remove_whitespace usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
@@ -39598,26 +41891,31 @@
 ssignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ssignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ssignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ssignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ssignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 stack_getbounds usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 stack_getbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_getbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_getbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+stack_getbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_getbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_inbounds usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 stack_inbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_inbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_inbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+stack_inbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_inbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_setbounds usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 stack_setbounds lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_setbounds usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_setbounds usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+stack_setbounds usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_setbounds lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_violation usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.2 0 0 0000011 0000010 0 0000001 0 0 0 0
 stack_violation lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_violation usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_violation usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
+stack_violation usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 stack_violation lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21.2 0000001 0000001 0 0 0 0 0 0
 standend usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 standend usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -39649,17 +41947,20 @@
 stat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+stat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 stat64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 stat64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 stat64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 stat64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+stat64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 stat_dd usr/lib/libdhcp.so.2 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 1111111 0 1010000 0101111 0 0 0 0
 statfs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 statfs usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 statfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 statfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 statfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+statfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 statfs usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 statfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 status usr/lib/inet/dhcp/svc/ds_SUNWnisplus.so.0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0001111 0 0001111 0 0 0 0 0
@@ -39673,11 +41974,13 @@
 statvfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 statvfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 statvfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+statvfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 statvfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 statvfs64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 statvfs64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 statvfs64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 statvfs64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+statvfs64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 stdscr usr/lib/libcurses.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 stdscr usr/xpg4/lib/libcurses.so.1 1 4 SUNW_1.2 SUNW_1.2 0 0 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 SUNW_1.2 1111111 1011111 0 0100000 0 0 0 0
 stdscr usr/ucblib/libcurses.so.1 1 4 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -39697,6 +42000,7 @@
 stime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+stime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 stime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 store usr/lib/libnsl.so.1 0 0 SUNW_1.6 SUNW_0.7 0 0 SUNW_1.7 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 SUNW_1.8 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 store usr/ucblib/libdbm.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -39717,11 +42021,13 @@
 str2sig lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 str2sig usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 str2sig usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+str2sig usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 str2sig lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 str2spwd usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 str2spwd lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 str2spwd usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 str2spwd usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+str2spwd usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 str2spwd lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 str_getline usr/lib/libldap.so.3 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 str_getline usr/lib/libldap.so.4 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -39741,6 +42047,7 @@
 strcasecmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcasecmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcasecmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strcasecmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcasecmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcasecmp lib/libresolv.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcat etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -39750,6 +42057,7 @@
 strcat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strcat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcat lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strccpy usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39760,6 +42068,7 @@
 strchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcmp etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 strcmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39768,6 +42077,7 @@
 strcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcmp lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strcodes usr/lib/libcurses.so.1 1 1580 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -39780,6 +42090,7 @@
 strcoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strcoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcpy etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 strcpy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39788,17 +42099,20 @@
 strcpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strcpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strcpy lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strcspn usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strcspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strcspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strcspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strdup usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strdup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strdup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strdup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strdup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strdup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 streadd usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 streadd lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -39814,11 +42128,13 @@
 strerror lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strerror usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strerror usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strerror usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strerror lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strerror lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strerror_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strerror_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strerror_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+strerror_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strerror_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strfind usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 strfind lib/amd64/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -39827,6 +42143,7 @@
 strfmon lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strfmon usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strfmon usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+strfmon usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strfmon lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strfnames usr/lib/libcurses.so.1 1 1580 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 strfnames usr/xpg4/lib/libcurses.so.2 1 1580 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -39838,12 +42155,14 @@
 strftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 string_to_bsd_addr usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 string_to_decimal usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 string_to_decimal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 string_to_decimal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 string_to_decimal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+string_to_decimal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 string_to_decimal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 string_to_value usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 strinlst usr/lib/libmeta.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000111 0 0000110 0000001 0 0 0 0
@@ -39852,11 +42171,13 @@
 strlcat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
+strlcat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcpy usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21.2 SUNW_1.19 0 0 0011111 0011110 0 0000001 0 0 0 0
 strlcpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
+strlcpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlcpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 strlen etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 strlen usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39865,6 +42186,7 @@
 strlen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strlen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strlen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strlen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strlen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strlen lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strmove usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -39879,33 +42201,39 @@
 strncasecmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncasecmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncasecmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strncasecmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncasecmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncasecmp lib/libresolv.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncat usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strncat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strncat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncmp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strncmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strncmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strncpy usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strncpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strncpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strncpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strndup usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 strpbrk usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strpbrk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strpbrk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strpbrk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strpbrk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strpbrk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strptime usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 strptime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strptime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strptime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+strptime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strptime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strrchr etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 SUNWprivate_1.2 0 0 1111111 0 1011110 0100001 0 0 0 0
 strrchr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39914,6 +42242,7 @@
 strrchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strrchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strrchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strrchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strrchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strrchr lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strrspn usr/lib/libgen.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39923,30 +42252,36 @@
 strsignal lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strsignal usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strsignal usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strsignal usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strsignal lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strsplit usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 1111111 0 1011111 0100000 0 0 0 0
 strspn usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strstr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strstr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strstr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strstr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strstr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strstr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtod usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strtod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtof lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtof usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtof usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+strtof usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtof lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoimax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoimax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoimax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+strtoimax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoimax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtok etc/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 0 0 0 1111111 0 1010100 0101011 0 0 0 0
 strtok usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -39954,6 +42289,7 @@
 strtok lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtok usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtok usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strtok usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtok lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtok_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtok_r etc/lib/ld.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 0 0001111 0 0001010 0000101 0 0 0 0
@@ -39962,41 +42298,49 @@
 strtok_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtok_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtok_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strtok_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtok_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtok_r lib/amd64/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0000001 0 0000001 0 0 0 0 0
 strtol usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strtol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtold lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtold usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtold usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+strtold usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtold lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoll usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strtoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoul usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtoul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtoul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtoul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strtoul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strtoul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoull usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtoull lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoull usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoull usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+strtoull usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoull lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 strtoumax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoumax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoumax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+strtoumax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtoumax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 strtows usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtows usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 strtows lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 strtows usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 strtows usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+strtows usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 strtows lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 strtows lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 strtows lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -40008,11 +42352,13 @@
 strxfrm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strxfrm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strxfrm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+strxfrm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 strxfrm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 stty usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 stty lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 stty usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 stty usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+stty usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 stty lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sub_member_free usr/lib/libssagent.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 sub_member_free usr/lib/amd64/libssagent.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -40224,6 +42570,7 @@
 swab lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swab usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swab usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+swab usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swab lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swap usr/lib/lib300.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 swap usr/lib/lib300s.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -40236,21 +42583,25 @@
 swapcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swapcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swapcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+swapcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 swapcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swapctl usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 swapctl lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swapctl usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swapctl usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+swapctl usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swapctl lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 swprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 swprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+swprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swscanf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 swscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+swscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 swscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 sym_ntop usr/lib/libresolv.so.2 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 SUNWprivate_2.2 SUNWprivate_2.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 sym_ntop lib/amd64/libresolv.so.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.2 SUNWprivate_2.1 0000001 0 0000001 0 0 0 0 0
@@ -40266,17 +42617,20 @@
 symlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 symlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 symlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+symlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 symlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sync usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sync usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sync lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sync usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sync usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sync usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sync lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sync_instruction_memory usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 sync_instruction_memory lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sync_instruction_memory usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sync_instruction_memory usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+sync_instruction_memory usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 sync_instruction_memory lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 syncok usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 syncok usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -40293,23 +42647,27 @@
 sys_errlist lib/libc.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_errlist usr/lib/libc/libc_hwcap1.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_errlist usr/lib/libc/libc_hwcap2.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sys_errlist usr/lib/libc/libc_hwcap3.so.1 1 608 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_get_hostname usr/lib/libfsmgt.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sys_nerr usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sys_nerr lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_nerr usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_nerr usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sys_nerr usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sys_siglist usr/ucblib/libucb.so.1 1 136 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 sys_siglist usr/ucblib/amd64/libucb.so.1 1 136 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 syscall usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 syscall lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 syscall usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 syscall usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+syscall usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 syscall lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sysconf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 sysconf usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 sysconf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sysconf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sysconf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+sysconf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 sysconf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysevent_alloc_event usr/lib/libsysevent.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0001111 0 0001110 0000001 0 0 0 0
 sysevent_alloc_event lib/amd64/libsysevent.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -40437,21 +42795,25 @@
 sysfs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysfs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysfs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sysfs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysfs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysi86 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 sysi86 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sysi86 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sysi86 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+sysi86 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sysi86 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 sysinfo usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 sysinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+sysinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 syslog usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 syslog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 syslog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 syslog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+syslog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 syslog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 sysmem usr/lib/libadm.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 system usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -40459,6 +42821,7 @@
 system lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 system usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 system usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+system usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 system lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 systemvp usr/lib/libmail.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
 t_accept usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -40569,6 +42932,7 @@
 tcdrain lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcdrain usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcdrain usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcdrain usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcdrain lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcdrain lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 tcdrain lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -40578,41 +42942,49 @@
 tcflow lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflow usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflow usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcflow usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflow lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcflush usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcflush lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflush usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflush usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcflush usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcflush lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcgetattr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcgetattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcgetattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcgetpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcgetpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcgetpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcgetsid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcgetsid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetsid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetsid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcgetsid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcgetsid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcsendbreak usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcsendbreak lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsendbreak usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsendbreak usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcsendbreak usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsendbreak lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcsetattr usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcsetattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcsetattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tcsetpgrp usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tcsetpgrp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetpgrp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetpgrp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tcsetpgrp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tcsetpgrp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 td_init usr/lib/libthread_db.so.1 0 0 SUNW_1.2 SUNW_0.9 0 0 SUNW_1.2 SUNW_0.9 SUNW_1.2 SUNW_0.9 SUNW_1.3 SUNW_0.9 SUNW_1.3 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 td_init usr/lib/lwp/libthread_db.so.1 0 0 0 0 0 0 SUNW_1.2 SUNW_0.9 SUNW_1.3 SUNW_0.9 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
@@ -40850,26 +43222,31 @@
 tdelete lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tdelete usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tdelete usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tdelete usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tdelete lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tell usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tell lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tell usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tell usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tell usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tell lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tell64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 tell64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tell64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tell64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+tell64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 telldir usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 telldir usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 telldir lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 telldir usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 telldir usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+telldir usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 telldir lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tempnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tempnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tempnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tempnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tempnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tempnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 term_attrs usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 term_attrs usr/xpg4/lib/libcurses.so.2 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 0011111 0011111 0 0 0 0 0 0
@@ -40906,6 +43283,7 @@
 textdomain lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 textdomain usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 textdomain usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+textdomain usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 textdomain lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 textdomain lib/amd64/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 textdomain lib/libintl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -40918,6 +43296,7 @@
 tfind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tfind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tfind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tfind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tfind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tgetch usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 tgetch lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -40979,6 +43358,7 @@
 thr_continue lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_continue usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_continue usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_continue usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_continue lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_continue lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_continue lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -40990,6 +43370,7 @@
 thr_continue_allmutators lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_allmutators usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_allmutators usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_continue_allmutators usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_allmutators lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_allmutators lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_allmutators lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -40999,6 +43380,7 @@
 thr_continue_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_continue_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_continue_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41013,6 +43395,7 @@
 thr_create usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_create lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_create lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41030,6 +43413,7 @@
 thr_exit usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_exit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_exit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_exit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_exit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_exit lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_exit lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41044,6 +43428,7 @@
 thr_getconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_getconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_getconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41058,6 +43443,7 @@
 thr_getprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_getprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getprio lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_getprio lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41072,6 +43458,7 @@
 thr_getspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_getspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_getspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_getspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41083,6 +43470,7 @@
 thr_getstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_getstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_getstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_getstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_getstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_getstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_getstate lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41095,6 +43483,7 @@
 thr_join lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_join usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_join usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_join usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_join lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_join lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_join lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41109,6 +43498,7 @@
 thr_keycreate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_keycreate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_keycreate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_keycreate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_keycreate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_keycreate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_keycreate lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41123,6 +43513,7 @@
 thr_kill lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_kill usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_kill usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_kill usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_kill lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_kill lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_kill lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41137,6 +43528,7 @@
 thr_main lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 thr_main usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 thr_main usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+thr_main usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 thr_main lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 thr_main lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_main lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41151,6 +43543,7 @@
 thr_min_stack lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_min_stack usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_min_stack usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+thr_min_stack usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_min_stack lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_min_stack lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_min_stack lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41162,6 +43555,7 @@
 thr_mutators_barrier lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_mutators_barrier usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_mutators_barrier usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_mutators_barrier usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_mutators_barrier lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_mutators_barrier lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_mutators_barrier lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41173,6 +43567,7 @@
 thr_probe_getfunc_addr lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_getfunc_addr usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_getfunc_addr usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_probe_getfunc_addr usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_getfunc_addr lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 thr_probe_setup usr/lib/libpthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
@@ -41182,6 +43577,7 @@
 thr_probe_setup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_probe_setup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_probe_setup lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41196,6 +43592,7 @@
 thr_self lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_self usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_self usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_self usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_self lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_self lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_self lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41210,6 +43607,7 @@
 thr_setconcurrency lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setconcurrency usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setconcurrency usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_setconcurrency usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setconcurrency lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setconcurrency lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_setconcurrency lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41221,6 +43619,7 @@
 thr_setmutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setmutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setmutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_setmutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setmutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setmutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setmutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41233,6 +43632,7 @@
 thr_setprio lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setprio usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setprio usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_setprio usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setprio lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setprio lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_setprio lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41247,6 +43647,7 @@
 thr_setspecific lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setspecific usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setspecific usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_setspecific usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setspecific lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_setspecific lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_setspecific lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41258,6 +43659,7 @@
 thr_setstate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setstate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setstate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_setstate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setstate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setstate lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_setstate lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41267,6 +43669,7 @@
 thr_sighndlrinfo lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_sighndlrinfo usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_sighndlrinfo usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_sighndlrinfo usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_sighndlrinfo lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_sighndlrinfo lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_sighndlrinfo lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41279,6 +43682,7 @@
 thr_sigsetmask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_sigsetmask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_sigsetmask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_sigsetmask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_sigsetmask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_sigsetmask lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_sigsetmask lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41305,6 +43709,7 @@
 thr_stksegment lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_stksegment usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_stksegment usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+thr_stksegment usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_stksegment lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_stksegment lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 thr_stksegment lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41319,6 +43724,7 @@
 thr_suspend lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_suspend usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_suspend usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_suspend usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_suspend lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_suspend lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_suspend lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41330,6 +43736,7 @@
 thr_suspend_allmutators lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_allmutators usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_allmutators usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_suspend_allmutators usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_allmutators lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_allmutators lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_allmutators lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41339,6 +43746,7 @@
 thr_suspend_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_suspend_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_suspend_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41348,6 +43756,7 @@
 thr_wait_mutator lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_wait_mutator usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_wait_mutator usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+thr_wait_mutator usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_wait_mutator lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_wait_mutator lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 thr_wait_mutator lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41360,6 +43769,7 @@
 thr_yield lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_yield usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_yield usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+thr_yield usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_yield lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 thr_yield lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 thr_yield lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -41434,6 +43844,7 @@
 time lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 time usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 time usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+time usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 time lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 timeout usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 timeout usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -41463,6 +43874,7 @@
 times lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 times usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 times usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+times usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 times usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 times lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 timeval_string usr/lib/libssasnmp.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0011111 0 0011111 0 0 0 0 0
@@ -41472,6 +43884,7 @@
 timezone lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 timezone usr/lib/libc/libc_hwcap1.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 timezone usr/lib/libc/libc_hwcap2.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+timezone usr/lib/libc/libc_hwcap3.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 timezone lib/amd64/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tinputfd usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 tinputfd lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41486,20 +43899,24 @@
 tmpfile lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpfile usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpfile usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tmpfile usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpfile lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tmpfile64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 tmpfile64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tmpfile64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tmpfile64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+tmpfile64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tmpnam usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tmpnam lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpnam usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpnam usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tmpnam usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tmpnam lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tmpnam_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 tmpnam_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tmpnam_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tmpnam_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+tmpnam_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tmpnam_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tnf_allocate usr/lib/libtnfprobe.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 tnf_allocate usr/lib/amd64/libtnfprobe.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -41698,6 +44115,7 @@
 toascii lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toascii usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toascii usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+toascii usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toascii lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tobotleft usr/lib/lib300.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 tobotleft usr/lib/lib300s.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -41709,6 +44127,7 @@
 tolower lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tolower usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tolower usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tolower usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tolower lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 top_panel usr/lib/libpanel.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 top_panel usr/lib/amd64/libpanel.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -41798,17 +44217,20 @@
 toupper lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toupper usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toupper usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+toupper usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 toupper lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 towctrans usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 towctrans lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towctrans usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towctrans usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+towctrans usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towctrans lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towlower usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 SUNW_1.1 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 towlower usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 towlower lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towlower usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towlower usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+towlower usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towlower lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towlower lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 towlower lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -41817,6 +44239,7 @@
 towupper lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towupper usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towupper usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+towupper usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towupper lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 towupper lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 towupper lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -41920,15 +44343,18 @@
 truncate lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 truncate usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 truncate usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+truncate usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 truncate lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 truncate64 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 truncate64 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 truncate64 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 truncate64 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+truncate64 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 tsearch usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tsearch lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tsearch usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tsearch usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tsearch usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tsearch lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tstp usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 tstp usr/xpg4/lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.2 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -41940,16 +44366,19 @@
 ttyname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ttyname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ttyname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ttyname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ttyname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyname_r usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ttyname_r lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyname_r usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyname_r usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ttyname_r usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyname_r lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyslot usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ttyslot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyslot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyslot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ttyslot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttyslot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ttytype usr/lib/libcurses.so.1 1 1024 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 ttytype usr/ucblib/libcurses.so.1 1 1024 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -41960,6 +44389,7 @@
 twalk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 twalk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 twalk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+twalk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 twalk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 typeahead usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 typeahead usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -41973,11 +44403,13 @@
 tzname lib/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzname usr/lib/libc/libc_hwcap1.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzname usr/lib/libc/libc_hwcap2.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tzname usr/lib/libc/libc_hwcap3.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzname lib/amd64/libc.so.1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 tzset usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 tzset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+tzset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 tzset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 uaddr2taddr usr/lib/libnsl.so.1 0 0 SUNW_1.6 SYSVABI_1.3 0 0 SUNW_1.7 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 SUNW_1.8 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 uaddr2taddr lib/amd64/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -41986,12 +44418,14 @@
 uadmin lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 uadmin usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 uadmin usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+uadmin usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 uadmin lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ualarm usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21 SUNW_0.9 SUNW_1.21.2 SUNW_0.9 0 0 1111111 1011110 0 0100001 0 0 0 0
 ualarm usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 ualarm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ualarm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ualarm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+ualarm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ualarm usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ualarm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 ucbsigblock usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -42007,95 +44441,117 @@
 ucred_free lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_free usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_free usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_free usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_free lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_get lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_get usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_get usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_get usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_get lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getamask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getamask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getamask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ucred_getamask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getamask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getasid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getasid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getasid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ucred_getasid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getasid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getatid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getatid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getatid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ucred_getatid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getatid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getauid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getauid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getauid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+ucred_getauid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getauid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ucred_getegid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getegid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getegid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getegid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getegid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_geteuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_geteuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_geteuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_geteuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_geteuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getgroups lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getgroups usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getgroups usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getgroups usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getgroups lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpflags lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpflags usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpflags usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getpflags usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpflags lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprivset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprivset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprivset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getprivset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprivset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprojid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprojid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprojid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getprojid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getprojid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getrgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getrgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getrgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getrgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getrgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getruid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getruid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getruid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getruid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getruid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsgid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsgid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsgid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getsgid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsgid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsuid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsuid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsuid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getsuid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getsuid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getzoneid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getzoneid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getzoneid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_getzoneid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_getzoneid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_size lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_size usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_size usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+ucred_size usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 ucred_size lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 udp_chksum usr/lib/libdhcp.so.2 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0 0 0 0 0 0 0011111 0 0010000 0001111 0 0 0 0
 ulckpwdf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ulckpwdf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulckpwdf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulckpwdf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ulckpwdf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulckpwdf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulimit usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 ulimit usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 ulimit lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ulimit usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ulimit usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ulimit usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ulimit lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulltostr usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 ulltostr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulltostr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulltostr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ulltostr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulltostr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ulog_free_entries usr/lib/krb5/libkdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 ulog_get_entries usr/lib/krb5/libkdb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -42107,6 +44563,7 @@
 umask lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umask usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umask usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+umask usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umask lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 umem_alloc usr/lib/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0 0 0000011 0000010 0 0000001 0 0 0 0
 umem_alloc lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -42144,17 +44601,20 @@
 umount lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umount usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umount usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+umount usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 umount lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 umount2 usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21 SUNW_1.19 SUNW_1.21.2 SUNW_1.19 0 0 0011111 0011110 0 0000001 0 0 0 0
 umount2 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 umount2 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 umount2 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
+umount2 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 umount2 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.19 0000001 0000001 0 0 0 0 0 0
 uname usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 uname usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 uname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 uname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 uname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+uname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 uname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 uncompress usr/lib/libz.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 0 0 0 0 0011111 0011000 0 0000111 0 0 0 0
 unctrl usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -42175,6 +44635,7 @@
 ungetc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ungetc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ungetc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+ungetc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 ungetc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ungetch usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 ungetch usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -42188,6 +44649,7 @@
 ungetwc lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ungetwc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ungetwc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+ungetwc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ungetwc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 ungetwc lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ungetwc lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -42199,11 +44661,13 @@
 unlink lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlink usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlink usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+unlink usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlink lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unlinkat usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 unlinkat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 unlinkat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 unlinkat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+unlinkat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 unlinkat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 unlockTransLog usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000111 0 0000111 0 0 0 0 0
 unlock_core usr/lib/libnisdb.so.2 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 SUNWprivate_2.1 0000011 0 0000011 0 0 0 0 0
@@ -42213,11 +44677,13 @@
 unlockpt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlockpt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlockpt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+unlockpt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 unlockpt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unordered usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 unordered lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unordered usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unordered usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+unordered usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unordered lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 unpost_form usr/lib/libform.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
 unpost_form usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -42226,6 +44692,7 @@
 unsetenv lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 unsetenv usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 unsetenv usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+unsetenv usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 unsetenv lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 untouchwin usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 0011110 1000000 0100001 0 0 0 0
 untouchwin usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -42241,11 +44708,13 @@
 updwtmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+updwtmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmpx usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 updwtmpx lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmpx usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmpx usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+updwtmpx usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 updwtmpx lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 url_parse usr/lib/libwanboot.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
 url_parse_hostport usr/lib/libwanboot.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0000011 0 0000011 0 0 0 0 0
@@ -42279,6 +44748,7 @@
 usleep lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 usleep usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 usleep usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+usleep usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 usleep usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 usleep lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 usleep lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
@@ -42289,32 +44759,38 @@
 ustat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ustat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ustat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+ustat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ustat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utime usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 utime usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 SYSVABI_1.3 SYSVABI_1.2 1111111 1011111 0 0100000 0 0 0 0
 utime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 utime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 utime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+utime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 utime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utimes usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 utimes lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utimes usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utimes usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+utimes usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utimes lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpname usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 utmpname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+utmpname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpxname usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 utmpxname lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpxname usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpxname usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+utmpxname usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utmpxname lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 utssys usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 utssys lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 utssys usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 utssys usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+utssys usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 utssys lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 uu_alt_exit lib/amd64/libuutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 uu_alt_exit lib/libuutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -42503,6 +44979,7 @@
 valloc usr/lib/amd64/watchmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 valloc usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 valloc usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+valloc usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 valloc lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 valloc lib/amd64/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 valloc lib/libumem.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
@@ -42522,33 +44999,39 @@
 vfork lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfork usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfork usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+vfork usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfork lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 vfprintf usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 vfprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vfprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vfprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+vfprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vfprintf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vfscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 vfscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vfscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfwprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 vfwprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vfwprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vfwprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+vfwprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vfwprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vfwscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 vfwscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfwscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfwscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vfwscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vfwscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vhangup usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 vhangup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vhangup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vhangup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+vhangup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vhangup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vid32attr usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 vid32attr lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -42587,6 +45070,7 @@
 vlfmt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vlfmt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vlfmt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+vlfmt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vlfmt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vline usr/lib/libcurses.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 vline usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -42656,50 +45140,59 @@
 vpfmt lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vpfmt usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vpfmt usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+vpfmt usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vpfmt lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 vprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 vprintf usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 vprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+vprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vprintf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 vscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vsnprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 vsnprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 vsnprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 vsnprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+vsnprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 vsnprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 vsprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 vsprintf usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.2 SUNW_0.7 SUNW_1.3 SUNW_0.7 1111111 1011111 0 0100000 0 0 0 0
 vsprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vsprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vsprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+vsprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 vsprintf usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vsprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vsscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 vsscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vsscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vsscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vsscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vsscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vswprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 vswprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vswprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vswprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+vswprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vswprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vswscanf usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21.2 SUNW_1.21 0 0 0000111 0000110 0 0000001 0 0 0 0
 vswscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vswscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vswscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vswscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vswscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vsyslog usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21 SUNW_0.7 SUNW_1.21.2 SUNW_0.7 0 0 1111111 1011110 0 0100001 0 0 0 0
 vsyslog lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vsyslog usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vsyslog usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+vsyslog usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vsyslog lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 vti usr/lib/libvt0.so.1 1 4 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 vti usr/lib/amd64/libvt0.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -42717,6 +45210,7 @@
 vwprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vwprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vwprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+vwprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vwprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 vwprintw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 vwprintw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -42729,6 +45223,7 @@
 vwscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vwscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vwscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+vwscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vwscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 vwscanw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 vwscanw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -42842,6 +45337,7 @@
 wait lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wait usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wait usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+wait usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wait lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wait lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -42857,6 +45353,7 @@
 wait3 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait3 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait3 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+wait3 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait3 usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wait3 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait3 lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
@@ -42868,6 +45365,7 @@
 wait4 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait4 usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait4 usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
+wait4 usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 wait4 usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wait4 lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 waitid usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
@@ -42880,6 +45378,7 @@
 waitid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+waitid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 waitid lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 waitid lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -42895,6 +45394,7 @@
 waitpid lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitpid usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitpid usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+waitpid usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 waitpid lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 waitpid lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 waitpid lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -42904,6 +45404,7 @@
 walkcontext lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 walkcontext usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 walkcontext usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
+walkcontext usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.21 0000001 0000001 0 0 0 0 0 0
 walkcontext lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 warn usr/lib/libipsecutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 warnx usr/lib/libipsecutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -42912,6 +45413,7 @@
 watoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 watoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 watoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+watoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 watoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 watoll lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 watoll lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43034,12 +45536,14 @@
 wcrtomb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcrtomb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcrtomb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wcrtomb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcrtomb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcscat usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcscat usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcscat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcscat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscat lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcscat lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43048,6 +45552,7 @@
 wcschr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcschr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcschr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcschr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcschr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcschr lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcschr lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43056,6 +45561,7 @@
 wcscmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcscmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcscmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43064,6 +45570,7 @@
 wcscoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcscoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscoll lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcscoll lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43072,6 +45579,7 @@
 wcscpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcscpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscpy lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcscpy lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43083,6 +45591,7 @@
 wcscspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcscspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcscspn lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcscspn lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43091,6 +45600,7 @@
 wcsftime lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsftime usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsftime usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsftime usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsftime lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsftime lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsftime lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43099,6 +45609,7 @@
 wcslen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcslen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcslen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcslen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcslen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcslen lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcslen lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43107,6 +45618,7 @@
 wcsncat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsncat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncat lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsncat lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43115,6 +45627,7 @@
 wcsncmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsncmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsncmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43123,6 +45636,7 @@
 wcsncpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsncpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsncpy lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsncpy lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43131,6 +45645,7 @@
 wcspbrk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcspbrk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcspbrk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcspbrk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcspbrk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcspbrk lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcspbrk lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43139,6 +45654,7 @@
 wcsrchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsrchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsrchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsrchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsrchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsrchr lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsrchr lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43146,12 +45662,14 @@
 wcsrtombs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsrtombs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsrtombs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wcsrtombs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsrtombs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsspn usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcsspn usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcsspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsspn lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsspn lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43159,28 +45677,33 @@
 wcsstr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsstr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsstr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wcsstr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcsstr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wcstod usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstod usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcstod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstod lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstod lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstof lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstof usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstof usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstof usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstof lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoimax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoimax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoimax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstoimax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoimax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstok usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstok usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstok lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstok usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstok usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcstok usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstok lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstok lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstok lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43189,43 +45712,51 @@
 wcstol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcstol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstol lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstol lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstold lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstold usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstold usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstold usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstold lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstombs usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstombs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wcstombs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wcstombs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+wcstombs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wcstombs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wcstoul usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstoul usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcstoul lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstoul usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstoul usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcstoul usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstoul lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcstoul lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstoul lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcstoull lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoull usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoull usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstoull usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoull lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoumax lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoumax usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoumax usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
+wcstoumax usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcstoumax lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000001 0000001 0 0 0 0 0 0
 wcswcs usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcswcs usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wcswcs lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswcs usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswcs usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcswcs usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswcs lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswcs lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcswcs lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43234,6 +45765,7 @@
 wcswidth lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswidth usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswidth usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcswidth usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswidth lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcswidth lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcswidth lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43242,6 +45774,7 @@
 wcsxfrm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsxfrm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsxfrm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcsxfrm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsxfrm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcsxfrm lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcsxfrm lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43249,22 +45782,26 @@
 wctob lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wctob usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wctob usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wctob usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wctob lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wctomb usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21 SYSVABI_1.3 SUNW_1.21.2 SYSVABI_1.3 0 0 1111111 1011110 0 0100001 0 0 0 0
 wctomb lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wctomb usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wctomb usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+wctomb usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 wctomb lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wctrans usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wctrans lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctrans usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctrans usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wctrans usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctrans lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctype usr/lib/libw.so.1 0 0 SUNW_1.1 SUNW_0.8 0 0 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 SUNW_1.1 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wctype usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21 SUNW_1.1 SUNW_1.21.2 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wctype lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctype usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctype usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wctype usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctype lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wctype lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wctype lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43280,6 +45817,7 @@
 wcwidth lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcwidth usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcwidth usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wcwidth usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcwidth lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wcwidth lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wcwidth lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43287,16 +45825,19 @@
 wdbindf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdbindf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdbindf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+wdbindf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdbindf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdchkind usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 wdchkind lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdchkind usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdchkind usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+wdchkind usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdchkind lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wddelim usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivate_1.2 SUNWprivate_1.1 0 0 1111111 0 1011110 0100001 0 0 0 0
 wddelim lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wddelim usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wddelim usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+wddelim usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wddelim lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 wdelch usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wdelch usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -43540,26 +46081,31 @@
 wmemchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wmemchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcmp usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 wmemcmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wmemcmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcpy usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 wmemcpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wmemcpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemcpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemmove usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 wmemmove lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemmove usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemmove usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wmemmove usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemmove lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemset usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 wmemset lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemset usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemset usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wmemset usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmemset lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wmouse_position usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wmouse_position lib/amd64/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -43590,16 +46136,19 @@
 wordexp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordexp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordexp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+wordexp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordexp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordfree usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21 SUNW_0.8 SUNW_1.21.2 SUNW_0.8 0 0 1111111 1011110 0 0100001 0 0 0 0
 wordfree lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordfree usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordfree usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
+wordfree usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wordfree lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wprintf usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21 SUNW_1.18 SUNW_1.21.2 SUNW_1.18 0 0 1111111 1011110 0 0100001 0 0 0 0
 wprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wprintw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wprintw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -43616,6 +46165,7 @@
 wracct lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 wracct usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 wracct usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
+wracct usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 wracct lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.20.1 0000001 0000001 0 0 0 0 0 0
 wrap_mit_des_decrypt_func usr/lib/gss/do/mech_krb5.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
 wrap_mit_des_decrypt_func usr/lib/gss/gl/mech_krb5.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 0000011 0 0000010 0000001 0 0 0 0
@@ -43651,6 +46201,7 @@
 write lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 write usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 write usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+write usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 write lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 write lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
 write lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_0.9 0000001 0000001 0 0 0 0 0 0
@@ -43677,6 +46228,7 @@
 writev lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 writev usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 writev usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
+writev usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 0000001 0 0 0 0 0 0
 writev lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 writev lib/amd64/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1.4 0000001 0000001 0 0 0 0 0 0
 writev lib/amd64/libpthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.4 SUNW_1.2 0000001 0000001 0 0 0 0 0 0
@@ -43686,6 +46238,7 @@
 wscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
+wscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.18 0000001 0000001 0 0 0 0 0 0
 wscanw usr/lib/libcurses.so.1 0 0 SUNW_1.1 SUNW_1.1 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 0 1111111 1011110 0 0100001 0 0 0 0
 wscanw usr/xpg4/lib/libcurses.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 SUNW_1.2 SUNW_1.1 1111111 1011111 0 0100000 0 0 0 0
@@ -43701,6 +46254,7 @@
 wscasecmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscasecmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscasecmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscasecmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscasecmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscasecmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscasecmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43709,6 +46263,7 @@
 wscat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscat lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscat lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43717,6 +46272,7 @@
 wschr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wschr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wschr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wschr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wschr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wschr lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wschr lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43725,6 +46281,7 @@
 wscmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43733,6 +46290,7 @@
 wscol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscol lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscol lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43741,6 +46299,7 @@
 wscoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscoll lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscoll lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43749,6 +46308,7 @@
 wscpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscpy lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscpy lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43764,6 +46324,7 @@
 wscspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wscspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wscspn lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wscspn lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43772,6 +46333,7 @@
 wsdup lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsdup usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsdup usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsdup usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsdup lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsdup lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsdup lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43787,6 +46349,7 @@
 wslen lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wslen usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wslen usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wslen usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wslen lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wslen lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wslen lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43795,6 +46358,7 @@
 wsncasecmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncasecmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncasecmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsncasecmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncasecmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncasecmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsncasecmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43803,6 +46367,7 @@
 wsncat lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncat usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncat usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsncat usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncat lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncat lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsncat lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43811,6 +46376,7 @@
 wsncmp lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncmp usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncmp usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsncmp usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncmp lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncmp lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsncmp lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43819,6 +46385,7 @@
 wsncpy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncpy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncpy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsncpy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncpy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsncpy lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsncpy lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43827,6 +46394,7 @@
 wspbrk lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wspbrk usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wspbrk usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wspbrk usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wspbrk lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wspbrk lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wspbrk lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43835,6 +46403,7 @@
 wsprintf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsprintf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsprintf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsprintf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsprintf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsprintf lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsprintf lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43843,6 +46412,7 @@
 wsrchr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsrchr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsrchr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsrchr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsrchr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsrchr lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsrchr lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43851,6 +46421,7 @@
 wsscanf lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsscanf usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsscanf usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsscanf usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsscanf lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsscanf lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsscanf lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43859,6 +46430,7 @@
 wsspn lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsspn usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsspn usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsspn usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsspn lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsspn lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsspn lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43885,6 +46457,7 @@
 wstod lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstod usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstod usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wstod usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstod lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstod lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wstod lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43893,6 +46466,7 @@
 wstok lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstok usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstok usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wstok usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstok lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstok lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wstok lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43901,6 +46475,7 @@
 wstol lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstol usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstol usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wstol usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstol lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstol lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wstol lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43909,6 +46484,7 @@
 wstoll lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstoll usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstoll usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wstoll usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstoll lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstoll lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wstoll lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -43917,6 +46493,7 @@
 wstostr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstostr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstostr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wstostr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstostr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wstostr lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
 wstostr lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.8 0000001 0000001 0 0 0 0 0 0
@@ -43925,6 +46502,7 @@
 wsxfrm lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsxfrm usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsxfrm usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
+wsxfrm usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsxfrm lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000001 0 0 0 0 0 0
 wsxfrm lib/amd64/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 wsxfrm lib/libw.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
@@ -45381,6 +47959,7 @@
 yield lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 yield usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 yield usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
+yield usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 yield lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 0000001 0 0 0 0 0 0
 ynow usr/lib/lib300.so.1 1 2 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
 ynow usr/lib/lib300s.so.1 1 2 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 SUNWprivate_1.1 1111111 0 1011111 0100000 0 0 0 0
@@ -45471,23 +48050,28 @@
 zone_boot lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_boot usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_boot usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_boot usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_boot lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_create lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_create usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_create usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_create usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_create lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_destroy lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_destroy usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_destroy usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_destroy usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_destroy lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_enter lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_enter usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_enter usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_enter usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_enter lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id usr/lib/amd64/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_get_id usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_id lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_get_rootpath usr/lib/amd64/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -45499,16 +48083,19 @@
 zone_getattr lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_getattr usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_getattr usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_getattr usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_getattr lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_list lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_list usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_list usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_list usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_list lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_set_state usr/lib/amd64/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_set_state usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_shutdown lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_shutdown usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_shutdown usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zone_shutdown usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_shutdown lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_state_str usr/lib/amd64/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zone_state_str usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
@@ -45681,4 +48268,5 @@
 zonept lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zonept usr/lib/libc/libc_hwcap1.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zonept usr/lib/libc/libc_hwcap2.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
+zonept usr/lib/libc/libc_hwcap3.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
 zonept lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0000001 0 0000001 0 0 0 0 0
--- a/usr/src/tools/abi/etc/exceptions	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/tools/abi/etc/exceptions	Tue Sep 18 15:46:43 2007 -0700
@@ -79,6 +79,7 @@
 PSARC 2004/619: RULE E2: lib/amd64/libc.so.1: SUNW_1.18
 4747313: RULE E2: usr/lib/libc/libc_hwcap1.so.1: SUNW_1.20.4
 PSARC 2004/619: RULE E2: usr/lib/libc/libc_hwcap2.so.1: SUNW_1.20.4
+PSARC 2004/619: RULE E2: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.20.4
 6195030: RULE E2: lib/amd64/libdl.so.1: SUNW_1.1
 
 #############################################
@@ -769,6 +770,22 @@
 PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap2.so.1: SUNW_1.7
 PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap2.so.1: SUNW_1.8
 PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap2.so.1: SUNW_1.9
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.10
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.11
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.12
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.13
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.14
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.15
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.16
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.17
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.2
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.3
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.4
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.5
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.6
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.7
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.8
+PSARC 2004/619: RULE W5: usr/lib/libc/libc_hwcap3.so.1: SUNW_1.9
 PSARC 2002/506: RULE W5: lib/libdevinfo.so.1: SUNW_1.2
 PSARC 2002/506: RULE W5: lib/sparcv9/libdevinfo.so.1: SUNW_1.2
 PSARC 2004/619: RULE W5: lib/amd64/libdevinfo.so.1: SUNW_1.2
--- a/usr/src/tools/elfextract/elfextract.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/tools/elfextract/elfextract.c	Tue Sep 18 15:46:43 2007 -0700
@@ -196,6 +196,7 @@
 	void *hdr = NULL;
 	struct stat stats;
 	ssize_t r;
+	size_t pgsz;
 	uint_t len;
 
 	/*
@@ -226,31 +227,18 @@
 		exit(1);
 	}
 
-	len = stats.st_blocks * 512;
-	len += 0xfff;
-	len &= ~0xfff;
+	pgsz = getpagesize();
+	len = (stats.st_size + (pgsz - 1)) & (~(pgsz - 1));
 
-#ifdef BUG_6491065_IS_FIXED
 	/*
 	 * mmap the file
 	 */
 	image = mmap(NULL, len, PROT_READ, MAP_SHARED, fd, 0);
 	if (image == MAP_FAILED) {
 		(void) fprintf(stderr, "%s: mmap() of %s failed, %s\n",
-			pname, fname, strerror(errno));
-		exit(1);
-	}
-#else
-	if ((image = malloc(stats.st_size)) == NULL) {
-		(void) fprintf(stderr, "%s: out of memory\n", pname);
-		exit(1);
-	}
-	if ((r = read(fd, image, stats.st_size)) != stats.st_size) {
-		(void) fprintf(stderr, "%s: stat(%s, ...) failed, %s\n",
 		    pname, fname, strerror(errno));
 		exit(1);
 	}
-#endif
 
 	ident = ELFSEEK(0);
 	if (ident[EI_MAG0] != ELFMAG0 || ident[EI_MAG1] != ELFMAG1 ||
--- a/usr/src/tools/scripts/bfu.sh	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/tools/scripts/bfu.sh	Tue Sep 18 15:46:43 2007 -0700
@@ -1990,7 +1990,7 @@
 	bootenvrc="$root/boot/solaris/bootenv.rc"
 	menu_console=`eeprom console 2>/dev/null | \
 	    grep -v 'data not available' | cut -d= -f2-`
-	bootenv_console=`grep '^setprop[ 	]\{1,\}console\>' $bootenvrc`
+	bootenv_console=`grep '^setprop[	 ]\{1,\}console\>' $bootenvrc`
 	if [ -n "$menu_console" ] && [ -z "$bootenv_console" ]; then
 		echo "setprop console '$menu_console'" >> $bootenvrc
 	fi
@@ -2062,7 +2062,7 @@
 # running on (before the bfu), and what the failsafe archives are
 # (again, before the bfu).  failsafe_type is only needed on diskful
 # bfu's, so it's not set in the diskless case.
-# Possible values: unknown, dca, multiboot, directboot
+# Possible values: unknown, dca, multiboot, directboot, xpv
 #
 archive_type=unknown
 system_type=unknown
@@ -2108,12 +2108,16 @@
 #
 # Determine what kind of archives we're installing, using the following rules:
 #
-# 1. If strap.com is present, the archives are pre-multiboot
-# 2. If symdef is present, the archives are directboot
-# 3. Otherwise, the archives are multiboot
+# 1. If i86xpv archives exist, the archives are xpv
+# 2. If strap.com is present, the archives are pre-multiboot
+# 3. If symdef is present, the archives are directboot
+# 4. Otherwise, the archives are multiboot
 #
 if [ $target_isa = i386 ]; then
-	if [ -f $cpiodir/i86pc.boot$ZFIX ] && \
+	if [ -f $cpiodir/i86xpv.root$ZFIX ]; then
+		archive_type=xpv
+		multi_or_direct=yes
+	elif [ -f $cpiodir/i86pc.boot$ZFIX ] && \
 	    archive_file_exists i86pc.boot "strap.com"; then
 		archive_type=dca
 	elif [ -f $cpiodir/i86pc.root$ZFIX ] && \
@@ -2146,6 +2150,16 @@
 		chgrp sys $root/platform/sun4u-us3
 	fi
 
+	if [ $target_isa = i386 -a $archive_type = xpv ]; then
+		#
+		# On i386, we want to apply the archives for both platforms
+		# (i86pc and i86xpv) if they exist.  We force the platform
+		# to i86xpv so that both will be applied.
+		#
+		karch=i86pc
+		plat=i86xpv
+	fi
+
 	if [ $karch != $plat -a -f ${cpiodir}/${plat}.usr$ZFIX ]; then
 		usrarchs="$karch $plat"
 	else
@@ -2216,10 +2230,22 @@
 	test -f generic.root$ZFIX || fail "$cpiodir/generic.root$ZFIX missing"
 	allarchs=$(echo $(ls *.root$ZFIX | grep -v generic.root$ZFIX | \
 		sed -e 's/.root.*//'))
-	# XXX Pick karch as last available root arch
-	karch=${allarchs##* }
-	# XXX Pick plat as first available root arch
-	plat=${allarchs%% *}
+
+	if [ $target_isa = i386 -a $archive_type = xpv ]; then
+		#
+		# On i386, we want to apply the archives for both platforms
+		# (i86pc and i86xpv) if they exist.  We force the platform
+		# to i86xpv so that both will be applied.
+		#
+		karch=i86pc
+		plat=i86xpv
+	else
+		# XXX Pick karch as last available root arch
+		karch=${allarchs##* }
+		# XXX Pick plat as first available root arch
+		plat=${allarchs%% *}
+	fi
+
 	rootlist=""
 	for root in /export/root/*
 	do
@@ -2302,10 +2328,11 @@
 
 #
 # We need biosdev if we're moving from pre-multiboot to multiboot or directboot
-# kernels.
-#
-if [ $target_isa = i386 ] && [ $multi_or_direct = yes ] && [ $diskless = no ]
-then
+# kernels.  If we already have an i86xpv kernel, then we must already be a
+# directboot kernel, and can therefore skip the check.
+#
+if [ $target_isa = i386 ] && [ $multi_or_direct = yes ] && \
+    [ $diskless = no ] && [ ! -d /platform/i86xpv/ ]; then
 	prtconf -v | grep biosdev >/dev/null 2>&1
 	if [ $? -ne 0 ] && [ ! -f $rootprefix/platform/i86pc/multiboot ]; then
 		echo "biosdev cannot be run on this machine."
@@ -2525,11 +2552,16 @@
 MULTIBOOT_BIN_DIR=${MULTIBOOT_BIN_DIR:=${GATE}/public/multiboot}
 have_new_bootadm=unknown
 
-if [ -x $root/boot/solaris/bin/symdef ] && \
-    $root/boot/solaris/bin/symdef $root/platform/i86pc/kernel/unix dboot_image
-then
+if [ -f "$root/platform/i86xpv/kernel/unix" ]; then
+	root_is_xpv=yes
+	root_is_directboot=yes
+elif [ -x "$root/boot/solaris/bin/symdef" ] && \
+    "$root"/boot/solaris/bin/symdef "$root/platform/i86pc/kernel/unix" \
+    dboot_image; then
+	root_is_xpv=no
 	root_is_directboot=yes
 else
+	root_is_xpv=no
 	root_is_directboot=no
 fi
 
@@ -2551,10 +2583,13 @@
 		    [ -f $DIRECTBOOT_BIN_DIR/$file ]; then
 			cp $DIRECTBOOT_BIN_DIR/$file /tmp/bfubin/
 		else
-			if [ $root_is_directboot = yes ]; then
+			if [ $root_is_xpv = yes ] ||
+			    [ $root_is_directboot = yes ] &&
+			    [ $archive_type = multiboot ]; then
 				cp $root/$cmd /tmp/bfubin/
 				have_new_bootadm=yes
-			elif [ $archive_type = directboot ]; then
+			elif [ $archive_type = directboot ] || \
+			    [ $archive_type = xpv ]; then
 				DBOOT_TMPDIR=/tmp/dboot.$$
 				trap "rm -rf $DBOOT_TMPDIR" EXIT
 				OLD_PWD=$(pwd)
@@ -4639,15 +4674,18 @@
 
 #
 # Figure out the boot architecture of the current system:
-# 1. If dboot_image is in unix, it's a dboot system
-# 2. Otherwise, if multiboot is present, it's a multiboot system
-# 3. Otherwise, it's a pre-multiboot system
+# 1. If an i86xpv kernel exists, it's a xpv system
+# 2. If dboot_image is in unix, it's a dboot system
+# 3. Otherwise, if multiboot is present, it's a multiboot system
+# 4. Otherwise, it's a pre-multiboot system
 #
 # This is called before we lay down the new archives.
 #
 check_system_type()
 {
-	if [ -x $root/boot/solaris/bin/symdef ] && \
+	if [ -f $root/platform/i86xpv/kernel/unix ]; then
+		system_type=xpv
+	elif [ -x $root/boot/solaris/bin/symdef ] && \
 	    $root/boot/solaris/bin/symdef $root/platform/i86pc/kernel/unix \
 	    dboot_image; then
 		system_type=directboot
@@ -7057,7 +7095,7 @@
 			/^new/ { lastname = $3 }
 			/^old/ { if (lastname == $3) { print $2 "/" $3 } }
 		    ' | while read x; do
-			echo rm $x
+			echo "rm $x"
 			rm $x
 		done
 	fi
--- a/usr/src/uts/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -36,6 +36,7 @@
 sparc_ARCHITECTURES = sun4v sun4u sparc
 
 i386_ARCHITECTURES = i86pc
+i386_ARCHITECTURES += i86xpv
 i386_ARCHITECTURES += intel
 
 def		:=	TARGET= def
@@ -102,7 +103,7 @@
 $(CLOSED_BUILD)COMMON_HDRDIRS += $(CLOSED)/uts/common/sys
 
 sparc_HDRDIRS= sun/sys
-i386_HDRDIRS= i86pc/vm
+i386_HDRDIRS= i86pc/vm i86xpv/vm
 
 HDRDIRS= $(COMMON_HDRDIRS) $($(MACH)_HDRDIRS)
 install_h check: $(HDRDIRS) $($(MACH)_ARCHITECTURES)
@@ -137,11 +138,15 @@
 # the user will be interested in), it's historically been set to
 # mirror the $(XRDIRS) list, and that works kinda sorta okay.
 #
+# We need to manually prune usr/closed/uts/{i86xpv|sfmmu} since neither
+# of them exist.
+#
 SHARED_XRDIRS = $(sparc_ARCHITECTURES) $(i386_ARCHITECTURES) sun4 sfmmu	\
 	sun common
 CLOSED_XRDIRS = $(SHARED_XRDIRS:%=% ../../closed/uts/%)
 XRDIRS = $(SHARED_XRDIRS)
-$(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS:../../closed/uts/sfmmu=)
+CLOSED_XRDIRS_XEN = $(CLOSED_XRDIRS:../../closed/uts/i86xpv=)
+$(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS_XEN:../../closed/uts/sfmmu=)
 
 XRINCDIRS = $(XRDIRS)
 
--- a/usr/src/uts/common/Makefile.files	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/Makefile.files	Tue Sep 18 15:46:43 2007 -0700
@@ -563,6 +563,8 @@
 AGGR_OBJS +=	aggr_dev.o aggr_ctl.o aggr_grp.o aggr_port.o \
 		aggr_send.o aggr_recv.o aggr_lacp.o
 
+VNIC_OBJS +=	vnic_ctl.o vnic_dev.o vnic_bcast.o vnic_cl.o
+
 NET80211_OBJS += net80211.o net80211_proto.o net80211_input.o \
 		 net80211_output.o net80211_node.o net80211_crypto.o \
 		 net80211_crypto_none.o net80211_crypto_wep.o net80211_ioctl.o \
--- a/usr/src/uts/common/Makefile.rules	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/Makefile.rules	Tue Sep 18 15:46:43 2007 -0700
@@ -811,6 +811,10 @@
 	$(COMPILE.c) -o $@ $<
 	$(CTFCONVERT_O)
 
+$(OBJS_DIR)/%.o:		$(UTSBASE)/common/io/vnic/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/io/wpi/%.c
 	$(COMPILE.c) -o $@ $<
 	$(CTFCONVERT_O)
@@ -1566,6 +1570,9 @@
 $(LINTS_DIR)/%.ln:		$(UTSBASE)/common/io/vuidmice/%.c
 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
 
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/common/io/vnic/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/io/wpi/%.c
 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
 
--- a/usr/src/uts/common/brand/lx/os/lx_misc.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/brand/lx/os/lx_misc.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -286,19 +286,13 @@
 static void
 lx_save(klwp_t *t)
 {
-	static user_desc_t null_desc;
-	static int inited;
-	user_desc_t *gdt;
 	int i;
 
-	if (inited == 0) {
-		bzero(&null_desc, sizeof (null_desc));
-		inited = 1;
-	}
-
-	gdt = cpu_get_gdt();
+#if defined(__amd64)
+	reset_sregs();
+#endif
 	for (i = 0; i < LX_TLSNUM; i++)
-		gdt[GDT_TLSMIN + i] = null_desc;
+		gdt_update_usegd(GDT_TLSMIN + i, &null_udesc);
 }
 
 /*
@@ -308,32 +302,27 @@
 lx_restore(klwp_t *t)
 {
 	struct lx_lwp_data *lwpd = lwptolxlwp(t);
-	user_desc_t *gdt;
 	user_desc_t *tls;
 	int i;
 
 	ASSERT(lwpd);
 
-	gdt = cpu_get_gdt();
 	tls = lwpd->br_tls;
 	for (i = 0; i < LX_TLSNUM; i++)
-		gdt[GDT_TLSMIN + i] = tls[i];
+		gdt_update_usegd(GDT_TLSMIN + i, &tls[i]);
 }
 
 void
 lx_set_gdt(int entry, user_desc_t *descrp)
 {
-	user_desc_t *gdt = cpu_get_gdt();
 
-	gdt[entry] = *descrp;
+	gdt_update_usegd(entry, descrp);
 }
 
 void
 lx_clear_gdt(int entry)
 {
-	user_desc_t *gdt = cpu_get_gdt();
-
-	bzero(&gdt[entry], sizeof (user_desc_t));
+	gdt_update_usegd(entry, &null_udesc);
 }
 
 longlong_t
@@ -377,7 +366,7 @@
 #if defined(__amd64)
 	return (datamodel == DATAMODEL_ILP32 ? (sr | SEL_TI_LDT | SEL_UPL) : 0);
 #elif defined(__i386)
-	datamodel = datamodel;	/* datamodel currently unused for 32-bit */
+	datamodel = datamodel;  /* datamodel currently unused for 32-bit */
 	return (sr | SEL_TI_LDT | SEL_UPL);
 #endif	/* __amd64 */
 }
--- a/usr/src/uts/common/dtrace/sdt_subr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/dtrace/sdt_subr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -75,6 +75,14 @@
 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
 };
 
+static dtrace_pattr_t xpv_attr = {
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
+};
+
 sdt_provider_t sdt_providers[] = {
 	{ "vtrace", "__vtrace_", &vtrace_attr, 0 },
 	{ "sysinfo", "__cpu_sysinfo_", &info_attr, 0 },
@@ -85,6 +93,7 @@
 	{ "io", "__io_", &stab_attr, 0 },
 	{ "mib", "__mib_", &stab_attr, 0 },
 	{ "fsinfo", "__fsinfo_", &fsinfo_attr, 0 },
+	{ "xpv", "__xpv_", &xpv_attr, 0 },
 	{ "sysevent", "__sysevent_", &stab_attr, 0 },
 	{ "sdt", NULL, &sdt_attr, 0 },
 	{ NULL }
@@ -155,6 +164,63 @@
 	{ "fsinfo", NULL, 1, 1, "int", "int" },
 	{ "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
 	{ "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
+	{ "xpv", "add-to-physmap-end", 0, 0, "int" },
+	{ "xpv", "add-to-physmap-start", 0, 0, "domid_t" },
+	{ "xpv", "add-to-physmap-start", 1, 1, "uint_t" },
+	{ "xpv", "add-to-physmap-start", 2, 2, "ulong_t" },
+	{ "xpv", "add-to-physmap-start", 3, 3, "ulong_t" },
+	{ "xpv", "decrease-reservation-end", 0, 0, "int" },
+	{ "xpv", "decrease-reservation-start", 0, 0, "domid_t" },
+	{ "xpv", "decrease-reservation-start", 1, 1, "ulong_t" },
+	{ "xpv", "decrease-reservation-start", 2, 2, "uint_t" },
+	{ "xpv", "decrease-reservation-start", 3, 3, "ulong_t *" },
+	{ "xpv", "dom-create-start", 0, 0, "xen_domctl_t *" },
+	{ "xpv", "dom-destroy-start", 0, 0, "domid_t" },
+	{ "xpv", "dom-pause-start", 0, 0, "domid_t" },
+	{ "xpv", "dom-unpause-start", 0, 0, "domid_t" },
+	{ "xpv", "dom-create-end", 0, 0, "int" },
+	{ "xpv", "dom-destroy-end", 0, 0, "int" },
+	{ "xpv", "dom-pause-end", 0, 0, "int" },
+	{ "xpv", "dom-unpause-end", 0, 0, "int" },
+	{ "xpv", "evtchn-op-end", 0, 0, "int" },
+	{ "xpv", "evtchn-op-start", 0, 0, "int" },
+	{ "xpv", "evtchn-op-start", 1, 1, "void *" },
+	{ "xpv", "increase-reservation-end", 0, 0, "int" },
+	{ "xpv", "increase-reservation-start", 0, 0, "domid_t" },
+	{ "xpv", "increase-reservation-start", 1, 1, "ulong_t" },
+	{ "xpv", "increase-reservation-start", 2, 2, "uint_t" },
+	{ "xpv", "increase-reservation-start", 3, 3, "ulong_t *" },
+	{ "xpv", "mmap-end", 0, 0, "int" },
+	{ "xpv", "mmap-entry", 0, 0, "ulong_t" },
+	{ "xpv", "mmap-entry", 1, 1, "ulong_t" },
+	{ "xpv", "mmap-entry", 2, 2, "ulong_t" },
+	{ "xpv", "mmap-start", 0, 0, "domid_t" },
+	{ "xpv", "mmap-start", 1, 1, "int" },
+	{ "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *" },
+	{ "xpv", "mmapbatch-end", 0, 0, "int" },
+	{ "xpv", "mmapbatch-end", 1, 1, "struct seg *" },
+	{ "xpv", "mmapbatch-end", 2, 2, "caddr_t" },
+	{ "xpv", "mmapbatch-start", 0, 0, "domid_t" },
+	{ "xpv", "mmapbatch-start", 1, 1, "int" },
+	{ "xpv", "mmapbatch-start", 2, 2, "caddr_t" },
+	{ "xpv", "mmu-ext-op-end", 0, 0, "int" },
+	{ "xpv", "mmu-ext-op-start", 0, 0, "int" },
+	{ "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" },
+	{ "xpv", "mmu-update-start", 0, 0, "int" },
+	{ "xpv", "mmu-update-start", 1, 1, "int" },
+	{ "xpv", "mmu-update-start", 2, 2, "mmu_update_t *" },
+	{ "xpv", "mmu-update-end", 0, 0, "int" },
+	{ "xpv", "populate-physmap-end", 0, 0, "int" },
+	{ "xpv", "populate-physmap-start", 0, 0, "domid_t" },
+	{ "xpv", "populate-physmap-start", 1, 1, "ulong_t" },
+	{ "xpv", "populate-physmap-start", 2, 2, "ulong_t *" },
+	{ "xpv", "set-memory-map-end", 0, 0, "int" },
+	{ "xpv", "set-memory-map-start", 0, 0, "domid_t" },
+	{ "xpv", "set-memory-map-start", 1, 1, "int" },
+	{ "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *" },
+	{ "xpv", "setvcpucontext-end", 0, 0, "int" },
+	{ "xpv", "setvcpucontext-start", 0, 0, "domid_t" },
+	{ "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *" },
 	{ NULL }
 };
 
--- a/usr/src/uts/common/fs/dev/sdev_vnops.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/fs/dev/sdev_vnops.c	Tue Sep 18 15:46:43 2007 -0700
@@ -448,7 +448,6 @@
 		if ((vp->v_type == VREG) && (vap->va_mask & AT_SIZE) &&
 		    (vap->va_size == 0)) {
 			ASSERT(parent->sdev_attrvp);
-			ASSERT(VTOSDEV(vp)->sdev_attrvp);
 			error = VOP_CREATE(parent->sdev_attrvp,
 			    nm, vap, excl, mode, &avp, cred, flag);
 
@@ -1232,7 +1231,8 @@
 			dv->sdev_nlink--;
 		}
 		for (idv = ddv->sdev_dot; idv && idv != dv;
-		    prev = idv, idv = idv->sdev_next);
+		    prev = idv, idv = idv->sdev_next)
+			;
 		ASSERT(idv == dv);
 		if (prev == NULL)
 			ddv->sdev_dot = dv->sdev_next;
--- a/usr/src/uts/common/fs/nfs/nfs_dlinet.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/fs/nfs/nfs_dlinet.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -232,7 +231,7 @@
 static void		cacheinit(void);
 static int		cacheinfo(char *, int, struct netbuf *, char *, int);
 static int		dlifconfig(TIUSER *, struct in_addr *, struct in_addr *,
-			    struct in_addr *);
+			    struct in_addr *, uint_t);
 static int		setifflags(TIUSER *, uint_t);
 
 static char		*inet_ntoa(struct in_addr);
@@ -337,9 +336,9 @@
 		break;
 	case NFS_V4:
 		((struct sockaddr_in *)args->addr->buf)->sin_port =
-							htons(NFS_PORT);
+		    htons(NFS_PORT);
 		if (ping_prog(args->addr, NFS_PROGRAM, NFS_V4, IPPROTO_TCP,
-				&stat)) {
+		    &stat)) {
 			proto = IPPROTO_TCP;
 			rc = 0;
 		} else {
@@ -558,7 +557,7 @@
 	if (mountres3.fhs_status != MNT_OK) {
 		if (dldebug)
 			printf("mountnfs3: fhs_status %d\n",
-					mountres3.fhs_status);
+			    mountres3.fhs_status);
 		ret = ENXIO;	/* XXX */
 		goto out;
 	}
@@ -1123,7 +1122,7 @@
 	if ((rc = t_kopen((file_t *)NULL, dl_udp_netconf.knc_rdev,
 	    FREAD|FWRITE, &tiptr, CRED())) == 0) {
 		if (rc = dlifconfig(tiptr, &pl->pkt->yiaddr, &subnet,
-		    &braddr)) {
+		    &braddr, IFF_DHCPRUNNING)) {
 			nfs_perror(rc, "dhcp: dlifconfig failed: %m\n");
 			kmem_free(pl->pkt, pl->len);
 			kmem_free(pl, sizeof (PKT_LIST));
@@ -1326,7 +1325,7 @@
  */
 static int
 dlifconfig(TIUSER *tiptr, struct in_addr *myIPaddr, struct in_addr *mymask,
-    struct in_addr *mybraddr)
+    struct in_addr *mybraddr, uint_t flags)
 {
 	int rc;
 	struct netbuf sbuf;
@@ -1374,7 +1373,7 @@
 	/*
 	 * Now turn on the interface.
 	 */
-	if (rc = setifflags(tiptr, IFF_UP | IFF_DHCPRUNNING)) {
+	if (rc = setifflags(tiptr, IFF_UP | flags)) {
 		nfs_perror(rc,
 		    "dlifconfig: couldn't enable network interface: %m\n");
 		return (rc);
@@ -1638,8 +1637,8 @@
 		/* Fallback using per-node address */
 		(void) localetheraddr((struct ether_addr *)NULL, &myether);
 		cmn_err(CE_CONT, "?DLPI failed to get Ethernet address. Using "
-			"system wide Ethernet address %s\n",
-			ether_sprintf(&myether));
+		    "system wide Ethernet address %s\n",
+		    ether_sprintf(&myether));
 	}
 
 getreply:
@@ -1862,8 +1861,8 @@
 	if (!myxdr_fhandle3(xdrs, &objp->fhandle))
 		return (FALSE);
 	if (!xdr_array(xdrs, (char **)&objp->auth_flavors.auth_flavors_val,
-		(uint_t *)&objp->auth_flavors.auth_flavors_len, ~0,
-		sizeof (int), (xdrproc_t)xdr_int))
+	    (uint_t *)&objp->auth_flavors.auth_flavors_len, ~0,
+	    sizeof (int), (xdrproc_t)xdr_int))
 		return (FALSE);
 	return (TRUE);
 }
@@ -2202,6 +2201,139 @@
 }
 
 /*
+ * Configure the 'default' interface based on existing boot properties.
+ */
+static int
+bp_netconfig(void)
+{
+	char *str;
+	struct in_addr my_ip, my_netmask, my_router, my_broadcast;
+	struct sockaddr_in *sin;
+	TIUSER *tiptr;
+	int rc;
+	struct rtentry rtentry;
+
+	my_ip.s_addr = my_netmask.s_addr = my_router.s_addr = 0;
+
+	/*
+	 * No way of getting this right now.  Collude with dlifconfig()
+	 * to let the protocol stack choose.
+	 */
+	my_broadcast.s_addr = INADDR_BROADCAST;
+
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_HOST_IP, &str) == DDI_SUCCESS) {
+		if (inet_aton(str, (uchar_t *)&my_ip) != 0)
+			cmn_err(CE_NOTE, "host-ip %s is invalid\n",
+			    str);
+		ddi_prop_free(str);
+		if (dldebug)
+			printf("host ip is %s\n",
+			    inet_ntoa(my_ip));
+	}
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_SUBNET_MASK, &str) == DDI_SUCCESS) {
+		if (inet_aton(str, (uchar_t *)&my_netmask) != 0)
+			cmn_err(CE_NOTE, "subnet-mask %s is invalid\n",
+			    str);
+		ddi_prop_free(str);
+		if (dldebug)
+			printf("subnet mask is %s\n",
+			    inet_ntoa(my_netmask));
+	}
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_ROUTER_IP, &str) == DDI_SUCCESS) {
+		if (inet_aton(str, (uchar_t *)&my_router) != 0)
+			cmn_err(CE_NOTE, "router-ip %s is invalid\n",
+			    str);
+		ddi_prop_free(str);
+		if (dldebug)
+			printf("router ip is %s\n",
+			    inet_ntoa(my_router));
+	}
+	(void) ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_SERVER_PATH, &server_path_c);
+	(void) ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_SERVER_NAME, &server_name_c);
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_SERVER_ROOTOPTS, &str) == DDI_SUCCESS) {
+		(void) strlcpy(rootopts, str, sizeof (rootopts));
+		ddi_prop_free(str);
+	}
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	    DDI_PROP_DONTPASS, BP_SERVER_IP, &str) == DDI_SUCCESS) {
+		if (inet_aton(str, server_ip) != 0)
+			cmn_err(CE_NOTE, "server-ip %s is invalid\n",
+			    str);
+		ddi_prop_free(str);
+		if (dldebug)
+			printf("server ip is %s\n",
+			    inet_ntoa(*(struct in_addr *)server_ip));
+	}
+
+	/*
+	 * We need all of these to configure based on properties.
+	 */
+	if ((my_ip.s_addr == 0) ||
+	    (my_netmask.s_addr == 0) ||
+	    (server_path_c == NULL) ||
+	    (server_name_c == NULL) ||
+	    (*(uint_t *)server_ip == 0))
+		return (-1);
+
+	cmn_err(CE_CONT, "?IP address: %s\n", inet_ntoa(my_ip));
+	cmn_err(CE_CONT, "?IP netmask: %s\n", inet_ntoa(my_netmask));
+	if (my_router.s_addr != 0)
+		cmn_err(CE_CONT, "?IP router: %s\n", inet_ntoa(my_router));
+	cmn_err(CE_CONT, "?NFS server: %s (%s)\n", server_name_c,
+	    inet_ntoa(*(struct in_addr *)server_ip));
+	cmn_err(CE_CONT, "?NFS path: %s\n", server_path_c);
+
+	/*
+	 * Configure the interface.
+	 */
+	if ((rc = t_kopen((file_t *)NULL, dl_udp_netconf.knc_rdev,
+	    FREAD|FWRITE, &tiptr, CRED())) != 0) {
+		nfs_perror(rc, "bp_netconfig: t_kopen udp failed: %m.\n");
+		return (rc);
+	}
+
+	if ((rc = dlifconfig(tiptr, &my_ip, &my_netmask, &my_broadcast,
+	    0)) < 0) {
+		nfs_perror(rc, "bp_netconfig: dlifconfig failed: %m.\n");
+		(void) t_kclose(tiptr, 0);
+		return (rc);
+	}
+
+	if (my_router.s_addr != 0) {
+		/*
+		 * Add a default route.
+		 */
+		sin = (struct sockaddr_in *)&rtentry.rt_dst;
+		bzero(sin, sizeof (*sin));
+		sin->sin_family = AF_INET;
+
+		sin = (struct sockaddr_in *)&rtentry.rt_gateway;
+		bzero(sin, sizeof (*sin));
+		sin->sin_family = AF_INET;
+		sin->sin_addr = my_router;
+
+		rtentry.rt_flags = RTF_GATEWAY | RTF_UP;
+
+		if ((rc = rtioctl(tiptr, SIOCADDRT, &rtentry)) != 0) {
+			nfs_perror(rc,
+			    "bp_netconfig: couldn't add route: %m.\n");
+			(void) t_kclose(tiptr, 0);
+			return (rc);
+		}
+	}
+
+	(void) t_kclose(tiptr, 0);
+
+	return (0);
+}
+
+/*
  * The network device we will use to boot from is plumbed. Extract the details
  * from rootfs.
  */
@@ -2224,7 +2356,9 @@
 	 * Now we bringup the interface.
 	 * Try cached dhcp response first. If it fails, do rarp.
 	 */
-	if (dhcpinit() != 0 && whoami() != 0)
+	if ((bp_netconfig() != 0) &&
+	    (dhcpinit() != 0) &&
+	    (whoami() != 0))
 		cmn_err(CE_WARN,
 		    "%s: no response from interface", ifname);
 	else if (dldebug)
--- a/usr/src/uts/common/fs/vfs.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/fs/vfs.c	Tue Sep 18 15:46:43 2007 -0700
@@ -106,7 +106,7 @@
     const mntopts_t *);
 static char **vfs_copycancelopt_extend(char **const, int);
 static void vfs_freecancelopt(char **);
-static char *getrootfs(void);
+static void getrootfs(char **, char **);
 static int getmacpath(dev_info_t *, void *);
 static void vfs_mnttabvp_setup(void);
 
@@ -4240,15 +4240,15 @@
 	int error;
 	struct vfssw *vsw;
 	extern void pm_init();
-	char *fstyp;
-
-	fstyp = getrootfs();
+	char *fstyp, *fsmod;
+
+	getrootfs(&fstyp, &fsmod);
 
 	if (error = clboot_rootconf())
 		return (error);
 
-	if (modload("fs", fstyp) == -1)
-		panic("Cannot _init %s module", fstyp);
+	if (modload("fs", fsmod) == -1)
+		panic("Cannot _init %s module", fsmod);
 
 	RLOCK_VFSSW();
 	vsw = vfs_getvfsswbyname(fstyp);
@@ -4292,8 +4292,8 @@
  * client. Otherwise, we default to ufs. Zfs should perhaps be
  * another property.
  */
-static char *
-getrootfs(void)
+static void
+getrootfs(char **fstypp, char **fsmodp)
 {
 	extern char *strplumb_get_netdev_path(void);
 	char *propstr = NULL;
@@ -4316,12 +4316,21 @@
 		ddi_prop_free(propstr);
 	}
 
-	if (strncmp(rootfs.bo_fstype, "nfs", 3) != 0)
-		return (rootfs.bo_fstype);
+	if (strncmp(rootfs.bo_fstype, "nfs", 3) != 0) {
+		*fstypp = *fsmodp = rootfs.bo_fstype;
+		return;
+	}
 
 	++netboot;
-	/* check if path to network interface is specified in bootpath */
-	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
+	/*
+	 * check if path to network interface is specified in bootpath
+	 * or by a hypervisor domain configuration file.
+	 * XXPV - enable strlumb_get_netdev_path()
+	 */
+	if (ddi_prop_exists(DDI_DEV_T_ANY, ddi_root_node(), DDI_PROP_DONTPASS,
+	    "xpv-nfsroot")) {
+		(void) strcpy(rootfs.bo_name, "/xpvd/xnf@0");
+	} else if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
 	    DDI_PROP_DONTPASS, "bootpath", &propstr)
 	    == DDI_SUCCESS) {
 		(void) strncpy(rootfs.bo_name, propstr, BO_MAXOBJNAME);
@@ -4333,6 +4342,7 @@
 			panic("cannot find boot network interface");
 		(void) strncpy(rootfs.bo_name, netdev_path, BO_MAXOBJNAME);
 	}
-	return ("nfs");
+	*fstypp = rootfs.bo_fstype;
+	*fsmodp = "nfs";
 }
 #endif
--- a/usr/src/uts/common/inet/ip/ip.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/inet/ip/ip.c	Tue Sep 18 15:46:43 2007 -0700
@@ -14748,12 +14748,13 @@
 void
 ip_rput(queue_t *q, mblk_t *mp)
 {
-	ill_t		*ill = (ill_t *)q->q_ptr;
-	ip_stack_t	*ipst = ill->ill_ipst;
+	ill_t	*ill;
 	union DL_primitives *dl;
 
 	TRACE_1(TR_FAC_IP, TR_IP_RPUT_START, "ip_rput_start: q %p", q);
 
+	ill = (ill_t *)q->q_ptr;
+
 	if (ill->ill_state_flags & (ILL_CONDEMNED | ILL_LL_SUBNET_PENDING)) {
 		/*
 		 * If things are opening or closing, only accept high-priority
@@ -14774,75 +14775,77 @@
 		}
 	}
 
-	/*
-	 * if db_ref > 1 then copymsg and free original. Packet may be
-	 * changed and we do not want the other entity who has a reference to
-	 * this message to trip over the changes. This is a blind change because
-	 * trying to catch all places that might change the packet is too
-	 * difficult.
-	 *
-	 * This corresponds to the fast path case, where we have a chain of
-	 * M_DATA mblks.  We check the db_ref count of only the 1st data block
-	 * in the mblk chain. There doesn't seem to be a reason why a device
-	 * driver would send up data with varying db_ref counts in the mblk
-	 * chain. In any case the Fast path is a private interface, and our
-	 * drivers don't do such a thing. Given the above assumption, there is
-	 * no need to walk down the entire mblk chain (which could have a
-	 * potential performance problem)
-	 */
-	if (mp->b_datap->db_ref > 1) {
-		mblk_t  *mp1;
-		boolean_t adjusted = B_FALSE;
-		IP_STAT(ipst, ip_db_ref);
-
-		/*
-		 * The IP_RECVSLLA option depends on having the link layer
-		 * header. First check that:
-		 * a> the underlying device is of type ether, since this
-		 * option is currently supported only over ethernet.
-		 * b> there is enough room to copy over the link layer header.
-		 *
-		 * Once the checks are done, adjust rptr so that the link layer
-		 * header will be copied via copymsg. Note that, IFT_ETHER may
-		 * be returned by some non-ethernet drivers but in this case the
-		 * second check will fail.
-		 */
-		if (ill->ill_type == IFT_ETHER &&
-		    (mp->b_rptr - mp->b_datap->db_base) >=
-		    sizeof (struct ether_header)) {
-			mp->b_rptr -= sizeof (struct ether_header);
-			adjusted = B_TRUE;
-		}
-		mp1 = copymsg(mp);
-		if (mp1 == NULL) {
-			mp->b_next = NULL;
-			/* clear b_prev - used by ip_mroute_decap */
-			mp->b_prev = NULL;
-			freemsg(mp);
-			BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
-			TRACE_2(TR_FAC_IP, TR_IP_RPUT_END,
-			    "ip_rput_end: q %p (%S)", q, "copymsg");
-			return;
-		}
-		if (adjusted) {
-			/*
-			 * Copy is done. Restore the pointer in the _new_ mblk
-			 */
-			mp1->b_rptr += sizeof (struct ether_header);
-		}
-		/* Copy b_prev - used by ip_mroute_decap */
-		mp1->b_prev = mp->b_prev;
-		mp->b_prev = NULL;
-		freemsg(mp);
-		mp = mp1;
-	}
-
 	TRACE_2(TR_FAC_IP, TR_IP_RPUT_END,
 	    "ip_rput_end: q %p (%S)", q, "end");
 
 	ip_input(ill, NULL, mp, NULL);
 }
 
+static mblk_t *
+ip_fix_dbref(ill_t *ill, mblk_t *mp)
+{
+	mblk_t *mp1;
+	boolean_t adjusted = B_FALSE;
+	ip_stack_t *ipst = ill->ill_ipst;
+
+	IP_STAT(ipst, ip_db_ref);
+	/*
+	 * The IP_RECVSLLA option depends on having the
+	 * link layer header. First check that:
+	 * a> the underlying device is of type ether,
+	 * since this option is currently supported only
+	 * over ethernet.
+	 * b> there is enough room to copy over the link
+	 * layer header.
+	 *
+	 * Once the checks are done, adjust rptr so that
+	 * the link layer header will be copied via
+	 * copymsg. Note that, IFT_ETHER may be returned
+	 * by some non-ethernet drivers but in this case
+	 * the second check will fail.
+	 */
+	if (ill->ill_type == IFT_ETHER &&
+	    (mp->b_rptr - mp->b_datap->db_base) >=
+	    sizeof (struct ether_header)) {
+		mp->b_rptr -= sizeof (struct ether_header);
+		adjusted = B_TRUE;
+	}
+	mp1 = copymsg(mp);
+
+	if (mp1 == NULL) {
+		mp->b_next = NULL;
+		/* clear b_prev - used by ip_mroute_decap */
+		mp->b_prev = NULL;
+		freemsg(mp);
+		BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
+		return (NULL);
+	}
+
+	if (adjusted) {
+		/*
+		 * Copy is done. Restore the pointer in
+		 * the _new_ mblk
+		 */
+		mp1->b_rptr += sizeof (struct ether_header);
+	}
+
+	/* Copy b_prev - used by ip_mroute_decap */
+	mp1->b_prev = mp->b_prev;
+	mp->b_prev = NULL;
+
+	/* preserve the hardware checksum flags and data, if present */
+	if (DB_CKSUMFLAGS(mp) != 0) {
+		DB_CKSUMFLAGS(mp1) = DB_CKSUMFLAGS(mp);
+		DB_CKSUMSTART(mp1) = DB_CKSUMSTART(mp);
+		DB_CKSUMSTUFF(mp1) = DB_CKSUMSTUFF(mp);
+		DB_CKSUMEND(mp1) = DB_CKSUMEND(mp);
+		DB_CKSUM16(mp1) = DB_CKSUM16(mp);
+	}
+
+	freemsg(mp);
+	return (mp1);
+}
+
 /*
  * Direct read side procedure capable of dealing with chains. GLDv3 based
  * drivers call this function directly with mblk chains while STREAMS
@@ -14909,8 +14912,34 @@
 		prev_dst = dst;
 
 		/*
+		 * if db_ref > 1 then copymsg and free original. Packet
+		 * may be changed and we do not want the other entity
+		 * who has a reference to this message to trip over the
+		 * changes. This is a blind change because trying to
+		 * catch all places that might change the packet is too
+		 * difficult.
+		 *
+		 * This corresponds to the fast path case, where we have
+		 * a chain of M_DATA mblks.  We check the db_ref count
+		 * of only the 1st data block in the mblk chain. There
+		 * doesn't seem to be a reason why a device driver would
+		 * send up data with varying db_ref counts in the mblk
+		 * chain. In any case the Fast path is a private
+		 * interface, and our drivers don't do such a thing.
+		 * Given the above assumption, there is no need to walk
+		 * down the entire mblk chain (which could have a
+		 * potential performance problem)
+		 */
+
+		if (DB_REF(mp) > 1) {
+			if ((mp = ip_fix_dbref(ill, mp)) == NULL)
+				continue;
+		}
+
+		/*
 		 * Check and align the IP header.
 		 */
+		first_mp = mp;
 		if (DB_TYPE(mp) == M_DATA) {
 			dmp = mp;
 		} else if (DB_TYPE(mp) == M_PROTO &&
--- a/usr/src/uts/common/io/avintr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/avintr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -46,6 +46,9 @@
 #include <sys/sdt.h>
 #include <sys/stack.h>
 #include <sys/ddi_impldefs.h>
+#ifdef __xpv
+#include <sys/evtchn_impl.h>
+#endif
 
 typedef struct av_softinfo {
 	cpuset_t	av_pending;	/* pending bitmasks */
@@ -75,7 +78,12 @@
 	"conflicts with another device using the same vector %d with an IPL\n"
 	"of %d. Reconfigure the conflicting devices to use different vectors.";
 
+#ifdef __xpv
+#define	MAX_VECT	NR_IRQS
+#else
 #define	MAX_VECT	256
+#endif
+
 struct autovec *nmivect = NULL;
 struct av_head autovect[MAX_VECT];
 struct av_head softvect[LOCK_LEVEL + 1];
@@ -338,7 +346,6 @@
 	/* find where it goes in list */
 	for (p = vectp->avh_link; p != NULL; p = p->av_link) {
 		if (p->av_vector == NULL) {	/* freed struct available */
-			kmem_free(mem, sizeof (struct autovec));
 			p->av_intarg1 = arg1;
 			p->av_intarg2 = arg2;
 			p->av_ticksp = ticksp;
@@ -351,8 +358,13 @@
 			if (pri_level < (int)vectp->avh_lo_pri) {
 				vectp->avh_lo_pri = (ushort_t)pri_level;
 			}
+			/*
+			 * To prevent calling service routine before args
+			 * and ticksp are ready fill in vector last.
+			 */
 			p->av_vector = f;
 			mutex_exit(&av_lock);
+			kmem_free(mem, sizeof (struct autovec));
 			return;
 		}
 	}
@@ -473,12 +485,14 @@
 	} while (cpu_in_chain);
 }
 
+static uint64_t dummy_tick;
+
 /* remove an interrupt vector from the chain */
 static void
 remove_av(void *intr_id, struct av_head *vectp, avfunc f, int pri_level,
 	int vect)
 {
-	struct autovec *endp, *p, *target;
+	struct autovec *p, *target;
 	int	lo_pri, hi_pri;
 	int	ipl;
 	/*
@@ -490,17 +504,18 @@
 	ipl = pri_level;
 	lo_pri = MAXIPL;
 	hi_pri = 0;
-	for (endp = p = vectp->avh_link; p && p->av_vector; p = p->av_link) {
-		endp = p;
+	for (p = vectp->avh_link; p; p = p->av_link) {
 		if ((p->av_vector == f) && (p->av_intr_id == intr_id)) {
 			/* found the handler */
 			target = p;
 			continue;
 		}
-		if (p->av_prilevel > hi_pri)
-			hi_pri = p->av_prilevel;
-		if (p->av_prilevel < lo_pri)
-			lo_pri = p->av_prilevel;
+		if (p->av_vector != NULL) {
+			if (p->av_prilevel > hi_pri)
+				hi_pri = p->av_prilevel;
+			if (p->av_prilevel < lo_pri)
+				lo_pri = p->av_prilevel;
+		}
 	}
 	if (ipl < hi_pri)
 		ipl = hi_pri;
@@ -511,26 +526,21 @@
 		return;
 	}
 
+	/*
+	 * This drops the handler from the chain, it can no longer be called.
+	 * However, there is no guarantee that the handler is not currently
+	 * still executing.
+	 */
 	target->av_vector = NULL;
-	target->av_ticksp = NULL;
+	/*
+	 * There is a race where we could be just about to pick up the ticksp
+	 * pointer to increment it after returning from the service routine
+	 * in av_dispatch_autovect.  Rather than NULL it out let's just point
+	 * it off to something safe so that any final tick update attempt
+	 * won't fault.
+	 */
+	target->av_ticksp = &dummy_tick;
 	wait_till_seen(ipl);
-	if (endp != target) {	/* vector to be removed is not last in chain */
-		target->av_vector = endp->av_vector;
-		target->av_intarg1 = endp->av_intarg1;
-		target->av_intarg2 = endp->av_intarg2;
-		target->av_ticksp = endp->av_ticksp;
-		target->av_intr_id = endp->av_intr_id;
-		target->av_prilevel = endp->av_prilevel;
-		target->av_dip = endp->av_dip;
-		/*
-		 * We have a hole here where the routine corresponding to
-		 * endp may not get called. Do a wait_till_seen to take care
-		 * of this.
-		 */
-		wait_till_seen(ipl);
-		endp->av_vector = NULL;
-		endp->av_ticksp = NULL;
-	}
 
 	if (lo_pri > hi_pri) {	/* the chain is now empty */
 		/* Leave the unused entries here for probable future use */
@@ -629,8 +639,12 @@
 			caddr_t arg2 = av->av_intarg2;
 			dev_info_t *dip = av->av_dip;
 
+			/*
+			 * We must walk the entire chain.  Removed handlers
+			 * may be anywhere in the chain.
+			 */
 			if (intr == NULL)
-				break;
+				continue;
 
 			DTRACE_PROBE4(interrupt__start, dev_info_t *, dip,
 			    void *, intr, caddr_t, arg1, caddr_t, arg2);
@@ -668,8 +682,12 @@
 	ASSERT(pil >= 0 && pil <= PIL_MAX);
 
 	for (av = softvect[pil].avh_link; av; av = av->av_link) {
+		/*
+		 * We must walk the entire chain.  Removed handlers
+		 * may be anywhere in the chain.
+		 */
 		if ((intr = av->av_vector) == NULL)
-			break;
+			continue;
 		arg1 = av->av_intarg1;
 		arg2 = av->av_intarg2;
 
--- a/usr/src/uts/common/io/cmlb.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/cmlb.c	Tue Sep 18 15:46:43 2007 -0700
@@ -510,6 +510,12 @@
  *
  *
  *
+ *			CMLB_FAKE_LABEL_ONE_PARTITION: create s0 and s2 covering
+ *			the entire disk, if there is no valid partition info.
+ *			If there is a valid Solaris partition, s0 and s2 will
+ *			only cover the entire Solaris partition.
+ *
+ *
  *	cmlbhandle	cmlb handle associated with device
  *
  *	tg_cookie	cookie from target driver to be passed back to target
@@ -2608,9 +2614,15 @@
 
 	ASSERT(phys_spc != 0);
 	cl->cl_g.dkg_pcyl = cl->cl_solaris_size / phys_spc;
-	cl->cl_g.dkg_acyl = DK_ACYL;
-	cl->cl_g.dkg_ncyl = cl->cl_g.dkg_pcyl - DK_ACYL;
-	disksize = cl->cl_g.dkg_ncyl * phys_spc;
+	if (cl->cl_alter_behavior & CMLB_FAKE_LABEL_ONE_PARTITION) {
+		/* disable devid */
+		cl->cl_g.dkg_ncyl = cl->cl_g.dkg_pcyl;
+		disksize = cl->cl_solaris_size;
+	} else {
+		cl->cl_g.dkg_acyl = DK_ACYL;
+		cl->cl_g.dkg_ncyl = cl->cl_g.dkg_pcyl - DK_ACYL;
+		disksize = cl->cl_g.dkg_ncyl * phys_spc;
+	}
 
 	if (ISCD(cl)) {
 		/*
@@ -2678,6 +2690,19 @@
 	cl->cl_map[2].dkl_nblk  = disksize;
 	cl->cl_offset[2] = 0;
 
+	/*
+	 * single slice (s0) covering the entire disk
+	 */
+	if (cl->cl_alter_behavior & CMLB_FAKE_LABEL_ONE_PARTITION) {
+		cl->cl_vtoc.v_part[0].p_start = 0;
+		cl->cl_vtoc.v_part[0].p_tag   = V_UNASSIGNED;
+		cl->cl_vtoc.v_part[0].p_flag  = 0;
+		cl->cl_vtoc.v_part[0].p_size  = disksize;
+		cl->cl_map[0].dkl_cylno = 0;
+		cl->cl_map[0].dkl_nblk  = disksize;
+		cl->cl_offset[0] = 0;
+	}
+
 	(void) sprintf(cl->cl_vtoc.v_asciilabel, "DEFAULT cyl %d alt %d"
 	    " hd %d sec %d", cl->cl_g.dkg_ncyl, cl->cl_g.dkg_acyl,
 	    cl->cl_g.dkg_nhead, cl->cl_g.dkg_nsect);
--- a/usr/src/uts/common/io/dld/dld_str.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/dld/dld_str.c	Tue Sep 18 15:46:43 2007 -0700
@@ -1036,7 +1036,7 @@
 
 	(void) snprintf(name, MAXNAMELEN, "%s%u", drvname, ppa);
 
-	if (strcmp(drvname, "aggr") != 0 &&
+	if (strcmp(drvname, "aggr") != 0 && strcmp(drvname, "vnic") != 0 &&
 	    qassociate(dsp->ds_wq, DLS_PPA2INST(ppa)) != 0)
 		return (EINVAL);
 
@@ -1554,8 +1554,7 @@
 	bcopy(addr, &dlip[1], addr_length);
 
 	ethertype = (dsp->ds_sap < ETHERTYPE_802_MIN) ? 0 : dsp->ds_sap;
-	*(uint16_t *)((uchar_t *)(dlip + 1) + addr_length) =
-		ethertype;
+	*(uint16_t *)((uchar_t *)(dlip + 1) + addr_length) = ethertype;
 
 	qreply(dsp->ds_wq, mp);
 }
@@ -1753,10 +1752,11 @@
 		break;
 
 	case MAC_NOTE_RESOURCE:
+	case MAC_NOTE_VNIC:
 		/*
 		 * This notification is sent whenever the MAC resources
-		 * change. We need to renegotiate the capabilities.
-		 * Send the appropriate DL_NOTIFY_IND.
+		 * change or capabilities change. We need to renegotiate
+		 * the capabilities. Send the appropriate DL_NOTIFY_IND.
 		 */
 		str_notify_capab_reneg(dsp);
 		break;
--- a/usr/src/uts/common/io/dls/dls.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/dls/dls.c	Tue Sep 18 15:46:43 2007 -0700
@@ -96,9 +96,11 @@
 		break;
 
 	case MAC_NOTE_PROMISC:
+	case MAC_NOTE_VNIC:
 		/*
-		 * Every time the MAC interface changes promiscuity we
-		 * need to reset our transmit information.
+		 * Every time the MAC interface changes promiscuity or
+		 * the VNIC characteristics change we need to reset
+		 * our transmit information.
 		 */
 		dip->di_txinfo = mac_tx_get(dip->di_mh);
 		break;
@@ -855,7 +857,7 @@
 	 * If this is the first active client on this link, notify
 	 * the mac that we're becoming an active client.
 	 */
-	if (dlp->dl_nactive == 0 && !mac_active_set(dlp->dl_mh)) {
+	if (dlp->dl_nactive == 0 && !mac_active_shareable_set(dlp->dl_mh)) {
 		rw_exit(&dip->di_lock);
 		return (B_FALSE);
 	}
--- a/usr/src/uts/common/io/dls/dls_link.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/dls/dls_link.c	Tue Sep 18 15:46:43 2007 -0700
@@ -1001,7 +1001,7 @@
 	/* Replace the existing receive function if there is one. */
 	if (dlp->dl_mrh != NULL)
 		mac_rx_remove(dlp->dl_mh, dlp->dl_mrh, B_FALSE);
-	dlp->dl_mrh = mac_rx_add(dlp->dl_mh, rx, (void *)dlp);
+	dlp->dl_mrh = mac_active_rx_add(dlp->dl_mh, rx, (void *)dlp);
 	mutex_exit(&dlp->dl_lock);
 }
 
@@ -1099,7 +1099,7 @@
 			rx = i_dls_link_rx;
 
 		mac_rx_remove(dlp->dl_mh, dlp->dl_mrh, B_FALSE);
-		dlp->dl_mrh = mac_rx_add(dlp->dl_mh, rx, (void *)dlp);
+		dlp->dl_mrh = mac_active_rx_add(dlp->dl_mh, rx, (void *)dlp);
 	}
 	mutex_exit(&dlp->dl_lock);
 }
--- a/usr/src/uts/common/io/lofi.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/lofi.c	Tue Sep 18 15:46:43 2007 -0700
@@ -586,6 +586,13 @@
 		ddi_soft_state_free(lofi_statep, 0);
 		return (DDI_FAILURE);
 	}
+	/* driver handles kernel-issued IOCTLs */
+	if (ddi_prop_create(DDI_DEV_T_NONE, dip, DDI_PROP_CANSLEEP,
+	    DDI_KERNEL_IOCTL, NULL, 0) != DDI_PROP_SUCCESS) {
+		ddi_remove_minor_node(dip, NULL);
+		ddi_soft_state_free(lofi_statep, 0);
+		return (DDI_FAILURE);
+	}
 	lofi_dip = dip;
 	ddi_report_dev(dip);
 	return (DDI_SUCCESS);
@@ -600,6 +607,7 @@
 		return (DDI_FAILURE);
 	lofi_dip = NULL;
 	ddi_remove_minor_node(dip, NULL);
+	ddi_prop_remove_all(dip);
 	ddi_soft_state_free(lofi_statep, 0);
 	return (DDI_SUCCESS);
 }
--- a/usr/src/uts/common/io/mac/mac.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/mac/mac.c	Tue Sep 18 15:46:43 2007 -0700
@@ -18,6 +18,7 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
@@ -56,6 +57,7 @@
 static mod_hash_t	*i_mac_impl_hash;
 krwlock_t		i_mac_impl_lock;
 uint_t			i_mac_impl_count;
+static kmem_cache_t	*mac_vnic_tx_cache;
 
 #define	MACTYPE_KMODDIR	"mac"
 #define	MACTYPE_HASHSZ	67
@@ -67,6 +69,8 @@
 static kmutex_t		i_mactype_lock;
 
 static void i_mac_notify_thread(void *);
+static mblk_t *mac_vnic_tx(void *, mblk_t *);
+static mblk_t *mac_vnic_txloop(void *, mblk_t *);
 
 /*
  * Private functions.
@@ -86,7 +90,7 @@
 	rw_init(&mip->mi_data_lock, NULL, RW_DRIVER, NULL);
 	rw_init(&mip->mi_notify_lock, NULL, RW_DRIVER, NULL);
 	rw_init(&mip->mi_rx_lock, NULL, RW_DRIVER, NULL);
-	rw_init(&mip->mi_txloop_lock, NULL, RW_DRIVER, NULL);
+	rw_init(&mip->mi_tx_lock, NULL, RW_DRIVER, NULL);
 	rw_init(&mip->mi_resource_lock, NULL, RW_DRIVER, NULL);
 	mutex_init(&mip->mi_activelink_lock, NULL, MUTEX_DEFAULT, NULL);
 	mutex_init(&mip->mi_notify_bits_lock, NULL, MUTEX_DRIVER, NULL);
@@ -119,7 +123,7 @@
 	rw_destroy(&mip->mi_data_lock);
 	rw_destroy(&mip->mi_notify_lock);
 	rw_destroy(&mip->mi_rx_lock);
-	rw_destroy(&mip->mi_txloop_lock);
+	rw_destroy(&mip->mi_tx_lock);
 	rw_destroy(&mip->mi_resource_lock);
 	mutex_destroy(&mip->mi_activelink_lock);
 	mutex_destroy(&mip->mi_notify_bits_lock);
@@ -128,6 +132,33 @@
 	cv_destroy(&mip->mi_rx_cv);
 }
 
+/*
+ * mac_vnic_tx_t kmem cache support functions.
+ */
+
+/* ARGSUSED */
+static int
+i_mac_vnic_tx_ctor(void *buf, void *arg, int mkflag)
+{
+	mac_vnic_tx_t *vnic_tx = buf;
+
+	bzero(buf, sizeof (mac_vnic_tx_t));
+	mutex_init(&vnic_tx->mv_lock, NULL, MUTEX_DRIVER, NULL);
+	cv_init(&vnic_tx->mv_cv, NULL, CV_DRIVER, NULL);
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+i_mac_vnic_tx_dtor(void *buf, void *arg)
+{
+	mac_vnic_tx_t *vnic_tx = buf;
+
+	ASSERT(vnic_tx->mv_refs == 0);
+	mutex_destroy(&vnic_tx->mv_lock);
+	cv_destroy(&vnic_tx->mv_cv);
+}
+
 static void
 i_mac_notify(mac_impl_t *mip, mac_notify_type_t type)
 {
@@ -311,6 +342,11 @@
 	    NULL, NULL, NULL, 0);
 	ASSERT(i_mac_impl_cachep != NULL);
 
+	mac_vnic_tx_cache = kmem_cache_create("mac_vnic_tx_cache",
+	    sizeof (mac_vnic_tx_t), 0, i_mac_vnic_tx_ctor, i_mac_vnic_tx_dtor,
+	    NULL, NULL, NULL, 0);
+	ASSERT(mac_vnic_tx_cache != NULL);
+
 	i_mac_impl_hash = mod_hash_create_extended("mac_impl_hash",
 	    IMPL_HASHSZ, mod_hash_null_keydtor, mod_hash_null_valdtor,
 	    mod_hash_bystr, NULL, mod_hash_strkey_cmp, KM_SLEEP);
@@ -333,6 +369,7 @@
 	rw_destroy(&i_mac_impl_lock);
 
 	kmem_cache_destroy(i_mac_impl_cachep);
+	kmem_cache_destroy(mac_vnic_tx_cache);
 
 	mod_hash_destroy_hash(i_mactype_hash);
 	return (0);
@@ -365,6 +402,9 @@
 	if (ddi_parse(macname, driver, &instance) != DDI_SUCCESS)
 		return (EINVAL);
 
+	if ((strcmp(driver, "aggr") == 0) || (strcmp(driver, "vnic") == 0))
+		ddi_instance = 0;
+
 	/*
 	 * Get the major number of the driver.
 	 */
@@ -870,7 +910,7 @@
 }
 
 const mac_txinfo_t *
-mac_tx_get(mac_handle_t mh)
+mac_do_tx_get(mac_handle_t mh, boolean_t is_vnic)
 {
 	mac_impl_t	*mip = (mac_impl_t *)mh;
 	mac_txinfo_t	*mtp;
@@ -881,24 +921,53 @@
 	 * call mac_txloop_add() prior to enabling MAC_PROMISC, and to disable
 	 * MAC_PROMISC prior to calling mac_txloop_remove().
 	 */
-	rw_enter(&mip->mi_txloop_lock, RW_READER);
+	rw_enter(&mip->mi_tx_lock, RW_READER);
 
 	if (mac_promisc_get(mh, MAC_PROMISC)) {
 		ASSERT(mip->mi_mtfp != NULL);
-		mtp = &mip->mi_txloopinfo;
+		if (mip->mi_vnic_present && !is_vnic) {
+			mtp = &mip->mi_vnic_txloopinfo;
+		} else {
+			mtp = &mip->mi_txloopinfo;
+		}
 	} else {
-		/*
-		 * Note that we cannot ASSERT() that mip->mi_mtfp is NULL,
-		 * because to satisfy the above ASSERT(), we have to disable
-		 * MAC_PROMISC prior to calling mac_txloop_remove().
-		 */
-		mtp = &mip->mi_txinfo;
+		if (mip->mi_vnic_present && !is_vnic) {
+			mtp = &mip->mi_vnic_txinfo;
+		} else {
+			/*
+			 * Note that we cannot ASSERT() that mip->mi_mtfp is
+			 * NULL, because to satisfy the above ASSERT(), we
+			 * have to disable MAC_PROMISC prior to calling
+			 * mac_txloop_remove().
+			 */
+			mtp = &mip->mi_txinfo;
+		}
 	}
 
-	rw_exit(&mip->mi_txloop_lock);
+	rw_exit(&mip->mi_tx_lock);
 	return (mtp);
 }
 
+/*
+ * Invoked by VNIC to obtain the transmit entry point.
+ */
+const mac_txinfo_t *
+mac_vnic_tx_get(mac_handle_t mh)
+{
+	return (mac_do_tx_get(mh, B_TRUE));
+}
+
+/*
+ * Invoked by any non-VNIC client to obtain the transmit entry point.
+ * If a VNIC is present, the VNIC transmit function provided by the VNIC
+ * will be returned to the MAC client.
+ */
+const mac_txinfo_t *
+mac_tx_get(mac_handle_t mh)
+{
+	return (mac_do_tx_get(mh, B_FALSE));
+}
+
 link_state_t
 mac_link_get(mac_handle_t mh)
 {
@@ -973,7 +1042,7 @@
  * can be found atop mac_rx().
  */
 mac_rx_handle_t
-mac_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg)
+mac_do_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg, boolean_t is_active)
 {
 	mac_impl_t	*mip = (mac_impl_t *)mh;
 	mac_rx_fn_t	*mrfp;
@@ -981,6 +1050,7 @@
 	mrfp = kmem_zalloc(sizeof (mac_rx_fn_t), KM_SLEEP);
 	mrfp->mrf_fn = rx;
 	mrfp->mrf_arg = arg;
+	mrfp->mrf_active = is_active;
 
 	/*
 	 * Add it to the head of the 'rx' callback list.
@@ -1005,6 +1075,18 @@
 	return ((mac_rx_handle_t)mrfp);
 }
 
+mac_rx_handle_t
+mac_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg)
+{
+	return (mac_do_rx_add(mh, rx, arg, B_FALSE));
+}
+
+mac_rx_handle_t
+mac_active_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg)
+{
+	return (mac_do_rx_add(mh, rx, arg, B_TRUE));
+}
+
 /*
  * Unregister a receive function for this mac.
  * This function does not block if wait is B_FALSE. This is useful
@@ -1087,10 +1169,10 @@
 	/*
 	 * Add it to the head of the 'tx' callback list.
 	 */
-	rw_enter(&(mip->mi_txloop_lock), RW_WRITER);
+	rw_enter(&(mip->mi_tx_lock), RW_WRITER);
 	mtfp->mtf_nextp = mip->mi_mtfp;
 	mip->mi_mtfp = mtfp;
-	rw_exit(&(mip->mi_txloop_lock));
+	rw_exit(&(mip->mi_tx_lock));
 
 	return ((mac_txloop_handle_t)mtfp);
 }
@@ -1110,7 +1192,7 @@
 	/*
 	 * Search the 'tx' callback list for the function.
 	 */
-	rw_enter(&(mip->mi_txloop_lock), RW_WRITER);
+	rw_enter(&(mip->mi_tx_lock), RW_WRITER);
 	for (pp = &(mip->mi_mtfp); (p = *pp) != NULL; pp = &(p->mtf_nextp)) {
 		if (p == mtfp)
 			break;
@@ -1120,7 +1202,7 @@
 	/* Remove it from the list. */
 	*pp = p->mtf_nextp;
 	kmem_free(mtfp, sizeof (mac_txloop_fn_t));
-	rw_exit(&(mip->mi_txloop_lock));
+	rw_exit(&(mip->mi_tx_lock));
 }
 
 void
@@ -1295,13 +1377,20 @@
 	mip->mi_dip = mregp->m_dip;
 
 	/*
-	 * Set up the two possible transmit routines.
+	 * Set up the possible transmit routines.
 	 */
 	mip->mi_txinfo.mt_fn = mip->mi_tx;
 	mip->mi_txinfo.mt_arg = mip->mi_driver;
+
+	mip->mi_vnic_txinfo.mt_fn = mac_vnic_tx;
+	mip->mi_vnic_txinfo.mt_arg = mip;
+
 	mip->mi_txloopinfo.mt_fn = mac_txloop;
 	mip->mi_txloopinfo.mt_arg = mip;
 
+	mip->mi_vnic_txloopinfo.mt_fn = mac_vnic_txloop;
+	mip->mi_vnic_txloopinfo.mt_arg = mip;
+
 	/*
 	 * Allocate a notification thread.
 	 */
@@ -1405,12 +1494,10 @@
 }
 
 int
-mac_unregister(mac_handle_t mh)
+mac_disable(mac_handle_t mh)
 {
 	int			err;
 	mac_impl_t		*mip = (mac_impl_t *)mh;
-	mod_hash_val_t		val;
-	mac_multicst_addr_t	*p, *nextp;
 
 	/*
 	 * See if there are any other references to this mac_t (e.g., VLAN's).
@@ -1432,6 +1519,29 @@
 		return (err);
 	}
 
+	return (0);
+}
+
+int
+mac_unregister(mac_handle_t mh)
+{
+	int			err;
+	mac_impl_t		*mip = (mac_impl_t *)mh;
+	mod_hash_val_t		val;
+	mac_multicst_addr_t	*p, *nextp;
+
+	/*
+	 * See if there are any other references to this mac_t (e.g., VLAN's).
+	 * If not, set mi_disabled to prevent any new VLAN's from being
+	 * created while we're destroying this mac. Once mac_disable() returns
+	 * 0, the rest of mac_unregister() stuff should continue without
+	 * returning an error.
+	 */
+	if (!mip->mi_disabled) {
+		if ((err = mac_disable(mh)) != 0)
+			return (err);
+	}
+
 	/*
 	 * Clean up notification thread (wait for it to exit).
 	 */
@@ -1508,8 +1618,9 @@
  * will be upgraded to WRITER mode when there are marked upcalls to be
  * cleaned.
  */
-void
-mac_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain)
+static void
+mac_do_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain,
+    boolean_t active_only)
 {
 	mac_impl_t	*mip = (mac_impl_t *)mh;
 	mblk_t		*bp = mp_chain;
@@ -1534,6 +1645,18 @@
 	do {
 		mblk_t *recv_bp;
 
+		if (active_only && !mrfp->mrf_active) {
+			mrfp = mrfp->mrf_nextp;
+			if (mrfp == NULL) {
+				/*
+				 * We hit the last receiver, but it's not
+				 * active.
+				 */
+				freemsgchain(bp);
+			}
+			continue;
+		}
+
 		recv_bp = (mrfp->mrf_nextp != NULL) ? copymsgchain(bp) : bp;
 		if (recv_bp != NULL) {
 			if (mrfp->mrf_inuse) {
@@ -1549,6 +1672,7 @@
 				freemsgchain(recv_bp);
 			}
 		}
+
 		mrfp = mrfp->mrf_nextp;
 	} while (mrfp != NULL);
 
@@ -1603,16 +1727,85 @@
 	rw_exit(&mip->mi_rx_lock);
 }
 
+void
+mac_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain)
+{
+	mac_do_rx(mh, mrh, mp_chain, B_FALSE);
+}
+
+/*
+ * Send a packet chain up to the receive callbacks which declared
+ * themselves as being active.
+ */
+void
+mac_active_rx(void *arg, mac_resource_handle_t mrh, mblk_t *mp_chain)
+{
+	mac_do_rx(arg, mrh, mp_chain, B_TRUE);
+}
+
+/*
+ * Function passed to the active client sharing a VNIC. This function
+ * is returned by mac_tx_get() when a VNIC is present. It invokes
+ * the VNIC transmit entry point which was specified by the VNIC when
+ * it called mac_vnic_set(). The VNIC transmit entry point will
+ * pass the packets to the local VNICs and/or to the underlying VNICs
+ * if needed.
+ */
+static mblk_t *
+mac_vnic_tx(void *arg, mblk_t *mp)
+{
+	mac_impl_t	*mip = arg;
+	mac_txinfo_t	*mtfp;
+	mac_vnic_tx_t	*mvt;
+
+	/*
+	 * There is a race between the notification of the VNIC
+	 * addition and removal, and the processing of the VNIC notification
+	 * by the MAC client. During this window, it is possible for
+	 * an active MAC client to contine invoking mac_vnic_tx() while
+	 * the VNIC has already been removed. So we cannot assume
+	 * that mi_vnic_present will always be true when mac_vnic_tx()
+	 * is invoked.
+	 */
+	rw_enter(&mip->mi_tx_lock, RW_READER);
+	if (!mip->mi_vnic_present) {
+		rw_exit(&mip->mi_tx_lock);
+		freemsgchain(mp);
+		return (NULL);
+	}
+
+	ASSERT(mip->mi_vnic_tx != NULL);
+	mvt = mip->mi_vnic_tx;
+	MAC_VNIC_TXINFO_REFHOLD(mvt);
+	rw_exit(&mip->mi_tx_lock);
+
+	mtfp = &mvt->mv_txinfo;
+	mtfp->mt_fn(mtfp->mt_arg, mp);
+
+	MAC_VNIC_TXINFO_REFRELE(mvt);
+	return (NULL);
+}
+
 /*
  * Transmit function -- ONLY used when there are registered loopback listeners.
  */
 mblk_t *
-mac_txloop(void *arg, mblk_t *bp)
+mac_do_txloop(void *arg, mblk_t *bp, boolean_t call_vnic)
 {
 	mac_impl_t	*mip = arg;
 	mac_txloop_fn_t	*mtfp;
 	mblk_t		*loop_bp, *resid_bp, *next_bp;
 
+	if (call_vnic) {
+		/*
+		 * In promiscous mode, a copy of the sent packet will
+		 * be sent to the client's promiscous receive entry
+		 * points via mac_vnic_tx()->
+		 * mac_active_rx_promisc()->mac_rx_default().
+		 */
+		return (mac_vnic_tx(arg, bp));
+	}
+
 	while (bp != NULL) {
 		next_bp = bp->b_next;
 		bp->b_next = NULL;
@@ -1626,7 +1819,7 @@
 			goto noresources;
 		}
 
-		rw_enter(&mip->mi_txloop_lock, RW_READER);
+		rw_enter(&mip->mi_tx_lock, RW_READER);
 		mtfp = mip->mi_mtfp;
 		while (mtfp != NULL && loop_bp != NULL) {
 			bp = loop_bp;
@@ -1640,7 +1833,7 @@
 			mtfp->mtf_fn(mtfp->mtf_arg, bp);
 			mtfp = mtfp->mtf_nextp;
 		}
-		rw_exit(&mip->mi_txloop_lock);
+		rw_exit(&mip->mi_tx_lock);
 
 		/*
 		 * It's possible we've raced with the disabling of promiscuous
@@ -1659,6 +1852,18 @@
 	return (bp);
 }
 
+mblk_t *
+mac_txloop(void *arg, mblk_t *bp)
+{
+	return (mac_do_txloop(arg, bp, B_FALSE));
+}
+
+static mblk_t *
+mac_vnic_txloop(void *arg, mblk_t *bp)
+{
+	return (mac_do_txloop(arg, bp, B_TRUE));
+}
+
 void
 mac_link_update(mac_handle_t mh, link_state_t link)
 {
@@ -1832,7 +2037,7 @@
 }
 
 boolean_t
-mac_active_set(mac_handle_t mh)
+mac_do_active_set(mac_handle_t mh, boolean_t shareable)
 {
 	mac_impl_t *mip = (mac_impl_t *)mh;
 
@@ -1842,10 +2047,30 @@
 		return (B_FALSE);
 	}
 	mip->mi_activelink = B_TRUE;
+	mip->mi_shareable = shareable;
 	mutex_exit(&mip->mi_activelink_lock);
 	return (B_TRUE);
 }
 
+/*
+ * Called by MAC clients. By default, active MAC clients cannot
+ * share the NIC with VNICs.
+ */
+boolean_t
+mac_active_set(mac_handle_t mh)
+{
+	return (mac_do_active_set(mh, B_FALSE));
+}
+
+/*
+ * Called by MAC clients which can share the NIC with VNICS, e.g. DLS.
+ */
+boolean_t
+mac_active_shareable_set(mac_handle_t mh)
+{
+	return (mac_do_active_set(mh, B_TRUE));
+}
+
 void
 mac_active_clear(mac_handle_t mh)
 {
@@ -1857,6 +2082,79 @@
 	mutex_exit(&mip->mi_activelink_lock);
 }
 
+boolean_t
+mac_vnic_set(mac_handle_t mh, mac_txinfo_t *tx_info, mac_getcapab_t getcapab_fn,
+    void *getcapab_arg)
+{
+	mac_impl_t	*mip = (mac_impl_t *)mh;
+	mac_vnic_tx_t	*vnic_tx;
+
+	mutex_enter(&mip->mi_activelink_lock);
+	rw_enter(&mip->mi_tx_lock, RW_WRITER);
+	ASSERT(!mip->mi_vnic_present);
+
+	if (mip->mi_activelink && !mip->mi_shareable) {
+		/*
+		 * The NIC is already used by an active client which cannot
+		 * share it with VNICs.
+		 */
+		rw_exit(&mip->mi_tx_lock);
+		mutex_exit(&mip->mi_activelink_lock);
+		return (B_FALSE);
+	}
+
+	vnic_tx = kmem_cache_alloc(mac_vnic_tx_cache, KM_SLEEP);
+	vnic_tx->mv_refs = 0;
+	vnic_tx->mv_txinfo = *tx_info;
+	vnic_tx->mv_clearing = B_FALSE;
+
+	mip->mi_vnic_present = B_TRUE;
+	mip->mi_vnic_tx = vnic_tx;
+	mip->mi_vnic_getcapab_fn = getcapab_fn;
+	mip->mi_vnic_getcapab_arg = getcapab_arg;
+	rw_exit(&mip->mi_tx_lock);
+	mutex_exit(&mip->mi_activelink_lock);
+
+	i_mac_notify(mip, MAC_NOTE_VNIC);
+	return (B_TRUE);
+}
+
+void
+mac_vnic_clear(mac_handle_t mh)
+{
+	mac_impl_t *mip = (mac_impl_t *)mh;
+	mac_vnic_tx_t	*vnic_tx;
+
+	rw_enter(&mip->mi_tx_lock, RW_WRITER);
+	ASSERT(mip->mi_vnic_present);
+	mip->mi_vnic_present = B_FALSE;
+	/*
+	 * Setting mi_vnic_tx to NULL here under the lock guarantees
+	 * that no new references to the current VNIC transmit structure
+	 * will be taken by mac_vnic_tx(). This is a necessary condition
+	 * for safely waiting for the reference count to drop to
+	 * zero below.
+	 */
+	vnic_tx = mip->mi_vnic_tx;
+	mip->mi_vnic_tx = NULL;
+	mip->mi_vnic_getcapab_fn = NULL;
+	mip->mi_vnic_getcapab_arg = NULL;
+	rw_exit(&mip->mi_tx_lock);
+
+	i_mac_notify(mip, MAC_NOTE_VNIC);
+
+	/*
+	 * Wait for all TX calls referencing the VNIC transmit
+	 * entry point that was removed to complete.
+	 */
+	mutex_enter(&vnic_tx->mv_lock);
+	vnic_tx->mv_clearing = B_TRUE;
+	while (vnic_tx->mv_refs > 0)
+		cv_wait(&vnic_tx->mv_cv, &vnic_tx->mv_lock);
+	mutex_exit(&vnic_tx->mv_lock);
+	kmem_cache_free(mac_vnic_tx_cache, vnic_tx);
+}
+
 /*
  * mac_info_get() is used for retrieving the mac_info when a DL_INFO_REQ is
  * issued before a DL_ATTACH_REQ. we walk the i_mac_impl_hash table and find
@@ -1906,10 +2204,24 @@
 }
 
 boolean_t
-mac_capab_get(mac_handle_t mh, mac_capab_t cap, void *cap_data)
+mac_do_capab_get(mac_handle_t mh, mac_capab_t cap, void *cap_data,
+    boolean_t is_vnic)
 {
 	mac_impl_t *mip = (mac_impl_t *)mh;
 
+	if (!is_vnic) {
+		rw_enter(&mip->mi_tx_lock, RW_READER);
+		if (mip->mi_vnic_present) {
+			boolean_t rv;
+
+			rv = mip->mi_vnic_getcapab_fn(mip->mi_vnic_getcapab_arg,
+			    cap, cap_data);
+			rw_exit(&mip->mi_tx_lock);
+			return (rv);
+		}
+		rw_exit(&mip->mi_tx_lock);
+	}
+
 	if (mip->mi_callbacks->mc_callbacks & MC_GETCAPAB)
 		return (mip->mi_getcapab(mip->mi_driver, cap, cap_data));
 	else
@@ -1917,6 +2229,18 @@
 }
 
 boolean_t
+mac_capab_get(mac_handle_t mh, mac_capab_t cap, void *cap_data)
+{
+	return (mac_do_capab_get(mh, cap, cap_data, B_FALSE));
+}
+
+boolean_t
+mac_vnic_capab_get(mac_handle_t mh, mac_capab_t cap, void *cap_data)
+{
+	return (mac_do_capab_get(mh, cap, cap_data, B_TRUE));
+}
+
+boolean_t
 mac_sap_verify(mac_handle_t mh, uint32_t sap, uint32_t *bind_sap)
 {
 	mac_impl_t	*mip = (mac_impl_t *)mh;
--- a/usr/src/uts/common/io/mem.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/mem.c	Tue Sep 18 15:46:43 2007 -0700
@@ -262,26 +262,6 @@
 	return (error);
 }
 
-/*
- * Some platforms have permanently-mapped areas without PFNs, so we check
- * specially here.
- */
-static int
-mmplatio(struct uio *uio, enum uio_rw rw)
-{
-	uintptr_t pageaddr = (uintptr_t)uio->uio_loffset & PAGEMASK;
-	off_t pageoff = uio->uio_loffset & PAGEOFFSET;
-	size_t nbytes = MIN((size_t)(PAGESIZE - pageoff),
-	    (size_t)uio->uio_iov->iov_len);
-
-	if (!plat_mem_valid_page(pageaddr, rw))
-		return (ENOTSUP);
-
-	return (uiomove((void *)(pageaddr + pageoff), nbytes, rw, uio));
-}
-
-#ifdef	__sparc
-
 static int
 mmpagelock(struct as *as, caddr_t va)
 {
@@ -296,6 +276,8 @@
 	return (i);
 }
 
+#ifdef	__sparc
+
 #define	NEED_LOCK_KVADDR(kva)	mmpagelock(&kas, kva)
 
 #else	/* __i386, __amd64 */
@@ -349,7 +331,7 @@
 			int try_lock = NEED_LOCK_KVADDR(vaddr);
 			int locked = 0;
 
-			if ((error = mmplatio(uio, rw)) != ENOTSUP)
+			if ((error = plat_mem_do_mmio(uio, rw)) != ENOTSUP)
 				break;
 
 			/*
--- a/usr/src/uts/common/io/ppp/spppcomp/zlib.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/io/ppp/spppcomp/zlib.c	Tue Sep 18 15:46:43 2007 -0700
@@ -67,7 +67,6 @@
 #ifdef SOL2
 #include <sys/cmn_err.h>
 #endif
-#undef u
 #define	HAVE_MEMCPY
 #define	memcmp		bcmp
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/io/vnic/vnic.conf	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,27 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+
+name="vnic" parent="pseudo" instance=0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/io/vnic/vnic_bcast.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,466 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/sysmacros.h>
+#include <sys/conf.h>
+#include <sys/cmn_err.h>
+#include <sys/list.h>
+#include <sys/kmem.h>
+#include <sys/stream.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/atomic.h>
+#include <sys/stat.h>
+#include <sys/modhash.h>
+#include <sys/strsubr.h>
+#include <sys/strsun.h>
+#include <sys/mac.h>
+#include <sys/vnic.h>
+#include <sys/vnic_impl.h>
+
+/*
+ * Broadcast and multicast traffic must be distributed to the VNICs
+ * that are defined on top of the same underlying NIC. The set of
+ * destinations to which a multicast packet must be sent is a subset
+ * of all VNICs defined on top of the same NIC. A VNIC can be member
+ * of more than one such subset.
+ *
+ * To accomodate these requirements, we introduce broadcast groups.
+ * A broadcast group is associated with a broadcast or multicast
+ * address. The members of a broadcast group consist of the VNICs
+ * that should received copies of packets sent to the address
+ * associated with the group, and are defined on top of the
+ * same underlying NIC. The underlying NIC is always implicetely
+ * part of the group.
+ *
+ * The broadcast groups defined on top of a underlying NIC are chained,
+ * hanging off vnic_mac_t structures.
+ */
+
+typedef struct vnic_bcast_grp_s {
+	struct vnic_bcast_grp_s	*vbg_next;
+	uint_t		vbg_refs;
+	void		*vbg_addr;
+	vnic_mac_t	*vbg_vnic_mac;
+	mac_addrtype_t	vbg_addrtype;
+	vnic_flow_t	*vbg_flow_ent;
+	vnic_t		**vbg_vnics;
+	uint_t		vbg_nvnics;
+	uint_t		vbg_nvnics_alloc;
+	uint64_t	vbg_vnics_gen;
+} vnic_bcast_grp_t;
+
+#define	VNIC_BCAST_GRP_REFHOLD(grp) {		\
+	atomic_add_32(&(grp)->vbg_refs, 1);	\
+	ASSERT((grp)->vbg_refs != 0);		\
+}
+
+#define	VNIC_BCAST_GRP_REFRELE(grp) {		\
+	ASSERT((grp)->vbg_refs != 0);		\
+	membar_exit();				\
+	if (atomic_add_32_nv(&(grp)->vbg_refs, -1) == 0)	\
+		vnic_bcast_grp_free(grp);	\
+}
+
+static kmem_cache_t *vnic_bcast_grp_cache;
+
+void
+vnic_bcast_init(void)
+{
+	vnic_bcast_grp_cache = kmem_cache_create("vnic_bcast_grp_cache",
+	    sizeof (vnic_bcast_grp_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
+}
+
+void
+vnic_bcast_fini(void)
+{
+	kmem_cache_destroy(vnic_bcast_grp_cache);
+}
+
+/*
+ * Free the specific broadcast group. Invoked when the last reference
+ * to the group is released.
+ */
+static void
+vnic_bcast_grp_free(vnic_bcast_grp_t *grp)
+{
+	vnic_mac_t *vnic_mac = grp->vbg_vnic_mac;
+
+	if (grp->vbg_addrtype == MAC_ADDRTYPE_MULTICAST) {
+		/*
+		 * The address is a multicast address, have the
+		 * underlying NIC leave the multicast group.
+		 */
+		(void) mac_multicst_remove(vnic_mac->va_mh, grp->vbg_addr);
+	}
+
+	ASSERT(grp->vbg_addr != NULL);
+	kmem_free(grp->vbg_addr, grp->vbg_vnic_mac->va_addr_len);
+
+	ASSERT(grp->vbg_vnics != NULL);
+	kmem_free(grp->vbg_vnics, grp->vbg_nvnics_alloc * sizeof (vnic_t *));
+
+	kmem_cache_free(vnic_bcast_grp_cache, grp);
+}
+
+void
+vnic_bcast_send(void *arg1, void *arg2, mblk_t *mp_chain)
+{
+	vnic_bcast_grp_t *grp = arg1;
+	vnic_t *sender_vnic = arg2, *vnic;
+	const vnic_flow_fn_info_t *fn_info;
+	krwlock_t *grp_lock = &grp->vbg_vnic_mac->va_bcast_grp_lock;
+	uint64_t gen;
+	uint_t i;
+	mblk_t *mp_chain1;
+	vnic_mac_t *vnic_mac = grp->vbg_vnics[0]->vn_vnic_mac;
+
+	VNIC_BCAST_GRP_REFHOLD(grp);
+	rw_enter(grp_lock, RW_READER);
+
+	/*
+	 * Pass a copy of the mp chain to every VNIC except the sender
+	 * VNIC, if the packet was not received from the underlying NIC.
+	 *
+	 * The broadcast group lock across calls to the flow's callback
+	 * function, since the same group could potentially be accessed
+	 * from the same context. When the lock is reacquired, changes
+	 * to the broadcast group while the lock was released
+	 * are caught using a generation counter incremented each time
+	 * the list of VNICs associated with the broadcast group
+	 * is changed.
+	 */
+	for (i = 0; i < grp->vbg_nvnics; i++) {
+		vnic = grp->vbg_vnics[i];
+		if (vnic == sender_vnic)
+			continue;
+
+		/*
+		 * If this consumer is in promiscuous mode then it
+		 * will have already seen a copy of the packet.
+		 */
+		if (vnic->vn_promisc)
+			continue;
+		/*
+		 * It is important to hold a reference on the
+		 * flow_ent here. vnic_dev_delete() may be waiting
+		 * to delete the vnic after removing it from grp.
+		 */
+		if ((mp_chain1 = vnic_copymsgchain_cksum(mp_chain)) == NULL)
+			break;
+		/*
+		 * Fix the checksum for packets originating
+		 * from the local machine.
+		 */
+		if ((sender_vnic != NULL) &&
+		    ((mp_chain1 = vnic_fix_cksum(mp_chain1)) == NULL))
+			break;
+		VNIC_FLOW_REFHOLD(vnic->vn_flow_ent);
+		fn_info = vnic_classifier_get_fn_info(vnic->vn_flow_ent);
+		gen = grp->vbg_vnics_gen;
+		rw_exit(grp_lock);
+		(fn_info->ff_fn)(fn_info->ff_arg1, fn_info->ff_arg2, mp_chain1);
+		VNIC_FLOW_REFRELE(vnic->vn_flow_ent);
+		rw_enter(grp_lock, RW_READER);
+
+		/* update stats */
+		if (grp->vbg_addrtype == MAC_ADDRTYPE_MULTICAST)
+			vnic->vn_stat_multircv++;
+		else
+			vnic->vn_stat_brdcstrcv++;
+
+		if (grp->vbg_vnics_gen != gen) {
+			/*
+			 * The list of VNICs associated with the group
+			 * was changed while the lock was released.
+			 * Give up on the current packet.
+			 */
+			freemsgchain(mp_chain);
+			goto bail;
+		}
+	}
+
+	if (sender_vnic != NULL) {
+		/*
+		 * The packet was sent from one of the VNICs
+		 * (vnic_active_tx()), or from the active MAC
+		 * (vnic_active_tx()). In both cases, we need to send
+		 * a copy of the packet to the underlying NIC so that
+		 * it can be sent on the wire.
+		 */
+		const mac_txinfo_t *mtp = vnic_mac->va_txinfo;
+		mblk_t *rest;
+
+		if ((mp_chain1 = vnic_copymsgchain_cksum(mp_chain)) != NULL) {
+			rw_exit(grp_lock);
+			rest = mtp->mt_fn(mtp->mt_arg, mp_chain1);
+			rw_enter(grp_lock, RW_READER);
+			if (rest != NULL)
+				freemsgchain(rest);
+		}
+	}
+
+	if ((sender_vnic != (vnic_t *)-1) && (sender_vnic != NULL)) {
+		/*
+		 * Called while sending a packet from one of the VNICs.
+		 * Make sure the active interface gets its copy.
+		 */
+		mp_chain1 = (sender_vnic != NULL) ? vnic_fix_cksum(mp_chain) :
+		    mp_chain;
+		if (mp_chain1 != NULL) {
+			rw_exit(grp_lock);
+			mac_active_rx(vnic_mac->va_mh, NULL, mp_chain1);
+			rw_enter(grp_lock, RW_READER);
+		}
+	} else {
+		freemsgchain(mp_chain);
+	}
+bail:
+	rw_exit(grp_lock);
+	VNIC_BCAST_GRP_REFRELE(grp);
+}
+
+/*
+ * Add the specified VNIC to the group corresponding to the specified
+ * broadcast or multicast address.
+ * Return 0 on success, or an errno value on failure.
+ */
+int
+vnic_bcast_add(vnic_t *vnic, const uint8_t *addr, mac_addrtype_t addrtype)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	vnic_bcast_grp_t *grp = NULL, **last_grp;
+	int rc = 0;
+
+	ASSERT(addrtype == MAC_ADDRTYPE_MULTICAST ||
+	    addrtype == MAC_ADDRTYPE_BROADCAST);
+
+	rw_enter(&vnic_mac->va_bcast_grp_lock, RW_WRITER);
+
+	/*
+	 * Does a group with the specified broadcast address already
+	 * exist for the underlying NIC?
+	 */
+	last_grp = &vnic_mac->va_bcast_grp;
+	for (grp = *last_grp; grp != NULL;
+	    last_grp = &grp->vbg_next, grp = grp->vbg_next) {
+		if (bcmp(grp->vbg_addr, addr, vnic_mac->va_addr_len) == 0)
+			break;
+	}
+
+	if (grp == NULL) {
+		/*
+		 * The group does not yet exist, create it.
+		 */
+		grp = kmem_cache_alloc(vnic_bcast_grp_cache, KM_SLEEP);
+		bzero(grp, sizeof (vnic_bcast_grp_t));
+		grp->vbg_next = NULL;
+		ASSERT(grp->vbg_refs == 0);
+		grp->vbg_vnic_mac = vnic_mac;
+
+		grp->vbg_addr = kmem_zalloc(vnic_mac->va_addr_len, KM_SLEEP);
+		bcopy(addr, grp->vbg_addr, vnic_mac->va_addr_len);
+		grp->vbg_addrtype = addrtype;
+
+		/*
+		 * Add a new flow for the broadcast address.
+		 */
+		grp->vbg_flow_ent = vnic_classifier_flow_create(
+		    vnic_mac->va_addr_len, (uchar_t *)addr, grp, B_FALSE,
+		    KM_NOSLEEP);
+		if (grp->vbg_flow_ent == NULL) {
+			rc = ENOMEM;
+			goto bail;
+		}
+
+		/*
+		 * When the multicast and broadcast packet is received
+		 * by the underlying NIC, mac_rx_classify() will invoke
+		 * vnic_bcast_send() with arg2=NULL, which will cause
+		 * vnic_bcast_send() to send a copy of the packet(s)
+		 * to every VNIC defined on top of the underlying MAC.
+		 *
+		 * When the vnic_bcast_send() function is invoked from
+		 * the VNIC transmit path, it will specify the transmitting
+		 * VNIC as the arg2 value, which will allow vnic_bcast_send()
+		 * to skip that VNIC and not send it a copy of the packet.
+		 *
+		 * We program the classifier to dispatch matching broadcast
+		 * packets to vnic_bcast_send().
+		 * We need a ring allocated for this bcast flow, so that
+		 * later snooping of the underlying MAC uses the same scheme
+		 * of intercepting the ring's receiver to mac_rx_promisc().
+		 * For the economy of hardware resources, we command the MAC
+		 * classifier to use a soft ring for these broadcast and
+		 * multicast flows.
+		 */
+		vnic_classifier_flow_add(vnic_mac, grp->vbg_flow_ent,
+		    vnic_bcast_send, grp, NULL);
+
+		/*
+		 * For multicast addresses, have the underlying MAC
+		 * join the corresponsing multicast group.
+		 */
+		if ((addrtype == MAC_ADDRTYPE_MULTICAST) &&
+		    ((rc = mac_multicst_add(vnic_mac->va_mh, addr)) != 0)) {
+			vnic_classifier_flow_remove(vnic->vn_vnic_mac,
+			    grp->vbg_flow_ent);
+			vnic_classifier_flow_destroy(grp->vbg_flow_ent);
+			goto bail;
+		}
+
+		*last_grp = grp;
+	}
+
+	/*
+	 * Add the VNIC to the list of VNICs associated with the group.
+	 */
+	if (grp->vbg_nvnics_alloc == grp->vbg_nvnics) {
+		vnic_t **new_vnics;
+		uint_t new_size = grp->vbg_nvnics+1;
+
+		new_vnics = kmem_zalloc(new_size * sizeof (vnic_t *),
+		    KM_SLEEP);
+
+		if (grp->vbg_nvnics) {
+			ASSERT(grp->vbg_vnics != NULL);
+			bcopy(grp->vbg_vnics, new_vnics, grp->vbg_nvnics *
+			    sizeof (vnic_t *));
+			kmem_free(grp->vbg_vnics, grp->vbg_nvnics *
+			    sizeof (vnic_t *));
+		}
+
+		grp->vbg_vnics = new_vnics;
+		grp->vbg_nvnics_alloc = new_size;
+	}
+
+	grp->vbg_vnics[grp->vbg_nvnics++] = vnic;
+
+	/*
+	 * Since we're adding to the list of VNICs using that group,
+	 * kick the generation count, which will allow vnic_bcast_send()
+	 * to detect that condition.
+	 */
+	grp->vbg_vnics_gen++;
+
+	VNIC_BCAST_GRP_REFHOLD(grp);
+
+bail:
+	if (rc != 0 && grp != NULL) {
+		kmem_free(grp->vbg_addr, vnic_mac->va_addr_len);
+		kmem_cache_free(vnic_bcast_grp_cache, grp);
+	}
+
+	rw_exit(&vnic->vn_vnic_mac->va_bcast_grp_lock);
+	return (rc);
+}
+
+/*
+ * Remove the specified VNIC from the group corresponding to
+ * the specific broadcast or multicast address.
+ *
+ * Note: vnic_bcast_delete() calls  net_remove_flow() which
+ * will call cv_wait for fe_refcnt to drop to 0. So this function
+ * should not be called from interrupt or STREAMS context. The only
+ * callers are vnic_dev_delete() and vnic_m_multicst() (both of
+ * which are called from taskq thread context).
+ */
+void
+vnic_bcast_delete(vnic_t *vnic, const uint8_t *addr)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	vnic_bcast_grp_t *grp, **prev;
+	uint_t i;
+	boolean_t removing_grp = B_FALSE;
+
+	rw_enter(&vnic_mac->va_bcast_grp_lock, RW_WRITER);
+
+	/* find the broadcast group */
+	prev = &vnic_mac->va_bcast_grp;
+	for (grp = vnic_mac->va_bcast_grp; grp != NULL; prev = &grp->vbg_next,
+	    grp = grp->vbg_next) {
+		if (bcmp(grp->vbg_addr, addr, vnic_mac->va_addr_len) == 0)
+			break;
+	}
+	ASSERT(grp != NULL);
+
+	/*
+	 * Remove the VNIC from the list of VNICs associated with that
+	 * broadcast group.
+	 *
+	 * We keep the vbg_vnics[] always compact by repacing
+	 * the removed vnic with the last non NULL element in that array.
+	 */
+
+	for (i = 0; i < grp->vbg_nvnics; i++) {
+		if (grp->vbg_vnics[i] == vnic)
+			break;
+	}
+
+	ASSERT(i < grp->vbg_nvnics);
+
+	if (i == (grp->vbg_nvnics-1)) {
+		grp->vbg_vnics[i] = NULL;
+	} else {
+		grp->vbg_vnics[i] = grp->vbg_vnics[grp->vbg_nvnics-1];
+		grp->vbg_vnics[grp->vbg_nvnics-1] = NULL;
+	}
+
+	/*
+	 * Since we're removing from the list of VNICs using that group,
+	 * kick the generation count, which will allow vnic_bcast_send()
+	 * to detect that condition.
+	 */
+	grp->vbg_vnics_gen++;
+
+	if (--grp->vbg_nvnics == 0) {
+		/*
+		 * Unlink the current group from the list of groups
+		 * defined on top of the underlying NIC. The group
+		 * structure will stay around until the last reference
+		 * is dropped.
+		 */
+		*prev = grp->vbg_next;
+		removing_grp = B_TRUE;
+	}
+
+	rw_exit(&vnic->vn_vnic_mac->va_bcast_grp_lock);
+
+	/*
+	 * If the group itself is being removed, remove the
+	 * corresponding flow from the underlying NIC.
+	 */
+	if (removing_grp) {
+		vnic_classifier_flow_remove(vnic->vn_vnic_mac,
+		    grp->vbg_flow_ent);
+		vnic_classifier_flow_destroy(grp->vbg_flow_ent);
+	}
+
+	VNIC_BCAST_GRP_REFRELE(grp);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/io/vnic/vnic_cl.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,319 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/vnic.h>
+#include <sys/vnic_impl.h>
+
+/*
+ * Virtual Network Interface Card (VNIC) classification.
+ *
+ * The VNIC implements a software classifier which is used to steer
+ * traffic (locally and externally generated) to the appropriate VNIC
+ * based on MAC addresses.
+ */
+
+static kmem_cache_t *vnic_flow_cache;
+static kmem_cache_t *vnic_flow_tab_cache;
+
+static void vnic_classifier_rx(void *, mac_resource_handle_t, mblk_t *);
+
+/* ARGSUSED */
+static int
+vnic_classifier_flow_tab_ctor(void *buf, void *arg, int km_flag)
+{
+	vnic_flow_tab_t *flow_tab = buf;
+
+	bzero(flow_tab, sizeof (vnic_flow_tab_t));
+	rw_init(&flow_tab->vt_lock, NULL, RW_DRIVER, NULL);
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+vnic_classifier_flow_tab_dtor(void *buf, void *arg)
+{
+	vnic_flow_tab_t *flow_tab = buf;
+
+	rw_destroy(&flow_tab->vt_lock);
+}
+
+/* ARGSUSED */
+static int
+vnic_classifier_flow_ctor(void *buf, void *arg, int km_flag)
+{
+	vnic_flow_t *flow = buf;
+
+	bzero(flow, sizeof (vnic_flow_t));
+	mutex_init(&flow->vf_lock, NULL, MUTEX_DRIVER, NULL);
+	cv_init(&flow->vf_cv, NULL, CV_DRIVER, NULL);
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+vnic_classifier_flow_dtor(void *buf, void *arg)
+{
+	vnic_flow_t *flow = buf;
+
+	ASSERT(flow->vf_refs == 0);
+	mutex_destroy(&flow->vf_lock);
+	cv_destroy(&flow->vf_cv);
+}
+
+void
+vnic_classifier_init(void)
+{
+	vnic_flow_cache = kmem_cache_create("vnic_flow_cache",
+	    sizeof (vnic_flow_t), 0, vnic_classifier_flow_ctor,
+	    vnic_classifier_flow_dtor, NULL, NULL, NULL, 0);
+	vnic_flow_tab_cache = kmem_cache_create("vnic_flow_tab_cache",
+	    sizeof (vnic_flow_tab_t), 0, vnic_classifier_flow_tab_ctor,
+	    vnic_classifier_flow_tab_dtor, NULL, NULL, NULL, 0);
+}
+
+void
+vnic_classifier_fini(void)
+{
+	kmem_cache_destroy(vnic_flow_cache);
+	kmem_cache_destroy(vnic_flow_tab_cache);
+}
+
+int
+vnic_classifier_flow_tab_init(vnic_mac_t *vnic_mac, uint_t mac_len,
+    int km_flag)
+{
+	vnic_mac->va_flow_tab = kmem_cache_alloc(vnic_flow_tab_cache, km_flag);
+	if (vnic_mac->va_flow_tab == NULL)
+		return (ENOMEM);
+	vnic_mac->va_rx_hdl = mac_rx_add(vnic_mac->va_mh, vnic_classifier_rx,
+	    vnic_mac);
+	vnic_mac->va_flow_tab->vt_addr_len = mac_len;
+	return (0);
+}
+
+void
+vnic_classifier_flow_tab_fini(vnic_mac_t *vnic_mac)
+{
+	vnic_flow_tab_t *flow_tab = vnic_mac->va_flow_tab;
+
+	ASSERT(flow_tab->vt_flow_list == NULL);
+	mac_rx_remove(vnic_mac->va_mh, vnic_mac->va_rx_hdl, B_TRUE);
+	kmem_cache_free(vnic_flow_tab_cache, flow_tab);
+	vnic_mac->va_flow_tab = NULL;
+}
+
+vnic_flow_t *
+vnic_classifier_flow_create(uint_t mac_len, uchar_t *mac_addr,
+    void *flow_cookie, boolean_t is_active, int km_flag)
+{
+	vnic_flow_t *flow;
+
+	ASSERT(mac_len <= MAXMACADDRLEN);
+
+	if ((flow = kmem_cache_alloc(vnic_flow_cache, km_flag)) == NULL)
+		return (NULL);
+
+	flow->vf_addr_len = mac_len;
+	flow->vf_cookie = flow_cookie;
+	flow->vf_clearing = B_FALSE;
+	flow->vf_is_active = is_active;
+	bcopy(mac_addr, flow->vf_addr, mac_len);
+	return (flow);
+}
+
+void
+vnic_classifier_flow_destroy(vnic_flow_t *flow)
+{
+	kmem_cache_free(vnic_flow_cache, flow);
+}
+
+void
+vnic_classifier_flow_add(vnic_mac_t *vnic_mac, vnic_flow_t *flow,
+    vnic_rx_fn_t rx_fn, void *rx_arg1, void *rx_arg2)
+{
+	vnic_flow_tab_t *flow_tab = vnic_mac->va_flow_tab;
+	vnic_flow_t **cur_flow;
+
+	ASSERT(flow->vf_addr_len == flow_tab->vt_addr_len);
+
+	/* initialize the flow structure */
+	flow->vf_fn_info.ff_fn = rx_fn;
+	flow->vf_fn_info.ff_arg1 = rx_arg1;
+	flow->vf_fn_info.ff_arg2 = rx_arg2;
+
+	/* add to the flow table */
+	rw_enter(&flow_tab->vt_lock, RW_WRITER);
+	for (cur_flow = &flow_tab->vt_flow_list;
+	    *cur_flow != NULL;
+	    cur_flow = &(*cur_flow)->vf_next)
+		;
+	*cur_flow = flow;
+	flow->vf_next = NULL;
+	rw_exit(&flow_tab->vt_lock);
+}
+
+void
+vnic_classifier_flow_remove(vnic_mac_t *vnic_mac, vnic_flow_t *flow)
+{
+	vnic_flow_tab_t *flow_tab = vnic_mac->va_flow_tab;
+	vnic_flow_t **prev, *cur;
+
+	/* unlink from list */
+	rw_enter(&flow_tab->vt_lock, RW_WRITER);
+	prev = &flow_tab->vt_flow_list;
+	for (cur = *prev; cur != NULL && cur != flow;
+	    prev = &cur->vf_next, cur = cur->vf_next)
+		;
+	*prev = cur->vf_next;
+	rw_exit(&flow_tab->vt_lock);
+
+	/* wait for all references to the flow to go away */
+	mutex_enter(&flow->vf_lock);
+	flow->vf_clearing = B_TRUE;
+	while (flow->vf_refs > 0)
+		cv_wait(&flow->vf_cv, &flow->vf_lock);
+	mutex_exit(&flow->vf_lock);
+}
+
+void
+vnic_classifier_flow_update_addr(vnic_flow_t *flow, uchar_t *mac_addr)
+{
+	bcopy(mac_addr, flow->vf_addr, flow->vf_addr_len);
+}
+
+void
+vnic_classifier_flow_update_fn(vnic_flow_t *flow, vnic_rx_fn_t fn,
+    void *arg1, void *arg2)
+{
+	flow->vf_fn_info.ff_fn = fn;
+	flow->vf_fn_info.ff_arg1 = arg1;
+	flow->vf_fn_info.ff_arg2 = arg2;
+}
+
+vnic_flow_t *
+vnic_classifier_get_flow(vnic_mac_t *vnic_mac, mblk_t *mp)
+{
+	vnic_flow_tab_t *flow_tab = vnic_mac->va_flow_tab;
+	vnic_flow_t *flow;
+	mac_header_info_t hdr_info;
+
+	if (mac_header_info(vnic_mac->va_mh, mp, &hdr_info) != 0)
+		return (NULL);
+
+	rw_enter(&flow_tab->vt_lock, RW_READER);
+	for (flow = flow_tab->vt_flow_list; flow != NULL;
+	    flow = flow->vf_next) {
+		if (bcmp(hdr_info.mhi_daddr, flow->vf_addr,
+		    flow_tab->vt_addr_len) == 0) {
+			VNIC_FLOW_REFHOLD(flow);
+			break;
+		}
+	}
+	rw_exit(&flow_tab->vt_lock);
+	return (flow);
+}
+
+void *
+vnic_classifier_get_client_cookie(vnic_flow_t *flow)
+{
+	return (flow->vf_cookie);
+}
+
+vnic_flow_fn_info_t *
+vnic_classifier_get_fn_info(vnic_flow_t *flow)
+{
+	return (&flow->vf_fn_info);
+}
+
+boolean_t
+vnic_classifier_is_active(vnic_flow_t *flow)
+{
+	return (flow->vf_is_active);
+}
+
+/*
+ * Receive function registered with the MAC layer. Classifies
+ * the packets, i.e. finds the flows matching the packets passed
+ * as argument, and invokes the callback functions associated with
+ * these flows.
+ */
+/*ARGSUSED*/
+static void
+vnic_classifier_rx(void *arg, mac_resource_handle_t mrh, mblk_t *mp)
+{
+	vnic_mac_t *vnic_mac = arg;
+	vnic_flow_t *flow;
+	mblk_t *next_mp;
+	const vnic_flow_fn_info_t *fn_info;
+
+	while (mp != NULL) {
+		next_mp = mp->b_next;
+		mp->b_next = NULL;
+
+		vnic_promisc_rx(vnic_mac, NULL, mp);
+
+		flow = vnic_classifier_get_flow(vnic_mac, mp);
+		if (flow == NULL) {
+			freemsg(mp);
+		} else {
+			if (flow->vf_is_active) {
+				/*
+				 * Inbound packets are delivered to the
+				 * active MAC through mac_rx() of the
+				 * the NIC.
+				 */
+				freemsg(mp);
+			} else {
+				vnic_t *vnic;
+
+				fn_info = vnic_classifier_get_fn_info(flow);
+
+				/*
+				 * If the vnic to which we would
+				 * deliver this packet is in
+				 * promiscuous mode then it already
+				 * received the packet via
+				 * vnic_promisc_rx().
+				 *
+				 * XXX assumes that ff_arg2 is a
+				 * vnic_t pointer if it is non-NULL
+				 * (currently always true).
+				 */
+				vnic = (vnic_t *)fn_info->ff_arg2;
+				if ((vnic != NULL) && vnic->vn_promisc) {
+					freemsg(mp);
+				} else {
+					(fn_info->ff_fn)(fn_info->ff_arg1,
+					    fn_info->ff_arg2, mp);
+				}
+			}
+			VNIC_FLOW_REFRELE(flow);
+		}
+		mp = next_mp;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/io/vnic/vnic_ctl.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,577 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Virtual Network Interface Card (VNIC)
+ */
+
+#include <sys/ddi.h>
+#include <sys/strsun.h>
+#include <sys/dld.h>
+#include <sys/dld_impl.h>
+#include <sys/conf.h>
+#include <sys/modctl.h>
+#include <sys/stat.h>
+#include <sys/vnic.h>
+#include <sys/vnic_impl.h>
+#include <inet/common.h>
+
+/* module description */
+#define	VNIC_LINKINFO		"VNIC MAC"
+#define	VNIC_DRIVER_NAME	"vnic"
+
+/* device info ptr, only one for instance 0 */
+static dev_info_t *vnic_dip = NULL;
+
+/* for control interface */
+static int vnic_getinfo(dev_info_t *, ddi_info_cmd_t, void *, void **);
+static int vnic_attach(dev_info_t *, ddi_attach_cmd_t);
+static int vnic_detach(dev_info_t *, ddi_detach_cmd_t);
+static int vnic_open(queue_t *, dev_t *, int, int, cred_t *);
+static int vnic_close(queue_t *);
+static void vnic_wput(queue_t *, mblk_t *);
+
+typedef struct vnic_taskq_args_s {
+	queue_t	*tq_vnic_q;
+	mblk_t	*tq_vnic_mp;
+	int	tq_vnic_flag;
+} vnic_taskq_args_t;
+
+static void vnic_ioc_create(vnic_taskq_args_t *);
+static void vnic_ioc_modify(vnic_taskq_args_t *);
+static void vnic_ioc_delete(vnic_taskq_args_t *);
+static void vnic_ioc_info(vnic_taskq_args_t *);
+
+typedef struct ioc_cmd_s {
+	int ic_cmd;
+	void (*ic_func)(vnic_taskq_args_t *);
+} ioc_cmd_t;
+
+static ioc_cmd_t ioc_cmd[] = {
+	{VNIC_IOC_CREATE, vnic_ioc_create},
+	{VNIC_IOC_DELETE, vnic_ioc_delete},
+	{VNIC_IOC_INFO, vnic_ioc_info},
+	{VNIC_IOC_MODIFY, vnic_ioc_modify}
+};
+
+#define	IOC_CMD_SZ (sizeof (ioc_cmd) / sizeof (ioc_cmd_t))
+
+/*
+ * mi_hiwat is set to 1 because of the flow control mechanism implemented
+ * in dld. refer to the comments in dld_str.c for details.
+ */
+static struct module_info vnic_module_info = {
+	0,
+	VNIC_DRIVER_NAME,
+	0,
+	INFPSZ,
+	1,
+	0
+};
+
+static struct qinit vnic_r_qinit = {	/* read queues */
+	NULL,
+	NULL,
+	vnic_open,
+	vnic_close,
+	NULL,
+	&vnic_module_info
+};
+
+static struct qinit vnic_w_qinit = {	/* write queues */
+	(pfi_t)dld_wput,
+	(pfi_t)dld_wsrv,
+	NULL,
+	NULL,
+	NULL,
+	&vnic_module_info
+};
+
+/*
+ * Entry points for vnic control node
+ */
+static struct qinit vnic_w_ctl_qinit = {
+	(pfi_t)vnic_wput,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	&vnic_module_info
+};
+
+static struct streamtab vnic_streamtab = {
+	&vnic_r_qinit,
+	&vnic_w_qinit
+};
+
+DDI_DEFINE_STREAM_OPS(vnic_dev_ops, nulldev, nulldev, vnic_attach, vnic_detach,
+    nodev, vnic_getinfo, D_MP, &vnic_streamtab);
+
+static struct modldrv vnic_modldrv = {
+	&mod_driverops,		/* Type of module.  This one is a driver */
+	VNIC_LINKINFO,		/* short description */
+	&vnic_dev_ops		/* driver specific ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	&vnic_modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modlinkage));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modlinkage));
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+static int
+vnic_open(queue_t *q, dev_t *devp, int flag, int sflag, cred_t *credp)
+{
+	if (q->q_ptr != NULL)
+		return (EBUSY);
+
+	if (getminor(*devp) == VNIC_CTL_NODE_MINOR) {
+		dld_str_t	*dsp;
+
+		dsp = dld_str_create(q, DLD_CONTROL, getmajor(*devp),
+		    DL_STYLE1);
+		if (dsp == NULL)
+			return (ENOSR);
+
+		/*
+		 * The VNIC control node uses its own set of entry points.
+		 */
+		WR(q)->q_qinfo = &vnic_w_ctl_qinit;
+		*devp = makedevice(getmajor(*devp), dsp->ds_minor);
+		qprocson(q);
+		return (0);
+	}
+	return (dld_open(q, devp, flag, sflag, credp));
+}
+
+static int
+vnic_close(queue_t *q)
+{
+	dld_str_t	*dsp = q->q_ptr;
+
+	if (dsp->ds_type == DLD_CONTROL) {
+		qprocsoff(q);
+		dld_str_destroy(dsp);
+		return (0);
+	}
+	return (dld_close(q));
+}
+
+void
+vnic_ioctl(queue_t *wq, mblk_t *mp)
+{
+	/* LINTED alignment */
+	struct iocblk *iocp = (struct iocblk *)mp->b_rptr;
+	int i, err = 0;
+	mblk_t *nmp;
+	void (*func)();
+	vnic_taskq_args_t *taskq_args;
+
+	if (mp->b_cont == NULL) {
+		err = EINVAL;
+		goto done;
+	}
+
+	/*
+	 * Construct contiguous message
+	 */
+	if ((nmp = msgpullup(mp->b_cont, -1)) == NULL) {
+		freemsg(mp->b_cont);
+		err = ENOMEM;
+		goto done;
+	}
+
+	freemsg(mp->b_cont);
+	mp->b_cont = nmp;
+
+	for (i = 0; i < IOC_CMD_SZ; i++) {
+		if (iocp->ioc_cmd == ioc_cmd[i].ic_cmd) {
+			func = ioc_cmd[i].ic_func;
+			break;
+		}
+	}
+
+	if (i == IOC_CMD_SZ) {
+		freemsg(mp->b_cont);
+		err = EINVAL;
+		goto done;
+	}
+
+	taskq_args = kmem_zalloc(sizeof (vnic_taskq_args_t), KM_NOSLEEP);
+	if (taskq_args == NULL) {
+		freemsg(mp->b_cont);
+		err = ENOMEM;
+		goto done;
+	}
+
+	taskq_args->tq_vnic_q = wq;
+	taskq_args->tq_vnic_mp = mp;
+	taskq_args->tq_vnic_flag = (int)iocp->ioc_flag;
+	if (taskq_dispatch(system_taskq,
+	    func, taskq_args, TQ_NOSLEEP) == NULL) {
+		kmem_free(taskq_args, sizeof (vnic_taskq_args_t));
+		freemsg(mp->b_cont);
+		err = ENOMEM;
+		goto done;
+	}
+
+done:
+	if (err != 0)
+		miocnak(wq, mp, 0, err);
+}
+
+static void
+vnic_wput(queue_t *q, mblk_t *mp)
+{
+	if (DB_TYPE(mp) == M_IOCTL)
+		vnic_ioctl(q, mp);
+	else
+		freemsg(mp);
+}
+
+static void
+vnic_init(void)
+{
+	vnic_dev_init();
+	vnic_bcast_init();
+	vnic_classifier_init();
+}
+
+static void
+vnic_fini(void)
+{
+	vnic_dev_fini();
+	vnic_bcast_fini();
+	vnic_classifier_fini();
+}
+
+dev_info_t *
+vnic_get_dip(void)
+{
+	return (vnic_dip);
+}
+
+/*ARGSUSED*/
+static int
+vnic_getinfo(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg,
+    void **result)
+{
+	switch (infocmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		*result = vnic_dip;
+		return (DDI_SUCCESS);
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = NULL;
+		return (DDI_SUCCESS);
+	}
+	return (DDI_FAILURE);
+}
+
+static int
+vnic_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	switch (cmd) {
+	case DDI_ATTACH:
+		if (ddi_get_instance(dip) != 0) {
+			/* we only allow instance 0 to attach */
+			return (DDI_FAILURE);
+		}
+
+		/* create minor node for control interface */
+		if (ddi_create_minor_node(dip, VNIC_CTL_NODE_NAME, S_IFCHR,
+		    VNIC_CTL_NODE_MINOR, DDI_PSEUDO, 0) != DDI_SUCCESS) {
+			return (DDI_FAILURE);
+		}
+
+		vnic_dip = dip;
+		vnic_init();
+
+		return (DDI_SUCCESS);
+
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+
+	default:
+		return (DDI_FAILURE);
+	}
+}
+
+/*ARGSUSED*/
+static int
+vnic_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	switch (cmd) {
+	case DDI_DETACH:
+		/*
+		 * Allow the VNIC instance to be detached only if there
+		 * are not VNICs configured.
+		 */
+		if (vnic_dev_count() > 0)
+			return (DDI_FAILURE);
+
+		vnic_dip = NULL;
+		vnic_fini();
+		ddi_remove_minor_node(dip, VNIC_CTL_NODE_NAME);
+
+		return (DDI_SUCCESS);
+
+	case DDI_SUSPEND:
+		return (DDI_SUCCESS);
+
+	default:
+		return (DDI_FAILURE);
+	}
+}
+
+/*
+ * Process a VNICIOC_CREATE request.
+ */
+static void
+vnic_ioc_create(vnic_taskq_args_t *taskq_args)
+{
+	STRUCT_HANDLE(vnic_ioc_create, create_arg);
+	queue_t *wq = taskq_args->tq_vnic_q;
+	mblk_t *mp = taskq_args->tq_vnic_mp;
+	int mode = taskq_args->tq_vnic_flag;
+	int rc = 0;
+	int mac_len;
+	uchar_t mac_addr[MAXMACADDRLEN];
+	uint_t vnic_id;
+	char dev_name[MAXNAMELEN + 1];
+	vnic_mac_addr_type_t mac_addr_type;
+
+	kmem_free(taskq_args, sizeof (vnic_taskq_args_t));
+	STRUCT_SET_HANDLE(create_arg, mode, (void *)mp->b_cont->b_rptr);
+	if (MBLKL(mp->b_cont) < STRUCT_SIZE(create_arg)) {
+		rc = EINVAL;
+		goto bail;
+	}
+
+	/*
+	 * VNIC id. For now it is specified by the user. Once we have
+	 * vanity naming, we can pick a value for the user, and let
+	 * the user assign a generic name to the VNIC (XXXND)
+	 */
+	vnic_id = STRUCT_FGET(create_arg, vc_vnic_id);
+
+	/*
+	 * Device name and number of the MAC port the VNIC is defined
+	 * on top of.
+	 */
+	bcopy(STRUCT_FGET(create_arg, vc_dev_name), dev_name, MAXNAMELEN);
+
+	/* MAC address */
+	mac_addr_type = STRUCT_FGET(create_arg, vc_mac_addr_type);
+	mac_len = STRUCT_FGET(create_arg, vc_mac_len);
+
+	switch (mac_addr_type) {
+	case VNIC_MAC_ADDR_TYPE_FIXED:
+		bcopy(STRUCT_FGET(create_arg, vc_mac_addr), mac_addr,
+		    MAXMACADDRLEN);
+		break;
+	default:
+		rc = ENOTSUP;
+		goto bail;
+	}
+
+	rc = vnic_dev_create(vnic_id, dev_name, mac_len, mac_addr);
+	if (rc != 0) {
+		cmn_err(CE_WARN, "vnic_dev_create failed with %d", rc);
+		goto bail;
+	}
+
+bail:
+	freemsg(mp->b_cont);
+	mp->b_cont = NULL;
+	if (rc != 0)
+		miocnak(wq, mp, 0, rc);
+	else
+		miocack(wq, mp, 0, 0);
+}
+
+static void
+vnic_ioc_modify(vnic_taskq_args_t *taskq_args)
+{
+	STRUCT_HANDLE(vnic_ioc_modify, modify_arg);
+	queue_t *wq = taskq_args->tq_vnic_q;
+	mblk_t *mp = taskq_args->tq_vnic_mp;
+	int mode = taskq_args->tq_vnic_flag;
+	int err = 0;
+	uint_t vnic_id;
+	uint_t modify_mask;
+	vnic_mac_addr_type_t mac_addr_type;
+	uint_t mac_len;
+	uchar_t mac_addr[MAXMACADDRLEN];
+
+	kmem_free(taskq_args, sizeof (vnic_taskq_args_t));
+	STRUCT_SET_HANDLE(modify_arg, mode, (void *)mp->b_cont->b_rptr);
+	if (MBLKL(mp->b_cont) < STRUCT_SIZE(modify_arg)) {
+		err = EINVAL;
+		goto done;
+	}
+
+	vnic_id = STRUCT_FGET(modify_arg, vm_vnic_id);
+	modify_mask = STRUCT_FGET(modify_arg, vm_modify_mask);
+
+	if (modify_mask & VNIC_IOC_MODIFY_ADDR) {
+		mac_addr_type = STRUCT_FGET(modify_arg, vm_mac_addr_type);
+		mac_len = STRUCT_FGET(modify_arg, vm_mac_len);
+		bcopy(STRUCT_FGET(modify_arg, vm_mac_addr), mac_addr,
+		    MAXMACADDRLEN);
+	}
+
+	err = vnic_dev_modify(vnic_id, modify_mask, mac_addr_type,
+	    mac_len, mac_addr);
+done:
+	freemsg(mp->b_cont);
+	mp->b_cont = NULL;
+	if (err != 0)
+		miocnak(wq, mp, 0, err);
+	else
+		miocack(wq, mp, 0, 0);
+}
+
+static void
+vnic_ioc_delete(vnic_taskq_args_t *taskq_args)
+{
+	STRUCT_HANDLE(vnic_ioc_delete, delete_arg);
+	queue_t *wq = taskq_args->tq_vnic_q;
+	mblk_t *mp = taskq_args->tq_vnic_mp;
+	int mode = taskq_args->tq_vnic_flag;
+	uint_t vnic_id;
+	int err = 0;
+
+	kmem_free(taskq_args, sizeof (vnic_taskq_args_t));
+	STRUCT_SET_HANDLE(delete_arg, mode, (void *)mp->b_cont->b_rptr);
+	if (STRUCT_SIZE(delete_arg) > MBLKL(mp)) {
+		err = EINVAL;
+		goto fail;
+	}
+
+	vnic_id = STRUCT_FGET(delete_arg, vd_vnic_id);
+	err = vnic_dev_delete(vnic_id);
+
+fail:
+	freemsg(mp->b_cont);
+	mp->b_cont = NULL;
+	if (err != 0)
+		miocnak(wq, mp, 0, err);
+	else
+		miocack(wq, mp, 0, err);
+}
+
+typedef struct vnic_ioc_info_state {
+	uint32_t bytes_left;
+	uchar_t *where;
+} vnic_ioc_info_state_t;
+
+static int
+vnic_ioc_info_new_vnic(void *arg, uint32_t id, vnic_mac_addr_type_t addr_type,
+    uint_t mac_len, uint8_t *mac_addr, char *dev_name)
+{
+	vnic_ioc_info_state_t *state = arg;
+	/*LINTED*/
+	vnic_ioc_info_vnic_t *vn = (vnic_ioc_info_vnic_t *)state->where;
+
+	if (state->bytes_left < sizeof (*vn))
+		return (ENOSPC);
+
+	vn->vn_vnic_id = id;
+	vn->vn_mac_addr_type = addr_type;
+	vn->vn_mac_len = mac_len;
+	bcopy(mac_addr, &(vn->vn_mac_addr), mac_len);
+	bcopy(dev_name, &(vn->vn_dev_name), MAXNAMELEN);
+
+	state->where += sizeof (*vn);
+	state->bytes_left -= sizeof (*vn);
+
+	return (0);
+}
+
+static void
+vnic_ioc_info(vnic_taskq_args_t *taskq_args)
+{
+	queue_t *wq = taskq_args->tq_vnic_q;
+	mblk_t *mp = taskq_args->tq_vnic_mp;
+	vnic_ioc_info_t *info_argp;
+	int rc, len;
+	uint32_t nvnics, vnic_id;
+	char dev_name[MAXNAMELEN];
+	vnic_ioc_info_state_t state;
+
+	kmem_free(taskq_args, sizeof (vnic_taskq_args_t));
+	if ((len = MBLKL(mp->b_cont)) < sizeof (*info_argp)) {
+		rc = EINVAL;
+		goto bail;
+	}
+
+	/* LINTED alignment */
+	info_argp = (vnic_ioc_info_t *)mp->b_cont->b_rptr;
+
+	/*
+	 * ID of the vnic to return or vnic device.
+	 * If zero, the call returns information
+	 * regarding all vnics currently defined.
+	 */
+	vnic_id = info_argp->vi_vnic_id;
+	if (info_argp->vi_dev_name)
+		bcopy(info_argp->vi_dev_name, dev_name, MAXNAMELEN);
+
+	state.bytes_left = len - sizeof (vnic_ioc_info_t);
+	state.where = (uchar_t *)(info_argp +1);
+
+	rc = vnic_info(&nvnics, vnic_id, dev_name, &state,
+	    vnic_ioc_info_new_vnic);
+
+bail:
+	if (rc == 0) {
+		info_argp->vi_nvnics = nvnics;
+		miocack(wq, mp, len, 0);
+	} else {
+		freemsg(mp->b_cont);
+		mp->b_cont = NULL;
+		miocnak(wq, mp, 0, rc);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/io/vnic/vnic_dev.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1578 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/sysmacros.h>
+#include <sys/conf.h>
+#include <sys/cmn_err.h>
+#include <sys/list.h>
+#include <sys/ksynch.h>
+#include <sys/kmem.h>
+#include <sys/stream.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/atomic.h>
+#include <sys/stat.h>
+#include <sys/modhash.h>
+#include <sys/strsubr.h>
+#include <sys/strsun.h>
+#include <sys/dlpi.h>
+#include <sys/mac.h>
+#include <sys/mac_ether.h>
+#include <sys/pattr.h>
+#if 0
+#include <sys/vlan.h>
+#endif
+#include <sys/vnic.h>
+#include <sys/vnic_impl.h>
+#include <sys/gld.h>
+#include <inet/ip.h>
+#include <inet/ip_impl.h>
+
+static int vnic_m_start(void *);
+static void vnic_m_stop(void *);
+static int vnic_m_promisc(void *, boolean_t);
+static int vnic_m_multicst(void *, boolean_t, const uint8_t *);
+static int vnic_m_unicst(void *, const uint8_t *);
+static int vnic_m_stat(void *, uint_t, uint64_t *);
+static void vnic_m_resources(void *);
+static mblk_t *vnic_m_tx(void *, mblk_t *);
+static boolean_t vnic_m_capab_get(void *, mac_capab_t, void *);
+static void vnic_mac_free(vnic_mac_t *);
+static uint_t vnic_info_walker(mod_hash_key_t, mod_hash_val_t *, void *);
+static void vnic_notify_cb(void *, mac_notify_type_t);
+static int vnic_modify_mac_addr(vnic_t *, uint_t, uchar_t *);
+static mblk_t *vnic_active_tx(void *, mblk_t *);
+static int vnic_promisc_set(vnic_t *, boolean_t);
+
+static kmem_cache_t	*vnic_cache;
+static kmem_cache_t	*vnic_mac_cache;
+static krwlock_t	vnic_lock;
+static kmutex_t		vnic_mac_lock;
+static uint_t		vnic_count;
+
+/* hash of VNICs (vnic_t's), keyed by VNIC id */
+static mod_hash_t	*vnic_hash;
+#define	VNIC_HASHSZ	64
+#define	VNIC_HASH_KEY(vnic_id)	((mod_hash_key_t)(uintptr_t)vnic_id)
+
+/*
+ * Hash of underlying open MACs (vnic_mac_t's), keyed by the string
+ * "<device name><instance number>/<port number>".
+ */
+static mod_hash_t	*vnic_mac_hash;
+#define	VNIC_MAC_HASHSZ	64
+
+#define	VNIC_MAC_REFHOLD(va) {			\
+	ASSERT(MUTEX_HELD(&vnic_mac_lock));	\
+	(va)->va_refs++;			\
+	ASSERT((va)->va_refs != 0);		\
+}
+
+#define	VNIC_MAC_REFRELE(va) {			\
+	ASSERT(MUTEX_HELD(&vnic_mac_lock));	\
+	ASSERT((va)->va_refs != 0);		\
+	if (--((va)->va_refs) == 0)		\
+		vnic_mac_free(va);		\
+}
+
+static uchar_t vnic_brdcst_mac[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+
+/* used by vnic_walker */
+typedef struct vnic_info_state {
+	uint32_t	vs_vnic_id;
+	char		vs_dev_name[MAXNAMELEN];
+	boolean_t	vs_vnic_found;
+	vnic_info_new_vnic_fn_t	vs_new_vnic_fn;
+	void		*vs_fn_arg;
+	int		vs_rc;
+} vnic_info_state_t;
+
+#define	VNIC_M_CALLBACK_FLAGS	(MC_RESOURCES | MC_GETCAPAB)
+
+static mac_callbacks_t vnic_m_callbacks = {
+	VNIC_M_CALLBACK_FLAGS,
+	vnic_m_stat,
+	vnic_m_start,
+	vnic_m_stop,
+	vnic_m_promisc,
+	vnic_m_multicst,
+	vnic_m_unicst,
+	vnic_m_tx,
+	vnic_m_resources,
+	NULL,			/* m_ioctl */
+	vnic_m_capab_get
+};
+
+/* ARGSUSED */
+static int
+vnic_mac_ctor(void *buf, void *arg, int kmflag)
+{
+	vnic_mac_t *vnic_mac = buf;
+
+	bzero(vnic_mac, sizeof (vnic_mac_t));
+	rw_init(&vnic_mac->va_bcast_grp_lock, NULL, RW_DRIVER, NULL);
+	rw_init(&vnic_mac->va_promisc_lock, NULL, RW_DRIVER, NULL);
+
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+vnic_mac_dtor(void *buf, void *arg)
+{
+	vnic_mac_t *vnic_mac = buf;
+
+	rw_destroy(&vnic_mac->va_promisc_lock);
+	rw_destroy(&vnic_mac->va_bcast_grp_lock);
+}
+
+void
+vnic_dev_init(void)
+{
+	vnic_cache = kmem_cache_create("vnic_cache",
+	    sizeof (vnic_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
+
+	vnic_mac_cache = kmem_cache_create("vnic_mac_cache",
+	    sizeof (vnic_mac_t), 0, vnic_mac_ctor, vnic_mac_dtor,
+	    NULL, NULL, NULL, 0);
+
+	vnic_hash = mod_hash_create_idhash("vnic_hash",
+	    VNIC_HASHSZ, mod_hash_null_valdtor);
+
+	vnic_mac_hash = mod_hash_create_strhash("vnic_mac_hash",
+	    VNIC_MAC_HASHSZ, mod_hash_null_valdtor);
+
+	rw_init(&vnic_lock, NULL, RW_DEFAULT, NULL);
+
+	mutex_init(&vnic_mac_lock, NULL, MUTEX_DEFAULT, NULL);
+
+	vnic_count = 0;
+}
+
+void
+vnic_dev_fini(void)
+{
+	ASSERT(vnic_count == 0);
+
+	mutex_destroy(&vnic_mac_lock);
+	rw_destroy(&vnic_lock);
+	mod_hash_destroy_strhash(vnic_mac_hash);
+	mod_hash_destroy_idhash(vnic_hash);
+	kmem_cache_destroy(vnic_mac_cache);
+	kmem_cache_destroy(vnic_cache);
+}
+
+uint_t
+vnic_dev_count(void)
+{
+	return (vnic_count);
+}
+
+static int
+vnic_mac_open(const char *dev_name, vnic_mac_t **vmp)
+{
+	char *str_key;
+	int err;
+	vnic_mac_t *vnic_mac = NULL;
+	char driver[MAXNAMELEN];
+	uint_t ddi_instance;
+	const mac_info_t *mip;
+
+	*vmp = NULL;
+
+	if (ddi_parse(dev_name, driver, &ddi_instance) != DDI_SUCCESS)
+		return (EINVAL);
+
+	mutex_enter(&vnic_mac_lock);
+
+	err = mod_hash_find(vnic_mac_hash, (mod_hash_key_t)dev_name,
+	    (mod_hash_val_t *)&vnic_mac);
+	if (err == 0) {
+		/* this MAC is already opened, increment reference count */
+		VNIC_MAC_REFHOLD(vnic_mac);
+		mutex_exit(&vnic_mac_lock);
+		*vmp = vnic_mac;
+		return (0);
+	}
+
+	vnic_mac = kmem_cache_alloc(vnic_mac_cache, KM_SLEEP);
+
+	if ((err = mac_open(dev_name, ddi_instance, &vnic_mac->va_mh)) != 0) {
+		vnic_mac->va_mh = NULL;
+		goto bail;
+	}
+
+	/* only ethernet support, for now */
+	mip = mac_info(vnic_mac->va_mh);
+	if (mip->mi_media != DL_ETHER) {
+		err = ENOTSUP;
+		goto bail;
+	}
+	if (mip->mi_media != mip->mi_nativemedia) {
+		err = ENOTSUP;
+		goto bail;
+	}
+
+	(void) strcpy(vnic_mac->va_dev_name, dev_name);
+
+	/* add entry to hash table */
+	str_key = kmem_alloc(strlen(dev_name) + 1, KM_SLEEP);
+	(void) strcpy(str_key, dev_name);
+	err = mod_hash_insert(vnic_mac_hash, (mod_hash_key_t)str_key,
+	    (mod_hash_val_t)vnic_mac);
+	ASSERT(err == 0);
+
+	/* initialize the flow table associated with lower MAC */
+	vnic_mac->va_addr_len = ETHERADDRL;
+	(void) vnic_classifier_flow_tab_init(vnic_mac, vnic_mac->va_addr_len,
+	    KM_SLEEP);
+
+	vnic_mac->va_txinfo = mac_vnic_tx_get(vnic_mac->va_mh);
+	vnic_mac->va_notify_hdl = mac_notify_add(vnic_mac->va_mh,
+	    vnic_notify_cb, vnic_mac);
+
+	VNIC_MAC_REFHOLD(vnic_mac);
+	*vmp = vnic_mac;
+	mutex_exit(&vnic_mac_lock);
+	return (0);
+
+bail:
+	if (vnic_mac != NULL) {
+		if (vnic_mac->va_mh != NULL)
+			mac_close(vnic_mac->va_mh);
+		kmem_cache_free(vnic_mac_cache, vnic_mac);
+	}
+	mutex_exit(&vnic_mac_lock);
+	return (err);
+}
+
+/*
+ * Create a new flow for the active MAC client sharing the NIC
+ * with the VNICs. This allows the unicast packets for that NIC
+ * to be classified and passed up to the active MAC client. It
+ * also allows packets sent from a VNIC to the active link to
+ * be classified by the VNIC transmit function and delivered via
+ * the MAC module locally. Returns B_TRUE on success, B_FALSE on
+ * failure.
+ */
+static int
+vnic_init_active_rx(vnic_mac_t *vnic_mac)
+{
+	uchar_t nic_mac_addr[MAXMACADDRLEN];
+
+	if (vnic_mac->va_active_flow != NULL)
+		return (B_TRUE);
+
+	mac_unicst_get(vnic_mac->va_mh, nic_mac_addr);
+
+	vnic_mac->va_active_flow = vnic_classifier_flow_create(
+	    vnic_mac->va_addr_len, nic_mac_addr, NULL, B_TRUE, KM_SLEEP);
+
+	vnic_classifier_flow_add(vnic_mac, vnic_mac->va_active_flow,
+	    (vnic_rx_fn_t)mac_active_rx, vnic_mac->va_mh, NULL);
+	return (B_TRUE);
+}
+
+static void
+vnic_fini_active_rx(vnic_mac_t *vnic_mac)
+{
+	if (vnic_mac->va_active_flow == NULL)
+		return;
+
+	vnic_classifier_flow_remove(vnic_mac, vnic_mac->va_active_flow);
+	vnic_classifier_flow_destroy(vnic_mac->va_active_flow);
+	vnic_mac->va_active_flow = NULL;
+}
+
+static void
+vnic_update_active_rx(vnic_mac_t *vnic_mac)
+{
+	if (vnic_mac->va_active_flow == NULL)
+		return;
+
+	vnic_fini_active_rx(vnic_mac);
+	(void) vnic_init_active_rx(vnic_mac);
+}
+
+/*
+ * Copy an mblk, preserving its hardware checksum flags.
+ */
+mblk_t *
+vnic_copymsg_cksum(mblk_t *mp)
+{
+	mblk_t *mp1;
+	uint32_t start, stuff, end, value, flags;
+
+	mp1 = copymsg(mp);
+	if (mp1 == NULL)
+		return (NULL);
+
+	hcksum_retrieve(mp, NULL, NULL, &start, &stuff, &end, &value, &flags);
+	(void) hcksum_assoc(mp1, NULL, NULL, start, stuff, end, value,
+	    flags, KM_NOSLEEP);
+
+	return (mp1);
+}
+
+/*
+ * Copy an mblk chain, presenting the hardware checksum flags of the
+ * individual mblks.
+ */
+mblk_t *
+vnic_copymsgchain_cksum(mblk_t *mp)
+{
+	mblk_t *nmp = NULL;
+	mblk_t **nmpp = &nmp;
+
+	for (; mp != NULL; mp = mp->b_next) {
+		if ((*nmpp = vnic_copymsg_cksum(mp)) == NULL) {
+			freemsgchain(nmp);
+			return (NULL);
+		}
+
+		nmpp = &((*nmpp)->b_next);
+	}
+
+	return (nmp);
+}
+
+
+/*
+ * Process the specified mblk chain for proper handling of hardware
+ * checksum offload. This routine is invoked for loopback VNIC traffic.
+ * The function handles a NULL mblk chain passed as argument.
+ */
+mblk_t *
+vnic_fix_cksum(mblk_t *mp_chain)
+{
+	mblk_t *mp, *prev = NULL, *new_chain = mp_chain, *mp1;
+	uint32_t flags, start, stuff, end, value;
+
+	for (mp = mp_chain; mp != NULL; prev = mp, mp = mp->b_next) {
+		uint16_t len;
+		uint32_t offset;
+		struct ether_header *ehp;
+		uint16_t sap;
+
+		hcksum_retrieve(mp, NULL, NULL, &start, &stuff, &end, &value,
+		    &flags);
+		if (flags == 0)
+			continue;
+
+		/*
+		 * Since the processing of checksum offload for loopback
+		 * traffic requires modification of the packet contents,
+		 * ensure sure that we are always modifying our own copy.
+		 */
+		if (DB_REF(mp) > 1) {
+			mp1 = copymsg(mp);
+			if (mp1 == NULL)
+				continue;
+			mp1->b_next = mp->b_next;
+			mp->b_next = NULL;
+			freemsg(mp);
+			if (prev != NULL)
+				prev->b_next = mp1;
+			else
+				new_chain = mp1;
+			mp = mp1;
+		}
+
+		/*
+		 * Ethernet, and optionally VLAN header.
+		 */
+		/*LINTED*/
+		ehp = (struct ether_header *)mp->b_rptr;
+		if (ntohs(ehp->ether_type) == VLAN_TPID) {
+			struct ether_vlan_header *evhp;
+
+			ASSERT(MBLKL(mp) >=
+			    sizeof (struct ether_vlan_header));
+			/*LINTED*/
+			evhp = (struct ether_vlan_header *)mp->b_rptr;
+			sap = ntohs(evhp->ether_type);
+			offset = sizeof (struct ether_vlan_header);
+		} else {
+			sap = ntohs(ehp->ether_type);
+			offset = sizeof (struct ether_header);
+		}
+
+		if (MBLKL(mp) <= offset) {
+			offset -= MBLKL(mp);
+			if (mp->b_cont == NULL) {
+				/* corrupted packet, skip it */
+				if (prev != NULL)
+					prev->b_next = mp->b_next;
+				else
+					new_chain = mp->b_next;
+				mp1 = mp->b_next;
+				mp->b_next = NULL;
+				freemsg(mp);
+				mp = mp1;
+				continue;
+			}
+			mp = mp->b_cont;
+		}
+
+		if (flags & (HCK_FULLCKSUM | HCK_IPV4_HDRCKSUM)) {
+			ipha_t *ipha = NULL;
+
+			/*
+			 * In order to compute the full and header
+			 * checksums, we need to find and parse
+			 * the IP and/or ULP headers.
+			 */
+
+			sap = (sap < ETHERTYPE_802_MIN) ? 0 : sap;
+
+			/*
+			 * IP header.
+			 */
+			if (sap != ETHERTYPE_IP)
+				continue;
+
+			ASSERT(MBLKL(mp) >= offset + sizeof (ipha_t));
+			/*LINTED*/
+			ipha = (ipha_t *)(mp->b_rptr + offset);
+
+			if (flags & HCK_FULLCKSUM) {
+				ipaddr_t src, dst;
+				uint32_t cksum;
+				uint16_t *up;
+				uint8_t proto;
+
+				/*
+				 * Pointer to checksum field in ULP header.
+				 */
+				proto = ipha->ipha_protocol;
+				ASSERT(ipha->ipha_version_and_hdr_length ==
+				    IP_SIMPLE_HDR_VERSION);
+				if (proto == IPPROTO_TCP) {
+					/*LINTED*/
+					up = IPH_TCPH_CHECKSUMP(ipha,
+					    IP_SIMPLE_HDR_LENGTH);
+				} else {
+					ASSERT(proto == IPPROTO_UDP);
+					/*LINTED*/
+					up = IPH_UDPH_CHECKSUMP(ipha,
+					    IP_SIMPLE_HDR_LENGTH);
+				}
+
+				/*
+				 * Pseudo-header checksum.
+				 */
+				src = ipha->ipha_src;
+				dst = ipha->ipha_dst;
+				len = ntohs(ipha->ipha_length) -
+				    IP_SIMPLE_HDR_LENGTH;
+
+				cksum = (dst >> 16) + (dst & 0xFFFF) +
+				    (src >> 16) + (src & 0xFFFF);
+				cksum += htons(len);
+
+				/*
+				 * The checksum value stored in the packet needs
+				 * to be correct. Compute it here.
+				 */
+				*up = 0;
+				cksum += (((proto) == IPPROTO_UDP) ?
+				    IP_UDP_CSUM_COMP : IP_TCP_CSUM_COMP);
+				cksum = IP_CSUM(mp, IP_SIMPLE_HDR_LENGTH +
+				    offset, cksum);
+				*(up) = (uint16_t)(cksum ? cksum : ~cksum);
+
+				flags |= HCK_FULLCKSUM_OK;
+				value = 0xffff;
+			}
+
+			if (flags & HCK_IPV4_HDRCKSUM) {
+				ASSERT(ipha != NULL);
+				ipha->ipha_hdr_checksum =
+				    (uint16_t)ip_csum_hdr(ipha);
+			}
+		}
+
+		if (flags & HCK_PARTIALCKSUM) {
+			uint16_t *up, partial, cksum;
+			uchar_t *ipp; /* ptr to beginning of IP header */
+
+			if (mp->b_cont != NULL) {
+				mblk_t *mp1;
+
+				mp1 = msgpullup(mp, offset + end);
+				if (mp1 == NULL)
+					continue;
+				mp1->b_next = mp->b_next;
+				mp->b_next = NULL;
+				freemsg(mp);
+				if (prev != NULL)
+					prev->b_next = mp1;
+				else
+					new_chain = mp1;
+				mp = mp1;
+			}
+
+			ipp = mp->b_rptr + offset;
+			/*LINTED*/
+			up = (uint16_t *)((uchar_t *)ipp + stuff);
+			partial = *up;
+			*up = 0;
+
+			cksum = IP_BCSUM_PARTIAL(mp->b_rptr + offset + start,
+			    end - start, partial);
+			cksum = ~cksum;
+			*up = cksum ? cksum : ~cksum;
+
+			/*
+			 * Since we already computed the whole checksum,
+			 * indicate to the stack that it has already
+			 * been verified by the hardware.
+			 */
+			flags &= ~HCK_PARTIALCKSUM;
+			flags |= (HCK_FULLCKSUM | HCK_FULLCKSUM_OK);
+			value = 0xffff;
+		}
+
+		(void) hcksum_assoc(mp, NULL, NULL, start, stuff, end,
+		    value, flags, KM_NOSLEEP);
+	}
+
+	return (new_chain);
+}
+
+static void
+vnic_mac_close(vnic_mac_t *vnic_mac)
+{
+	mutex_enter(&vnic_mac_lock);
+	VNIC_MAC_REFRELE(vnic_mac);
+	mutex_exit(&vnic_mac_lock);
+}
+
+static void
+vnic_mac_free(vnic_mac_t *vnic_mac)
+{
+	mod_hash_val_t val;
+
+	ASSERT(MUTEX_HELD(&vnic_mac_lock));
+	vnic_fini_active_rx(vnic_mac);
+	mac_notify_remove(vnic_mac->va_mh, vnic_mac->va_notify_hdl);
+	if (vnic_mac->va_mac_set) {
+		vnic_mac->va_mac_set = B_FALSE;
+		mac_vnic_clear(vnic_mac->va_mh);
+	}
+	vnic_classifier_flow_tab_fini(vnic_mac);
+	mac_close(vnic_mac->va_mh);
+
+	(void) mod_hash_remove(vnic_mac_hash,
+	    (mod_hash_key_t)vnic_mac->va_dev_name, &val);
+	ASSERT(vnic_mac == (vnic_mac_t *)val);
+
+	kmem_cache_free(vnic_mac_cache, vnic_mac);
+}
+
+/*
+ * Initial VNIC receive routine. Invoked for packets that are steered
+ * to a VNIC but the VNIC has not been started yet.
+ */
+/* ARGSUSED */
+static void
+vnic_rx_initial(void *arg1, void *arg2, mblk_t *mp_chain)
+{
+	vnic_t *vnic = arg1;
+	mblk_t *mp;
+
+	/* update stats */
+	for (mp = mp_chain; mp != NULL; mp = mp->b_next)
+		vnic->vn_stat_ierrors++;
+	freemsgchain(mp_chain);
+}
+
+/*
+ * VNIC receive routine invoked after the classifier for the VNIC
+ * has been initialized and the VNIC has been started.
+ */
+/* ARGSUSED */
+void
+vnic_rx(void *arg1, void *arg2, mblk_t *mp_chain)
+{
+	vnic_t *vnic = arg1;
+	mblk_t *mp;
+
+	/* update stats */
+	for (mp = mp_chain; mp != NULL; mp = mp->b_next) {
+		vnic->vn_stat_ipackets++;
+		vnic->vn_stat_rbytes += msgdsize(mp);
+	}
+
+	/* pass packet up */
+	mac_rx(vnic->vn_mh, NULL, mp_chain);
+}
+
+/*
+ * Routine to create a MAC-based VNIC. Adds the passed MAC address
+ * to an unused slot in the NIC if one is available. Otherwise it
+ * sets the NIC in promiscuous mode and assigns the MAC address to
+ * a Rx ring if available or a soft ring.
+ */
+static int
+vnic_add_unicstaddr(vnic_t *vnic, mac_multi_addr_t *maddr)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	int err;
+
+	if (mac_vnic_capab_get(vnic_mac->va_mh, MAC_CAPAB_MULTIADDRESS,
+	    &(vnic->vn_mma_capab))) {
+		if (vnic->vn_maddr_naddrfree == 0) {
+			/*
+			 * No free address slots available.
+			 * Enable promiscuous mode.
+			 */
+			goto set_promisc;
+		}
+
+		err = vnic->vn_maddr_add(vnic->vn_maddr_handle, maddr);
+		if (err != 0) {
+			if (err == ENOSPC) {
+				/*
+				 * There was a race to add addresses
+				 * with other multiple address consumers,
+				 * and we lost out. Use promisc mode.
+				 */
+				goto set_promisc;
+			}
+
+			return (err);
+		}
+
+		vnic->vn_slot_id = maddr->mma_slot;
+		vnic->vn_multi_mac = B_TRUE;
+	} else {
+		/*
+		 * Either multiple MAC address support is not
+		 * available or all available addresses have
+		 * been used up.
+		 */
+	set_promisc:
+		err = mac_promisc_set(vnic_mac->va_mh, B_TRUE, MAC_DEVPROMISC);
+		if (err != 0) {
+			return (err);
+		}
+
+		vnic->vn_promisc_mac = B_TRUE;
+	}
+	return (err);
+}
+
+/*
+ * VNIC is getting deleted. Remove the MAC address from the slot.
+ * If promiscuous mode was being used, then unset the promiscuous mode.
+ */
+static int
+vnic_remove_unicstaddr(vnic_t *vnic)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	int err;
+
+	if (vnic->vn_multi_mac) {
+		ASSERT(vnic->vn_promisc_mac == B_FALSE);
+		err = vnic->vn_maddr_remove(vnic->vn_maddr_handle,
+		    vnic->vn_slot_id);
+		vnic->vn_multi_mac = B_FALSE;
+	}
+
+	if (vnic->vn_promisc_mac) {
+		ASSERT(vnic->vn_multi_mac == B_FALSE);
+		err = mac_promisc_set(vnic_mac->va_mh, B_FALSE, MAC_DEVPROMISC);
+		vnic->vn_promisc_mac = B_FALSE;
+	}
+
+	return (err);
+}
+
+/*
+ * Create a new VNIC upon request from administrator.
+ * Returns 0 on success, an errno on failure.
+ */
+int
+vnic_dev_create(uint_t vnic_id, char *dev_name, int mac_len, uchar_t *mac_addr)
+{
+	vnic_t *vnic = NULL;
+	mac_register_t *mac;
+	int err;
+	vnic_mac_t *vnic_mac;
+	const mac_info_t *lower_mac_info;
+	mac_multi_addr_t maddr;
+	mac_txinfo_t tx_info;
+
+	if (mac_len != ETHERADDRL) {
+		/* currently only ethernet NICs are supported */
+		return (EINVAL);
+	}
+
+	rw_enter(&vnic_lock, RW_WRITER);
+
+	/* does a VNIC with the same id already exist? */
+	err = mod_hash_find(vnic_hash, VNIC_HASH_KEY(vnic_id),
+	    (mod_hash_val_t *)&vnic);
+	if (err == 0) {
+		rw_exit(&vnic_lock);
+		return (EEXIST);
+	}
+
+	vnic = kmem_cache_alloc(vnic_cache, KM_NOSLEEP);
+	if (vnic == NULL) {
+		rw_exit(&vnic_lock);
+		return (ENOMEM);
+	}
+
+	/* open underlying MAC */
+	err = vnic_mac_open(dev_name, &vnic_mac);
+	if (err != 0) {
+		kmem_cache_free(vnic_cache, vnic);
+		rw_exit(&vnic_lock);
+		return (err);
+	}
+
+	bzero(vnic, sizeof (*vnic));
+	vnic->vn_id = vnic_id;
+	vnic->vn_vnic_mac = vnic_mac;
+
+	vnic->vn_started = B_FALSE;
+	vnic->vn_promisc = B_FALSE;
+	vnic->vn_multi_mac = B_FALSE;
+	vnic->vn_bcast_grp = B_FALSE;
+
+	/* set the VNIC MAC address */
+	maddr.mma_addrlen = mac_len;
+	maddr.mma_slot = 0;
+	maddr.mma_flags = 0;
+	bcopy(mac_addr, maddr.mma_addr, mac_len);
+	if ((err = vnic_add_unicstaddr(vnic, &maddr)) != 0)
+		goto bail;
+	bcopy(mac_addr, vnic->vn_addr, mac_len);
+
+	/* set the initial VNIC capabilities */
+	if (!mac_vnic_capab_get(vnic_mac->va_mh, MAC_CAPAB_HCKSUM,
+	    &vnic->vn_hcksum_txflags))
+		vnic->vn_hcksum_txflags = 0;
+
+	/* register with the MAC module */
+	if ((mac = mac_alloc(MAC_VERSION)) == NULL)
+		goto bail;
+
+	mac->m_type_ident = MAC_PLUGIN_IDENT_ETHER;
+	mac->m_driver = vnic;
+	mac->m_dip = vnic_get_dip();
+	mac->m_instance = vnic_id;
+	mac->m_src_addr = vnic->vn_addr;
+	mac->m_callbacks = &vnic_m_callbacks;
+
+	lower_mac_info = mac_info(vnic_mac->va_mh);
+	mac->m_min_sdu = lower_mac_info->mi_sdu_min;
+	mac->m_max_sdu = lower_mac_info->mi_sdu_max;
+
+	err = mac_register(mac, &vnic->vn_mh);
+	mac_free(mac);
+	if (err != 0)
+		goto bail;
+
+	/* add new VNIC to hash table */
+	err = mod_hash_insert(vnic_hash, VNIC_HASH_KEY(vnic_id),
+	    (mod_hash_val_t)vnic);
+	ASSERT(err == 0);
+	vnic_count++;
+
+	rw_exit(&vnic_lock);
+
+	/* Create a flow, initialized with the MAC address of the VNIC */
+	if ((vnic->vn_flow_ent = vnic_classifier_flow_create(mac_len, mac_addr,
+	    NULL, B_FALSE, KM_SLEEP)) == NULL) {
+		(void) vnic_dev_delete(vnic_id);
+		vnic = NULL;
+		err = ENOMEM;
+		goto bail_unlocked;
+	}
+
+	vnic_classifier_flow_add(vnic_mac, vnic->vn_flow_ent, vnic_rx_initial,
+	    vnic, vnic);
+
+	/* setup VNIC to receive broadcast packets */
+	err = vnic_bcast_add(vnic, vnic_brdcst_mac, MAC_ADDRTYPE_BROADCAST);
+	if (err != 0) {
+		(void) vnic_dev_delete(vnic_id);
+		vnic = NULL;
+		goto bail_unlocked;
+	}
+	vnic->vn_bcast_grp = B_TRUE;
+
+	mutex_enter(&vnic_mac_lock);
+	if (!vnic_mac->va_mac_set) {
+		/*
+		 * We want to MAC layer to call the VNIC tx outbound
+		 * routine, so that local broadcast packets sent by
+		 * the active interface sharing the underlying NIC (if
+		 * any), can be broadcast to every VNIC.
+		 */
+		tx_info.mt_fn = vnic_active_tx;
+		tx_info.mt_arg = vnic_mac;
+		if (!mac_vnic_set(vnic_mac->va_mh, &tx_info,
+		    vnic_m_capab_get, vnic)) {
+			mutex_exit(&vnic_mac_lock);
+			(void) vnic_dev_delete(vnic_id);
+			vnic = NULL;
+			err = EBUSY;
+			goto bail_unlocked;
+		}
+		vnic_mac->va_mac_set = B_TRUE;
+	}
+	mutex_exit(&vnic_mac_lock);
+
+	/* allow passing packets to NIC's active MAC client */
+	if (!vnic_init_active_rx(vnic_mac)) {
+		(void) vnic_dev_delete(vnic_id);
+		vnic = NULL;
+		err = ENOMEM;
+		goto bail_unlocked;
+	}
+
+	return (0);
+
+bail:
+	(void) vnic_remove_unicstaddr(vnic);
+	vnic_mac_close(vnic_mac);
+	rw_exit(&vnic_lock);
+
+bail_unlocked:
+	if (vnic != NULL) {
+		kmem_cache_free(vnic_cache, vnic);
+	}
+
+	return (err);
+}
+
+/*
+ * Modify the properties of an existing VNIC.
+ */
+/* ARGSUSED */
+int
+vnic_dev_modify(uint_t vnic_id, uint_t modify_mask,
+    vnic_mac_addr_type_t mac_addr_type, uint_t mac_len, uchar_t *mac_addr)
+{
+	vnic_t *vnic = NULL;
+	int rv = 0;
+	boolean_t notify_mac_addr = B_FALSE;
+
+	rw_enter(&vnic_lock, RW_WRITER);
+
+	if (mod_hash_find(vnic_hash, VNIC_HASH_KEY(vnic_id),
+	    (mod_hash_val_t *)&vnic) != 0) {
+		rw_exit(&vnic_lock);
+		return (ENOENT);
+	}
+
+	if (modify_mask & VNIC_IOC_MODIFY_ADDR) {
+		rv = vnic_modify_mac_addr(vnic, mac_len, mac_addr);
+		if (rv == 0)
+			notify_mac_addr = B_TRUE;
+	}
+
+	rw_exit(&vnic_lock);
+
+	if (notify_mac_addr)
+		mac_unicst_update(vnic->vn_mh, mac_addr);
+
+	return (rv);
+}
+
+int
+vnic_dev_delete(uint_t vnic_id)
+{
+	vnic_t *vnic = NULL;
+	mod_hash_val_t val;
+	vnic_flow_t *flent;
+	int rc;
+
+	rw_enter(&vnic_lock, RW_WRITER);
+
+	if (mod_hash_find(vnic_hash, VNIC_HASH_KEY(vnic_id),
+	    (mod_hash_val_t *)&vnic) != 0) {
+		rw_exit(&vnic_lock);
+		return (ENOENT);
+	}
+
+	/*
+	 * We cannot unregister the MAC yet. Unregistering would
+	 * free up mac_impl_t which should not happen at this time.
+	 * Packets could be entering vnic_rx() through the
+	 * flow entry and so mac_impl_t cannot be NULL. So disable
+	 * mac_impl_t by calling mac_disable(). This will prevent any
+	 * new claims on mac_impl_t.
+	 */
+	if (mac_disable(vnic->vn_mh) != 0) {
+		rw_exit(&vnic_lock);
+		return (EBUSY);
+	}
+
+	(void) mod_hash_remove(vnic_hash, VNIC_HASH_KEY(vnic_id), &val);
+	ASSERT(vnic == (vnic_t *)val);
+
+	if (vnic->vn_bcast_grp)
+		(void) vnic_bcast_delete(vnic, vnic_brdcst_mac);
+
+	flent = vnic->vn_flow_ent;
+	if (flent != NULL) {
+		/*
+		 * vnic_classifier_flow_destroy() ensures that the
+		 * flow is no longer used.
+		 */
+		vnic_classifier_flow_remove(vnic->vn_vnic_mac, flent);
+		vnic_classifier_flow_destroy(flent);
+	}
+
+	rc = mac_unregister(vnic->vn_mh);
+	ASSERT(rc == 0);
+	(void) vnic_remove_unicstaddr(vnic);
+	vnic_mac_close(vnic->vn_vnic_mac);
+	kmem_cache_free(vnic_cache, vnic);
+	vnic_count--;
+	rw_exit(&vnic_lock);
+	return (0);
+}
+
+/*
+ * For the specified packet chain, return a sub-chain to be sent
+ * and the transmit function to be used to send the packet. Also
+ * return a pointer to the sub-chain of packets that should
+ * be re-classified. If the function returns NULL, the packet
+ * should be sent using the underlying NIC.
+ */
+static vnic_flow_t *
+vnic_classify(vnic_mac_t *vnic_mac, mblk_t *mp, mblk_t **mp_chain_rest)
+{
+	vnic_flow_t *flow_ent;
+
+	/* one packet at a time */
+	*mp_chain_rest = mp->b_next;
+	mp->b_next = NULL;
+
+	/* do classification on the packet */
+	flow_ent = vnic_classifier_get_flow(vnic_mac, mp);
+
+	return (flow_ent);
+}
+
+/*
+ * Send a packet chain to a local VNIC or an active MAC client.
+ */
+static void
+vnic_local_tx(vnic_mac_t *vnic_mac, vnic_flow_t *flow_ent, mblk_t *mp_chain)
+{
+	mblk_t *mp1;
+	const vnic_flow_fn_info_t *fn_info;
+	vnic_t *vnic;
+
+	if (!vnic_classifier_is_active(flow_ent) &&
+	    mac_promisc_get(vnic_mac->va_mh, MAC_PROMISC)) {
+		/*
+		 * If the MAC is in promiscous mode,
+		 * send a copy of the active client.
+		 */
+		if ((mp1 = vnic_copymsgchain_cksum(mp_chain)) == NULL)
+			goto sendit;
+		if ((mp1 = vnic_fix_cksum(mp1)) == NULL)
+			goto sendit;
+		mac_active_rx(vnic_mac->va_mh, NULL, mp1);
+	}
+sendit:
+	fn_info = vnic_classifier_get_fn_info(flow_ent);
+	/*
+	 * If the vnic to which we would deliver this packet is in
+	 * promiscuous mode then it already received the packet via
+	 * vnic_promisc_rx().
+	 *
+	 * XXX assumes that ff_arg2 is a vnic_t pointer if it is
+	 * non-NULL (currently always true).
+	 */
+	vnic = (vnic_t *)fn_info->ff_arg2;
+	if ((vnic != NULL) && vnic->vn_promisc)
+		freemsg(mp_chain);
+	else if ((mp1 = vnic_fix_cksum(mp_chain)) != NULL)
+		(fn_info->ff_fn)(fn_info->ff_arg1, fn_info->ff_arg2, mp1);
+}
+
+/*
+ * This function is invoked when a MAC client needs to send a packet
+ * to a NIC which is shared by VNICs. It is passed to the MAC layer
+ * by a call to mac_vnic_set() when the NIC is opened, and is returned
+ * to MAC clients by mac_tx_get() when VNICs are present.
+ */
+mblk_t *
+vnic_active_tx(void *arg, mblk_t *mp_chain)
+{
+	vnic_mac_t *vnic_mac = arg;
+	mblk_t *mp, *extra_mp = NULL;
+	vnic_flow_t *flow_ent;
+	void *flow_cookie;
+	const mac_txinfo_t *mtp = vnic_mac->va_txinfo;
+
+	for (mp = mp_chain; mp != NULL; mp = extra_mp) {
+		mblk_t *next;
+
+		next = mp->b_next;
+		mp->b_next = NULL;
+
+		vnic_promisc_rx(vnic_mac, (vnic_t *)-1, mp);
+
+		flow_ent = vnic_classify(vnic_mac, mp, &extra_mp);
+		ASSERT(extra_mp == NULL);
+		extra_mp = next;
+
+		if (flow_ent != NULL) {
+			flow_cookie = vnic_classifier_get_client_cookie(
+			    flow_ent);
+			if (flow_cookie != NULL) {
+				/*
+				 * Send a copy to every VNIC defined on the
+				 * interface, as well as the underlying MAC.
+				 */
+				vnic_bcast_send(flow_cookie, (vnic_t *)-1, mp);
+			} else {
+				/*
+				 * loopback the packet to a local VNIC or
+				 * an active MAC client.
+				 */
+				vnic_local_tx(vnic_mac, flow_ent, mp);
+			}
+			VNIC_FLOW_REFRELE(flow_ent);
+			mp_chain = NULL;
+		} else {
+			/*
+			 * Non-VNIC destination, send via the underlying
+			 * NIC. In order to avoid a recursive call
+			 * to this function, we ensured that mtp points
+			 * to the unerlying NIC transmit function
+			 * by inilizating through mac_vnic_tx_get().
+			 */
+			mp_chain = mtp->mt_fn(mtp->mt_arg, mp);
+			if (mp_chain != NULL)
+				break;
+		}
+	}
+
+	if ((mp_chain != NULL) && (extra_mp != NULL)) {
+		ASSERT(mp_chain->b_next == NULL);
+		mp_chain->b_next = extra_mp;
+	}
+	return (mp_chain);
+}
+
+/*
+ * VNIC transmit function.
+ */
+mblk_t *
+vnic_m_tx(void *arg, mblk_t *mp_chain)
+{
+	vnic_t *vnic = arg;
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	mblk_t *mp, *extra_mp = NULL;
+	vnic_flow_t *flow_ent;
+	void *flow_cookie;
+
+	/*
+	 * Update stats.
+	 */
+	for (mp = mp_chain; mp != NULL; mp = mp->b_next) {
+		vnic->vn_stat_opackets++;
+		vnic->vn_stat_obytes += msgdsize(mp);
+	}
+
+	for (mp = mp_chain; mp != NULL; mp = extra_mp) {
+		mblk_t *next;
+
+		next = mp->b_next;
+		mp->b_next = NULL;
+
+		vnic_promisc_rx(vnic->vn_vnic_mac, vnic, mp);
+
+		flow_ent = vnic_classify(vnic->vn_vnic_mac, mp, &extra_mp);
+		ASSERT(extra_mp == NULL);
+		extra_mp = next;
+
+		if (flow_ent != NULL) {
+			flow_cookie = vnic_classifier_get_client_cookie(
+			    flow_ent);
+			if (flow_cookie != NULL) {
+				/*
+				 * The vnic_bcast_send function expects
+				 * to receive the sender VNIC as value
+				 * for arg2.
+				 */
+				vnic_bcast_send(flow_cookie, vnic, mp);
+			} else {
+				/*
+				 * loopback the packet to a local VNIC or
+				 * an active MAC client.
+				 */
+				vnic_local_tx(vnic_mac, flow_ent, mp);
+			}
+			VNIC_FLOW_REFRELE(flow_ent);
+			mp_chain = NULL;
+		} else {
+			/*
+			 * Non-local destination, send via the underlying
+			 * NIC.
+			 */
+			const mac_txinfo_t *mtp = vnic->vn_txinfo;
+			mp_chain = mtp->mt_fn(mtp->mt_arg, mp);
+			if (mp_chain != NULL)
+				break;
+		}
+	}
+
+	/* update stats to account for unsent packets */
+	for (mp = mp_chain; mp != NULL; mp = mp->b_next) {
+		vnic->vn_stat_opackets--;
+		vnic->vn_stat_obytes -= msgdsize(mp);
+		vnic->vn_stat_oerrors++;
+		/*
+		 * link back in the last portion not counted due to bandwidth
+		 * control.
+		 */
+		if (mp->b_next == NULL) {
+			mp->b_next = extra_mp;
+			break;
+		}
+	}
+
+	return (mp_chain);
+}
+
+/* ARGSUSED */
+static void
+vnic_m_resources(void *arg)
+{
+	/* no resources to advertise */
+}
+
+static int
+vnic_m_stat(void *arg, uint_t stat, uint64_t *val)
+{
+	vnic_t *vnic = arg;
+	int rval = 0;
+
+	rw_enter(&vnic_lock, RW_READER);
+
+	switch (stat) {
+	case ETHER_STAT_LINK_DUPLEX:
+		*val = mac_stat_get(vnic->vn_vnic_mac->va_mh,
+		    ETHER_STAT_LINK_DUPLEX);
+		break;
+	case MAC_STAT_IFSPEED:
+		*val = mac_stat_get(vnic->vn_vnic_mac->va_mh,
+		    MAC_STAT_IFSPEED);
+		break;
+	case MAC_STAT_MULTIRCV:
+		*val = vnic->vn_stat_multircv;
+		break;
+	case MAC_STAT_BRDCSTRCV:
+		*val = vnic->vn_stat_brdcstrcv;
+		break;
+	case MAC_STAT_MULTIXMT:
+		*val = vnic->vn_stat_multixmt;
+		break;
+	case MAC_STAT_BRDCSTXMT:
+		*val = vnic->vn_stat_brdcstxmt;
+		break;
+	case MAC_STAT_IERRORS:
+		*val = vnic->vn_stat_ierrors;
+		break;
+	case MAC_STAT_OERRORS:
+		*val = vnic->vn_stat_oerrors;
+		break;
+	case MAC_STAT_RBYTES:
+		*val = vnic->vn_stat_rbytes;
+		break;
+	case MAC_STAT_IPACKETS:
+		*val = vnic->vn_stat_ipackets;
+		break;
+	case MAC_STAT_OBYTES:
+		*val = vnic->vn_stat_obytes;
+		break;
+	case MAC_STAT_OPACKETS:
+		*val = vnic->vn_stat_opackets;
+		break;
+	default:
+		rval = ENOTSUP;
+	}
+
+	rw_exit(&vnic_lock);
+	return (rval);
+}
+
+/*
+ * Return information about the specified capability.
+ */
+/* ARGSUSED */
+static boolean_t
+vnic_m_capab_get(void *arg, mac_capab_t cap, void *cap_data)
+{
+	vnic_t *vnic = arg;
+
+	switch (cap) {
+	case MAC_CAPAB_POLL:
+		return (B_TRUE);
+	case MAC_CAPAB_HCKSUM: {
+		uint32_t *hcksum_txflags = cap_data;
+
+		*hcksum_txflags = vnic->vn_hcksum_txflags &
+		    (HCKSUM_INET_FULL_V4 | HCKSUM_IPHDRCKSUM |
+		    HCKSUM_INET_PARTIAL);
+		break;
+	}
+	default:
+		return (B_FALSE);
+	}
+	return (B_TRUE);
+}
+
+static int
+vnic_m_start(void *arg)
+{
+	vnic_t *vnic = arg;
+	mac_handle_t lower_mh = vnic->vn_vnic_mac->va_mh;
+	int rc;
+
+	rc = mac_start(lower_mh);
+	if (rc != 0)
+		return (rc);
+
+	vnic_classifier_flow_update_fn(vnic->vn_flow_ent, vnic_rx, vnic, vnic);
+	return (0);
+}
+
+static void
+vnic_m_stop(void *arg)
+{
+	vnic_t *vnic = arg;
+	mac_handle_t lower_mh = vnic->vn_vnic_mac->va_mh;
+
+	vnic_classifier_flow_update_fn(vnic->vn_flow_ent, vnic_rx_initial,
+	    vnic, vnic);
+	mac_stop(lower_mh);
+}
+
+/* ARGSUSED */
+static int
+vnic_m_promisc(void *arg, boolean_t on)
+{
+	vnic_t *vnic = arg;
+
+	return (vnic_promisc_set(vnic, on));
+}
+
+static int
+vnic_m_multicst(void *arg, boolean_t add, const uint8_t *addrp)
+{
+	vnic_t *vnic = arg;
+	int rc = 0;
+
+	if (add)
+		rc = vnic_bcast_add(vnic, addrp, MAC_ADDRTYPE_MULTICAST);
+	else
+		vnic_bcast_delete(vnic, addrp);
+
+	return (rc);
+}
+
+static int
+vnic_m_unicst(void *arg, const uint8_t *mac_addr)
+{
+	vnic_t *vnic = arg;
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	int rv;
+
+	rw_enter(&vnic_lock, RW_WRITER);
+	rv = vnic_modify_mac_addr(vnic, vnic_mac->va_addr_len,
+	    (uchar_t *)mac_addr);
+	rw_exit(&vnic_lock);
+
+	if (rv == 0)
+		mac_unicst_update(vnic->vn_mh, mac_addr);
+	return (0);
+}
+
+int
+vnic_info(uint_t *nvnics, uint32_t vnic_id, char *dev_name, void *fn_arg,
+    vnic_info_new_vnic_fn_t new_vnic_fn)
+{
+	vnic_info_state_t state;
+	int rc = 0;
+
+	rw_enter(&vnic_lock, RW_READER);
+
+	*nvnics = vnic_count;
+
+	bzero(&state, sizeof (state));
+	state.vs_vnic_id = vnic_id;
+	bcopy(state.vs_dev_name, dev_name, MAXNAMELEN);
+	state.vs_new_vnic_fn = new_vnic_fn;
+	state.vs_fn_arg = fn_arg;
+
+	mod_hash_walk(vnic_hash, vnic_info_walker, &state);
+
+	if ((rc = state.vs_rc) == 0 && vnic_id != 0 &&
+	    state.vs_vnic_found)
+		rc = ENOENT;
+
+	rw_exit(&vnic_lock);
+	return (rc);
+}
+
+/*
+ * Walker invoked when building a list of vnics that must be passed
+ * up to user space.
+ */
+/*ARGSUSED*/
+static uint_t
+vnic_info_walker(mod_hash_key_t key, mod_hash_val_t *val, void *arg)
+{
+	vnic_t *vnic;
+	vnic_info_state_t *state = arg;
+
+	if (state->vs_rc != 0)
+		return (MH_WALK_TERMINATE);	/* terminate walk */
+
+	vnic = (vnic_t *)val;
+
+	if (state->vs_vnic_id != 0 && vnic->vn_id != state->vs_vnic_id)
+		goto bail;
+
+	state->vs_vnic_found = B_TRUE;
+
+	state->vs_rc = state->vs_new_vnic_fn(state->vs_fn_arg,
+	    vnic->vn_id, vnic->vn_addr_type, vnic->vn_vnic_mac->va_addr_len,
+	    vnic->vn_addr, vnic->vn_vnic_mac->va_dev_name);
+bail:
+	return ((state->vs_rc == 0) ? MH_WALK_CONTINUE : MH_WALK_TERMINATE);
+}
+
+/*
+ * vnic_notify_cb() and vnic_notify_walker() below are used to
+ * process events received from an underlying NIC and, if needed,
+ * forward these events to the VNICs defined on top of that NIC.
+ */
+
+typedef struct vnic_notify_state {
+	mac_notify_type_t	vo_type;
+	vnic_mac_t		*vo_vnic_mac;
+} vnic_notify_state_t;
+
+/* ARGSUSED */
+static uint_t
+vnic_notify_walker(mod_hash_key_t key, mod_hash_val_t *val, void *arg)
+{
+	vnic_t *vnic = (vnic_t *)val;
+	vnic_notify_state_t *state = arg;
+
+	/* ignore VNICs that don't use the specified underlying MAC */
+	if (vnic->vn_vnic_mac != state->vo_vnic_mac)
+		return (MH_WALK_CONTINUE);
+
+	switch (state->vo_type) {
+	case MAC_NOTE_TX:
+		mac_tx_update(vnic->vn_mh);
+		break;
+	case MAC_NOTE_LINK:
+		/*
+		 * The VNIC link state must be up regardless of
+		 * the link state of the underlying NIC to maintain
+		 * connectivity between VNICs on the same host.
+		 */
+		mac_link_update(vnic->vn_mh, LINK_STATE_UP);
+		break;
+	case MAC_NOTE_UNICST:
+		vnic_update_active_rx(vnic->vn_vnic_mac);
+		break;
+	case MAC_NOTE_VNIC:
+		/* only for clients which share a NIC with a VNIC */
+		break;
+	case MAC_NOTE_PROMISC:
+		mutex_enter(&vnic_mac_lock);
+		vnic->vn_vnic_mac->va_txinfo = mac_vnic_tx_get(
+		    vnic->vn_vnic_mac->va_mh);
+		mutex_exit(&vnic_mac_lock);
+		break;
+	}
+
+	return (MH_WALK_CONTINUE);
+}
+
+static void
+vnic_notify_cb(void *arg, mac_notify_type_t type)
+{
+	vnic_mac_t *vnic = arg;
+	vnic_notify_state_t state;
+
+	state.vo_type = type;
+	state.vo_vnic_mac = vnic;
+
+	rw_enter(&vnic_lock, RW_READER);
+	mod_hash_walk(vnic_hash, vnic_notify_walker, &state);
+	rw_exit(&vnic_lock);
+}
+
+static int
+vnic_modify_mac_addr(vnic_t *vnic, uint_t mac_len, uchar_t *mac_addr)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	vnic_flow_t *vnic_flow = vnic->vn_flow_ent;
+
+	ASSERT(RW_WRITE_HELD(&vnic_lock));
+
+	if (mac_len != vnic_mac->va_addr_len)
+		return (EINVAL);
+
+	vnic_classifier_flow_update_addr(vnic_flow, mac_addr);
+	return (0);
+}
+
+static int
+vnic_promisc_set(vnic_t *vnic, boolean_t on)
+{
+	vnic_mac_t *vnic_mac = vnic->vn_vnic_mac;
+	int r = -1;
+
+	if (vnic->vn_promisc == on)
+		return (0);
+
+	if (on) {
+		r = mac_promisc_set(vnic_mac->va_mh, B_TRUE, MAC_DEVPROMISC);
+		if (r != 0)
+			return (r);
+
+		rw_enter(&vnic_mac->va_promisc_lock, RW_WRITER);
+		vnic->vn_promisc_next = vnic_mac->va_promisc;
+		vnic_mac->va_promisc = vnic;
+		vnic_mac->va_promisc_gen++;
+
+		vnic->vn_promisc = B_TRUE;
+		rw_exit(&vnic_mac->va_promisc_lock);
+
+		return (0);
+	} else {
+		vnic_t *loop, *prev = NULL;
+
+		rw_enter(&vnic_mac->va_promisc_lock, RW_WRITER);
+		loop = vnic_mac->va_promisc;
+
+		while ((loop != NULL) && (loop != vnic)) {
+			prev = loop;
+			loop = loop->vn_promisc_next;
+		}
+
+		if ((loop != NULL) &&
+		    ((r = mac_promisc_set(vnic_mac->va_mh, B_FALSE,
+		    MAC_DEVPROMISC)) == 0)) {
+			if (prev != NULL)
+				prev->vn_promisc_next = loop->vn_promisc_next;
+			else
+				vnic_mac->va_promisc = loop->vn_promisc_next;
+			vnic_mac->va_promisc_gen++;
+
+			vnic->vn_promisc = B_FALSE;
+		}
+		rw_exit(&vnic_mac->va_promisc_lock);
+
+		return (r);
+	}
+}
+
+void
+vnic_promisc_rx(vnic_mac_t *vnic_mac, vnic_t *sender, mblk_t *mp)
+{
+	vnic_t *loop;
+	vnic_flow_t *flow;
+	const vnic_flow_fn_info_t *fn_info;
+	mac_header_info_t hdr_info;
+	boolean_t dst_must_match = B_TRUE;
+
+	ASSERT(mp->b_next == NULL);
+
+	rw_enter(&vnic_mac->va_promisc_lock, RW_READER);
+	if (vnic_mac->va_promisc == NULL)
+		goto done;
+
+	if (mac_header_info(vnic_mac->va_mh, mp, &hdr_info) != 0)
+		goto done;
+
+	/*
+	 * If this is broadcast or multicast then the destination
+	 * address need not match for us to deliver it.
+	 */
+	if ((hdr_info.mhi_dsttype == MAC_ADDRTYPE_BROADCAST) ||
+	    (hdr_info.mhi_dsttype == MAC_ADDRTYPE_MULTICAST))
+		dst_must_match = B_FALSE;
+
+	for (loop = vnic_mac->va_promisc;
+	    loop != NULL;
+	    loop = loop->vn_promisc_next) {
+		mblk_t *copy;
+		uint64_t gen;
+
+		if (loop == sender)
+			continue;
+
+		if (dst_must_match &&
+		    (bcmp(hdr_info.mhi_daddr, loop->vn_addr,
+		    sizeof (loop->vn_addr)) != 0))
+			continue;
+
+		flow = loop->vn_flow_ent;
+		ASSERT(flow != NULL);
+
+		if (!flow->vf_is_active) {
+			VNIC_FLOW_REFHOLD(flow);
+			gen = vnic_mac->va_promisc_gen;
+			rw_exit(&vnic_mac->va_promisc_lock);
+
+			if ((copy = vnic_copymsg_cksum(mp)) != NULL) {
+				fn_info = vnic_classifier_get_fn_info(flow);
+				(fn_info->ff_fn)(fn_info->ff_arg1,
+				    fn_info->ff_arg2, copy);
+			}
+
+			VNIC_FLOW_REFRELE(flow);
+			rw_enter(&vnic_mac->va_promisc_lock, RW_READER);
+			if (vnic_mac->va_promisc_gen != gen)
+				break;
+		}
+	}
+done:
+	rw_exit(&vnic_mac->va_promisc_lock);
+}
--- a/usr/src/uts/common/krtld/mapfile	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-{
-	global:
-		kobj_addrcheck;
-		kobj_alloc;
-		kobj_boot_mod_lookup;
-		kobj_boot_unmountroot;
-		kobj_close;
-		kobj_close_file;
-		kobj_export_module;
-		kobj_filbuf;
-		kobj_free;
-		kobj_fstat;
-		kobj_get_filesize;
-		kobj_getelfsym;
-		kobj_getmodinfo;
-		kobj_getpagesize;
-		kobj_getsymname;
-		kobj_getsymvalue;
-		kobj_load_module;
-		kobj_load_primary_module;
-		kobj_lookup;
-		kobj_lookup_all;
-		kobj_notify_add;
-		kobj_notify_remove;
-		kobj_open;
-		kobj_open_file;
-		kobj_path_exists;
-		kobj_open_path;
-		kobj_read;
-		kobj_read_file;
-		kobj_searchsym;
-		kobj_set_ctf;
-		kobj_stat_get;
-		kobj_sync;
-		kobj_sync_instruction_memory;
-		kobj_textwin_alloc;
-		kobj_textwin_free;
-		kobj_unload_module;
-		kobj_zalloc;
-		kobj_kdi;
-		kobj_linkmaps;
-		__tnf_tag_list_head;
-		__tnf_probe_list_head;
-		tnf_changed_probe_list;
-		boot_cpu_compatible_list;
-	local:
-		*;
-};
--- a/usr/src/uts/common/os/clock.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/os/clock.c	Tue Sep 18 15:46:43 2007 -0700
@@ -285,7 +285,8 @@
 	"Reversed",			/* TOD_REVERSED */
 	"Stalled",			/* TOD_STALLED */
 	"Jumped",			/* TOD_JUMPED */
-	"Changed in Clock Rate"		/* TOD_RATECHANGED */
+	"Changed in Clock Rate",	/* TOD_RATECHANGED */
+	"Is Read-Only"			/* TOD_RDONLY */
 	/*
 	 * no strings needed for TOD_NOFAULT
 	 */
@@ -1970,6 +1971,8 @@
  *       TOD_JUMPED: current tod value advanced too far from previous value.
  *       TOD_RATECHANGED: the ratio between average tod delta and
  *       average tick delta has changed.
+ * (3) TOD_RDONLY: when the TOD clock is not writeable e.g. because it is
+ *     a virtual TOD provided by a hypervisor.
  */
 enum tod_fault_type
 tod_fault(enum tod_fault_type ftype, int off)
@@ -2006,6 +2009,15 @@
 				tod_faulted = ftype;
 			}
 			break;
+		case TOD_RDONLY:
+			if (tod_faulted == TOD_NOFAULT) {
+				plat_tod_fault(ftype);
+				cmn_err(CE_NOTE, "!Time of Day clock is "
+				    "Read-Only; set of Date/Time will not "
+				    "persist across reboot.");
+				tod_faulted = ftype;
+			}
+			break;
 		default:
 			break;
 		}
--- a/usr/src/uts/common/os/dumpsubr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/os/dumpsubr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -78,6 +78,7 @@
 char		*dumppath;	/* pathname of dump device */
 int		dump_timeout = 120; /* timeout for dumping page during panic */
 int		dump_timeleft;	/* portion of dump_timeout remaining */
+int		dump_ioerr;	/* dump i/o error */
 
 #ifdef DEBUG
 int		dumpfaildebug = 1;	/* enter debugger if dump fails */
@@ -88,7 +89,6 @@
 static ulong_t	*dump_bitmap;	/* bitmap for marking pages to dump */
 static pgcnt_t	dump_bitmapsize; /* size of bitmap */
 static pid_t	*dump_pids;	/* list of process IDs at dump time */
-static int	dump_ioerr;	/* dump i/o error */
 static offset_t	dumpvp_off;	/* current dump device offset */
 static char	*dump_cmap;	/* VA for dump compression mapping */
 static char	*dumpbuf_cur, *dumpbuf_start, *dumpbuf_end;
@@ -151,7 +151,6 @@
 dumphdr_init(void)
 {
 	pgcnt_t npages = 0;
-	struct memlist *mp;
 
 	ASSERT(MUTEX_HELD(&dump_lock));
 
@@ -173,8 +172,7 @@
 		dump_pids = kmem_alloc(v.v_proc * sizeof (pid_t), KM_SLEEP);
 	}
 
-	for (mp = phys_install; mp != NULL; mp = mp->next)
-		npages += mp->size >> PAGESHIFT;
+	npages = num_phys_pages();
 
 	if (dump_bitmapsize != npages) {
 		void *map = kmem_alloc(BT_SIZEOFMAP(npages), KM_SLEEP);
--- a/usr/src/uts/common/os/mutex.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/os/mutex.c	Tue Sep 18 15:46:43 2007 -0700
@@ -235,6 +235,7 @@
 #include <sys/atomic.h>
 #include <sys/cpu.h>
 #include <sys/stack.h>
+#include <sys/archsystm.h>
 
 #define	BACKOFF_BASE	50
 #define	BACKOFF_CAP 	1600
--- a/usr/src/uts/common/os/panic.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/os/panic.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -129,6 +128,7 @@
 #include <sys/t_lock.h>
 #include <sys/cred.h>
 #include <sys/systm.h>
+#include <sys/archsystm.h>
 #include <sys/uadmin.h>
 #include <sys/callb.h>
 #include <sys/vfs.h>
@@ -313,7 +313,16 @@
 		fm_banner();
 		errorq_panic();
 
-		printf("\n\rpanic[cpu%d]/thread=%p: ", cp->cpu_id, (void *)t);
+#if defined(__x86)
+		/*
+		 * A hypervisor panic originates outside of Solaris, so we
+		 * don't want to prepend the panic message with misleading
+		 * pointers from within Solaris.
+		 */
+		if (!IN_XPV_PANIC())
+#endif
+			printf("\n\rpanic[cpu%d]/thread=%p: ", cp->cpu_id,
+			    (void *)t);
 		vprintf(format, alist);
 		printf("\n\n");
 
@@ -385,7 +394,8 @@
 	 * and unable to jump into the debugger.
 	 */
 	splx(MIN(s, ipltospl(CLOCK_LEVEL)));
-	for (;;);
+	for (;;)
+		;
 }
 
 void
--- a/usr/src/uts/common/sys/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -565,6 +565,8 @@
 	vmem_impl.h		\
 	vmmeter.h		\
 	vmsystm.h		\
+	vnic.h			\
+	vnic_impl.h		\
 	vnode.h			\
 	vtoc.h			\
 	vtrace.h		\
--- a/usr/src/uts/common/sys/cmlb.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/cmlb.h	Tue Sep 18 15:46:43 2007 -0700
@@ -60,6 +60,7 @@
 #define	CMLB_CREATE_ALTSLICE_VTOC_16_DTYPE_DIRECT	0x00000001
 #define	CMLB_FAKE_GEOM_LABEL_IOCTLS_VTOC8		0x00000002
 #define	CMLB_OFF_BY_ONE					0x00000004
+#define	CMLB_FAKE_LABEL_ONE_PARTITION			0x00000008
 
 
 /* bit definitions of flag passed to cmlb_validate */
--- a/usr/src/uts/common/sys/dumphdr.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/dumphdr.h	Tue Sep 18 15:46:43 2007 -0700
@@ -121,6 +121,7 @@
 
 extern int dump_timeout;
 extern int dump_timeleft;
+extern int dump_ioerr;
 extern int sync_timeout;
 extern int sync_timeleft;
 
--- a/usr/src/uts/common/sys/hold_page.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/hold_page.h	Tue Sep 18 15:46:43 2007 -0700
@@ -49,15 +49,15 @@
  *
  *	If lock is PLAT_HOLD_LOCK, in addition to the above, attempt to lock
  *	the page exclusively.  Again, if the lock is successful, the page
- *	pointer will be put in pp, and PLAT_HOLD_OK will be returned.  pp_ret
- *	must be passed to a later call to plat_release_page.  If the page
- *	wasn't found, or the lock couldn't be grabbed, the return value will
- *	be PLAT_HOLD_FAIL.
+ *	pointer will be put in pp_ret, and PLAT_HOLD_OK will be returned.
+ *	pp_ret must be passed to a later call to plat_release_page.  If the
+ *	page wasn't found, or the lock couldn't be grabbed, the return value
+ *	will be PLAT_HOLD_FAIL.
  *
  * void plat_release_page(page_t *pp)
  *
  *	Unlock the page pp.  Should only be called after a previous,
- *	successful call to plat_release_page(pfn, PLAT_HOLD_LOCK, &pp);
+ *	successful call to plat_hold_page(pfn, PLAT_HOLD_LOCK, &pp);
  */
 
 #define	PLAT_HOLD_NO_LOCK	0
--- a/usr/src/uts/common/sys/mac.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/mac.h	Tue Sep 18 15:46:43 2007 -0700
@@ -84,6 +84,11 @@
 	LINK_DUPLEX_FULL
 } link_duplex_t;
 
+/*
+ * Maximum MAC address length
+ */
+#define	MAXMACADDRLEN	20
+
 #ifdef	_KERNEL
 
 typedef struct mac_stat_info_s {
@@ -152,11 +157,6 @@
 	    (_stat) == MAC_STAT_OVERFLOWS)
 
 /*
- * Maximum MAC address length
- */
-#define	MAXMACADDRLEN	20
-
-/*
  * Immutable information. (This may not be modified after registration).
  */
 typedef struct mac_info_s {
@@ -324,6 +324,7 @@
 	MAC_NOTE_RESOURCE,
 	MAC_NOTE_DEVPROMISC,
 	MAC_NOTE_FASTPATH_FLUSH,
+	MAC_NOTE_VNIC,
 	MAC_NNOTE	/* must be the last entry */
 } mac_notify_type_t;
 
@@ -513,6 +514,7 @@
 extern void			mac_resources(mac_handle_t);
 extern void			mac_ioctl(mac_handle_t, queue_t *, mblk_t *);
 extern const mac_txinfo_t	*mac_tx_get(mac_handle_t);
+extern const mac_txinfo_t	*mac_vnic_tx_get(mac_handle_t);
 extern link_state_t		mac_link_get(mac_handle_t);
 extern mac_notify_handle_t	mac_notify_add(mac_handle_t, mac_notify_t,
     void *);
@@ -520,6 +522,8 @@
     mac_notify_handle_t);
 extern void			mac_notify(mac_handle_t);
 extern mac_rx_handle_t		mac_rx_add(mac_handle_t, mac_rx_t, void *);
+extern mac_rx_handle_t		mac_active_rx_add(mac_handle_t, mac_rx_t,
+    void *);
 extern void			mac_rx_remove(mac_handle_t, mac_rx_handle_t,
     boolean_t);
 extern void			mac_rx_remove_wait(mac_handle_t);
@@ -529,12 +533,20 @@
 extern void			mac_txloop_remove(mac_handle_t,
     mac_txloop_handle_t);
 extern boolean_t		mac_active_set(mac_handle_t);
+extern boolean_t		mac_active_shareable_set(mac_handle_t);
 extern void			mac_active_clear(mac_handle_t);
+extern void			mac_active_rx(void *, mac_resource_handle_t,
+    mblk_t *);
+extern boolean_t		mac_vnic_set(mac_handle_t, mac_txinfo_t *,
+    mac_getcapab_t, void *);
+extern void			mac_vnic_clear(mac_handle_t);
 extern void			mac_resource_set(mac_handle_t,
     mac_resource_add_t, void *);
 extern dev_info_t		*mac_devinfo_get(mac_handle_t);
 extern boolean_t		mac_capab_get(mac_handle_t, mac_capab_t,
     void *);
+extern boolean_t		mac_vnic_capab_get(mac_handle_t, mac_capab_t,
+    void *);
 extern boolean_t		mac_sap_verify(mac_handle_t, uint32_t,
     uint32_t *);
 extern mblk_t			*mac_header(mac_handle_t, const uint8_t *,
@@ -550,6 +562,7 @@
 extern mac_register_t		*mac_alloc(uint_t);
 extern void			mac_free(mac_register_t *);
 extern int			mac_register(mac_register_t *, mac_handle_t *);
+extern int			mac_disable(mac_handle_t);
 extern int  			mac_unregister(mac_handle_t);
 extern void 			mac_rx(mac_handle_t, mac_resource_handle_t,
     mblk_t *);
--- a/usr/src/uts/common/sys/mac_impl.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/mac_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -67,6 +67,7 @@
 	mac_rx_t		mrf_fn;
 	void			*mrf_arg;
 	boolean_t		mrf_inuse;
+	boolean_t		mrf_active;
 };
 
 typedef struct mac_txloop_fn_s		mac_txloop_fn_t;
@@ -89,6 +90,30 @@
 	size_t		mt_statcount;	/* number of elements in mt_stats */
 } mactype_t;
 
+
+#define	MAC_VNIC_TXINFO_REFHOLD(mvt) {				\
+	mutex_enter(&(mvt)->mv_lock);				\
+	(mvt)->mv_refs++;					\
+	mutex_exit(&(mvt)->mv_lock);				\
+}
+
+#define	MAC_VNIC_TXINFO_REFRELE(mvt) {				\
+	mutex_enter(&(mvt)->mv_lock);				\
+	if (--(mvt)->mv_refs == 0 && (mvt)->mv_clearing) {	\
+	    (mvt)->mv_clearing = B_FALSE;			\
+	    cv_signal(&(mvt)->mv_cv);				\
+	}							\
+	mutex_exit(&(mvt)->mv_lock);				\
+}
+
+typedef struct mac_vnic_tx_s {
+	mac_txinfo_t	mv_txinfo;	/* provided by VNIC */
+	uint32_t	mv_refs;
+	kmutex_t	mv_lock;
+	kcondvar_t	mv_cv;
+	boolean_t	mv_clearing;
+} mac_vnic_tx_t;
+
 /*
  * Each registered MAC is associated with a mac_t structure.
  */
@@ -123,7 +148,7 @@
 	kcondvar_t		mi_notify_cv;
 	krwlock_t		mi_rx_lock;
 	mac_rx_fn_t		*mi_mrfp;
-	krwlock_t		mi_txloop_lock;
+	krwlock_t		mi_tx_lock;
 	mac_txloop_fn_t		*mi_mtfp;
 	krwlock_t		mi_resource_lock;
 	mac_resource_add_t	mi_resource_add;
@@ -139,6 +164,13 @@
 						/* for removal */
 	kmutex_t		mi_lock;
 	kcondvar_t		mi_rx_cv;
+	boolean_t		mi_shareable;
+	boolean_t		mi_vnic_present;
+	mac_vnic_tx_t		*mi_vnic_tx;
+	mac_txinfo_t		mi_vnic_txinfo;
+	mac_txinfo_t		mi_vnic_txloopinfo;
+	mac_getcapab_t		mi_vnic_getcapab_fn;
+	void			*mi_vnic_getcapab_arg;
 } mac_impl_t;
 
 #define	mi_getstat	mi_callbacks->mc_getstat
--- a/usr/src/uts/common/sys/mem.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/mem.h	Tue Sep 18 15:46:43 2007 -0700
@@ -142,7 +142,7 @@
 
 extern pfn_t impl_obmem_pfnum(pfn_t);
 
-extern int plat_mem_valid_page(uintptr_t, uio_rw_t);
+extern int plat_mem_do_mmio(struct uio *, enum uio_rw);
 
 #endif	/* _KERNEL */
 
--- a/usr/src/uts/common/sys/memlist.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/memlist.h	Tue Sep 18 15:46:43 2007 -0700
@@ -59,6 +59,8 @@
  */
 extern struct memlist *phys_install;
 
+extern pgcnt_t num_phys_pages();
+
 #ifdef __cplusplus
 }
 #endif
--- a/usr/src/uts/common/sys/panic.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/panic.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -116,6 +115,12 @@
 extern timespec_t panic_hrestime;
 
 /*
+ * Forward declarations for types:
+ */
+struct panic_trap_info;
+struct regs;
+
+/*
  * Miscellaneous state variables defined in or used by the panic code:
  */
 extern char *panic_bootstr;
@@ -129,20 +134,17 @@
 extern int panic_quiesce;
 extern int panic_sync;
 extern int panic_dump;
-
-/*
- * Forward declarations for types:
- */
-struct trap_info;
-struct regs;
+extern int64_t panic_lbolt64;
+extern label_t panic_regs;
+extern struct regs *panic_reg;
 
 /*
  * Panic functions called from the common panic code which must be
  * implemented by architecture or platform-specific code:
  */
 extern void panic_saveregs(panic_data_t *, struct regs *);
-extern void panic_savetrap(panic_data_t *, struct trap_info *);
-extern void panic_showtrap(struct trap_info *);
+extern void panic_savetrap(panic_data_t *, struct panic_trap_info *);
+extern void panic_showtrap(struct panic_trap_info *);
 extern void panic_stopcpus(cpu_t *, kthread_t *, int);
 extern void panic_enter_hw(int);
 extern void panic_quiesce_hw(panic_data_t *);
--- a/usr/src/uts/common/sys/proc.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/proc.h	Tue Sep 18 15:46:43 2007 -0700
@@ -583,7 +583,6 @@
 extern void upcount_dec(uid_t, zoneid_t);
 extern int upcount_get(uid_t, zoneid_t);
 #if defined(__x86)
-extern void ldt_dup(proc_t *, proc_t *);
 extern selector_t setup_thrptr(proc_t *, uintptr_t);
 extern void deferred_singlestep_trap(caddr_t);
 #endif
--- a/usr/src/uts/common/sys/sdt.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/sdt.h	Tue Sep 18 15:46:43 2007 -0700
@@ -159,6 +159,23 @@
 #define	DTRACE_SYSEVENT2(name, type1, arg1, type2, arg2)		\
 	DTRACE_PROBE2(__sysevent_##name, type1, arg1, type2, arg2);
 
+#define	DTRACE_XPV(name)						\
+	DTRACE_PROBE(__xpv_##name);
+
+#define	DTRACE_XPV1(name, type1, arg1)					\
+	DTRACE_PROBE1(__xpv_##name, type1, arg1);
+
+#define	DTRACE_XPV2(name, type1, arg1, type2, arg2)			\
+	DTRACE_PROBE2(__xpv_##name, type1, arg1, type2, arg2);
+
+#define	DTRACE_XPV3(name, type1, arg1, type2, arg2, type3, arg3)	\
+	DTRACE_PROBE3(__xpv_##name, type1, arg1, type2, arg2, type3, arg3);
+
+#define	DTRACE_XPV4(name, type1, arg1, type2, arg2, type3, arg3,	\
+	    type4, arg4)						\
+	DTRACE_PROBE4(__xpv_##name, type1, arg1, type2, arg2, 		\
+	    type3, arg3, type4, arg4);
+
 #endif /* _KERNEL */
 
 extern const char *sdt_prefix;
--- a/usr/src/uts/common/sys/systm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/systm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -133,6 +133,7 @@
 	TOD_STALLED,
 	TOD_JUMPED,
 	TOD_RATECHANGED,
+	TOD_RDONLY,
 	TOD_NOFAULT
 };
 
--- a/usr/src/uts/common/sys/thread.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/thread.h	Tue Sep 18 15:46:43 2007 -0700
@@ -96,7 +96,7 @@
 typedef struct _kthread	*kthread_id_t;
 
 struct turnstile;
-struct trap_info;
+struct panic_trap_info;
 struct upimutex;
 struct kproject;
 struct on_trap_data;
@@ -284,7 +284,7 @@
 	struct _kthread	*t_priback;
 
 	struct sleepq	*t_sleepq;	/* sleep queue thread is waiting on */
-	struct trap_info *t_panic_trap;	/* saved data from fatal trap */
+	struct panic_trap_info *t_panic_trap;	/* saved data from fatal trap */
 	int		*t_lgrp_affinity;	/* lgroup affinity */
 	struct upimutex	*t_upimutex;	/* list of upimutexes owned by thread */
 	uint32_t	t_nupinest;	/* number of nested held upi mutexes */
--- a/usr/src/uts/common/sys/time.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/sys/time.h	Tue Sep 18 15:46:43 2007 -0700
@@ -292,7 +292,6 @@
 extern	hrtime_t	gethrtime_max(void);
 extern	hrtime_t	gethrtime_waitfree(void);
 extern	void		scalehrtime(hrtime_t *);
-extern  uint64_t	unscalehrtime(hrtime_t);
 extern	void 		gethrestime(timespec_t *);
 extern	time_t 		gethrestime_sec(void);
 extern	void		gethrestime_lasttick(timespec_t *);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/sys/vnic.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,144 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_VNIC_H
+#define	_SYS_VNIC_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/ethernet.h>
+#include <sys/param.h>
+#include <sys/mac.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/* control interface name */
+#define	VNIC_CTL_NODE_NAME	"ctl"
+#define	VNIC_CTL_NODE_MINOR	1		/* control interface minor */
+
+#define	VNIC_IOC(x)	(('v' << 24) | ('n' << 16) | ('i' << 8) | (x))
+
+/*
+ * For now, we support only MAC addresses specified by value.
+ */
+
+typedef enum {
+	VNIC_MAC_ADDR_TYPE_FIXED
+} vnic_mac_addr_type_t;
+
+#define	VNIC_IOC_CREATE		VNIC_IOC(1)
+
+typedef struct vnic_ioc_create {
+	uint_t		vc_vnic_id;
+	uint_t		vc_mac_len;
+	uchar_t		vc_dev_name[MAXNAMELEN];
+	vnic_mac_addr_type_t vc_mac_addr_type;
+	uchar_t		vc_mac_addr[MAXMACADDRLEN];
+} vnic_ioc_create_t;
+
+#ifdef _SYSCALL32
+
+typedef struct vnic_ioc_create32 {
+	uint32_t	vc_vnic_id;
+	uint32_t	vc_mac_len;
+	uchar_t		vc_dev_name[MAXNAMELEN];
+	vnic_mac_addr_type_t vc_mac_addr_type;
+	uchar_t		vc_mac_addr[MAXMACADDRLEN];
+} vnic_ioc_create32_t;
+
+#endif /* _SYSCALL32 */
+
+#define	VNIC_IOC_DELETE		VNIC_IOC(2)
+
+typedef struct vnic_ioc_delete {
+	uint_t		vd_vnic_id;
+} vnic_ioc_delete_t;
+
+#ifdef _SYSCALL32
+
+typedef struct vnic_ioc_delete32 {
+	uint32_t	vd_vnic_id;
+} vnic_ioc_delete32_t;
+
+#endif /* _SYSCALL32 */
+
+#define	VNIC_IOC_INFO		VNIC_IOC(3)
+
+typedef struct vnic_ioc_info_vnic {
+	uint32_t	vn_vnic_id;
+	uint32_t	vn_mac_len;
+	uchar_t		vn_mac_addr[MAXMACADDRLEN];
+	char		vn_dev_name[MAXNAMELEN];
+	vnic_mac_addr_type_t vn_mac_addr_type;
+} vnic_ioc_info_vnic_t;
+
+typedef struct vnic_ioc_info {
+	uint_t		vi_nvnics;
+	uint_t		vi_vnic_id;	/* 0 returns all */
+	char		vi_dev_name[MAXNAMELEN];
+} vnic_ioc_info_t;
+
+#ifdef _SYSCALL32
+
+typedef struct vnic_ioc_info32 {
+	uint32_t	vi_nvnics;
+	uint32_t	vi_vnic_id;	/* 0 returns all */
+	char		vi_dev_name[MAXNAMELEN];
+} vnic_ioc_info32_t;
+
+#endif /* _SYSCALL32 */
+
+#define	VNIC_IOC_MODIFY		VNIC_IOC(4)
+
+#define	VNIC_IOC_MODIFY_ADDR		0x01
+
+typedef struct vnic_ioc_modify {
+	uint_t		vm_vnic_id;
+	uint_t		vm_modify_mask;
+	uchar_t		vm_mac_addr[MAXMACADDRLEN];
+	vnic_mac_addr_type_t vm_mac_addr_type;
+	uint_t		vm_mac_len;
+} vnic_ioc_modify_t;
+
+#ifdef _SYSCALL32
+
+typedef struct vnic_ioc_modify32 {
+	uint32_t	vm_vnic_id;
+	uint32_t	vm_modify_mask;
+	uchar_t		vm_mac_addr[MAXMACADDRLEN];
+	vnic_mac_addr_type_t vm_mac_addr_type;
+	uint32_t	vm_mac_len;
+} vnic_ioc_modify32_t;
+
+#endif /* _SYSCALL32 */
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _SYS_VNIC_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/sys/vnic_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,195 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_VNIC_IMPL_H
+#define	_SYS_VNIC_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/vnic.h>
+#include <sys/ksynch.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef void (*vnic_rx_fn_t)(void *, void *, mblk_t *);
+
+typedef struct vnic_flow_fn_info_s {
+	vnic_rx_fn_t	ff_fn;
+	void		*ff_arg1;
+	void		*ff_arg2;
+} vnic_flow_fn_info_t;
+
+typedef struct vnic_flow_s {
+	uchar_t			vf_addr[MAXMACADDRLEN];
+	uint_t			vf_addr_len;
+	vnic_flow_fn_info_t	vf_fn_info;
+	void			*vf_cookie;
+	struct vnic_flow_s	*vf_next;
+	kmutex_t		vf_lock;
+	kcondvar_t		vf_cv;
+	uint32_t		vf_refs;
+	boolean_t		vf_clearing;
+	boolean_t		vf_is_active;
+} vnic_flow_t;
+
+typedef struct vnic_flow_tab_s {
+	vnic_flow_t		*vt_flow_list;
+	krwlock_t		vt_lock;
+	uint_t			vt_addr_len;
+} vnic_flow_tab_t;
+
+typedef struct vnic_mac_s {
+	mac_handle_t		va_mh;
+	uint_t			va_refs;
+	char			va_dev_name[MAXNAMELEN];
+	const mac_txinfo_t	*va_txinfo;
+	struct vnic_bcast_grp_s	*va_bcast_grp;
+	krwlock_t		va_bcast_grp_lock;
+	size_t			va_addr_len;
+	mac_notify_handle_t	va_notify_hdl;
+	mac_rx_handle_t		va_rx_hdl;
+	vnic_flow_t		*va_active_flow;
+	vnic_flow_tab_t		*va_flow_tab;
+	boolean_t		va_mac_set;
+	struct vnic_s		*va_promisc;
+	krwlock_t		va_promisc_lock;
+	uint64_t		va_promisc_gen;
+} vnic_mac_t;
+
+typedef struct vnic_s {
+	uint_t		vn_id;
+	uint32_t
+		vn_started : 1,
+		vn_promisc : 1,
+		vn_bcast_grp : 1,
+		vn_multi_mac : 1,
+		vn_promisc_mac : 1,
+		vn_pad_to_bit_31 : 27;
+
+	int		vn_slot_id;
+	multiaddress_capab_t	vn_mma_capab;
+	uint8_t		vn_addr[ETHERADDRL];
+	vnic_mac_addr_type_t vn_addr_type;
+
+	mac_handle_t	vn_mh;
+	vnic_mac_t	*vn_vnic_mac;
+	vnic_flow_t	*vn_flow_ent;
+	uint32_t	vn_hcksum_txflags;
+	struct vnic_s	*vn_promisc_next;
+
+	uint64_t	vn_stat_multircv;
+	uint64_t	vn_stat_brdcstrcv;
+	uint64_t	vn_stat_multixmt;
+	uint64_t	vn_stat_brdcstxmt;
+	uint64_t	vn_stat_ierrors;
+	uint64_t	vn_stat_oerrors;
+	uint64_t	vn_stat_rbytes;
+	uint64_t	vn_stat_ipackets;
+	uint64_t	vn_stat_obytes;
+	uint64_t	vn_stat_opackets;
+} vnic_t;
+
+#define	vn_txinfo	vn_vnic_mac->va_txinfo
+
+#define	vn_madd_naddr		vn_mma_capab.maddr_naddr
+#define	vn_maddr_naddrfree	vn_mma_capab.maddr_naddrfree
+#define	vn_maddr_flag		vn_mma_capab.maddr_flag
+#define	vn_maddr_handle		vn_mma_capab.maddr_handle
+#define	vn_maddr_reserve	vn_mma_capab.maddr_reserve
+#define	vn_maddr_add		vn_mma_capab.maddr_add
+#define	vn_maddr_remove		vn_mma_capab.maddr_remove
+#define	vn_maddr_modify		vn_mma_capab.maddr_modify
+#define	vn_maddr_get		vn_mma_capab.maddr_get
+
+#define	VNIC_FLOW_REFHOLD(flow) {				\
+	mutex_enter(&(flow)->vf_lock);				\
+	(flow)->vf_refs++;					\
+	mutex_exit(&(flow)->vf_lock);				\
+}
+
+#define	VNIC_FLOW_REFRELE(flow) {				\
+	mutex_enter(&(flow)->vf_lock);				\
+	if (--(flow)->vf_refs == 0 && (flow)->vf_clearing) {	\
+	    (flow)->vf_clearing = B_FALSE;			\
+	    cv_signal(&(flow)->vf_cv);				\
+	}							\
+	mutex_exit(&(flow)->vf_lock);				\
+}
+
+extern int vnic_dev_create(uint_t, char *, int, uchar_t *);
+extern int vnic_dev_modify(uint_t, uint_t, vnic_mac_addr_type_t,
+    uint_t, uchar_t *);
+extern int vnic_dev_delete(uint_t);
+
+typedef int (*vnic_info_new_vnic_fn_t)(void *, uint32_t, vnic_mac_addr_type_t,
+    uint_t, uint8_t *, char *);
+
+extern void vnic_dev_init(void);
+extern void vnic_dev_fini(void);
+extern uint_t vnic_dev_count(void);
+extern dev_info_t *vnic_get_dip(void);
+
+extern int vnic_info(uint_t *, uint32_t, char *, void *,
+    vnic_info_new_vnic_fn_t);
+
+extern void vnic_rx(void *, void *, mblk_t *);
+extern mblk_t *vnic_fix_cksum(mblk_t *);
+extern mblk_t *vnic_copymsgchain_cksum(mblk_t *);
+extern mblk_t *vnic_copymsg_cksum(mblk_t *);
+
+extern void vnic_promisc_rx(vnic_mac_t *, vnic_t *, mblk_t *);
+
+extern void vnic_bcast_init(void);
+extern void vnic_bcast_fini(void);
+extern int vnic_bcast_add(vnic_t *, const uint8_t *, mac_addrtype_t);
+extern void vnic_bcast_delete(vnic_t *, const uint8_t *);
+extern void vnic_bcast_send(void *, void *, mblk_t *);
+
+extern void vnic_classifier_init(void);
+extern void vnic_classifier_fini(void);
+extern vnic_flow_t *vnic_classifier_flow_create(uint_t, uchar_t *, void *,
+    boolean_t, int);
+extern void vnic_classifier_flow_destroy(vnic_flow_t *);
+extern void vnic_classifier_flow_add(vnic_mac_t *, vnic_flow_t *, vnic_rx_fn_t,
+    void *, void *);
+extern void vnic_classifier_flow_remove(vnic_mac_t *, vnic_flow_t *);
+extern void vnic_classifier_flow_update_addr(vnic_flow_t *, uchar_t *);
+extern void vnic_classifier_flow_update_fn(vnic_flow_t *, vnic_rx_fn_t,
+    void *, void *);
+extern int vnic_classifier_flow_tab_init(vnic_mac_t *, uint_t, int);
+extern void vnic_classifier_flow_tab_fini(vnic_mac_t *);
+extern vnic_flow_t *vnic_classifier_get_flow(vnic_mac_t *, mblk_t *);
+extern void *vnic_classifier_get_client_cookie(vnic_flow_t *);
+extern vnic_flow_fn_info_t *vnic_classifier_get_fn_info(vnic_flow_t *);
+extern boolean_t vnic_classifier_is_active(vnic_flow_t *);
+
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _SYS_VNIC_IMPL_H */
--- a/usr/src/uts/common/vm/faultcode.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/vm/faultcode.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 1992 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -67,6 +66,9 @@
 
 #ifndef	_ASM
 typedef	int	faultcode_t;	/* type returned by vm fault routines */
+
+extern int fc_decode(faultcode_t);
+
 #endif	/* _ASM */
 
 #ifdef	__cplusplus
--- a/usr/src/uts/common/vm/seg_kmem.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/vm/seg_kmem.c	Tue Sep 18 15:46:43 2007 -0700
@@ -957,7 +957,8 @@
  * kernel memory that is exported by drivers to user space.
  */
 static void
-segkmem_free_vn(vmem_t *vmp, void *inaddr, size_t size, struct vnode *vp)
+segkmem_free_vn(vmem_t *vmp, void *inaddr, size_t size, struct vnode *vp,
+    void (*func)(page_t *))
 {
 	page_t *pp;
 	caddr_t addr = inaddr;
@@ -999,9 +1000,13 @@
 			panic("segkmem_free: page not found");
 		/* Clear p_lckcnt so page_destroy() doesn't update availrmem */
 		pp->p_lckcnt = 0;
-		page_destroy(pp, 0);
+		if (func)
+			func(pp);
+		else
+			page_destroy(pp, 0);
 	}
-	page_unresv(npages);
+	if (func == NULL)
+		page_unresv(npages);
 
 	if (vmp != NULL)
 		vmem_free(vmp, inaddr, size);
@@ -1009,15 +1014,21 @@
 }
 
 void
+segkmem_xfree(vmem_t *vmp, void *inaddr, size_t size, void (*func)(page_t *))
+{
+	segkmem_free_vn(vmp, inaddr, size, &kvp, func);
+}
+
+void
 segkmem_free(vmem_t *vmp, void *inaddr, size_t size)
 {
-	segkmem_free_vn(vmp, inaddr, size, &kvp);
+	segkmem_free_vn(vmp, inaddr, size, &kvp, NULL);
 }
 
 void
 segkmem_zio_free(vmem_t *vmp, void *inaddr, size_t size)
 {
-	segkmem_free_vn(vmp, inaddr, size, &zvp);
+	segkmem_free_vn(vmp, inaddr, size, &zvp, NULL);
 }
 
 void
--- a/usr/src/uts/common/vm/seg_kmem.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/vm/seg_kmem.h	Tue Sep 18 15:46:43 2007 -0700
@@ -74,6 +74,7 @@
 extern void *segkmem_alloc(vmem_t *, size_t, int);
 extern void *segkmem_alloc_permanent(vmem_t *, size_t, int);
 extern void segkmem_free(vmem_t *, void *, size_t);
+extern void segkmem_xfree(vmem_t *, void *, size_t, void (*)(page_t *));
 
 extern void *boot_alloc(void *, size_t, uint_t);
 extern void boot_mapin(caddr_t addr, size_t size);
--- a/usr/src/uts/common/vm/vm_as.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/vm/vm_as.c	Tue Sep 18 15:46:43 2007 -0700
@@ -122,7 +122,7 @@
 	if (size != -1) {
 		saddr = (caddr_t)((uintptr_t)vaddr & (uintptr_t)PAGEMASK);
 		rsize = (((size_t)(vaddr + size) + PAGEOFFSET) & PAGEMASK) -
-			(size_t)saddr;
+		    (size_t)saddr;
 		/* check for wraparound */
 		if (saddr + rsize < saddr)
 			return (ENOMEM);
@@ -638,7 +638,7 @@
 as_init(void)
 {
 	as_cache = kmem_cache_create("as_cache", sizeof (struct as), 0,
-		as_constructor, as_destructor, NULL, NULL, NULL, 0);
+	    as_constructor, as_destructor, NULL, NULL, NULL, 0);
 }
 
 /*
@@ -696,7 +696,8 @@
 	 * When as_do_callbacks returns zero, all callbacks have completed.
 	 */
 	mutex_enter(&as->a_contents);
-	while (as->a_callbacks && as_do_callbacks(as, AS_ALL_EVENT, 0, 0));
+	while (as->a_callbacks && as_do_callbacks(as, AS_ALL_EVENT, 0, 0))
+		;
 
 	/* This will prevent new XHATs from attaching to as */
 	if (!called)
@@ -913,13 +914,13 @@
 
 	/* Kernel probe */
 	TNF_PROBE_3(address_fault, "vm pagefault", /* CSTYLED */,
-		tnf_opaque,	address,	addr,
-		tnf_fault_type,	fault_type,	type,
-		tnf_seg_access,	access,		rw);
+	    tnf_opaque,	address,	addr,
+	    tnf_fault_type,	fault_type,	type,
+	    tnf_seg_access,	access,		rw);
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	/*
 	 * XXX -- Don't grab the as lock for segkmap. We should grab it for
@@ -1084,7 +1085,7 @@
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
 	seg = as_segat(as, raddr);
@@ -1148,7 +1149,7 @@
 setprot_top:
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	if (raddr + rsize < raddr)		/* check for wraparound */
 		return (ENOMEM);
@@ -1249,8 +1250,8 @@
 			 */
 			mutex_enter(&as->a_contents);
 			if (as->a_callbacks &&
-				(cb = as_find_callback(as, AS_SETPROT_EVENT,
-						seg->s_base, seg->s_size))) {
+			    (cb = as_find_callback(as, AS_SETPROT_EVENT,
+			    seg->s_base, seg->s_size))) {
 				AS_LOCK_EXIT(as, &as->a_lock);
 				as_execute_callback(as, cb, AS_SETPROT_EVENT);
 			} else {
@@ -1292,7 +1293,7 @@
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	if (raddr + rsize < raddr)		/* check for wraparound */
 		return (ENOMEM);
@@ -1421,8 +1422,8 @@
 			as_setwatch(as);
 			mutex_enter(&as->a_contents);
 			if (as->a_callbacks &&
-				(cb = as_find_callback(as, AS_UNMAP_EVENT,
-						seg->s_base, seg->s_size))) {
+			    (cb = as_find_callback(as, AS_UNMAP_EVENT,
+			    seg->s_base, seg->s_size))) {
 				AS_LOCK_EXIT(as, &as->a_lock);
 				as_execute_callback(as, cb, AS_UNMAP_EVENT);
 			} else {
@@ -1696,7 +1697,7 @@
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	/*
 	 * check for wrap around
@@ -2099,7 +2100,7 @@
 	*sizep = 0;
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = ((((size_t)addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	if (raddr + rsize < raddr)		/* check for wraparound */
 		return (ENOMEM);
@@ -2147,10 +2148,10 @@
 	while (bt_range(bitmap, &pos1, &pos2, end_pos)) {
 		size = ptob((pos2 - pos1));
 		range_start = (caddr_t)((uintptr_t)addr +
-			ptob(pos1 - position));
+		    ptob(pos1 - position));
 
 		(void) SEGOP_LOCKOP(seg, range_start, size, attr, MC_UNLOCK,
-			(ulong_t *)NULL, (size_t)NULL);
+		    (ulong_t *)NULL, (size_t)NULL);
 		pos1 = pos2;
 	}
 }
@@ -2234,12 +2235,12 @@
 			raddr = (caddr_t)((uintptr_t)seg->s_base &
 			    (uintptr_t)PAGEMASK);
 			rlen += (((uintptr_t)(seg->s_base + seg->s_size) +
-				PAGEOFFSET) & PAGEMASK) - (uintptr_t)raddr;
+			    PAGEOFFSET) & PAGEMASK) - (uintptr_t)raddr;
 		} while ((seg = AS_SEGNEXT(as, seg)) != NULL);
 
 		mlock_size = BT_BITOUL(btopr(rlen));
 		if ((mlock_map = (ulong_t *)kmem_zalloc(mlock_size *
-			sizeof (ulong_t), KM_NOSLEEP)) == NULL) {
+		    sizeof (ulong_t), KM_NOSLEEP)) == NULL) {
 				AS_LOCK_EXIT(as, &as->a_lock);
 				return (EAGAIN);
 		}
@@ -2254,13 +2255,13 @@
 
 		if (error) {
 			for (seg = AS_SEGFIRST(as); seg != NULL;
-				seg = AS_SEGNEXT(as, seg)) {
+			    seg = AS_SEGNEXT(as, seg)) {
 
 				raddr = (caddr_t)((uintptr_t)seg->s_base &
-					(uintptr_t)PAGEMASK);
+				    (uintptr_t)PAGEMASK);
 				npages = seg_pages(seg);
 				as_segunlock(seg, raddr, attr, mlock_map,
-					idx, npages);
+				    idx, npages);
 				idx += npages;
 			}
 		}
@@ -2289,7 +2290,7 @@
 	 */
 	initraddr = raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	initrsize = rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 
 	if (raddr + rsize < raddr) {		/* check for wraparound */
 		AS_LOCK_EXIT(as, &as->a_lock);
@@ -2307,7 +2308,7 @@
 	if (func == MC_LOCK) {
 		mlock_size = BT_BITOUL(btopr(rsize));
 		if ((mlock_map = (ulong_t *)kmem_zalloc(mlock_size *
-			sizeof (ulong_t), KM_NOSLEEP)) == NULL) {
+		    sizeof (ulong_t), KM_NOSLEEP)) == NULL) {
 				AS_LOCK_EXIT(as, &as->a_lock);
 				return (EAGAIN);
 		}
@@ -2329,9 +2330,9 @@
 			if (seg == NULL || raddr != seg->s_base) {
 				if (func == MC_LOCK) {
 					as_unlockerr(as, attr, mlock_map,
-						initraddr, initrsize - rsize);
+					    initraddr, initrsize - rsize);
 					kmem_free(mlock_map,
-						mlock_size * sizeof (ulong_t));
+					    mlock_size * sizeof (ulong_t));
 				}
 				AS_LOCK_EXIT(as, &as->a_lock);
 				return (ENOMEM);
@@ -2364,11 +2365,11 @@
 		 */
 		case MC_LOCK:
 			if (error = SEGOP_LOCKOP(seg, raddr, ssize,
-				attr, func, mlock_map, pos)) {
+			    attr, func, mlock_map, pos)) {
 				as_unlockerr(as, attr, mlock_map, initraddr,
-					initrsize - rsize + ssize);
+				    initrsize - rsize + ssize);
 				kmem_free(mlock_map, mlock_size *
-					sizeof (ulong_t));
+				    sizeof (ulong_t));
 				AS_LOCK_EXIT(as, &as->a_lock);
 				goto lockerr;
 			}
@@ -2379,7 +2380,7 @@
 		 */
 		case MC_UNLOCK:
 			(void) SEGOP_LOCKOP(seg, raddr, ssize, attr, func,
-				(ulong_t *)NULL, (size_t)NULL);
+			    (ulong_t *)NULL, (size_t)NULL);
 			break;
 
 		/*
@@ -2488,8 +2489,8 @@
 	return (0);
 }
 
-static int
-f_decode(faultcode_t fault_err)
+int
+fc_decode(faultcode_t fault_err)
 {
 	int error = 0;
 
@@ -2528,7 +2529,7 @@
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 top:
 	/*
 	 * if the request crosses two segments let
@@ -2574,7 +2575,7 @@
 	 */
 	fault_err = as_fault(as->a_hat, as, addr, size, F_INVAL, rw);
 	if (fault_err != 0) {
-		return (f_decode(fault_err));
+		return (fc_decode(fault_err));
 	}
 
 	prefaulted = 1;
@@ -2591,7 +2592,7 @@
 	 */
 	fault_err = as_fault(as->a_hat, as, addr, size, F_SOFTLOCK, rw);
 	if (fault_err != 0) {
-		return (f_decode(fault_err));
+		return (fc_decode(fault_err));
 	}
 	*ppp = NULL;
 
@@ -2623,7 +2624,7 @@
 	}
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 	AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
 	seg = as_findseg(as, addr, 0);
 	ASSERT(seg);
@@ -2650,7 +2651,7 @@
 
 	raddr = (caddr_t)((uintptr_t)addr & (uintptr_t)PAGEMASK);
 	rsize = (((size_t)(addr + size) + PAGEOFFSET) & PAGEMASK) -
-		(size_t)raddr;
+	    (size_t)raddr;
 	seg = as_findseg(as, addr, 0);
 	ASSERT(seg);
 	SEGOP_PAGELOCK(seg, raddr, rsize, &pp, L_PAGERECLAIM, rw);
@@ -2921,7 +2922,7 @@
 {
 	int rtype = (type & MAP_SHARED) ? MAPPGSZC_SHM : MAPPGSZC_PRIVM;
 	uint_t szcvec = map_pgszcvec(addr, size, (uintptr_t)addr,
-					flags, rtype, 1);
+	    flags, rtype, 1);
 	uint_t szc;
 	uint_t nszc;
 	int error;
--- a/usr/src/uts/common/vm/vm_page.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/common/vm/vm_page.c	Tue Sep 18 15:46:43 2007 -0700
@@ -1823,13 +1823,7 @@
 	flags &= ~PG_MATCH_COLOR;
 	locked = 0;
 #if defined(__i386) || defined(__amd64)
-	/*
-	 * page_create_get_something may be called because 4g memory may be
-	 * depleted. Set flags to allow for relocation of base page below
-	 * 4g if necessary.
-	 */
-	if (physmax4g)
-		flags |= (PGI_PGCPSZC0 | PGI_PGCPHIPRI);
+	flags = page_create_update_flags_x86(flags);
 #endif
 
 	lgrp = lgrp_mem_choose(seg, vaddr, PAGESIZE);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/evtchn_dev.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,728 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * evtchn.c
+ *
+ * Driver for receiving and demuxing event-channel signals.
+ *
+ * Copyright (c) 2004-2005, K A Fraser
+ * Multi-process extensions Copyright (c) 2004, Steven Smith
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <sys/types.h>
+#include <sys/hypervisor.h>
+#include <sys/machsystm.h>
+#include <sys/mutex.h>
+#include <sys/evtchn_impl.h>
+#include <sys/ddi_impldefs.h>
+#include <sys/avintr.h>
+#include <sys/cpuvar.h>
+#include <sys/smp_impldefs.h>
+#include <sys/archsystm.h>
+#include <sys/sysmacros.h>
+#include <sys/fcntl.h>
+#include <sys/open.h>
+#include <sys/stat.h>
+#include <sys/psm.h>
+#include <sys/cpu.h>
+#include <sys/cmn_err.h>
+#include <sys/xen_errno.h>
+#include <xen/sys/evtchn.h>
+
+/* Some handy macros */
+#define	EVTCHNDRV_MINOR2INST(minor)	((int)(minor))
+#define	EVTCHNDRV_DEFAULT_NCLONES 	256
+#define	EVTCHNDRV_INST2SOFTS(inst)	\
+	(ddi_get_soft_state(evtchndrv_statep, (inst)))
+
+/* Soft state data structure for evtchn driver */
+struct evtsoftdata {
+	dev_info_t *dip;
+	/* Notification ring, accessed via /dev/xen/evtchn. */
+#define	EVTCHN_RING_SIZE	(PAGESIZE / sizeof (evtchn_port_t))
+#define	EVTCHN_RING_MASK(_i)	((_i) & (EVTCHN_RING_SIZE - 1))
+	evtchn_port_t *ring;
+	unsigned int ring_cons, ring_prod, ring_overflow;
+
+	/* Processes wait on this queue when ring is empty. */
+	kcondvar_t evtchn_wait;
+	kmutex_t evtchn_lock;
+	struct pollhead evtchn_pollhead;
+
+	/* last pid to bind to this event channel. debug aid. */
+	pid_t pid;
+};
+
+static void *evtchndrv_statep;
+int evtchndrv_nclones = EVTCHNDRV_DEFAULT_NCLONES;
+static int *evtchndrv_clone_tab;
+static dev_info_t *evtchndrv_dip;
+static kmutex_t evtchndrv_clone_tab_mutex;
+
+static int evtchndrv_detach(dev_info_t *, ddi_detach_cmd_t);
+
+/* Who's bound to each port? */
+static struct evtsoftdata *port_user[NR_EVENT_CHANNELS];
+static kmutex_t port_user_lock;
+
+void
+evtchn_device_upcall()
+{
+	struct evtsoftdata *ep;
+	int port;
+
+	/*
+	 * This is quite gross, we had to leave the evtchn that led to this
+	 * invocation in a global mailbox, retrieve it now.
+	 * We do this because the interface doesn't offer us a way to pass
+	 * a dynamic argument up through the generic interrupt service layer.
+	 * The mailbox is safe since we either run with interrupts disabled or
+	 * non-preemptable till we reach here.
+	 */
+	port = ec_dev_mbox;
+	ASSERT(port != 0);
+	ec_dev_mbox = 0;
+	ec_clear_evtchn(port);
+	mutex_enter(&port_user_lock);
+
+	if ((ep = port_user[port]) != NULL) {
+		mutex_enter(&ep->evtchn_lock);
+		if ((ep->ring_prod - ep->ring_cons) < EVTCHN_RING_SIZE) {
+			ep->ring[EVTCHN_RING_MASK(ep->ring_prod)] = port;
+			/*
+			 * Wake up reader when ring goes non-empty
+			 */
+			if (ep->ring_cons == ep->ring_prod++) {
+				cv_signal(&ep->evtchn_wait);
+				mutex_exit(&ep->evtchn_lock);
+				pollwakeup(&ep->evtchn_pollhead,
+				    POLLIN | POLLRDNORM);
+				goto done;
+			}
+		} else {
+			ep->ring_overflow = 1;
+		}
+		mutex_exit(&ep->evtchn_lock);
+	}
+
+done:
+	mutex_exit(&port_user_lock);
+}
+
+/* ARGSUSED */
+static int
+evtchndrv_read(dev_t dev, struct uio *uio, cred_t *cred)
+{
+	int rc = 0;
+	ssize_t count;
+	unsigned int c, p, bytes1 = 0, bytes2 = 0;
+	struct evtsoftdata *ep;
+	minor_t minor = getminor(dev);
+
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+
+	/* Whole number of ports. */
+	count = uio->uio_resid;
+	count &= ~(sizeof (evtchn_port_t) - 1);
+
+	if (count == 0)
+		return (0);
+
+	if (count > PAGESIZE)
+		count = PAGESIZE;
+
+	mutex_enter(&ep->evtchn_lock);
+	for (;;) {
+		if (ep->ring_overflow) {
+			rc = EFBIG;
+			goto done;
+		}
+
+		if ((c = ep->ring_cons) != (p = ep->ring_prod))
+			break;
+
+		if (uio->uio_fmode & O_NONBLOCK) {
+			rc = EAGAIN;
+			goto done;
+		}
+
+		if (cv_wait_sig(&ep->evtchn_wait, &ep->evtchn_lock) == 0) {
+			rc = EINTR;
+			goto done;
+		}
+	}
+
+	/* Byte lengths of two chunks. Chunk split (if any) is at ring wrap. */
+	if (((c ^ p) & EVTCHN_RING_SIZE) != 0) {
+		bytes1 = (EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c)) *
+		    sizeof (evtchn_port_t);
+		bytes2 = EVTCHN_RING_MASK(p) * sizeof (evtchn_port_t);
+	} else {
+		bytes1 = (p - c) * sizeof (evtchn_port_t);
+		bytes2 = 0;
+	}
+
+	/* Truncate chunks according to caller's maximum byte count. */
+	if (bytes1 > count) {
+		bytes1 = count;
+		bytes2 = 0;
+	} else if ((bytes1 + bytes2) > count) {
+		bytes2 = count - bytes1;
+	}
+
+	if (uiomove(&ep->ring[EVTCHN_RING_MASK(c)], bytes1, UIO_READ, uio) ||
+	    ((bytes2 != 0) && uiomove(&ep->ring[0], bytes2, UIO_READ, uio))) {
+		rc = EFAULT;
+		goto done;
+	}
+
+	ep->ring_cons += (bytes1 + bytes2) / sizeof (evtchn_port_t);
+done:
+	mutex_exit(&ep->evtchn_lock);
+	return (rc);
+}
+
+/* ARGSUSED */
+static int
+evtchndrv_write(dev_t dev, struct uio *uio, cred_t *cred)
+{
+	int  rc, i;
+	ssize_t count;
+	evtchn_port_t *kbuf;
+	struct evtsoftdata *ep;
+	ulong_t flags;
+	minor_t minor = getminor(dev);
+
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+
+	kbuf = kmem_alloc(PAGESIZE, KM_SLEEP);
+
+	/* Whole number of ports. */
+	count = uio->uio_resid;
+	count &= ~(sizeof (evtchn_port_t) - 1);
+
+	if (count == 0) {
+		rc = 0;
+		goto out;
+	}
+
+	if (count > PAGESIZE)
+		count = PAGESIZE;
+
+	if ((rc = uiomove(kbuf, count, UIO_WRITE, uio)) != 0)
+		goto out;
+
+	mutex_enter(&port_user_lock);
+	for (i = 0; i < (count / sizeof (evtchn_port_t)); i++)
+		if ((kbuf[i] < NR_EVENT_CHANNELS) &&
+		    (port_user[kbuf[i]] == ep)) {
+			flags = intr_clear();
+			ec_unmask_evtchn(kbuf[i]);
+			intr_restore(flags);
+		}
+	mutex_exit(&port_user_lock);
+
+out:
+	kmem_free(kbuf, PAGESIZE);
+	return (rc);
+}
+
+static void
+evtchn_bind_to_user(struct evtsoftdata *u, int port)
+{
+	ulong_t flags;
+
+	/*
+	 * save away the PID of the last process to bind to this event channel.
+	 * Useful for debugging.
+	 */
+	u->pid = ddi_get_pid();
+
+	mutex_enter(&port_user_lock);
+	ASSERT(port_user[port] == NULL);
+	port_user[port] = u;
+	ec_irq_add_evtchn(ec_dev_irq, port);
+	flags = intr_clear();
+	ec_unmask_evtchn(port);
+	intr_restore(flags);
+	mutex_exit(&port_user_lock);
+}
+
+static void
+evtchndrv_close_evtchn(int port)
+{
+	struct evtsoftdata *ep;
+
+	ASSERT(MUTEX_HELD(&port_user_lock));
+	ep = port_user[port];
+	ASSERT(ep != NULL);
+	(void) ec_mask_evtchn(port);
+	/*
+	 * It is possible the event is in transit to us.
+	 * If it is already in the ring buffer, then a client may
+	 * get a spurious event notification on the next read of
+	 * of the evtchn device.  Clients will need to be able to
+	 * handle getting a spurious event notification.
+	 */
+	port_user[port] = NULL;
+	/*
+	 * The event is masked and should stay so, clean it up.
+	 */
+	ec_irq_rm_evtchn(ec_dev_irq, port);
+}
+
+/* ARGSUSED */
+static int
+evtchndrv_ioctl(dev_t dev, int cmd, intptr_t data, int flag, cred_t *cred,
+    int *rvalp)
+{
+	int err = 0;
+	struct evtsoftdata *ep;
+	minor_t minor = getminor(dev);
+
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+
+	*rvalp = 0;
+
+	switch (cmd) {
+	case IOCTL_EVTCHN_BIND_VIRQ: {
+		struct ioctl_evtchn_bind_virq bind;
+
+		if (copyin((void *)data, &bind, sizeof (bind))) {
+			err = EFAULT;
+			break;
+		}
+
+		if ((err = xen_bind_virq(bind.virq, 0, rvalp)) != 0)
+			break;
+
+		evtchn_bind_to_user(ep, *rvalp);
+		break;
+	}
+
+	case IOCTL_EVTCHN_BIND_INTERDOMAIN: {
+		struct ioctl_evtchn_bind_interdomain bind;
+
+		if (copyin((void *)data, &bind, sizeof (bind))) {
+			err = EFAULT;
+			break;
+		}
+
+		if ((err = xen_bind_interdomain(bind.remote_domain,
+		    bind.remote_port, rvalp)) != 0)
+			break;
+
+		ec_bind_vcpu(*rvalp, 0);
+		evtchn_bind_to_user(ep, *rvalp);
+		break;
+	}
+
+	case IOCTL_EVTCHN_BIND_UNBOUND_PORT: {
+		struct ioctl_evtchn_bind_unbound_port bind;
+
+		if (copyin((void *)data, &bind, sizeof (bind))) {
+			err = EFAULT;
+			break;
+		}
+
+		if ((err = xen_alloc_unbound_evtchn(bind.remote_domain,
+		    rvalp)) != 0)
+			break;
+
+		evtchn_bind_to_user(ep, *rvalp);
+		break;
+	}
+
+	case IOCTL_EVTCHN_UNBIND: {
+		struct ioctl_evtchn_unbind unbind;
+
+		if (copyin((void *)data, &unbind, sizeof (unbind))) {
+			err = EFAULT;
+			break;
+		}
+
+		if (unbind.port >= NR_EVENT_CHANNELS) {
+			err = EFAULT;
+			break;
+		}
+
+		mutex_enter(&port_user_lock);
+
+		if (port_user[unbind.port] != ep) {
+			mutex_exit(&port_user_lock);
+			err = ENOTCONN;
+			break;
+		}
+
+		evtchndrv_close_evtchn(unbind.port);
+		mutex_exit(&port_user_lock);
+		break;
+	}
+
+	case IOCTL_EVTCHN_NOTIFY: {
+		struct ioctl_evtchn_notify notify;
+
+		if (copyin((void *)data, &notify, sizeof (notify))) {
+			err = EFAULT;
+			break;
+		}
+
+		if (notify.port >= NR_EVENT_CHANNELS) {
+			err = EINVAL;
+		} else if (port_user[notify.port] != ep) {
+			err = ENOTCONN;
+		} else {
+			ec_notify_via_evtchn(notify.port);
+		}
+		break;
+	}
+
+	default:
+		err = ENOSYS;
+	}
+
+	return (err);
+}
+
+static int
+evtchndrv_poll(dev_t dev, short ev, int anyyet, short *revp, pollhead_t **phpp)
+{
+	struct evtsoftdata *ep;
+	minor_t minor = getminor(dev);
+	short mask = 0;
+
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+	*phpp = (struct pollhead *)NULL;
+
+	if (ev & POLLOUT)
+		mask |= POLLOUT;
+	if (ep->ring_overflow)
+		mask |= POLLERR;
+	if (ev & (POLLIN | POLLRDNORM)) {
+		mutex_enter(&ep->evtchn_lock);
+		if (ep->ring_cons != ep->ring_prod)
+			mask |= (POLLIN | POLLRDNORM) & ev;
+		else
+			if (mask == 0 && !anyyet)
+				*phpp = &ep->evtchn_pollhead;
+		mutex_exit(&ep->evtchn_lock);
+	}
+	*revp = mask;
+	return (0);
+}
+
+
+/* ARGSUSED */
+static int
+evtchndrv_open(dev_t *devp, int flag, int otyp, cred_t *credp)
+{
+	struct evtsoftdata *ep;
+	minor_t minor = getminor(*devp);
+
+	if (otyp == OTYP_BLK)
+		return (ENXIO);
+
+	/*
+	 * only allow open on minor = 0 - the clone device
+	 */
+	if (minor != 0)
+		return (ENXIO);
+
+	/*
+	 * find a free slot and grab it
+	 */
+	mutex_enter(&evtchndrv_clone_tab_mutex);
+	for (minor = 1; minor < evtchndrv_nclones; minor++) {
+		if (evtchndrv_clone_tab[minor] == 0) {
+			evtchndrv_clone_tab[minor] = 1;
+			break;
+		}
+	}
+	mutex_exit(&evtchndrv_clone_tab_mutex);
+	if (minor == evtchndrv_nclones)
+		return (EAGAIN);
+
+	/* Allocate softstate structure */
+	if (ddi_soft_state_zalloc(evtchndrv_statep,
+	    EVTCHNDRV_MINOR2INST(minor)) != DDI_SUCCESS) {
+		mutex_enter(&evtchndrv_clone_tab_mutex);
+		evtchndrv_clone_tab[minor] = 0;
+		mutex_exit(&evtchndrv_clone_tab_mutex);
+		return (EAGAIN);
+	}
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+
+	/* ... and init it */
+	ep->dip = evtchndrv_dip;
+
+	cv_init(&ep->evtchn_wait, NULL, CV_DEFAULT, NULL);
+	mutex_init(&ep->evtchn_lock, NULL, MUTEX_DEFAULT, NULL);
+
+	ep->ring = kmem_alloc(PAGESIZE, KM_SLEEP);
+
+	/* clone driver */
+	*devp = makedevice(getmajor(*devp), minor);
+
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+evtchndrv_close(dev_t dev, int flag, int otyp, struct cred *credp)
+{
+	struct evtsoftdata *ep;
+	minor_t minor = getminor(dev);
+	int i;
+
+	ep = EVTCHNDRV_INST2SOFTS(EVTCHNDRV_MINOR2INST(minor));
+	if (ep == NULL)
+		return (ENXIO);
+
+	mutex_enter(&port_user_lock);
+
+
+	for (i = 0; i < NR_EVENT_CHANNELS; i++) {
+		if (port_user[i] != ep)
+			continue;
+
+		evtchndrv_close_evtchn(i);
+	}
+
+	mutex_exit(&port_user_lock);
+
+	kmem_free(ep->ring, PAGESIZE);
+	ddi_soft_state_free(evtchndrv_statep, EVTCHNDRV_MINOR2INST(minor));
+
+	/*
+	 * free clone tab slot
+	 */
+	mutex_enter(&evtchndrv_clone_tab_mutex);
+	evtchndrv_clone_tab[minor] = 0;
+	mutex_exit(&evtchndrv_clone_tab_mutex);
+
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+evtchndrv_info(dev_info_t *dip, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	dev_t	dev = (dev_t)arg;
+	minor_t	minor = getminor(dev);
+	int	retval;
+
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		if (minor != 0 || evtchndrv_dip == NULL) {
+			*result = (void *)NULL;
+			retval = DDI_FAILURE;
+		} else {
+			*result = (void *)evtchndrv_dip;
+			retval = DDI_SUCCESS;
+		}
+		break;
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = (void *)0;
+		retval = DDI_SUCCESS;
+		break;
+	default:
+		retval = DDI_FAILURE;
+	}
+	return (retval);
+}
+
+
+static int
+evtchndrv_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	int	error;
+	int	unit = ddi_get_instance(dip);
+
+
+	switch (cmd) {
+	case DDI_ATTACH:
+		break;
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+	default:
+		cmn_err(CE_WARN, "evtchn_attach: unknown cmd 0x%x\n", cmd);
+		return (DDI_FAILURE);
+	}
+
+	/* DDI_ATTACH */
+
+	/*
+	 * only one instance - but we clone using the open routine
+	 */
+	if (ddi_get_instance(dip) > 0)
+		return (DDI_FAILURE);
+
+	mutex_init(&evtchndrv_clone_tab_mutex, NULL, MUTEX_DRIVER,
+	    NULL);
+
+	error = ddi_create_minor_node(dip, "evtchn", S_IFCHR, unit,
+	    DDI_PSEUDO, NULL);
+	if (error != DDI_SUCCESS)
+		goto fail;
+
+	/*
+	 * save dip for getinfo
+	 */
+	evtchndrv_dip = dip;
+	ddi_report_dev(dip);
+
+	mutex_init(&port_user_lock, NULL, MUTEX_DRIVER, NULL);
+	(void) memset(port_user, 0, sizeof (port_user));
+
+	ec_dev_irq = ec_dev_alloc_irq();
+	(void) add_avintr(NULL, IPL_EVTCHN, (avfunc)evtchn_device_upcall,
+	    "evtchn_driver", ec_dev_irq, NULL, NULL, NULL, dip);
+
+	return (DDI_SUCCESS);
+
+fail:
+	(void) evtchndrv_detach(dip, DDI_DETACH);
+	return (error);
+}
+
+/*ARGSUSED*/
+static int
+evtchndrv_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	/*
+	 * Don't allow detach for now.
+	 */
+	return (DDI_FAILURE);
+}
+
+/* Solaris driver framework */
+
+static 	struct cb_ops evtchndrv_cb_ops = {
+	evtchndrv_open,		/* cb_open */
+	evtchndrv_close,	/* cb_close */
+	nodev,			/* cb_strategy */
+	nodev,			/* cb_print */
+	nodev,			/* cb_dump */
+	evtchndrv_read,		/* cb_read */
+	evtchndrv_write,	/* cb_write */
+	evtchndrv_ioctl,	/* cb_ioctl */
+	nodev,			/* cb_devmap */
+	nodev,			/* cb_mmap */
+	nodev,			/* cb_segmap */
+	evtchndrv_poll,		/* cb_chpoll */
+	ddi_prop_op,		/* cb_prop_op */
+	0,			/* cb_stream */
+	D_NEW | D_MP | D_64BIT	/* cb_flag */
+};
+
+static struct dev_ops evtchndrv_dev_ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt */
+	evtchndrv_info,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	evtchndrv_attach,	/* devo_attach */
+	evtchndrv_detach,	/* devo_detach */
+	nodev,			/* devo_reset */
+	&evtchndrv_cb_ops,	/* devo_cb_ops */
+	NULL,			/* devo_bus_ops */
+	NULL			/* power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,		/* Type of module.  This one is a driver */
+	"Evtchn driver v1.0",	/* Name of the module. */
+	&evtchndrv_dev_ops	/* driver ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	&modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	int err;
+
+	err = ddi_soft_state_init(&evtchndrv_statep,
+	    sizeof (struct evtsoftdata), 1);
+	if (err)
+		return (err);
+
+	err = mod_install(&modlinkage);
+	if (err)
+		ddi_soft_state_fini(&evtchndrv_statep);
+	else
+		evtchndrv_clone_tab = kmem_zalloc(
+		    sizeof (int) * evtchndrv_nclones, KM_SLEEP);
+	return (err);
+}
+
+int
+_fini(void)
+{
+	int e;
+
+	e = mod_remove(&modlinkage);
+	if (e)
+		return (e);
+
+	ddi_soft_state_fini(&evtchndrv_statep);
+
+	return (0);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xdb.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1492 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Note: This is the backend part of the split PV disk driver. This driver
+ * is not a nexus driver, nor is it a leaf driver(block/char/stream driver).
+ * Currently, it does not create any minor node. So, although, it runs in
+ * backend domain, it will not be used directly from within dom0.
+ * It simply gets block I/O requests issued by frontend from a shared page
+ * (blkif ring buffer - defined by Xen) between backend and frontend domain,
+ * generates a buf, and push it down to underlying disk target driver via
+ * ldi interface. When buf is done, this driver will generate a response
+ * and put it into ring buffer to inform frontend of the status of the I/O
+ * request issued by it. When a new virtual device entry is added in xenstore,
+ * there will be an watch event sent from Xen to xvdi framework, who will,
+ * in turn, create the devinfo node and try to attach this driver
+ * (see xvdi_create_dev). When frontend peer changes its state to
+ * XenbusStateClose, an event will also be sent from Xen to xvdi framework,
+ * who will detach and remove this devinfo node (see i_xvdi_oestate_handler).
+ * I/O requests get from ring buffer and event coming from xenstore cannot be
+ * trusted. We verify them in xdb_get_buf() and xdb_check_state_transition().
+ *
+ * Virtual device configuration is read/written from/to the database via
+ * xenbus_* interfaces. Driver also use xvdi_* to interact with hypervisor.
+ * There is an on-going effort to make xvdi_* cover all xenbus_*.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include "xdb.h"
+#include <sys/lofi.h>
+#include <vm/hat_i86.h>
+
+static xdb_t *xdb_statep;
+static int xdb_debug = 0;
+
+#ifdef DEBUG
+/*
+ * debug aid functions
+ */
+
+static void
+logva(xdb_t *vdp, uint64_t va)
+{
+	uint64_t *page_addrs;
+	int i;
+
+	page_addrs = vdp->page_addrs;
+	for (i = 0; i < XDB_MAX_IO_PAGES; i++) {
+		if (page_addrs[i] == va)
+			debug_enter("VA remapping found!");
+	}
+
+	for (i = 0; i < XDB_MAX_IO_PAGES; i++) {
+		if (page_addrs[i] == 0) {
+			page_addrs[i] = va;
+			break;
+		}
+	}
+	ASSERT(i < XDB_MAX_IO_PAGES);
+}
+
+static void
+unlogva(xdb_t *vdp, uint64_t va)
+{
+	uint64_t *page_addrs;
+	int i;
+
+	page_addrs = vdp->page_addrs;
+	for (i = 0; i < XDB_MAX_IO_PAGES; i++) {
+		if (page_addrs[i] == va) {
+			page_addrs[i] = 0;
+			break;
+		}
+	}
+	ASSERT(i < XDB_MAX_IO_PAGES);
+}
+
+static void
+xdb_dump_request_oe(blkif_request_t *req)
+{
+	int i;
+
+	/*
+	 * Exploit the public interface definitions for BLKIF_OP_READ
+	 * etc..
+	 */
+	char *op_name[] = { "read", "write", "barrier", "flush" };
+
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "op=%s", op_name[req->operation]));
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "num of segments=%d",
+	    req->nr_segments));
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "handle=%d", req->handle));
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "id=%llu",
+	    (unsigned long long)req->id));
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "start sector=%llu",
+	    (unsigned long long)req->sector_number));
+	for (i = 0; i < req->nr_segments; i++) {
+		XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "gref=%d, first sec=%d,"
+		    "last sec=%d", req->seg[i].gref, req->seg[i].first_sect,
+		    req->seg[i].last_sect));
+	}
+}
+#endif /* DEBUG */
+
+/*
+ * Statistics.
+ */
+static char *xdb_stats[] = {
+	"rd_reqs",
+	"wr_reqs",
+	"br_reqs",
+	"fl_reqs",
+	"oo_reqs"
+};
+
+static int
+xdb_kstat_update(kstat_t *ksp, int flag)
+{
+	xdb_t *vdp;
+	kstat_named_t *knp;
+
+	if (flag != KSTAT_READ)
+		return (EACCES);
+
+	vdp = ksp->ks_private;
+	knp = ksp->ks_data;
+
+	/*
+	 * Assignment order should match that of the names in
+	 * xdb_stats.
+	 */
+	(knp++)->value.ui64 = vdp->xs_stat_req_reads;
+	(knp++)->value.ui64 = vdp->xs_stat_req_writes;
+	(knp++)->value.ui64 = vdp->xs_stat_req_barriers;
+	(knp++)->value.ui64 = vdp->xs_stat_req_flushes;
+	(knp++)->value.ui64 = 0; /* oo_req */
+
+	return (0);
+}
+
+static boolean_t
+xdb_kstat_init(xdb_t *vdp)
+{
+	int nstat = sizeof (xdb_stats) / sizeof (xdb_stats[0]);
+	char **cp = xdb_stats;
+	kstat_named_t *knp;
+
+	if ((vdp->xs_kstats = kstat_create("xdb",
+	    ddi_get_instance(vdp->xs_dip),
+	    "req_statistics", "block", KSTAT_TYPE_NAMED,
+	    nstat, 0)) == NULL)
+		return (B_FALSE);
+
+	vdp->xs_kstats->ks_private = vdp;
+	vdp->xs_kstats->ks_update = xdb_kstat_update;
+
+	knp = vdp->xs_kstats->ks_data;
+	while (nstat > 0) {
+		kstat_named_init(knp, *cp, KSTAT_DATA_UINT64);
+		knp++;
+		cp++;
+		nstat--;
+	}
+
+	kstat_install(vdp->xs_kstats);
+
+	return (B_TRUE);
+}
+
+static int xdb_biodone(buf_t *);
+
+static buf_t *
+xdb_get_buf(xdb_t *vdp, blkif_request_t *req, xdb_request_t *xreq)
+{
+	buf_t *bp;
+	uint8_t segs, curseg;
+	int sectors;
+	int i, err;
+	gnttab_map_grant_ref_t mapops[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+	ddi_acc_handle_t acchdl;
+
+	acchdl = vdp->xs_ring_hdl;
+	bp = XDB_XREQ2BP(xreq);
+	curseg = xreq->xr_curseg;
+	/* init a new xdb request */
+	if (req != NULL) {
+		ASSERT(MUTEX_HELD(&vdp->xs_iomutex));
+		boolean_t pagemapok = B_TRUE;
+		uint8_t op = ddi_get8(acchdl, &req->operation);
+
+		xreq->xr_vdp = vdp;
+		xreq->xr_op = op;
+		xreq->xr_id = ddi_get64(acchdl, &req->id);
+		segs = xreq->xr_buf_pages = ddi_get8(acchdl, &req->nr_segments);
+		if (segs == 0) {
+			if (op != BLKIF_OP_FLUSH_DISKCACHE)
+				cmn_err(CE_WARN, "!non-BLKIF_OP_FLUSH_DISKCACHE"
+				    " is seen from domain %d with zero "
+				    "length data buffer!", vdp->xs_peer);
+			bioinit(bp);
+			bp->b_bcount = 0;
+			bp->b_lblkno = 0;
+			bp->b_un.b_addr = NULL;
+			return (bp);
+		} else if (op == BLKIF_OP_FLUSH_DISKCACHE) {
+			cmn_err(CE_WARN, "!BLKIF_OP_FLUSH_DISKCACHE"
+			    " is seen from domain %d with non-zero "
+			    "length data buffer!", vdp->xs_peer);
+		}
+
+		/*
+		 * segs should be no bigger than BLKIF_MAX_SEGMENTS_PER_REQUEST
+		 * according to the definition of blk interface by Xen
+		 * we do sanity check here
+		 */
+		if (segs > BLKIF_MAX_SEGMENTS_PER_REQUEST)
+			segs = xreq->xr_buf_pages =
+			    BLKIF_MAX_SEGMENTS_PER_REQUEST;
+
+		for (i = 0; i < segs; i++) {
+			uint8_t fs, ls;
+
+			mapops[i].host_addr =
+			    (uint64_t)(uintptr_t)XDB_IOPAGE_VA(
+			    vdp->xs_iopage_va, xreq->xr_idx, i);
+			mapops[i].dom = vdp->xs_peer;
+			mapops[i].ref = ddi_get32(acchdl, &req->seg[i].gref);
+			mapops[i].flags = GNTMAP_host_map;
+			if (op != BLKIF_OP_READ)
+				mapops[i].flags |= GNTMAP_readonly;
+
+			fs = ddi_get8(acchdl, &req->seg[i].first_sect);
+			ls = ddi_get8(acchdl, &req->seg[i].last_sect);
+
+			/*
+			 * first_sect should be no bigger than last_sect and
+			 * both of them should be no bigger than
+			 * (PAGESIZE / XB_BSIZE - 1) according to definition
+			 * of blk interface by Xen, so sanity check again
+			 */
+			if (fs > (PAGESIZE / XB_BSIZE - 1))
+				fs = PAGESIZE / XB_BSIZE - 1;
+			if (ls > (PAGESIZE / XB_BSIZE - 1))
+				ls = PAGESIZE / XB_BSIZE - 1;
+			if (fs > ls)
+				fs = ls;
+
+			xreq->xr_segs[i].fs = fs;
+			xreq->xr_segs[i].ls = ls;
+		}
+
+		/* map in io pages */
+		err = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
+		    mapops, i);
+		if (err != 0)
+			return (NULL);
+		for (i = 0; i < segs; i++) {
+			/*
+			 * Although HYPERVISOR_grant_table_op() returned no
+			 * error, mapping of each single page can fail. So,
+			 * we have to do the check here and handle the error
+			 * if needed
+			 */
+			if (mapops[i].status != GNTST_okay) {
+				int j;
+				for (j = 0; j < i; j++) {
+#ifdef DEBUG
+					unlogva(vdp, mapops[j].host_addr);
+#endif
+					xen_release_pfn(
+					    xreq->xr_plist[j].p_pagenum);
+				}
+				pagemapok = B_FALSE;
+				break;
+			}
+			/* record page mapping handle for unmapping later */
+			xreq->xr_page_hdls[i] = mapops[i].handle;
+#ifdef DEBUG
+			logva(vdp, mapops[i].host_addr);
+#endif
+			/*
+			 * Pass the MFNs down using the shadow list (xr_pplist)
+			 *
+			 * This is pretty ugly since we have implict knowledge
+			 * of how the rootnex binds buffers.
+			 * The GNTTABOP_map_grant_ref op makes us do some ugly
+			 * stuff since we're not allowed to touch these PTEs
+			 * from the VM.
+			 *
+			 * Obviously, these aren't real page_t's. The rootnex
+			 * only needs p_pagenum.
+			 * Also, don't use btop() here or 32 bit PAE breaks.
+			 */
+			xreq->xr_pplist[i] = &xreq->xr_plist[i];
+			xreq->xr_plist[i].p_pagenum =
+			    xen_assign_pfn(mapops[i].dev_bus_addr >> PAGESHIFT);
+		}
+
+		/*
+		 * not all pages mapped in successfully, unmap those mapped-in
+		 * page and return failure
+		 */
+		if (!pagemapok) {
+			gnttab_unmap_grant_ref_t unmapop;
+
+			for (i = 0; i < segs; i++) {
+				if (mapops[i].status != GNTST_okay)
+					continue;
+				unmapop.host_addr =
+				    (uint64_t)(uintptr_t)XDB_IOPAGE_VA(
+				    vdp->xs_iopage_va, xreq->xr_idx, i);
+				unmapop.dev_bus_addr = NULL;
+				unmapop.handle = mapops[i].handle;
+				(void) HYPERVISOR_grant_table_op(
+				    GNTTABOP_unmap_grant_ref, &unmapop, 1);
+			}
+
+			return (NULL);
+		}
+		bioinit(bp);
+		bp->b_lblkno = ddi_get64(acchdl, &req->sector_number);
+		bp->b_flags = B_BUSY | B_SHADOW | B_PHYS;
+		bp->b_flags |= (ddi_get8(acchdl, &req->operation) ==
+		    BLKIF_OP_READ) ? B_READ : (B_WRITE | B_ASYNC);
+	} else {
+		uint64_t blkst;
+		int isread;
+
+		/* reuse this buf */
+		blkst = bp->b_lblkno + bp->b_bcount / DEV_BSIZE;
+		isread = bp->b_flags & B_READ;
+		bioreset(bp);
+		bp->b_lblkno = blkst;
+		bp->b_flags = B_BUSY | B_SHADOW | B_PHYS;
+		bp->b_flags |= isread ? B_READ : (B_WRITE | B_ASYNC);
+		XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE, "reuse buf, xreq is %d!!",
+		    xreq->xr_idx));
+	}
+
+	/* form a buf */
+	bp->b_un.b_addr = XDB_IOPAGE_VA(vdp->xs_iopage_va, xreq->xr_idx,
+	    curseg) + xreq->xr_segs[curseg].fs * DEV_BSIZE;
+	bp->b_shadow = &xreq->xr_pplist[curseg];
+	bp->b_iodone = xdb_biodone;
+	sectors = 0;
+	for (i = curseg; i < xreq->xr_buf_pages; i++) {
+		/*
+		 * The xreq->xr_segs[i].fs of the first seg can be non-zero
+		 * otherwise, we'll break it into multiple bufs
+		 */
+		if ((i != curseg) && (xreq->xr_segs[i].fs != 0)) {
+			break;
+		}
+		sectors += (xreq->xr_segs[i].ls - xreq->xr_segs[i].fs + 1);
+	}
+	xreq->xr_curseg = i;
+	bp->b_bcount = sectors * DEV_BSIZE;
+	bp->b_bufsize = bp->b_bcount;
+
+	return (bp);
+}
+
+static xdb_request_t *
+xdb_get_req(xdb_t *vdp)
+{
+	xdb_request_t *req;
+	int idx;
+
+	ASSERT(MUTEX_HELD(&vdp->xs_iomutex));
+	ASSERT(vdp->xs_free_req != -1);
+	req = &vdp->xs_req[vdp->xs_free_req];
+	vdp->xs_free_req = req->xr_next;
+	idx = req->xr_idx;
+	bzero(req, sizeof (xdb_request_t));
+	req->xr_idx = idx;
+	return (req);
+}
+
+static void
+xdb_free_req(xdb_request_t *req)
+{
+	xdb_t *vdp = req->xr_vdp;
+
+	ASSERT(MUTEX_HELD(&vdp->xs_iomutex));
+	req->xr_next = vdp->xs_free_req;
+	vdp->xs_free_req = req->xr_idx;
+}
+
+static void
+xdb_response(xdb_t *vdp, blkif_request_t *req, boolean_t ok)
+{
+	xendev_ring_t *ringp = vdp->xs_ring;
+	ddi_acc_handle_t acchdl = vdp->xs_ring_hdl;
+	blkif_response_t *resp;
+
+	resp = xvdi_ring_get_response(ringp);
+	ASSERT(resp);
+
+	ddi_put64(acchdl, &resp->id, ddi_get64(acchdl, &req->id));
+	ddi_put8(acchdl, &resp->operation, ddi_get8(acchdl, &req->operation));
+	ddi_put16(acchdl, (uint16_t *)&resp->status,
+	    ok ? BLKIF_RSP_OKAY : BLKIF_RSP_ERROR);
+	if (xvdi_ring_push_response(ringp))
+		xvdi_notify_oe(vdp->xs_dip);
+}
+
+static void
+xdb_init_ioreqs(xdb_t *vdp)
+{
+	int i;
+
+	for (i = 0; i < BLKIF_RING_SIZE; i++) {
+		vdp->xs_req[i].xr_idx = i;
+		vdp->xs_req[i].xr_next = i + 1;
+	}
+	vdp->xs_req[BLKIF_RING_SIZE - 1].xr_next = -1;
+	vdp->xs_free_req = 0;
+
+	/* alloc va in host dom for io page mapping */
+	vdp->xs_iopage_va = vmem_xalloc(heap_arena,
+	    XDB_MAX_IO_PAGES * PAGESIZE, PAGESIZE, 0, 0, 0, 0,
+	    VM_SLEEP);
+	for (i = 0; i < XDB_MAX_IO_PAGES; i++)
+		hat_prepare_mapping(kas.a_hat,
+		    vdp->xs_iopage_va + i * PAGESIZE);
+}
+
+static void
+xdb_uninit_ioreqs(xdb_t *vdp)
+{
+	int i;
+
+	for (i = 0; i < XDB_MAX_IO_PAGES; i++)
+		hat_release_mapping(kas.a_hat,
+		    vdp->xs_iopage_va + i * PAGESIZE);
+	vmem_xfree(heap_arena, vdp->xs_iopage_va,
+	    XDB_MAX_IO_PAGES * PAGESIZE);
+}
+
+static uint_t
+xdb_intr(caddr_t arg)
+{
+	xendev_ring_t *ringp;
+	blkif_request_t *req;
+	xdb_request_t *xreq;
+	buf_t *bp;
+	uint8_t op;
+	xdb_t *vdp = (xdb_t *)arg;
+	int ret = DDI_INTR_UNCLAIMED;
+	dev_info_t *dip = vdp->xs_dip;
+
+	XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE,
+	    "xdb@%s: I/O request received from dom %d",
+	    ddi_get_name_addr(dip), vdp->xs_peer));
+
+	mutex_enter(&vdp->xs_iomutex);
+
+	/* shouldn't touch ring buffer if not in connected state */
+	if (vdp->xs_if_status != XDB_CONNECTED) {
+		mutex_exit(&vdp->xs_iomutex);
+		return (DDI_INTR_UNCLAIMED);
+	}
+
+	ringp = vdp->xs_ring;
+
+	/*
+	 * We'll loop till there is no more request in the ring
+	 * We won't stuck in this loop for ever since the size of ring buffer
+	 * is limited, and frontend will stop pushing requests into it when
+	 * the ring buffer is full
+	 */
+
+	/* req_event will be increased in xvdi_ring_get_request() */
+	while ((req = xvdi_ring_get_request(ringp)) != NULL) {
+		ret = DDI_INTR_CLAIMED;
+
+		op = ddi_get8(vdp->xs_ring_hdl, &req->operation);
+		if (op == BLKIF_OP_READ			||
+		    op == BLKIF_OP_WRITE		||
+		    op == BLKIF_OP_WRITE_BARRIER	||
+		    op == BLKIF_OP_FLUSH_DISKCACHE) {
+#ifdef DEBUG
+			xdb_dump_request_oe(req);
+#endif
+			xreq = xdb_get_req(vdp);
+			ASSERT(xreq);
+			switch (op) {
+			case BLKIF_OP_READ:
+				vdp->xs_stat_req_reads++;
+				break;
+			case BLKIF_OP_WRITE_BARRIER:
+				vdp->xs_stat_req_barriers++;
+				/* FALLTHRU */
+			case BLKIF_OP_WRITE:
+				vdp->xs_stat_req_writes++;
+				break;
+			case BLKIF_OP_FLUSH_DISKCACHE:
+				vdp->xs_stat_req_flushes++;
+				break;
+			}
+
+			xreq->xr_curseg = 0; /* start from first segment */
+			bp = xdb_get_buf(vdp, req, xreq);
+			if (bp == NULL) {
+				/* failed to form a buf */
+				xdb_free_req(xreq);
+				xdb_response(vdp, req, B_FALSE);
+				continue;
+			}
+			bp->av_forw = NULL;
+
+			XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE,
+			    " buf %p, blkno %lld, size %lu, addr %p",
+			    (void *)bp, (longlong_t)bp->b_blkno,
+			    (ulong_t)bp->b_bcount, (void *)bp->b_un.b_addr));
+
+			/* send bp to underlying blk driver */
+			if (vdp->xs_f_iobuf == NULL) {
+				vdp->xs_f_iobuf = vdp->xs_l_iobuf = bp;
+			} else {
+				vdp->xs_l_iobuf->av_forw = bp;
+				vdp->xs_l_iobuf = bp;
+			}
+			vdp->xs_ionum++;
+		} else {
+			xdb_response(vdp, req, B_FALSE);
+			XDB_DBPRINT(XDB_DBG_IO, (CE_WARN, "xdb@%s: "
+			    "Unsupported cmd received from dom %d",
+			    ddi_get_name_addr(dip), vdp->xs_peer));
+		}
+	}
+	/* notify our taskq to push buf to underlying blk driver */
+	if (ret == DDI_INTR_CLAIMED)
+		cv_broadcast(&vdp->xs_iocv);
+
+	mutex_exit(&vdp->xs_iomutex);
+
+	return (ret);
+}
+
+static int
+xdb_biodone(buf_t *bp)
+{
+	blkif_response_t *resp;
+	int i, err, bioerr;
+	uint8_t segs;
+	gnttab_unmap_grant_ref_t unmapops[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+	xdb_request_t *xreq = XDB_BP2XREQ(bp);
+	xdb_t *vdp = xreq->xr_vdp;
+	xendev_ring_t *ringp = vdp->xs_ring;
+	ddi_acc_handle_t acchdl = vdp->xs_ring_hdl;
+	buf_t *nbp;
+
+	bioerr = geterror(bp);
+	if (bioerr)
+		XDB_DBPRINT(XDB_DBG_IO, (CE_WARN, "xdb@%s: I/O error %d",
+		    ddi_get_name_addr(vdp->xs_dip), bioerr));
+
+	/* check if we are done w/ this I/O request */
+	if ((bioerr == 0) && (xreq->xr_curseg < xreq->xr_buf_pages)) {
+		nbp = xdb_get_buf(vdp, NULL, xreq);
+		if (nbp) {
+			err = ldi_strategy(vdp->xs_ldi_hdl, nbp);
+			if (err == 0) {
+				XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE,
+				    "sent buf to backend ok"));
+				return (DDI_SUCCESS);
+			}
+			bioerr = EIO;
+			XDB_DBPRINT(XDB_DBG_IO, (CE_WARN, "xdb@%s: "
+			    "sent buf to backend dev failed, err=%d",
+			    ddi_get_name_addr(vdp->xs_dip), err));
+		} else {
+			bioerr = EIO;
+		}
+	}
+
+	/* unmap io pages */
+	segs = xreq->xr_buf_pages;
+	/*
+	 * segs should be no bigger than BLKIF_MAX_SEGMENTS_PER_REQUEST
+	 * according to the definition of blk interface by Xen
+	 */
+	ASSERT(segs <= BLKIF_MAX_SEGMENTS_PER_REQUEST);
+	for (i = 0; i < segs; i++) {
+		unmapops[i].host_addr = (uint64_t)(uintptr_t)XDB_IOPAGE_VA(
+		    vdp->xs_iopage_va, xreq->xr_idx, i);
+#ifdef DEBUG
+		mutex_enter(&vdp->xs_iomutex);
+		unlogva(vdp, unmapops[i].host_addr);
+		mutex_exit(&vdp->xs_iomutex);
+#endif
+		unmapops[i].dev_bus_addr = NULL;
+		unmapops[i].handle = xreq->xr_page_hdls[i];
+	}
+	err = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+	    unmapops, segs);
+	ASSERT(!err);
+
+	/*
+	 * If we have reached a barrier write or a cache flush , then we must
+	 * flush all our I/Os.
+	 */
+	if (xreq->xr_op == BLKIF_OP_WRITE_BARRIER ||
+	    xreq->xr_op == BLKIF_OP_FLUSH_DISKCACHE) {
+		/*
+		 * XXX At this point the write did succeed, so I don't
+		 * believe we should report an error because the flush
+		 * failed. However, this is a debatable point, so
+		 * maybe we need to think more carefully about this.
+		 * For now, just cast to void.
+		 */
+		(void) ldi_ioctl(vdp->xs_ldi_hdl,
+		    DKIOCFLUSHWRITECACHE, NULL, FKIOCTL, kcred, NULL);
+	}
+
+	mutex_enter(&vdp->xs_iomutex);
+
+	/* send response back to frontend */
+	if (vdp->xs_if_status == XDB_CONNECTED) {
+		resp = xvdi_ring_get_response(ringp);
+		ASSERT(resp);
+		ddi_put64(acchdl, &resp->id, xreq->xr_id);
+		ddi_put8(acchdl, &resp->operation, xreq->xr_op);
+		ddi_put16(acchdl, (uint16_t *)&resp->status,
+		    bioerr ? BLKIF_RSP_ERROR : BLKIF_RSP_OKAY);
+		if (xvdi_ring_push_response(ringp))
+			xvdi_notify_oe(vdp->xs_dip);
+		XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE,
+		    "sent resp back to frontend, id=%llu",
+		    (unsigned long long)xreq->xr_id));
+	}
+	/* free io resources */
+	biofini(bp);
+	xdb_free_req(xreq);
+
+	vdp->xs_ionum--;
+	if ((vdp->xs_if_status != XDB_CONNECTED) && (vdp->xs_ionum == 0))
+		/* we're closing, someone is waiting for I/O clean-up */
+		cv_signal(&vdp->xs_ionumcv);
+
+	mutex_exit(&vdp->xs_iomutex);
+
+	return (DDI_SUCCESS);
+}
+
+static int
+xdb_bindto_frontend(xdb_t *vdp)
+{
+	int err;
+	char *oename;
+	grant_ref_t gref;
+	evtchn_port_t evtchn;
+	dev_info_t *dip = vdp->xs_dip;
+
+	/*
+	 * Gather info from frontend
+	 */
+	oename = xvdi_get_oename(dip);
+	if (oename == NULL)
+		return (DDI_FAILURE);
+
+	err = xenbus_gather(XBT_NULL, oename,
+	    "ring-ref", "%lu", &gref, "event-channel", "%u", &evtchn, NULL);
+	if (err != 0) {
+		xvdi_fatal_error(dip, err,
+		    "Getting ring-ref and evtchn from frontend");
+		return (DDI_FAILURE);
+	}
+
+	/*
+	 * map and init ring
+	 */
+	err = xvdi_map_ring(dip, BLKIF_RING_SIZE,
+	    sizeof (union blkif_sring_entry), gref, &vdp->xs_ring);
+	if (err != DDI_SUCCESS)
+		return (DDI_FAILURE);
+	/*
+	 * This will be removed after we use shadow I/O ring request since
+	 * we don't need to access the ring itself directly, thus the access
+	 * handle is not needed
+	 */
+	vdp->xs_ring_hdl = vdp->xs_ring->xr_acc_hdl;
+
+	/*
+	 * bind event channel
+	 */
+	err = xvdi_bind_evtchn(dip, evtchn);
+	if (err != DDI_SUCCESS) {
+		xvdi_unmap_ring(vdp->xs_ring);
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static void
+xdb_unbindfrom_frontend(xdb_t *vdp)
+{
+	xvdi_free_evtchn(vdp->xs_dip);
+	xvdi_unmap_ring(vdp->xs_ring);
+}
+
+#define	LOFI_CTRL_NODE	"/dev/lofictl"
+#define	LOFI_DEV_NODE	"/devices/pseudo/lofi@0:"
+#define	LOFI_MODE	FREAD | FWRITE | FEXCL
+
+static int
+xdb_setup_node(xdb_t *vdp, char *path)
+{
+	dev_info_t *dip;
+	char *xsnode, *node;
+	ldi_handle_t ldi_hdl;
+	struct lofi_ioctl *li;
+	int minor;
+	int err;
+	unsigned int len;
+
+	dip = vdp->xs_dip;
+	xsnode = xvdi_get_xsname(dip);
+	if (xsnode == NULL)
+		return (DDI_FAILURE);
+
+	err = xenbus_read(XBT_NULL, xsnode, "params", (void **)&node, &len);
+	if (err != 0) {
+		xvdi_fatal_error(vdp->xs_dip, err, "reading 'params'");
+		return (DDI_FAILURE);
+	}
+
+	if (!XDB_IS_LOFI(vdp)) {
+		(void) strlcpy(path, node, MAXPATHLEN + 1);
+		kmem_free(node, len);
+		return (DDI_SUCCESS);
+	}
+
+	do {
+		err = ldi_open_by_name(LOFI_CTRL_NODE, LOFI_MODE, kcred,
+		    &ldi_hdl, vdp->xs_ldi_li);
+	} while (err == EBUSY);
+	if (err != 0) {
+		kmem_free(node, len);
+		return (DDI_FAILURE);
+	}
+
+	li = kmem_zalloc(sizeof (*li), KM_SLEEP);
+	(void) strlcpy(li->li_filename, node, MAXPATHLEN + 1);
+	kmem_free(node, len);
+	if (ldi_ioctl(ldi_hdl, LOFI_MAP_FILE, (intptr_t)li,
+	    LOFI_MODE | FKIOCTL, kcred, &minor) != 0) {
+		cmn_err(CE_WARN, "xdb@%s: Failed to create lofi dev for %s",
+		    ddi_get_name_addr(dip), li->li_filename);
+		(void) ldi_close(ldi_hdl, LOFI_MODE, kcred);
+		kmem_free(li, sizeof (*li));
+		return (DDI_FAILURE);
+	}
+	/*
+	 * return '/devices/...' instead of '/dev/lofi/...' since the
+	 * former is available immediately after calling ldi_ioctl
+	 */
+	(void) snprintf(path, MAXPATHLEN + 1, LOFI_DEV_NODE "%d", minor);
+	(void) xenbus_printf(XBT_NULL, xsnode, "node", "%s", path);
+	(void) ldi_close(ldi_hdl, LOFI_MODE, kcred);
+	kmem_free(li, sizeof (*li));
+	return (DDI_SUCCESS);
+}
+
+static void
+xdb_teardown_node(xdb_t *vdp)
+{
+	dev_info_t *dip;
+	char *xsnode, *node;
+	ldi_handle_t ldi_hdl;
+	struct lofi_ioctl *li;
+	int err;
+	unsigned int len;
+
+	if (!XDB_IS_LOFI(vdp))
+		return;
+
+	dip = vdp->xs_dip;
+	xsnode = xvdi_get_xsname(dip);
+	if (xsnode == NULL)
+		return;
+
+	err = xenbus_read(XBT_NULL, xsnode, "params", (void **)&node, &len);
+	if (err != 0) {
+		xvdi_fatal_error(vdp->xs_dip, err, "reading 'params'");
+		return;
+	}
+
+	li = kmem_zalloc(sizeof (*li), KM_SLEEP);
+	(void) strlcpy(li->li_filename, node, MAXPATHLEN + 1);
+	kmem_free(node, len);
+
+	do {
+		err = ldi_open_by_name(LOFI_CTRL_NODE, LOFI_MODE, kcred,
+		    &ldi_hdl, vdp->xs_ldi_li);
+	} while (err == EBUSY);
+
+	if (err != 0) {
+		kmem_free(li, sizeof (*li));
+		return;
+	}
+
+	if (ldi_ioctl(ldi_hdl, LOFI_UNMAP_FILE, (intptr_t)li,
+	    LOFI_MODE | FKIOCTL, kcred, NULL) != 0) {
+		cmn_err(CE_WARN, "xdb@%s: Failed to delete lofi dev for %s",
+		    ddi_get_name_addr(dip), li->li_filename);
+	}
+
+	(void) ldi_close(ldi_hdl, LOFI_MODE, kcred);
+	kmem_free(li, sizeof (*li));
+}
+
+static int
+xdb_open_device(xdb_t *vdp)
+{
+	uint64_t devsize;
+	dev_info_t *dip;
+	char *xsnode;
+	char *nodepath;
+	char *mode = NULL;
+	char *type = NULL;
+	int err;
+
+	dip = vdp->xs_dip;
+	xsnode = xvdi_get_xsname(dip);
+	if (xsnode == NULL)
+		return (DDI_FAILURE);
+
+	err = xenbus_gather(XBT_NULL, xsnode,
+	    "mode", NULL, &mode, "type", NULL, &type, NULL);
+	if (err != 0) {
+		if (mode)
+			kmem_free(mode, strlen(mode) + 1);
+		if (type)
+			kmem_free(type, strlen(type) + 1);
+		xvdi_fatal_error(dip, err,
+		    "Getting mode and type from backend device");
+		return (DDI_FAILURE);
+	}
+	if (strcmp(type, "file") == 0) {
+		vdp->xs_type |= XDB_DEV_LOFI;
+	}
+	kmem_free(type, strlen(type) + 1);
+	if ((strcmp(mode, "r") == NULL) || (strcmp(mode, "ro") == NULL)) {
+		vdp->xs_type |= XDB_DEV_RO;
+	}
+	kmem_free(mode, strlen(mode) + 1);
+
+	/*
+	 * try to open backend device
+	 */
+	if (ldi_ident_from_dip(dip, &vdp->xs_ldi_li) != 0)
+		return (DDI_FAILURE);
+
+	nodepath = kmem_zalloc(MAXPATHLEN + 1, KM_SLEEP);
+	err = xdb_setup_node(vdp, nodepath);
+	if (err != DDI_SUCCESS) {
+		xvdi_fatal_error(dip, err,
+		    "Getting device path of backend device");
+		ldi_ident_release(vdp->xs_ldi_li);
+		kmem_free(nodepath, MAXPATHLEN + 1);
+		return (DDI_FAILURE);
+	}
+
+	if (ldi_open_by_name(nodepath,
+	    FREAD | (XDB_IS_RO(vdp) ? 0 : FWRITE),
+	    kcred, &vdp->xs_ldi_hdl, vdp->xs_ldi_li) != 0) {
+		xdb_teardown_node(vdp);
+		ldi_ident_release(vdp->xs_ldi_li);
+		cmn_err(CE_WARN, "xdb@%s: Failed to open: %s",
+		    ddi_get_name_addr(dip), nodepath);
+		kmem_free(nodepath, MAXPATHLEN + 1);
+		return (DDI_FAILURE);
+	}
+
+	/* check if it's a CD/DVD disc */
+	if (ldi_prop_get_int(vdp->xs_ldi_hdl, LDI_DEV_T_ANY | DDI_PROP_DONTPASS,
+	    "inquiry-device-type", DTYPE_DIRECT) == DTYPE_RODIRECT)
+		vdp->xs_type |= XDB_DEV_CD;
+	/* check if it's a removable disk */
+	if (ldi_prop_exists(vdp->xs_ldi_hdl,
+	    LDI_DEV_T_ANY | DDI_PROP_DONTPASS | DDI_PROP_NOTPROM,
+	    "removable-media"))
+		vdp->xs_type |= XDB_DEV_RMB;
+
+	if (ldi_get_size(vdp->xs_ldi_hdl, &devsize) != DDI_SUCCESS) {
+		(void) ldi_close(vdp->xs_ldi_hdl,
+		    FREAD | (XDB_IS_RO(vdp) ? 0 : FWRITE), kcred);
+		xdb_teardown_node(vdp);
+		ldi_ident_release(vdp->xs_ldi_li);
+		kmem_free(nodepath, MAXPATHLEN + 1);
+		return (DDI_FAILURE);
+	}
+	vdp->xs_sectors = devsize / XB_BSIZE;
+
+	kmem_free(nodepath, MAXPATHLEN + 1);
+	return (DDI_SUCCESS);
+}
+
+static void
+xdb_close_device(xdb_t *vdp)
+{
+	(void) ldi_close(vdp->xs_ldi_hdl,
+	    FREAD | (XDB_IS_RO(vdp) ? 0 : FWRITE), kcred);
+	xdb_teardown_node(vdp);
+	ldi_ident_release(vdp->xs_ldi_li);
+	vdp->xs_ldi_li = NULL;
+	vdp->xs_ldi_hdl = NULL;
+}
+
+/*
+ * Kick-off connect process
+ * If xs_fe_status == XDB_FE_READY and xs_dev_status == XDB_DEV_READY
+ * the xs_if_status will be changed to XDB_CONNECTED on success,
+ * otherwise, xs_if_status will not be changed
+ */
+static int
+xdb_start_connect(xdb_t *vdp)
+{
+	uint32_t dinfo;
+	xenbus_transaction_t xbt;
+	int err, svdst;
+	char *xsnode;
+	dev_info_t *dip = vdp->xs_dip;
+	char *barrier;
+	uint_t len;
+
+	/*
+	 * Start connect to frontend only when backend device are ready
+	 * and frontend has moved to XenbusStateInitialised, which means
+	 * ready to connect
+	 */
+	ASSERT((vdp->xs_fe_status == XDB_FE_READY) &&
+	    (vdp->xs_dev_status == XDB_DEV_READY));
+
+	if (((xsnode = xvdi_get_xsname(dip)) == NULL)		 ||
+	    ((vdp->xs_peer = xvdi_get_oeid(dip)) == (domid_t)-1) ||
+	    (xdb_open_device(vdp) != DDI_SUCCESS))
+		return (DDI_FAILURE);
+
+	(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateInitialised);
+
+	if (xdb_bindto_frontend(vdp) != DDI_SUCCESS)
+		goto errout1;
+
+	/* init i/o requests */
+	xdb_init_ioreqs(vdp);
+
+	if (ddi_add_intr(dip, 0, NULL, NULL, xdb_intr, (caddr_t)vdp)
+	    != DDI_SUCCESS)
+		goto errout2;
+
+	/*
+	 * we can recieve intr any time from now on
+	 * mark that we're ready to take intr
+	 */
+	mutex_enter(&vdp->xs_iomutex);
+	/*
+	 * save it in case we need to restore when we
+	 * fail to write xenstore later
+	 */
+	svdst = vdp->xs_if_status;
+	vdp->xs_if_status = XDB_CONNECTED;
+	mutex_exit(&vdp->xs_iomutex);
+
+	/* write into xenstore the info needed by frontend */
+trans_retry:
+	if (xenbus_transaction_start(&xbt)) {
+		xvdi_fatal_error(dip, EIO, "transaction start");
+		goto errout3;
+	}
+
+	/*
+	 * If feature-barrier isn't present in xenstore, add it.
+	 */
+	if (xenbus_read(xbt, xsnode, "feature-barrier",
+	    (void **)&barrier, &len) != 0) {
+		if ((err = xenbus_printf(xbt, xsnode, "feature-barrier",
+		    "%d", 1)) != 0) {
+			cmn_err(CE_WARN, "xdb@%s: failed to write "
+			    "'feature-barrier'", ddi_get_name_addr(dip));
+			xvdi_fatal_error(dip, err, "writing 'feature-barrier'");
+			goto abort_trans;
+		}
+	} else
+		kmem_free(barrier, len);
+
+	dinfo = 0;
+	if (XDB_IS_RO(vdp))
+		dinfo |= VDISK_READONLY;
+	if (XDB_IS_CD(vdp))
+		dinfo |= VDISK_CDROM;
+	if (XDB_IS_RMB(vdp))
+		dinfo |= VDISK_REMOVABLE;
+	if (err = xenbus_printf(xbt, xsnode, "info", "%u", dinfo)) {
+		xvdi_fatal_error(dip, err, "writing 'info'");
+		goto abort_trans;
+	}
+
+	/* hard-coded 512-byte sector size */
+	if (err = xenbus_printf(xbt, xsnode, "sector-size", "%u", DEV_BSIZE)) {
+		xvdi_fatal_error(dip, err, "writing 'sector-size'");
+		goto abort_trans;
+	}
+
+	if (err = xenbus_printf(xbt, xsnode, "sectors", "%"PRIu64,
+	    vdp->xs_sectors)) {
+		xvdi_fatal_error(dip, err, "writing 'sectors'");
+		goto abort_trans;
+	}
+
+	if (err = xenbus_printf(xbt, xsnode, "instance", "%d",
+	    ddi_get_instance(dip))) {
+		xvdi_fatal_error(dip, err, "writing 'instance'");
+		goto abort_trans;
+	}
+
+	if ((err = xvdi_switch_state(dip, xbt, XenbusStateConnected)) > 0) {
+		xvdi_fatal_error(dip, err, "writing 'state'");
+		goto abort_trans;
+	}
+
+	if (err = xenbus_transaction_end(xbt, 0)) {
+		if (err == EAGAIN)
+			/* transaction is ended, don't need to abort it */
+			goto trans_retry;
+		xvdi_fatal_error(dip, err, "completing transaction");
+		goto errout3;
+	}
+
+	return (DDI_SUCCESS);
+
+abort_trans:
+	(void) xenbus_transaction_end(xbt, 1);
+errout3:
+	mutex_enter(&vdp->xs_iomutex);
+	vdp->xs_if_status = svdst;
+	mutex_exit(&vdp->xs_iomutex);
+	ddi_remove_intr(dip, 0, NULL);
+errout2:
+	xdb_uninit_ioreqs(vdp);
+	xdb_unbindfrom_frontend(vdp);
+errout1:
+	xdb_close_device(vdp);
+	return (DDI_FAILURE);
+}
+
+/*
+ * Kick-off disconnect process
+ * xs_if_status will not be changed
+ */
+static int
+xdb_start_disconnect(xdb_t *vdp)
+{
+	/*
+	 * Kick-off disconnect process
+	 */
+	if (xvdi_switch_state(vdp->xs_dip, XBT_NULL, XenbusStateClosing) > 0)
+		return (DDI_FAILURE);
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Disconnect from frontend and close backend device
+ * ifstatus will be changed to XDB_DISCONNECTED
+ * Xenbus state will be changed to XenbusStateClosed
+ */
+static void
+xdb_close(dev_info_t *dip)
+{
+	xdb_t *vdp = (xdb_t *)ddi_get_driver_private(dip);
+
+	ASSERT(MUTEX_HELD(&vdp->xs_cbmutex));
+
+	mutex_enter(&vdp->xs_iomutex);
+
+	if (vdp->xs_if_status != XDB_CONNECTED) {
+		vdp->xs_if_status = XDB_DISCONNECTED;
+		cv_broadcast(&vdp->xs_iocv);
+		mutex_exit(&vdp->xs_iomutex);
+		(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateClosed);
+		return;
+	}
+	vdp->xs_if_status = XDB_DISCONNECTED;
+	cv_broadcast(&vdp->xs_iocv);
+
+	mutex_exit(&vdp->xs_iomutex);
+
+	/* stop accepting I/O request from frontend */
+	ddi_remove_intr(dip, 0, NULL);
+	/* clear all on-going I/Os, if any */
+	mutex_enter(&vdp->xs_iomutex);
+	while (vdp->xs_ionum > 0)
+		cv_wait(&vdp->xs_ionumcv, &vdp->xs_iomutex);
+	mutex_exit(&vdp->xs_iomutex);
+
+	/* clean up resources and close this interface */
+	xdb_uninit_ioreqs(vdp);
+	xdb_unbindfrom_frontend(vdp);
+	xdb_close_device(vdp);
+	vdp->xs_peer = (domid_t)-1;
+	(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateClosed);
+}
+
+/*
+ * Xdb_check_state_transition will check the XenbusState change to see
+ * if the change is a valid transition or not.
+ * The new state is written by frontend domain, or by running xenstore-write
+ * to change it manually in dom0
+ */
+static int
+xdb_check_state_transition(xdb_t *vdp, XenbusState oestate)
+{
+	enum xdb_state status;
+	int stcheck;
+#define	STOK	0 /* need further process */
+#define	STNOP	1 /* no action need taking */
+#define	STBUG	2 /* unexpected state change, could be a bug */
+
+	status = vdp->xs_if_status;
+	stcheck = STOK;
+
+	switch (status) {
+	case XDB_UNKNOWN:
+		if (vdp->xs_fe_status == XDB_FE_UNKNOWN) {
+			if ((oestate == XenbusStateUnknown)		||
+			    (oestate == XenbusStateConnected))
+				stcheck = STBUG;
+			else if ((oestate == XenbusStateInitialising)	||
+			    (oestate == XenbusStateInitWait))
+				stcheck = STNOP;
+		} else {
+			if ((oestate == XenbusStateUnknown)		||
+			    (oestate == XenbusStateInitialising)	||
+			    (oestate == XenbusStateInitWait)		||
+			    (oestate == XenbusStateConnected))
+				stcheck = STBUG;
+			else if (oestate == XenbusStateInitialised)
+				stcheck = STNOP;
+		}
+		break;
+	case XDB_CONNECTED:
+		if ((oestate == XenbusStateUnknown)		||
+		    (oestate == XenbusStateInitialising)	||
+		    (oestate == XenbusStateInitWait)		||
+		    (oestate == XenbusStateInitialised))
+			stcheck = STBUG;
+		else if (oestate == XenbusStateConnected)
+			stcheck = STNOP;
+		break;
+	case XDB_DISCONNECTED:
+	default:
+			stcheck = STBUG;
+	}
+
+	if (stcheck == STOK)
+		return (DDI_SUCCESS);
+
+	if (stcheck == STBUG)
+		cmn_err(CE_NOTE, "xdb@%s: unexpected otherend "
+		    "state change to %d!, when status is %d",
+		    ddi_get_name_addr(vdp->xs_dip), oestate, status);
+
+	return (DDI_FAILURE);
+}
+
+static void
+xdb_send_buf(void *arg)
+{
+	buf_t *bp;
+	xdb_t *vdp = (xdb_t *)arg;
+
+	mutex_enter(&vdp->xs_iomutex);
+
+	while (vdp->xs_if_status != XDB_DISCONNECTED) {
+		while ((bp = vdp->xs_f_iobuf) != NULL) {
+			vdp->xs_f_iobuf = bp->av_forw;
+			bp->av_forw = NULL;
+			mutex_exit(&vdp->xs_iomutex);
+			if (bp->b_bcount != 0) {
+				int err = ldi_strategy(vdp->xs_ldi_hdl, bp);
+				if (err != 0) {
+					bp->b_flags |= B_ERROR;
+					(void) xdb_biodone(bp);
+					XDB_DBPRINT(XDB_DBG_IO, (CE_WARN,
+					    "xdb@%s: sent buf to backend dev"
+					    "failed, err=%d",
+					    ddi_get_name_addr(vdp->xs_dip),
+					    err));
+				} else {
+					XDB_DBPRINT(XDB_DBG_IO, (CE_NOTE,
+					    "sent buf to backend ok"));
+				}
+			} else /* no I/O need to be done */
+				(void) xdb_biodone(bp);
+
+			mutex_enter(&vdp->xs_iomutex);
+		}
+
+		if (vdp->xs_if_status != XDB_DISCONNECTED)
+			cv_wait(&vdp->xs_iocv, &vdp->xs_iomutex);
+	}
+
+	mutex_exit(&vdp->xs_iomutex);
+}
+
+/*ARGSUSED*/
+static void
+xdb_hp_state_change(dev_info_t *dip, ddi_eventcookie_t id, void *arg,
+    void *impl_data)
+{
+	xendev_hotplug_state_t state = *(xendev_hotplug_state_t *)impl_data;
+	xdb_t *vdp = (xdb_t *)ddi_get_driver_private(dip);
+
+	XDB_DBPRINT(XDB_DBG_INFO, (CE_NOTE, "xdb@%s: "
+	    "hotplug status change to %d!", ddi_get_name_addr(dip), state));
+
+	mutex_enter(&vdp->xs_cbmutex);
+	if (state == Connected) {
+		/* Hotplug script has completed successfully */
+		if (vdp->xs_dev_status == XDB_DEV_UNKNOWN) {
+			vdp->xs_dev_status = XDB_DEV_READY;
+			if (vdp->xs_fe_status == XDB_FE_READY)
+				/* try to connect to frontend */
+				if (xdb_start_connect(vdp) != DDI_SUCCESS)
+					(void) xdb_start_disconnect(vdp);
+		}
+	}
+	mutex_exit(&vdp->xs_cbmutex);
+}
+
+/*ARGSUSED*/
+static void
+xdb_oe_state_change(dev_info_t *dip, ddi_eventcookie_t id, void *arg,
+    void *impl_data)
+{
+	XenbusState new_state = *(XenbusState *)impl_data;
+	xdb_t *vdp = (xdb_t *)ddi_get_driver_private(dip);
+
+	XDB_DBPRINT(XDB_DBG_INFO, (CE_NOTE, "xdb@%s: "
+	    "otherend state change to %d!", ddi_get_name_addr(dip), new_state));
+
+	mutex_enter(&vdp->xs_cbmutex);
+
+	if (xdb_check_state_transition(vdp, new_state) == DDI_FAILURE) {
+		mutex_exit(&vdp->xs_cbmutex);
+		return;
+	}
+
+	switch (new_state) {
+	case XenbusStateInitialised:
+		ASSERT(vdp->xs_if_status == XDB_UNKNOWN);
+
+		/* frontend is ready for connecting */
+		vdp->xs_fe_status = XDB_FE_READY;
+
+		if (vdp->xs_dev_status == XDB_DEV_READY)
+			if (xdb_start_connect(vdp) != DDI_SUCCESS)
+				(void) xdb_start_disconnect(vdp);
+		break;
+	case XenbusStateClosing:
+		(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateClosing);
+		break;
+	case XenbusStateClosed:
+		/* clean up */
+		xdb_close(dip);
+	}
+
+	mutex_exit(&vdp->xs_cbmutex);
+}
+
+static int
+xdb_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	xdb_t *vdp;
+	ddi_iblock_cookie_t ibc;
+	int instance;
+
+	switch (cmd) {
+	case DDI_RESUME:
+		return (DDI_FAILURE);
+	case DDI_ATTACH:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	/* DDI_ATTACH */
+	instance = ddi_get_instance(dip);
+	if (ddi_soft_state_zalloc(xdb_statep, instance) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	vdp = ddi_get_soft_state(xdb_statep, instance);
+	vdp->xs_dip = dip;
+	if (ddi_get_iblock_cookie(dip, 0, &ibc) != DDI_SUCCESS)
+		goto errout1;
+
+	if (!xdb_kstat_init(vdp))
+		goto errout1;
+
+	mutex_init(&vdp->xs_iomutex, NULL, MUTEX_DRIVER, (void *)ibc);
+	mutex_init(&vdp->xs_cbmutex, NULL, MUTEX_DRIVER, (void *)ibc);
+	cv_init(&vdp->xs_iocv, NULL, CV_DRIVER, NULL);
+	cv_init(&vdp->xs_ionumcv, NULL, CV_DRIVER, NULL);
+
+	ddi_set_driver_private(dip, vdp);
+
+	vdp->xs_iotaskq = ddi_taskq_create(dip, "xdb_iotask", 1,
+	    TASKQ_DEFAULTPRI, 0);
+	if (vdp->xs_iotaskq == NULL)
+		goto errout2;
+	(void) ddi_taskq_dispatch(vdp->xs_iotaskq, xdb_send_buf, vdp,
+	    DDI_SLEEP);
+
+	/* Watch frontend and hotplug state change */
+	if (xvdi_add_event_handler(dip, XS_OE_STATE, xdb_oe_state_change) !=
+	    DDI_SUCCESS)
+		goto errout3;
+	if (xvdi_add_event_handler(dip, XS_HP_STATE, xdb_hp_state_change) !=
+	    DDI_SUCCESS) {
+		goto errout4;
+	}
+
+	/*
+	 * Kick-off hotplug script
+	 */
+	if (xvdi_post_event(dip, XEN_HP_ADD) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdb@%s: failed to start hotplug script",
+		    ddi_get_name_addr(dip));
+		goto errout4;
+	}
+
+	/*
+	 * start waiting for hotplug event and otherend state event
+	 * mainly for debugging, frontend will not take any op seeing this
+	 */
+	(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateInitWait);
+
+	XDB_DBPRINT(XDB_DBG_INFO, (CE_NOTE, "xdb@%s: attached!",
+	    ddi_get_name_addr(dip)));
+	return (DDI_SUCCESS);
+
+errout4:
+	xvdi_remove_event_handler(dip, NULL);
+errout3:
+	mutex_enter(&vdp->xs_cbmutex);
+	mutex_enter(&vdp->xs_iomutex);
+	vdp->xs_if_status = XDB_DISCONNECTED;
+	cv_broadcast(&vdp->xs_iocv);
+	mutex_exit(&vdp->xs_iomutex);
+	mutex_exit(&vdp->xs_cbmutex);
+	ddi_taskq_destroy(vdp->xs_iotaskq);
+errout2:
+	ddi_set_driver_private(dip, NULL);
+	cv_destroy(&vdp->xs_iocv);
+	cv_destroy(&vdp->xs_ionumcv);
+	mutex_destroy(&vdp->xs_cbmutex);
+	mutex_destroy(&vdp->xs_iomutex);
+	kstat_delete(vdp->xs_kstats);
+errout1:
+	ddi_soft_state_free(xdb_statep, instance);
+	return (DDI_FAILURE);
+}
+
+/*ARGSUSED*/
+static int
+xdb_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	int instance = ddi_get_instance(dip);
+	xdb_t *vdp = XDB_INST2SOFTS(instance);
+
+	switch (cmd) {
+	case DDI_SUSPEND:
+		return (DDI_FAILURE);
+	case DDI_DETACH:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	/* DDI_DETACH handling */
+
+	/* shouldn't detach, if still used by frontend */
+	mutex_enter(&vdp->xs_iomutex);
+	if (vdp->xs_if_status != XDB_DISCONNECTED) {
+		mutex_exit(&vdp->xs_iomutex);
+		return (DDI_FAILURE);
+	}
+	mutex_exit(&vdp->xs_iomutex);
+
+	xvdi_remove_event_handler(dip, NULL);
+	/* can do nothing about it, if it fails */
+	(void) xvdi_post_event(dip, XEN_HP_REMOVE);
+
+	ddi_taskq_destroy(vdp->xs_iotaskq);
+	cv_destroy(&vdp->xs_iocv);
+	cv_destroy(&vdp->xs_ionumcv);
+	mutex_destroy(&vdp->xs_cbmutex);
+	mutex_destroy(&vdp->xs_iomutex);
+	kstat_delete(vdp->xs_kstats);
+	ddi_set_driver_private(dip, NULL);
+	ddi_soft_state_free(xdb_statep, instance);
+
+	XDB_DBPRINT(XDB_DBG_INFO, (CE_NOTE, "xdb@%s: detached!",
+	    ddi_get_name_addr(dip)));
+	return (DDI_SUCCESS);
+}
+
+static struct dev_ops xdb_dev_ops = {
+	DEVO_REV,	/* devo_rev */
+	0,		/* devo_refcnt */
+	ddi_getinfo_1to1, /* devo_getinfo */
+	nulldev,	/* devo_identify */
+	nulldev,	/* devo_probe */
+	xdb_attach,	/* devo_attach */
+	xdb_detach,	/* devo_detach */
+	nodev,		/* devo_reset */
+	NULL,		/* devo_cb_ops */
+	NULL,		/* devo_bus_ops */
+	NULL		/* power */
+};
+
+/*
+ * Module linkage information for the kernel.
+ */
+static struct modldrv modldrv = {
+	&mod_driverops,			/* Type of module. */
+	"vbd backend driver %I%",	/* Name of the module */
+	&xdb_dev_ops			/* driver ops */
+};
+
+static struct modlinkage xdb_modlinkage = {
+	MODREV_1,
+	&modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	int rv;
+
+	if ((rv = ddi_soft_state_init((void **)&xdb_statep,
+	    sizeof (xdb_t), 0)) == 0)
+		if ((rv = mod_install(&xdb_modlinkage)) != 0)
+			ddi_soft_state_fini((void **)&xdb_statep);
+	return (rv);
+}
+
+int
+_fini(void)
+{
+	int rv;
+
+	if ((rv = mod_remove(&xdb_modlinkage)) != 0)
+		return (rv);
+	ddi_soft_state_fini((void **)&xdb_statep);
+	return (rv);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&xdb_modlinkage, modinfop));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xdb.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,223 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _SYS_XDB_H
+#define	_SYS_XDB_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+#include <sys/conf.h>
+#include <sys/ddi.h>
+#include <sys/dditypes.h>
+#include <sys/sunddi.h>
+#include <sys/sunldi.h>
+#include <sys/modctl.h>
+#include <vm/seg_kmem.h>
+#include <sys/gnttab.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+#include "xdf.h"
+
+#define	XDB_DBG_ALL	0xf
+#define	XDB_DBG_IO	0x1
+#define	XDB_DBG_INFO	0x2
+#define	XDB_DBPRINT(lvl, fmt) { if (xdb_debug & lvl) cmn_err fmt; }
+
+/*
+ * Info of the exported blk device
+ */
+#define	XDB_DEV_RO	(1)	/* read-only or writable */
+#define	XDB_IS_RO(vdp)	((vdp)->xs_type & XDB_DEV_RO)
+#define	XDB_DEV_LOFI	(1 << 1) /* lofi device or physical device */
+#define	XDB_IS_LOFI(vdp)	((vdp)->xs_type & XDB_DEV_LOFI)
+#define	XDB_DEV_CD	(1 << 2) /* cdrom disc */
+#define	XDB_IS_CD(vdp)	((vdp)->xs_type & XDB_DEV_CD)
+#define	XDB_DEV_RMB	(1 << 3) /* removable device */
+#define	XDB_IS_RMB(vdp)	((vdp)->xs_type & XDB_DEV_RMB)
+
+/*
+ * Xdb interface status
+ */
+enum xdb_state {
+	/*
+	 * initial state
+	 */
+	XDB_UNKNOWN,
+	/*
+	 * frontend xenbus state changed to XenbusStateConnected,
+	 * we finally connect
+	 */
+	XDB_CONNECTED,
+	/*
+	 * frontend xenbus state changed to XenbusStateClosed,
+	 * interface disconnected
+	 */
+	XDB_DISCONNECTED
+};
+
+/*
+ * backend device status
+ */
+enum xdb_dev_state {
+	/* initial state */
+	XDB_DEV_UNKNOWN,
+	/* backend device is ready (hotplug script finishes successfully) */
+	XDB_DEV_READY
+};
+
+/*
+ * frontend status
+ */
+enum xdb_fe_state {
+	/* initial state */
+	XDB_FE_UNKNOWN,
+	/*
+	 * frontend's xenbus state has changed to
+	 * XenbusStateInitialised, is ready for connecting
+	 */
+	XDB_FE_READY
+};
+
+/*
+ * Other handy macrosx
+ */
+#define	XDB_MINOR2INST(m)	(int)(m)
+#define	XDB_INST2MINOR(i)	(minor_t)(i)
+#define	XDB_INST2SOFTS(instance)			\
+	((xdb_t *)ddi_get_soft_state(xdb_statep, (instance)))
+#define	XDB_MAX_IO_PAGES BLKIF_RING_SIZE * BLKIF_MAX_SEGMENTS_PER_REQUEST
+/* get kva of a mapped-in page coresponding to (xreq-index, seg) pair */
+#define	XDB_IOPAGE_VA(_pagebase, _xreqidx, _seg)	\
+	((_pagebase) + ((_xreqidx)			\
+	* BLKIF_MAX_SEGMENTS_PER_REQUEST		\
+	+ (_seg)) * PAGESIZE)
+#define	XDB_XREQ2BP(xreq) (&(xreq)->xr_buf)
+#define	XDB_BP2XREQ(bp) \
+	((xdb_request_t *)((char *)(bp) - offsetof(xdb_request_t, xr_buf)))
+
+/* describe one blkif segment */
+typedef struct xdb_seg {
+	uint8_t fs; /* start sector # within this page (segment) */
+	uint8_t ls; /* end sector # within this page (segment) */
+} xdb_seg_t;
+
+typedef struct xdb xdb_t;
+
+/* one blkif_request_t matches one xdb_request_t */
+typedef struct xdb_request {
+	/* buf associated with this I/O request */
+	buf_t		xr_buf;
+	/* softstate instance associated with this I/O request */
+	xdb_t		*xr_vdp;
+	/* the next segment we're going to process */
+	int		xr_curseg;
+	/* index of this xdb_request_t in vdp->xs_req */
+	int		xr_idx;
+	/* next index for a statical linked list */
+	int		xr_next;
+	/* 'id' copied from blkif_request_t */
+	uint64_t	xr_id;
+	/* 'operation' copied from blkif_request_t */
+	uint8_t		xr_op;
+	/* how many pages(segments) in this I/O request */
+	uint8_t		xr_buf_pages;
+	/* all segments of this I/O request */
+	xdb_seg_t	xr_segs[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+	/* all grant table handles used in this I/O request */
+	grant_handle_t	xr_page_hdls[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+	struct page	xr_plist[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+	struct page	*xr_pplist[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+} xdb_request_t;
+
+/* Soft state data structure for each backend vbd */
+struct xdb {
+	/* devinfo node pointer of this xdb */
+	dev_info_t	*xs_dip;
+	/* coresponding frontend domain id */
+	domid_t		xs_peer;
+	/* read-only, removable, cdrom? */
+	uint32_t	xs_type;
+	/* # of total sectors */
+	uint64_t	xs_sectors;
+	/* blkif I/O request ring buffer */
+	xendev_ring_t	*xs_ring;
+	/* handle to access the ring buffer */
+	ddi_acc_handle_t xs_ring_hdl;
+	ldi_ident_t	xs_ldi_li;
+	ldi_handle_t	xs_ldi_hdl;
+	/* base kva for mapped-in I/O page from frontend domain */
+	caddr_t		xs_iopage_va;
+	/* mutex lock for I/O related code path */
+	kmutex_t	xs_iomutex;
+	/*
+	 * mutex lock for event handling related code path
+	 * need to be grabbed before xs_iomutex
+	 */
+	kmutex_t	xs_cbmutex;
+	/* # of on-going I/O buf in backend domain */
+	uint_t		xs_ionum;
+	/* task thread for pushing buf to underlying target driver */
+	ddi_taskq_t	*xs_iotaskq;
+	/* cv used in I/O code path, protected by xs_iomutex */
+	kcondvar_t	xs_iocv;
+	kcondvar_t	xs_ionumcv;
+	/*
+	 * head and tail of linked list for I/O bufs need to be pushed to
+	 * underlying target driver
+	 */
+	buf_t		*xs_f_iobuf;
+	buf_t		*xs_l_iobuf;
+	/* xdb interface status */
+	enum xdb_state	xs_if_status;
+	/* backend device status */
+	enum xdb_dev_state xs_dev_status;
+	/* frontend status */
+	enum xdb_fe_state xs_fe_status;
+	/* head of free list of xdb_request_t */
+	int		xs_free_req;
+	/* pre-allocated xdb_request_t pool */
+	xdb_request_t	xs_req[BLKIF_RING_SIZE];
+	kstat_t		*xs_kstats;
+	uint64_t	xs_stat_req_reads;
+	uint64_t	xs_stat_req_writes;
+	uint64_t	xs_stat_req_barriers;
+	uint64_t	xs_stat_req_flushes;
+#ifdef DEBUG
+	uint64_t page_addrs[XDB_MAX_IO_PAGES]; /* for debug aid */
+#endif /* DEBUG */
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XDB_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xdf.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,2517 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * xdf.c - Xen Virtual Block Device Driver
+ * TODO:
+ *	- support alternate block size (currently only DEV_BSIZE supported)
+ *	- revalidate geometry for removable devices
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include "xdf.h"
+
+#define	FLUSH_DISKCACHE	0x1
+#define	WRITE_BARRIER	0x2
+#define	DEFAULT_FLUSH_BLOCK	156 /* block to write to cause a cache flush */
+#define	USE_WRITE_BARRIER(vdp)				\
+	((vdp)->xdf_feature_barrier && !(vdp)->xdf_flush_supported)
+#define	USE_FLUSH_DISKCACHE(vdp)			\
+	((vdp)->xdf_feature_barrier && (vdp)->xdf_flush_supported)
+#define	IS_WRITE_BARRIER(vdp, bp)			\
+	(!IS_READ(bp) && USE_WRITE_BARRIER(vdp) &&	\
+	((bp)->b_un.b_addr == (vdp)->xdf_cache_flush_block))
+#define	IS_FLUSH_DISKCACHE(bp)				\
+	(!IS_READ(bp) && USE_FLUSH_DISKCACHE(vdp) && ((bp)->b_bcount == 0))
+
+static void *vbd_ss;
+static kmem_cache_t *xdf_vreq_cache;
+static kmem_cache_t *xdf_gs_cache;
+static int xdf_maxphys = XB_MAXPHYS;
+int xdfdebug = 0;
+extern int do_polled_io;
+diskaddr_t xdf_flush_block = DEFAULT_FLUSH_BLOCK;
+int	xdf_barrier_flush_disable = 0;
+
+/*
+ * dev_ops and cb_ops entrypoints
+ */
+static int xdf_getinfo(dev_info_t *, ddi_info_cmd_t, void *, void **);
+static int xdf_attach(dev_info_t *, ddi_attach_cmd_t);
+static int xdf_detach(dev_info_t *, ddi_detach_cmd_t);
+static int xdf_reset(dev_info_t *, ddi_reset_cmd_t);
+static int xdf_open(dev_t *, int, int, cred_t *);
+static int xdf_close(dev_t, int, int, struct cred *);
+static int xdf_strategy(struct buf *);
+static int xdf_read(dev_t, struct uio *, cred_t *);
+static int xdf_aread(dev_t, struct aio_req *, cred_t *);
+static int xdf_write(dev_t, struct uio *, cred_t *);
+static int xdf_awrite(dev_t, struct aio_req *, cred_t *);
+static int xdf_dump(dev_t, caddr_t, daddr_t, int);
+static int xdf_ioctl(dev_t, int, intptr_t, int, cred_t *, int *);
+static uint_t xdf_intr(caddr_t);
+static int xdf_prop_op(dev_t, dev_info_t *, ddi_prop_op_t, int, char *,
+    caddr_t, int *);
+
+/*
+ * misc private functions
+ */
+static int xdf_suspend(dev_info_t *);
+static int xdf_resume(dev_info_t *);
+static int xdf_start_connect(xdf_t *);
+static int xdf_start_disconnect(xdf_t *);
+static int xdf_post_connect(xdf_t *);
+static void xdf_post_disconnect(xdf_t *);
+static void xdf_oe_change(dev_info_t *, ddi_eventcookie_t, void *, void *);
+static void xdf_iostart(xdf_t *);
+static void xdf_iofini(xdf_t *, uint64_t, int);
+static int xdf_prepare_rreq(xdf_t *, struct buf *, blkif_request_t *);
+static int xdf_drain_io(xdf_t *);
+static boolean_t xdf_isopen(xdf_t *, int);
+static int xdf_check_state_transition(xdf_t *, XenbusState);
+static int xdf_connect(xdf_t *, boolean_t);
+static int xdf_dmacallback(caddr_t);
+static void xdf_timeout_handler(void *);
+static uint_t xdf_iorestart(caddr_t);
+static v_req_t *vreq_get(xdf_t *, buf_t *);
+static void vreq_free(xdf_t *, v_req_t *);
+static int vreq_setup(xdf_t *, v_req_t *);
+static ge_slot_t *gs_get(xdf_t *, int);
+static void gs_free(xdf_t *, ge_slot_t *);
+static grant_ref_t gs_grant(ge_slot_t *, mfn_t);
+static void unexpectedie(xdf_t *);
+static void xdfmin(struct buf *);
+
+static 	struct cb_ops xdf_cbops = {
+	xdf_open,
+	xdf_close,
+	xdf_strategy,
+	nodev,
+	xdf_dump,
+	xdf_read,
+	xdf_write,
+	xdf_ioctl,
+	nodev,
+	nodev,
+	nodev,
+	nochpoll,
+	xdf_prop_op,
+	NULL,
+	D_MP | D_NEW | D_64BIT,
+	CB_REV,
+	xdf_aread,
+	xdf_awrite
+};
+
+struct dev_ops xdf_devops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt */
+	xdf_getinfo,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	xdf_attach,		/* devo_attach */
+	xdf_detach,		/* devo_detach */
+	xdf_reset,		/* devo_reset */
+	&xdf_cbops,		/* devo_cb_ops */
+	(struct bus_ops *)NULL	/* devo_bus_ops */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,		/* Type of module.  This one is a driver */
+	"virtual block driver %I%",	/* short description */
+	&xdf_devops		/* driver specific ops */
+};
+
+static struct modlinkage xdf_modlinkage = {
+	MODREV_1, (void *)&modldrv, NULL
+};
+
+/*
+ * I/O buffer DMA attributes
+ * Make sure: one DMA window contains BLKIF_MAX_SEGMENTS_PER_REQUEST at most
+ */
+static ddi_dma_attr_t xb_dma_attr = {
+	DMA_ATTR_V0,
+	(uint64_t)0,			/* lowest address */
+	(uint64_t)0xffffffffffffffff,	/* highest usable address */
+	(uint64_t)0xffffff,		/* DMA counter limit max */
+	(uint64_t)XB_BSIZE,		/* alignment in bytes */
+	XB_BSIZE - 1,			/* bitmap of burst sizes */
+	XB_BSIZE,			/* min transfer */
+	(uint64_t)XB_MAX_XFER, 		/* maximum transfer */
+	(uint64_t)PAGEOFFSET,		/* 1 page segment length  */
+	BLKIF_MAX_SEGMENTS_PER_REQUEST,	/* maximum number of segments */
+	XB_BSIZE,			/* granularity */
+	0,				/* flags (reserved) */
+};
+
+static ddi_device_acc_attr_t xc_acc_attr = {
+	DDI_DEVICE_ATTR_V0,
+	DDI_NEVERSWAP_ACC,
+	DDI_STRICTORDER_ACC
+};
+
+/* callbacks from commmon label */
+
+static int xdf_lb_rdwr(dev_info_t *, uchar_t, void *, diskaddr_t, size_t,
+	void *);
+static int xdf_lb_getinfo(dev_info_t *, int, void *, void *);
+
+static cmlb_tg_ops_t xdf_lb_ops = {
+	TG_DK_OPS_VERSION_1,
+	xdf_lb_rdwr,
+	xdf_lb_getinfo
+};
+
+int
+_init(void)
+{
+	int rc;
+
+	if ((rc = ddi_soft_state_init(&vbd_ss, sizeof (xdf_t), 0)) == 0) {
+		xdf_vreq_cache = kmem_cache_create("xdf_vreq_cache",
+		    sizeof (v_req_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
+		ASSERT(xdf_vreq_cache != NULL);
+		xdf_gs_cache = kmem_cache_create("xdf_gs_cache",
+		    sizeof (ge_slot_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
+		ASSERT(xdf_gs_cache != NULL);
+		if ((rc = mod_install(&xdf_modlinkage)) != 0) {
+			kmem_cache_destroy(xdf_vreq_cache);
+			kmem_cache_destroy(xdf_gs_cache);
+			ddi_soft_state_fini(&vbd_ss);
+		}
+	}
+
+	return (rc);
+}
+
+int
+_fini(void)
+{
+	int err;
+
+	if ((err = mod_remove(&xdf_modlinkage)) != 0)
+		return (err);
+
+	kmem_cache_destroy(xdf_vreq_cache);
+	kmem_cache_destroy(xdf_gs_cache);
+	ddi_soft_state_fini(&vbd_ss);
+
+	return (0);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&xdf_modlinkage, modinfop));
+}
+
+/*ARGSUSED*/
+static int
+xdf_getinfo(dev_info_t *dip, ddi_info_cmd_t cmd, void *arg, void **rp)
+{
+	int instance;
+	xdf_t *vbdp;
+
+	instance = XDF_INST(getminor((dev_t)arg));
+
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		if ((vbdp = ddi_get_soft_state(vbd_ss, instance)) == NULL) {
+			*rp = NULL;
+			return (DDI_FAILURE);
+		}
+		*rp = vbdp->xdf_dip;
+		return (DDI_SUCCESS);
+
+	case DDI_INFO_DEVT2INSTANCE:
+		*rp = (void *)(uintptr_t)instance;
+		return (DDI_SUCCESS);
+
+	default:
+		return (DDI_FAILURE);
+	}
+}
+
+static int
+xdf_prop_op(dev_t dev, dev_info_t *dip, ddi_prop_op_t prop_op, int mod_flags,
+	char *name, caddr_t valuep, int *lengthp)
+{
+	int instance = ddi_get_instance(dip);
+	xdf_t *vdp;
+	diskaddr_t p_blkcnt;
+
+	/*
+	 * xdf dynamic properties are device specific and size oriented.
+	 * Requests issued under conditions where size is valid are passed
+	 * to ddi_prop_op_nblocks with the size information, otherwise the
+	 * request is passed to ddi_prop_op.
+	 */
+	vdp = ddi_get_soft_state(vbd_ss, instance);
+
+	if ((dev == DDI_DEV_T_ANY) || (vdp == NULL))
+		return (ddi_prop_op(dev, dip, prop_op, mod_flags,
+		    name, valuep, lengthp));
+
+	/* do cv_wait until connected or failed */
+	mutex_enter(&vdp->xdf_dev_lk);
+	if (xdf_connect(vdp, B_TRUE) != XD_READY) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		goto out;
+	}
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, XDF_PART(getminor(dev)), &p_blkcnt,
+	    NULL, NULL, NULL, NULL) == 0)
+		return (ddi_prop_op_nblocks(dev, dip, prop_op, mod_flags,
+		    name, valuep, lengthp, (uint64_t)p_blkcnt));
+
+out:
+	return (ddi_prop_op(dev, dip, prop_op, mod_flags, name, valuep,
+	    lengthp));
+}
+
+static int
+xdf_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	xdf_t *vdp;
+	ddi_iblock_cookie_t ibc;
+	ddi_iblock_cookie_t softibc;
+	int instance;
+
+	xdfdebug = ddi_prop_get_int(DDI_DEV_T_ANY, devi, DDI_PROP_NOTPROM,
+	    "xdfdebug", 0);
+
+	switch (cmd) {
+		case DDI_ATTACH:
+			break;
+
+		case DDI_RESUME:
+			return (xdf_resume(devi));
+
+		default:
+			return (DDI_FAILURE);
+	}
+
+	instance = ddi_get_instance(devi);
+	if (ddi_soft_state_zalloc(vbd_ss, instance) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	DPRINTF(DDI_DBG, ("xdf%d: attaching\n", instance));
+	vdp = ddi_get_soft_state(vbd_ss, instance);
+	vdp->xdf_dip = devi;
+	if (ddi_get_iblock_cookie(devi, 0, &ibc) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: failed to get iblock cookie",
+		    ddi_get_name_addr(devi));
+		goto errout1;
+	}
+
+	mutex_init(&vdp->xdf_dev_lk, NULL, MUTEX_DRIVER, (void *)ibc);
+	mutex_init(&vdp->xdf_cb_lk, NULL, MUTEX_DRIVER, (void *)ibc);
+	cv_init(&vdp->xdf_dev_cv, NULL, CV_DEFAULT, NULL);
+	ddi_set_driver_private(devi, vdp);
+
+	if (ddi_get_soft_iblock_cookie(devi, DDI_SOFTINT_LOW, &softibc)
+	    != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: failed to get softintr iblock cookie",
+		    ddi_get_name_addr(devi));
+		goto errout2;
+	}
+	if (ddi_add_softintr(devi, DDI_SOFTINT_LOW, &vdp->xdf_softintr_id,
+	    &softibc, NULL, xdf_iorestart, (caddr_t)vdp) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: failed to add softintr",
+		    ddi_get_name_addr(devi));
+		goto errout2;
+	}
+
+	/*
+	 * create kstat for iostat(1M)
+	 */
+	if ((vdp->xdf_xdev_iostat = kstat_create("xdf", instance, NULL, "disk",
+	    KSTAT_TYPE_IO, 1, KSTAT_FLAG_PERSISTENT)) != NULL) {
+		vdp->xdf_xdev_iostat->ks_lock = &vdp->xdf_dev_lk;
+		kstat_install(vdp->xdf_xdev_iostat);
+	} else {
+		cmn_err(CE_WARN, "xdf@%s: failed to create kstat",
+		    ddi_get_name_addr(devi));
+		goto errout3;
+	}
+
+	/*
+	 * driver handles kernel-issued IOCTLs
+	 */
+	if (ddi_prop_create(DDI_DEV_T_NONE, devi, DDI_PROP_CANSLEEP,
+	    DDI_KERNEL_IOCTL, NULL, 0) != DDI_PROP_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: cannot create DDI_KERNEL_IOCTL prop",
+		    ddi_get_name_addr(devi));
+		goto errout4;
+	}
+
+	/*
+	 * create default device minor nodes: non-removable disk
+	 * we will adjust minor nodes after we are connected w/ backend
+	 */
+	cmlb_alloc_handle(&vdp->xdf_vd_lbl);
+	if (cmlb_attach(devi, &xdf_lb_ops, DTYPE_DIRECT, 0, 1, DDI_NT_BLOCK,
+	    CMLB_FAKE_LABEL_ONE_PARTITION, vdp->xdf_vd_lbl, NULL) != 0) {
+		cmn_err(CE_WARN, "xdf@%s: default cmlb attach failed",
+		    ddi_get_name_addr(devi));
+		goto errout5;
+	}
+
+	/*
+	 * We ship with cache-enabled disks
+	 */
+	vdp->xdf_wce = 1;
+
+	mutex_enter(&vdp->xdf_cb_lk);
+
+	/* Watch backend XenbusState change */
+	if (xvdi_add_event_handler(devi, XS_OE_STATE,
+	    xdf_oe_change) != DDI_SUCCESS) {
+		mutex_exit(&vdp->xdf_cb_lk);
+		goto errout6;
+	}
+
+	if (xdf_start_connect(vdp) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: start connection failed",
+		    ddi_get_name_addr(devi));
+		(void) xdf_start_disconnect(vdp);
+		mutex_exit(&vdp->xdf_cb_lk);
+		goto errout7;
+	}
+
+	mutex_exit(&vdp->xdf_cb_lk);
+
+	list_create(&vdp->xdf_vreq_act, sizeof (v_req_t),
+	    offsetof(v_req_t, v_link));
+	list_create(&vdp->xdf_gs_act, sizeof (ge_slot_t),
+	    offsetof(ge_slot_t, link));
+
+	ddi_report_dev(devi);
+	DPRINTF(DDI_DBG, ("xdf%d: attached\n", instance));
+
+	return (DDI_SUCCESS);
+
+errout7:
+	xvdi_remove_event_handler(devi, XS_OE_STATE);
+errout6:
+	cmlb_detach(vdp->xdf_vd_lbl, NULL);
+errout5:
+	cmlb_free_handle(&vdp->xdf_vd_lbl);
+	ddi_prop_remove_all(devi);
+errout4:
+	kstat_delete(vdp->xdf_xdev_iostat);
+errout3:
+	ddi_remove_softintr(vdp->xdf_softintr_id);
+errout2:
+	ddi_set_driver_private(devi, NULL);
+	cv_destroy(&vdp->xdf_dev_cv);
+	mutex_destroy(&vdp->xdf_cb_lk);
+	mutex_destroy(&vdp->xdf_dev_lk);
+errout1:
+	cmn_err(CE_WARN, "xdf@%s: attach failed", ddi_get_name_addr(devi));
+	ddi_soft_state_free(vbd_ss, instance);
+	return (DDI_FAILURE);
+}
+
+static int
+xdf_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	xdf_t *vdp;
+	int instance;
+
+	switch (cmd) {
+
+	case DDI_PM_SUSPEND:
+		break;
+
+	case DDI_SUSPEND:
+		return (xdf_suspend(devi));
+
+	case DDI_DETACH:
+		break;
+
+	default:
+		return (DDI_FAILURE);
+	}
+
+	instance = ddi_get_instance(devi);
+	DPRINTF(DDI_DBG, ("xdf%d: detaching\n", instance));
+	vdp = ddi_get_soft_state(vbd_ss, instance);
+
+	if (vdp == NULL)
+		return (DDI_FAILURE);
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	if (xdf_isopen(vdp, -1)) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (DDI_FAILURE);
+	}
+
+	if (vdp->xdf_status != XD_CLOSED) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (DDI_FAILURE);
+	}
+
+	ASSERT(!ISDMACBON(vdp));
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	if (vdp->xdf_timeout_id != 0)
+		(void) untimeout(vdp->xdf_timeout_id);
+
+	xvdi_remove_event_handler(devi, XS_OE_STATE);
+
+	/* we'll support backend running in domU later */
+#ifdef	DOMU_BACKEND
+	(void) xvdi_post_event(devi, XEN_HP_REMOVE);
+#endif
+
+	list_destroy(&vdp->xdf_vreq_act);
+	list_destroy(&vdp->xdf_gs_act);
+	ddi_prop_remove_all(devi);
+	kstat_delete(vdp->xdf_xdev_iostat);
+	ddi_remove_softintr(vdp->xdf_softintr_id);
+	ddi_set_driver_private(devi, NULL);
+	cv_destroy(&vdp->xdf_dev_cv);
+	mutex_destroy(&vdp->xdf_cb_lk);
+	mutex_destroy(&vdp->xdf_dev_lk);
+	if (vdp->xdf_cache_flush_block != NULL)
+		kmem_free(vdp->xdf_flush_mem, 2 * DEV_BSIZE);
+	ddi_soft_state_free(vbd_ss, instance);
+	return (DDI_SUCCESS);
+}
+
+static int
+xdf_suspend(dev_info_t *devi)
+{
+	xdf_t *vdp;
+	int instance;
+
+	instance = ddi_get_instance(devi);
+
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_suspend: xdf#%d\n", instance);
+
+	if ((vdp = ddi_get_soft_state(vbd_ss, instance)) == NULL)
+		return (DDI_FAILURE);
+
+	xvdi_suspend(devi);
+
+	/* stop further I/O requests */
+	mutex_enter(&vdp->xdf_cb_lk);
+	mutex_enter(&vdp->xdf_dev_lk);
+	vdp->xdf_status = XD_SUSPEND;
+	mutex_exit(&vdp->xdf_dev_lk);
+	mutex_exit(&vdp->xdf_cb_lk);
+
+	/* make sure no more I/O responses left in the ring buffer */
+	(void) ddi_remove_intr(devi, 0, NULL);
+	(void) xdf_drain_io(vdp);
+
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_suspend: SUCCESS\n");
+
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+static int
+xdf_resume(dev_info_t *devi)
+{
+	xdf_t *vdp;
+	int instance;
+
+	instance = ddi_get_instance(devi);
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_resume: xdf%d\n", instance);
+
+	if ((vdp = ddi_get_soft_state(vbd_ss, instance)) == NULL)
+		return (DDI_FAILURE);
+
+	mutex_enter(&vdp->xdf_cb_lk);
+
+	if (xvdi_resume(devi) != DDI_SUCCESS) {
+		mutex_exit(&vdp->xdf_cb_lk);
+		return (DDI_FAILURE);
+	}
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	ASSERT(vdp->xdf_status == XD_SUSPEND);
+	vdp->xdf_status = XD_UNKNOWN;
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	if (xdf_start_connect(vdp) != DDI_SUCCESS) {
+		mutex_exit(&vdp->xdf_cb_lk);
+		return (DDI_FAILURE);
+	}
+
+	mutex_exit(&vdp->xdf_cb_lk);
+
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_resume: done\n");
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+static int
+xdf_reset(dev_info_t *devi, ddi_reset_cmd_t cmd)
+{
+	xdf_t *vdp;
+	int instance;
+
+	instance = ddi_get_instance(devi);
+	DPRINTF(DDI_DBG, ("xdf%d: resetting\n", instance));
+	if ((vdp = ddi_get_soft_state(vbd_ss, instance)) == NULL)
+		return (DDI_FAILURE);
+
+	/*
+	 * wait for any outstanding I/O to complete
+	 */
+	(void) xdf_drain_io(vdp);
+
+	DPRINTF(DDI_DBG, ("xdf%d: reset complete\n", instance));
+	return (DDI_SUCCESS);
+}
+
+static int
+xdf_open(dev_t *devp, int flag, int otyp, cred_t *credp)
+{
+	minor_t	minor;
+	xdf_t	*vdp;
+	int part;
+	ulong_t parbit;
+	diskaddr_t p_blkct = 0;
+	boolean_t firstopen;
+
+	minor = getminor(*devp);
+	if ((vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))) == NULL)
+		return (ENXIO);
+
+	DPRINTF(DDI_DBG, ("xdf%d: opening\n", XDF_INST(minor)));
+
+	/* do cv_wait until connected or failed */
+	mutex_enter(&vdp->xdf_dev_lk);
+	if (xdf_connect(vdp, B_TRUE) != XD_READY) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (ENXIO);
+	}
+
+	if ((flag & FWRITE) && XD_IS_RO(vdp)) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (EROFS);
+	}
+
+	part = XDF_PART(minor);
+	parbit = 1 << part;
+	if (vdp->xdf_vd_exclopen & parbit) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (EBUSY);
+	}
+
+	/* are we the first one to open this node? */
+	firstopen = !xdf_isopen(vdp, -1);
+
+	if ((flag & FEXCL) && !firstopen) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (EBUSY);
+	}
+
+	if (otyp == OTYP_LYR)
+		vdp->xdf_vd_lyropen[part]++;
+
+	vdp->xdf_vd_open[otyp] |= parbit;
+
+	if (flag & FEXCL)
+		vdp->xdf_vd_exclopen |= parbit;
+
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	/* force a re-validation */
+	if (firstopen)
+		cmlb_invalidate(vdp->xdf_vd_lbl, NULL);
+
+	/*
+	 * check size
+	 * ignore CD/DVD which contains a zero-sized s0
+	 */
+	if (!(flag & (FNDELAY | FNONBLOCK)) && !XD_IS_CD(vdp) &&
+	    ((cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkct,
+	    NULL, NULL, NULL, NULL) != 0) || (p_blkct == 0))) {
+		(void) xdf_close(*devp, flag, otyp, credp);
+		return (ENXIO);
+	}
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
+xdf_close(dev_t dev, int flag, int otyp, struct cred *credp)
+{
+	minor_t	minor;
+	xdf_t	*vdp;
+	int part;
+	ulong_t parbit;
+
+	minor = getminor(dev);
+	if ((vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))) == NULL)
+		return (ENXIO);
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part)) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (ENXIO);
+	}
+	parbit = 1 << part;
+
+	if (otyp == OTYP_LYR) {
+		if (vdp->xdf_vd_lyropen[part] != 0)
+			vdp->xdf_vd_lyropen[part]--;
+		if (vdp->xdf_vd_lyropen[part] == 0)
+			vdp->xdf_vd_open[OTYP_LYR] &= ~parbit;
+	} else {
+		vdp->xdf_vd_open[otyp] &= ~parbit;
+	}
+	vdp->xdf_vd_exclopen &= ~parbit;
+
+	mutex_exit(&vdp->xdf_dev_lk);
+	return (0);
+}
+
+static int
+xdf_strategy(struct buf *bp)
+{
+	xdf_t	*vdp;
+	minor_t minor;
+	diskaddr_t p_blkct, p_blkst;
+	ulong_t nblks;
+	int part;
+
+	minor = getminor(bp->b_edev);
+	part = XDF_PART(minor);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))) ||
+	    !xdf_isopen(vdp, part) ||
+	    cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkct,
+	    &p_blkst, NULL, NULL, NULL)) {
+		bioerror(bp, ENXIO);
+		bp->b_resid = bp->b_bcount;
+		biodone(bp);
+		return (0);
+	}
+
+	if (!IS_READ(bp) && XD_IS_RO(vdp)) {
+		bioerror(bp, EROFS);
+		bp->b_resid = bp->b_bcount;
+		biodone(bp);
+		return (0);
+	}
+
+	/*
+	 * starting beyond partition
+	 */
+	if (bp->b_blkno > p_blkct) {
+		DPRINTF(IO_DBG, ("xdf: block %lld exceeds VBD size %"PRIu64,
+		    (longlong_t)bp->b_blkno, (uint64_t)p_blkct));
+		bioerror(bp, EINVAL);
+		bp->b_resid = bp->b_bcount;
+		biodone(bp);
+		return (0);
+	}
+
+	/* Legacy: don't set error flag at this case */
+	if (bp->b_blkno == p_blkct) {
+		bp->b_resid = bp->b_bcount;
+		biodone(bp);
+		return (0);
+	}
+
+	/*
+	 * adjust for partial transfer
+	 */
+	nblks = bp->b_bcount >> XB_BSHIFT;
+	if ((bp->b_blkno + nblks) > p_blkct) {
+		bp->b_resid = ((bp->b_blkno + nblks) - p_blkct) << XB_BSHIFT;
+		bp->b_bcount -= bp->b_resid;
+	}
+
+
+	DPRINTF(IO_DBG, ("xdf: strategy blk %lld len %lu\n",
+	    (longlong_t)bp->b_blkno, (ulong_t)bp->b_bcount));
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	kstat_waitq_enter(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+	if (vdp->xdf_f_act == NULL) {
+		vdp->xdf_f_act = vdp->xdf_l_act = bp;
+	} else {
+		vdp->xdf_l_act->av_forw = bp;
+		vdp->xdf_l_act = bp;
+	}
+	bp->av_forw = NULL;
+	bp->av_back = NULL; /* not tagged with a v_req */
+	bp->b_private = (void *)(uintptr_t)p_blkst;
+	mutex_exit(&vdp->xdf_dev_lk);
+	xdf_iostart(vdp);
+	if (do_polled_io)
+		(void) xdf_drain_io(vdp);
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
+xdf_read(dev_t dev, struct uio *uiop, cred_t *credp)
+{
+
+	xdf_t	*vdp;
+	minor_t minor;
+	diskaddr_t p_blkcnt;
+	int part;
+
+	minor = getminor(dev);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))))
+		return (ENXIO);
+
+	DPRINTF(IO_DBG, ("xdf: read offset 0x%"PRIx64"\n",
+	    (int64_t)uiop->uio_offset));
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkcnt,
+	    NULL, NULL, NULL, NULL))
+		return (ENXIO);
+
+	if (U_INVAL(uiop))
+		return (EINVAL);
+
+	return (physio(xdf_strategy, NULL, dev, B_READ, xdfmin, uiop));
+}
+
+/*ARGSUSED*/
+static int
+xdf_write(dev_t dev, struct uio *uiop, cred_t *credp)
+{
+	xdf_t *vdp;
+	minor_t minor;
+	diskaddr_t p_blkcnt;
+	int part;
+
+	minor = getminor(dev);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))))
+		return (ENXIO);
+
+	DPRINTF(IO_DBG, ("xdf: write offset 0x%"PRIx64"\n",
+	    (int64_t)uiop->uio_offset));
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkcnt,
+	    NULL, NULL, NULL, NULL))
+		return (ENXIO);
+
+	if (uiop->uio_loffset >= XB_DTOB(p_blkcnt))
+		return (ENOSPC);
+
+	if (U_INVAL(uiop))
+		return (EINVAL);
+
+	return (physio(xdf_strategy, NULL, dev, B_WRITE, minphys, uiop));
+}
+
+/*ARGSUSED*/
+static int
+xdf_aread(dev_t dev, struct aio_req *aiop, cred_t *credp)
+{
+	xdf_t	*vdp;
+	minor_t minor;
+	struct uio *uiop = aiop->aio_uio;
+	diskaddr_t p_blkcnt;
+	int part;
+
+	minor = getminor(dev);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))))
+		return (ENXIO);
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkcnt,
+	    NULL, NULL, NULL, NULL))
+		return (ENXIO);
+
+	if (uiop->uio_loffset >= XB_DTOB(p_blkcnt))
+		return (ENOSPC);
+
+	if (U_INVAL(uiop))
+		return (EINVAL);
+
+	return (aphysio(xdf_strategy, anocancel, dev, B_READ, minphys, aiop));
+}
+
+/*ARGSUSED*/
+static int
+xdf_awrite(dev_t dev, struct aio_req *aiop, cred_t *credp)
+{
+	xdf_t *vdp;
+	minor_t minor;
+	struct uio *uiop = aiop->aio_uio;
+	diskaddr_t p_blkcnt;
+	int part;
+
+	minor = getminor(dev);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))))
+		return (ENXIO);
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkcnt,
+	    NULL, NULL, NULL, NULL))
+		return (ENXIO);
+
+	if (uiop->uio_loffset >= XB_DTOB(p_blkcnt))
+		return (ENOSPC);
+
+	if (U_INVAL(uiop))
+		return (EINVAL);
+
+	return (aphysio(xdf_strategy, anocancel, dev, B_WRITE, minphys, aiop));
+}
+
+static int
+xdf_dump(dev_t dev, caddr_t addr, daddr_t blkno, int nblk)
+{
+	struct buf dumpbuf, *dbp;
+	xdf_t	*vdp;
+	minor_t minor;
+	int err = 0;
+	int part;
+	diskaddr_t p_blkcnt, p_blkst;
+
+	minor = getminor(dev);
+	if (!(vdp = ddi_get_soft_state(vbd_ss, XDF_INST(minor))))
+		return (ENXIO);
+
+	DPRINTF(IO_DBG, ("xdf: dump addr (0x%p) blk (%ld) nblks (%d)\n",
+	    addr, blkno, nblk));
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	if (cmlb_partinfo(vdp->xdf_vd_lbl, part, &p_blkcnt, &p_blkst,
+	    NULL, NULL, NULL))
+		return (ENXIO);
+
+	if ((blkno + nblk) > p_blkcnt) {
+		cmn_err(CE_WARN, "xdf: block %ld exceeds VBD size %"PRIu64,
+		    blkno + nblk, (uint64_t)vdp->xdf_xdev_nblocks);
+		return (EINVAL);
+	}
+
+	dbp = &dumpbuf;
+	bioinit(dbp);
+	dbp->b_flags = B_BUSY;
+	dbp->b_un.b_addr = addr;
+	dbp->b_bcount	= nblk << DEV_BSHIFT;
+	dbp->b_resid = 0;
+	dbp->b_blkno = blkno;
+	dbp->b_edev = dev;
+	dbp->b_private = (void *)(uintptr_t)p_blkst;
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	kstat_waitq_enter(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+	if (vdp->xdf_f_act == NULL) {
+		vdp->xdf_f_act = vdp->xdf_l_act = dbp;
+	} else {
+		vdp->xdf_l_act->av_forw = dbp;
+		vdp->xdf_l_act = dbp;
+	}
+	dbp->av_forw = NULL;
+	dbp->av_back = NULL;
+	mutex_exit(&vdp->xdf_dev_lk);
+	xdf_iostart(vdp);
+	err = xdf_drain_io(vdp);
+	biofini(dbp);
+	return (err);
+}
+
+/*ARGSUSED*/
+static int
+xdf_ioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp,
+    int *rvalp)
+{
+	int instance;
+	xdf_t	*vdp;
+	minor_t minor;
+	int part;
+
+	minor = getminor(dev);
+	instance = XDF_INST(minor);
+
+	if ((vdp = ddi_get_soft_state(vbd_ss, instance)) == NULL)
+		return (ENXIO);
+
+	DPRINTF(IOCTL_DBG, ("xdf%d:ioctl: cmd %d (0x%x)\n",
+	    instance, cmd, cmd));
+
+	part = XDF_PART(minor);
+	if (!xdf_isopen(vdp, part))
+		return (ENXIO);
+
+	switch (cmd) {
+	case DKIOCGMEDIAINFO: {
+		struct dk_minfo	media_info;
+
+		media_info.dki_lbsize = DEV_BSIZE;
+		media_info.dki_capacity = vdp->xdf_xdev_nblocks;
+		media_info.dki_media_type = DK_FIXED_DISK;
+
+		if (ddi_copyout(&media_info, (void *)arg,
+		    sizeof (struct dk_minfo), mode)) {
+			return (EFAULT);
+		} else {
+			return (0);
+		}
+	}
+
+	case DKIOCINFO: {
+		struct dk_cinfo info;
+
+		/* controller information */
+		if (XD_IS_CD(vdp))
+			info.dki_ctype = DKC_CDROM;
+		else
+			info.dki_ctype = DKC_VBD;
+
+		info.dki_cnum = 0;
+		(void) strncpy((char *)(&info.dki_cname), "xdf", 8);
+
+		/* unit information */
+		info.dki_unit = ddi_get_instance(vdp->xdf_dip);
+		(void) strncpy((char *)(&info.dki_dname), "xdf", 8);
+		info.dki_flags = DKI_FMTVOL;
+		info.dki_partition = part;
+		info.dki_maxtransfer = maxphys / DEV_BSIZE;
+		info.dki_addr = 0;
+		info.dki_space = 0;
+		info.dki_prio = 0;
+		info.dki_vec = 0;
+
+		if (ddi_copyout(&info, (void *)arg, sizeof (info), mode))
+			return (EFAULT);
+		else
+			return (0);
+	}
+
+	case DKIOCSTATE: {
+		enum dkio_state	dkstate = DKIO_INSERTED;
+		if (ddi_copyout(&dkstate, (void *)arg, sizeof (dkstate),
+		    mode) != 0)
+			return (EFAULT);
+		return (0);
+	}
+
+	/*
+	 * is media removable?
+	 */
+	case DKIOCREMOVABLE: {
+		int i = XD_IS_RM(vdp) ? 1 : 0;
+		if (ddi_copyout(&i, (caddr_t)arg, sizeof (int), mode))
+			return (EFAULT);
+		return (0);
+	}
+
+	case DKIOCG_PHYGEOM:
+	case DKIOCG_VIRTGEOM:
+	case DKIOCGGEOM:
+	case DKIOCSGEOM:
+	case DKIOCGAPART:
+	case DKIOCGVTOC:
+	case DKIOCSVTOC:
+	case DKIOCPARTINFO:
+	case DKIOCGETEFI:
+	case DKIOCSETEFI:
+	case DKIOCPARTITION: {
+		int rc;
+
+		rc = cmlb_ioctl(vdp->xdf_vd_lbl, dev, cmd, arg, mode, credp,
+		    rvalp, NULL);
+		return (rc);
+	}
+
+	case DKIOCGETWCE:
+		if (ddi_copyout(&vdp->xdf_wce, (void *)arg,
+		    sizeof (vdp->xdf_wce), mode))
+			return (EFAULT);
+		return (0);
+	case DKIOCSETWCE:
+		if (ddi_copyin((void *)arg, &vdp->xdf_wce,
+		    sizeof (vdp->xdf_wce), mode))
+			return (EFAULT);
+		return (0);
+	case DKIOCFLUSHWRITECACHE: {
+		int rc;
+		struct dk_callback *dkc = (struct dk_callback *)arg;
+
+		if (vdp->xdf_flush_supported) {
+			rc = xdf_lb_rdwr(vdp->xdf_dip, TG_WRITE,
+			    NULL, 0, 0, (void *)dev);
+		} else {
+			if (xdf_barrier_flush_disable)
+				return (ENOTTY);
+			rc = xdf_lb_rdwr(vdp->xdf_dip, TG_WRITE,
+			    vdp->xdf_cache_flush_block, xdf_flush_block,
+			    DEV_BSIZE, (void *)dev);
+		}
+		if ((mode & FKIOCTL) && (dkc != NULL) &&
+		    (dkc->dkc_callback != NULL)) {
+			(*dkc->dkc_callback)(dkc->dkc_cookie, rc);
+			/* need to return 0 after calling callback */
+			rc = 0;
+		}
+		return (rc);
+	}
+
+	default:
+		return (ENOTTY);
+	}
+}
+
+/*
+ * xdf interrupt handler
+ */
+static uint_t
+xdf_intr(caddr_t arg)
+{
+	xdf_t *vdp = (xdf_t *)arg;
+	xendev_ring_t *xbr;
+	blkif_response_t *resp;
+	int bioerr = 0;
+	uint64_t id;
+	extern int do_polled_io;
+	uint8_t op;
+	uint16_t status;
+	ddi_acc_handle_t acchdl;
+
+	mutex_enter(&vdp->xdf_dev_lk);
+
+	if ((xbr = vdp->xdf_xb_ring) == NULL) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		return (DDI_INTR_UNCLAIMED);
+	}
+
+	acchdl = vdp->xdf_xb_ring_hdl;
+
+	/*
+	 * complete all requests which have a response
+	 */
+	while (resp = xvdi_ring_get_response(xbr)) {
+		id = ddi_get64(acchdl, &resp->id);
+		op = ddi_get8(acchdl, &resp->operation);
+		status = ddi_get16(acchdl, (uint16_t *)&resp->status);
+		DPRINTF(INTR_DBG, ("resp: op %d id %"PRIu64" status %d\n",
+		    op, id, status));
+
+		/*
+		 * XXPV - close connection to the backend and restart
+		 */
+		if (status != BLKIF_RSP_OKAY) {
+			DPRINTF(IO_DBG, ("xdf@%s: I/O error while %s",
+			    ddi_get_name_addr(vdp->xdf_dip),
+			    (op == BLKIF_OP_READ) ? "reading" : "writing"));
+			bioerr = EIO;
+		}
+
+		xdf_iofini(vdp, id, bioerr);
+	}
+
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	if (!do_polled_io)
+		xdf_iostart(vdp);
+
+	return (DDI_INTR_CLAIMED);
+}
+
+int xdf_fbrewrites;	/* how many times was our flush block rewritten */
+
+/*
+ * Snarf new data if our flush block was re-written
+ */
+static void
+check_fbwrite(xdf_t *vdp, buf_t *bp, daddr_t blkno)
+{
+	int nblks;
+	boolean_t mapin;
+
+	if (IS_WRITE_BARRIER(vdp, bp))
+		return; /* write was a flush write */
+
+	mapin = B_FALSE;
+	nblks = bp->b_bcount >> DEV_BSHIFT;
+	if (xdf_flush_block >= blkno && xdf_flush_block < (blkno + nblks)) {
+		xdf_fbrewrites++;
+		if (bp->b_flags & (B_PAGEIO | B_PHYS)) {
+			mapin = B_TRUE;
+			bp_mapin(bp);
+		}
+		bcopy(bp->b_un.b_addr +
+		    ((xdf_flush_block - blkno) << DEV_BSHIFT),
+		    vdp->xdf_cache_flush_block, DEV_BSIZE);
+		if (mapin)
+			bp_mapout(bp);
+	}
+}
+
+static void
+xdf_iofini(xdf_t *vdp, uint64_t id, int bioerr)
+{
+	ge_slot_t *gs = (ge_slot_t *)(uintptr_t)id;
+	v_req_t *vreq = gs->vreq;
+	buf_t *bp = vreq->v_buf;
+
+	gs_free(vdp, gs);
+	if (bioerr)
+		bioerror(bp, bioerr);
+	vreq->v_nslots--;
+	if (vreq->v_nslots != 0)
+		return;
+
+	XDF_UPDATE_IO_STAT(vdp, bp);
+	kstat_runq_exit(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+
+	if (IS_ERROR(bp))
+		bp->b_resid = bp->b_bcount;
+
+	vreq_free(vdp, vreq);
+	biodone(bp);
+}
+
+/*
+ * return value of xdf_prepare_rreq()
+ * used in xdf_iostart()
+ */
+#define	XF_PARTIAL	0 /* rreq is full, not all I/O in buf transferred */
+#define	XF_COMP		1 /* no more I/O left in buf */
+
+static void
+xdf_iostart(xdf_t *vdp)
+{
+	xendev_ring_t *xbr;
+	struct buf *bp;
+	blkif_request_t *rreq;
+	int retval;
+	int rreqready = 0;
+
+	xbr = vdp->xdf_xb_ring;
+
+	/*
+	 * populate the ring request(s)
+	 *
+	 * loop until there is no buf to transfer or no free slot
+	 * available in I/O ring
+	 */
+	for (;;) {
+		mutex_enter(&vdp->xdf_dev_lk);
+
+		if (vdp->xdf_status != XD_READY)
+			break;
+
+		/* active buf queue empty? */
+		if ((bp = vdp->xdf_f_act) == NULL)
+			break;
+
+		/* try to grab a vreq for this bp */
+		if ((BP2VREQ(bp) == NULL) && (vreq_get(vdp, bp) == NULL))
+				break;
+		/* alloc DMA/GTE resources */
+		if (vreq_setup(vdp, BP2VREQ(bp)) != DDI_SUCCESS)
+			break;
+
+		/* get next blkif_request in the ring */
+		if ((rreq = xvdi_ring_get_request(xbr)) == NULL)
+			break;
+		bzero(rreq, sizeof (blkif_request_t));
+
+		/* populate blkif_request with this buf */
+		rreqready++;
+		retval = xdf_prepare_rreq(vdp, bp, rreq);
+		if (retval == XF_COMP) {
+			/* finish this bp, switch to next one */
+			kstat_waitq_to_runq(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+			vdp->xdf_f_act = bp->av_forw;
+			bp->av_forw = NULL;
+		}
+
+		mutex_exit(&vdp->xdf_dev_lk);
+	}
+
+	/*
+	 * Send the request(s) to the backend
+	 */
+	if (rreqready) {
+		if (xvdi_ring_push_request(xbr)) {
+			DPRINTF(IO_DBG, ("xdf_iostart: "
+			    "sent request(s) to backend\n"));
+			xvdi_notify_oe(vdp->xdf_dip);
+		}
+	}
+
+	mutex_exit(&vdp->xdf_dev_lk);
+}
+
+/*
+ * populate a single blkif_request_t w/ a buf
+ */
+static int
+xdf_prepare_rreq(xdf_t *vdp, struct buf *bp, blkif_request_t *rreq)
+{
+	int		rval;
+	grant_ref_t	gr;
+	uint8_t		fsect, lsect;
+	size_t		bcnt;
+	paddr_t		dma_addr;
+	off_t		blk_off;
+	dev_info_t	*dip = vdp->xdf_dip;
+	blkif_vdev_t	vdev = xvdi_get_vdevnum(dip);
+	v_req_t		*vreq = BP2VREQ(bp);
+	uint64_t	blkno = vreq->v_blkno;
+	uint_t		ndmacs = vreq->v_ndmacs;
+	ddi_acc_handle_t acchdl = vdp->xdf_xb_ring_hdl;
+	int		seg = 0;
+	int		isread = IS_READ(bp);
+
+	if (isread)
+		ddi_put8(acchdl, &rreq->operation, BLKIF_OP_READ);
+	else {
+		switch (vreq->v_flush_diskcache) {
+		case FLUSH_DISKCACHE:
+			ddi_put8(acchdl, &rreq->operation,
+			    BLKIF_OP_FLUSH_DISKCACHE);
+			ddi_put16(acchdl, &rreq->handle, vdev);
+			ddi_put64(acchdl, &rreq->id,
+			    (uint64_t)(uintptr_t)(vreq->v_gs));
+			ddi_put8(acchdl, &rreq->nr_segments, 0);
+			return (XF_COMP);
+		case WRITE_BARRIER:
+			ddi_put8(acchdl, &rreq->operation,
+			    BLKIF_OP_WRITE_BARRIER);
+			break;
+		default:
+			if (!vdp->xdf_wce)
+				ddi_put8(acchdl, &rreq->operation,
+				    BLKIF_OP_WRITE_BARRIER);
+			else
+				ddi_put8(acchdl, &rreq->operation,
+				    BLKIF_OP_WRITE);
+			break;
+		}
+	}
+
+	ddi_put16(acchdl, &rreq->handle, vdev);
+	ddi_put64(acchdl, &rreq->sector_number, blkno);
+	ddi_put64(acchdl, &rreq->id, (uint64_t)(uintptr_t)(vreq->v_gs));
+
+	/*
+	 * loop until all segments are populated or no more dma cookie in buf
+	 */
+	for (;;) {
+	/*
+	 * Each segment of a blkif request can transfer up to
+	 * one 4K page of data.
+	 */
+		bcnt = vreq->v_dmac.dmac_size;
+		ASSERT(bcnt <= PAGESIZE);
+		ASSERT((bcnt % XB_BSIZE) == 0);
+		dma_addr = vreq->v_dmac.dmac_laddress;
+		blk_off = (uint_t)((paddr_t)XB_SEGOFFSET & dma_addr);
+		ASSERT((blk_off & XB_BMASK) == 0);
+		fsect = blk_off >> XB_BSHIFT;
+		lsect = fsect + (bcnt >> XB_BSHIFT) - 1;
+		ASSERT(fsect < XB_MAX_SEGLEN / XB_BSIZE &&
+		    lsect < XB_MAX_SEGLEN / XB_BSIZE);
+		DPRINTF(IO_DBG, ("  ""seg%d: dmacS %lu blk_off %ld\n",
+		    seg, vreq->v_dmac.dmac_size, blk_off));
+		gr = gs_grant(vreq->v_gs, PATOMA(dma_addr) >> PAGESHIFT);
+		ddi_put32(acchdl, &rreq->seg[seg].gref, gr);
+		ddi_put8(acchdl, &rreq->seg[seg].first_sect, fsect);
+		ddi_put8(acchdl, &rreq->seg[seg].last_sect, lsect);
+		DPRINTF(IO_DBG, ("  ""seg%d: fs %d ls %d gr %d dma 0x%"PRIx64
+		    "\n", seg, fsect, lsect, gr, dma_addr));
+
+		blkno += (bcnt >> XB_BSHIFT);
+		seg++;
+		ASSERT(seg <= BLKIF_MAX_SEGMENTS_PER_REQUEST);
+		if (--ndmacs) {
+			ddi_dma_nextcookie(vreq->v_dmahdl, &vreq->v_dmac);
+			continue;
+		}
+
+		vreq->v_status = VREQ_DMAWIN_DONE;
+		vreq->v_blkno = blkno;
+		if (vreq->v_dmaw + 1 == vreq->v_ndmaws)
+			/* last win */
+			rval = XF_COMP;
+		else
+			rval = XF_PARTIAL;
+		break;
+	}
+	ddi_put8(acchdl,  &rreq->nr_segments, seg);
+	DPRINTF(IO_DBG, ("xdf_prepare_rreq: request id=%"PRIx64" ready\n",
+	    rreq->id));
+
+	return (rval);
+}
+
+#define	XDF_QSEC	50000	/* .005 second */
+#define	XDF_POLLCNT	12	/* loop for 12 times before time out */
+
+static int
+xdf_drain_io(xdf_t *vdp)
+{
+	int pollc, rval;
+	xendev_ring_t *xbr;
+
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_drain_io: start\n");
+
+	mutex_enter(&vdp->xdf_dev_lk);
+
+	if ((vdp->xdf_status != XD_READY) && (vdp->xdf_status != XD_SUSPEND))
+		goto out;
+
+	rval = 0;
+	xbr = vdp->xdf_xb_ring;
+	ASSERT(xbr != NULL);
+
+	for (pollc = 0; pollc < XDF_POLLCNT; pollc++) {
+		if (xvdi_ring_has_unconsumed_responses(xbr)) {
+			mutex_exit(&vdp->xdf_dev_lk);
+			(void) xdf_intr((caddr_t)vdp);
+			mutex_enter(&vdp->xdf_dev_lk);
+		}
+		if (!xvdi_ring_has_incomp_request(xbr))
+			goto out;
+
+		(void) HYPERVISOR_yield();
+		/*
+		 * file-backed devices can be slow
+		 */
+		drv_usecwait(XDF_QSEC << pollc);
+	}
+	cmn_err(CE_WARN, "xdf_polled_io: timeout");
+	rval = EIO;
+out:
+	mutex_exit(&vdp->xdf_dev_lk);
+	if (xdfdebug & SUSRES_DBG)
+		xen_printf("xdf_drain_io: end, err=%d\n", rval);
+	return (rval);
+}
+
+/* ARGSUSED5 */
+static int
+xdf_lb_rdwr(dev_info_t *devi, uchar_t cmd, void *bufp,
+    diskaddr_t start, size_t reqlen, void *tg_cookie)
+{
+	xdf_t *vdp;
+	struct buf *bp;
+	int err = 0;
+
+	vdp = ddi_get_soft_state(vbd_ss, ddi_get_instance(devi));
+	if (vdp == NULL)
+		return (ENXIO);
+
+	if ((start + (reqlen >> DEV_BSHIFT)) > vdp->xdf_xdev_nblocks)
+		return (EINVAL);
+
+	bp = getrbuf(KM_SLEEP);
+	if (cmd == TG_READ)
+		bp->b_flags = B_BUSY | B_READ;
+	else
+		bp->b_flags = B_BUSY | B_WRITE;
+	bp->b_un.b_addr = bufp;
+	bp->b_bcount = reqlen;
+	bp->b_resid = 0;
+	bp->b_blkno = start;
+	bp->av_forw = NULL;
+	bp->av_back = NULL;
+	bp->b_edev = DDI_DEV_T_NONE; /* don't have dev_t */
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	kstat_waitq_enter(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+	if (vdp->xdf_f_act == NULL) {
+		vdp->xdf_f_act = vdp->xdf_l_act = bp;
+	} else {
+		vdp->xdf_l_act->av_forw = bp;
+		vdp->xdf_l_act = bp;
+	}
+	mutex_exit(&vdp->xdf_dev_lk);
+	xdf_iostart(vdp);
+	err = biowait(bp);
+
+	ASSERT(bp->b_flags & B_DONE);
+
+	freerbuf(bp);
+	return (err);
+}
+
+/*
+ * synthetic geometry
+ */
+#define	XDF_NSECTS	256
+#define	XDF_NHEADS	16
+
+static int
+xdf_lb_getcap(dev_info_t *devi, diskaddr_t *capp)
+{
+	xdf_t *vdp;
+
+	vdp = ddi_get_soft_state(vbd_ss, ddi_get_instance(devi));
+
+	if (vdp == NULL)
+		return (ENXIO);
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	*capp = vdp->xdf_xdev_nblocks;
+	DPRINTF(LBL_DBG, ("capacity %llu\n", *capp));
+	mutex_exit(&vdp->xdf_dev_lk);
+	return (0);
+}
+
+static int
+xdf_lb_getpgeom(dev_info_t *devi, cmlb_geom_t *geomp)
+{
+	xdf_t *vdp;
+	uint_t ncyl;
+	uint_t spc = XDF_NHEADS * XDF_NSECTS;
+
+	vdp = ddi_get_soft_state(vbd_ss, ddi_get_instance(devi));
+
+	if (vdp == NULL)
+		return (ENXIO);
+
+	ncyl = vdp->xdf_xdev_nblocks / spc;
+
+	geomp->g_ncyl = ncyl == 0 ? 1 : ncyl;
+	geomp->g_acyl = 0;
+	geomp->g_nhead = XDF_NHEADS;
+	geomp->g_secsize = XB_BSIZE;
+	geomp->g_nsect = XDF_NSECTS;
+	geomp->g_intrlv = 0;
+	geomp->g_rpm = 7200;
+	geomp->g_capacity = vdp->xdf_xdev_nblocks;
+	return (0);
+}
+
+/*
+ * No real HBA, no geometry available from it
+ */
+/*ARGSUSED*/
+static int
+xdf_lb_getvgeom(dev_info_t *devi, cmlb_geom_t *geomp)
+{
+	return (EINVAL);
+}
+
+static int
+xdf_lb_getattribute(dev_info_t *devi, tg_attribute_t *tgattributep)
+{
+	xdf_t *vdp;
+
+	if (!(vdp = ddi_get_soft_state(vbd_ss, ddi_get_instance(devi))))
+		return (ENXIO);
+
+	if (XD_IS_RO(vdp))
+		tgattributep->media_is_writable = 0;
+	else
+		tgattributep->media_is_writable = 1;
+	return (0);
+}
+
+/* ARGSUSED3 */
+static int
+xdf_lb_getinfo(dev_info_t *devi, int cmd, void *arg, void *tg_cookie)
+{
+	switch (cmd) {
+	case TG_GETPHYGEOM:
+		return (xdf_lb_getpgeom(devi, (cmlb_geom_t *)arg));
+	case TG_GETVIRTGEOM:
+		return (xdf_lb_getvgeom(devi, (cmlb_geom_t *)arg));
+	case TG_GETCAPACITY:
+		return (xdf_lb_getcap(devi, (diskaddr_t *)arg));
+	case TG_GETBLOCKSIZE:
+		*(uint32_t *)arg = XB_BSIZE;
+		return (0);
+	case TG_GETATTR:
+		return (xdf_lb_getattribute(devi, (tg_attribute_t *)arg));
+	default:
+		return (ENOTTY);
+	}
+}
+
+/*
+ * Kick-off connect process
+ * Status should be XD_UNKNOWN or XD_CLOSED
+ * On success, status will be changed to XD_INIT
+ * On error, status won't be changed
+ */
+static int
+xdf_start_connect(xdf_t *vdp)
+{
+	char *xsnode;
+	grant_ref_t gref;
+	xenbus_transaction_t xbt;
+	int rv;
+	dev_info_t *dip = vdp->xdf_dip;
+
+	if ((vdp->xdf_peer = xvdi_get_oeid(dip)) == (domid_t)-1)
+		goto errout;
+
+	if (xvdi_alloc_evtchn(dip) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: failed to alloc event channel",
+		    ddi_get_name_addr(dip));
+		goto errout;
+	}
+	if (ddi_add_intr(dip, 0, NULL, NULL, xdf_intr, (caddr_t)vdp) !=
+	    DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf_start_connect: xdf@%s: "
+		    "failed to add intr handler", ddi_get_name_addr(dip));
+		goto errout1;
+	}
+
+	if (xvdi_alloc_ring(dip, BLKIF_RING_SIZE,
+	    sizeof (union blkif_sring_entry), &gref, &vdp->xdf_xb_ring) !=
+	    DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xdf@%s: failed to alloc comm ring",
+		    ddi_get_name_addr(dip));
+		goto errout2;
+	}
+	vdp->xdf_xb_ring_hdl = vdp->xdf_xb_ring->xr_acc_hdl; /* ugly!! */
+
+	/*
+	 * Write into xenstore the info needed by backend
+	 */
+	if ((xsnode = xvdi_get_xsname(dip)) == NULL) {
+		cmn_err(CE_WARN, "xdf@%s: "
+		    "failed to get xenstore node path",
+		    ddi_get_name_addr(dip));
+		goto fail_trans;
+	}
+trans_retry:
+	if (xenbus_transaction_start(&xbt)) {
+		cmn_err(CE_WARN, "xdf@%s: failed to start transaction",
+		    ddi_get_name_addr(dip));
+		xvdi_fatal_error(dip, EIO, "transaction start");
+		goto fail_trans;
+	}
+
+	if (rv = xenbus_printf(xbt, xsnode, "ring-ref", "%u", gref)) {
+		cmn_err(CE_WARN, "xdf@%s: failed to write ring-ref",
+		    ddi_get_name_addr(dip));
+		xvdi_fatal_error(dip, rv, "writing ring-ref");
+		goto abort_trans;
+	}
+
+	if (rv = xenbus_printf(xbt, xsnode, "event-channel", "%u",
+	    xvdi_get_evtchn(dip))) {
+		cmn_err(CE_WARN, "xdf@%s: failed to write event-channel",
+		    ddi_get_name_addr(dip));
+		xvdi_fatal_error(dip, rv, "writing event-channel");
+		goto abort_trans;
+	}
+
+	if ((rv = xvdi_switch_state(dip, xbt, XenbusStateInitialised)) > 0) {
+		cmn_err(CE_WARN, "xdf@%s: "
+		    "failed to switch state to XenbusStateInitialised",
+		    ddi_get_name_addr(dip));
+		xvdi_fatal_error(dip, rv, "writing state");
+		goto abort_trans;
+	}
+
+	/* kick-off connect process */
+	if (rv = xenbus_transaction_end(xbt, 0)) {
+		if (rv == EAGAIN)
+			goto trans_retry;
+		cmn_err(CE_WARN, "xdf@%s: failed to end transaction",
+		    ddi_get_name_addr(dip));
+		xvdi_fatal_error(dip, rv, "completing transaction");
+		goto fail_trans;
+	}
+
+	ASSERT(mutex_owned(&vdp->xdf_cb_lk));
+	mutex_enter(&vdp->xdf_dev_lk);
+	vdp->xdf_status = XD_INIT;
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	return (DDI_SUCCESS);
+
+abort_trans:
+	(void) xenbus_transaction_end(xbt, 1);
+fail_trans:
+	xvdi_free_ring(vdp->xdf_xb_ring);
+errout2:
+	(void) ddi_remove_intr(vdp->xdf_dip, 0, NULL);
+errout1:
+	xvdi_free_evtchn(dip);
+errout:
+	cmn_err(CE_WARN, "xdf@%s: fail to kick-off connecting",
+	    ddi_get_name_addr(dip));
+	return (DDI_FAILURE);
+}
+
+/*
+ * Kick-off disconnect process
+ * Status won't be changed
+ */
+static int
+xdf_start_disconnect(xdf_t *vdp)
+{
+	if (xvdi_switch_state(vdp->xdf_dip, XBT_NULL, XenbusStateClosed) > 0) {
+		cmn_err(CE_WARN, "xdf@%s: fail to kick-off disconnecting",
+		    ddi_get_name_addr(vdp->xdf_dip));
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+int
+xdf_get_flush_block(xdf_t *vdp)
+{
+	/*
+	 * Get a DEV_BSIZE aligned bufer
+	 */
+	vdp->xdf_flush_mem = kmem_alloc(DEV_BSIZE * 2, KM_SLEEP);
+	vdp->xdf_cache_flush_block =
+	    (char *)P2ROUNDUP((uintptr_t)(vdp->xdf_flush_mem), DEV_BSIZE);
+	if (xdf_lb_rdwr(vdp->xdf_dip, TG_READ, vdp->xdf_cache_flush_block,
+	    xdf_flush_block, DEV_BSIZE, NULL) != 0)
+		return (DDI_FAILURE);
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Finish other initialization after we've connected to backend
+ * Status should be XD_INIT before calling this routine
+ * On success, status should be changed to XD_READY
+ * On error, status should stay XD_INIT
+ */
+static int
+xdf_post_connect(xdf_t *vdp)
+{
+	int rv;
+	uint_t len;
+	char *type;
+	char *barrier;
+	dev_info_t *devi = vdp->xdf_dip;
+
+	/*
+	 * Determine if feature barrier is supported by backend
+	 */
+	if (xenbus_read(XBT_NULL, xvdi_get_oename(devi),
+	    "feature-barrier", (void **)&barrier, &len) == 0) {
+		vdp->xdf_feature_barrier = 1;
+		kmem_free(barrier, len);
+	} else {
+		cmn_err(CE_NOTE, "xdf@%s: failed to read feature-barrier",
+		    ddi_get_name_addr(vdp->xdf_dip));
+		vdp->xdf_feature_barrier = 0;
+	}
+
+	/* probe backend */
+	if (rv = xenbus_gather(XBT_NULL, xvdi_get_oename(devi),
+	    "sectors", "%"SCNu64, &vdp->xdf_xdev_nblocks,
+	    "info", "%u", &vdp->xdf_xdev_info, NULL)) {
+		cmn_err(CE_WARN, "xdf_post_connect: xdf@%s: "
+		    "cannot read backend info", ddi_get_name_addr(devi));
+		xvdi_fatal_error(devi, rv, "reading backend info");
+		return (DDI_FAILURE);
+	}
+
+	/* fix disk type */
+	if (xenbus_read(XBT_NULL, xvdi_get_xsname(devi), "device-type",
+	    (void **)&type, &len) != 0) {
+		cmn_err(CE_WARN, "xdf_post_connect: xdf@%s: "
+		    "cannot read device-type", ddi_get_name_addr(devi));
+		xvdi_fatal_error(devi, rv, "reading device-type");
+		return (DDI_FAILURE);
+	}
+	if (strcmp(type, "cdrom") == 0)
+		vdp->xdf_xdev_info |= VDISK_CDROM;
+	kmem_free(type, len);
+
+	/*
+	 * We've created all the minor nodes via cmlb_attach() using default
+	 * value in xdf_attach() to make it possbile to block in xdf_open(),
+	 * in case there's anyone (say, booting thread) ever trying to open
+	 * it before connected to backend. We will refresh all those minor
+	 * nodes w/ latest info we've got now when we are almost connected.
+	 *
+	 * Don't do this when xdf is already opened by someone (could happen
+	 * during resume), for that cmlb_attach() will invalid the label info
+	 * and confuse those who has already opened the node, which is bad.
+	 */
+	if (!xdf_isopen(vdp, -1) && (XD_IS_CD(vdp) || XD_IS_RM(vdp))) {
+		/* re-init cmlb w/ latest info we got from backend */
+		if (cmlb_attach(devi, &xdf_lb_ops,
+		    XD_IS_CD(vdp) ? DTYPE_RODIRECT : DTYPE_DIRECT,
+		    XD_IS_RM(vdp), 1, DDI_NT_BLOCK,
+		    CMLB_FAKE_LABEL_ONE_PARTITION,
+		    vdp->xdf_vd_lbl, NULL) != 0) {
+			cmn_err(CE_WARN, "xdf@%s: cmlb attach failed",
+			    ddi_get_name_addr(devi));
+			return (DDI_FAILURE);
+		}
+	}
+
+	/* mark vbd is ready for I/O */
+	ASSERT(mutex_owned(&vdp->xdf_cb_lk));
+	mutex_enter(&vdp->xdf_dev_lk);
+	vdp->xdf_status = XD_READY;
+	mutex_exit(&vdp->xdf_dev_lk);
+	/*
+	 * If backend has feature-barrier, see if it supports disk
+	 * cache flush op.
+	 */
+	vdp->xdf_flush_supported = 0;
+	if (vdp->xdf_feature_barrier) {
+		/*
+		 * Pretend we already know flush is supported so probe
+		 * will attempt the correct op.
+		 */
+		vdp->xdf_flush_supported = 1;
+		if (xdf_lb_rdwr(vdp->xdf_dip, TG_WRITE, NULL, 0, 0, 0) == 0) {
+			vdp->xdf_flush_supported = 1;
+		} else {
+			vdp->xdf_flush_supported = 0;
+			/*
+			 * If the other end does not support the cache flush op
+			 * then we must use a barrier-write to force disk
+			 * cache flushing.  Barrier writes require that a data
+			 * block actually be written.
+			 * Cache a block to barrier-write when we are
+			 * asked to perform a flush.
+			 * XXX - would it be better to just copy 1 block
+			 * (512 bytes) from whatever write we did last
+			 * and rewrite that block?
+			 */
+			if (xdf_get_flush_block(vdp) != DDI_SUCCESS)
+				return (DDI_FAILURE);
+		}
+	}
+
+	cmn_err(CE_CONT, "?xdf@%s: %"PRIu64" blocks", ddi_get_name_addr(devi),
+	    (uint64_t)vdp->xdf_xdev_nblocks);
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Finish other uninitialization after we've disconnected from backend
+ * when status is XD_CLOSING or XD_INIT. After returns, status is XD_CLOSED
+ */
+static void
+xdf_post_disconnect(xdf_t *vdp)
+{
+	(void) ddi_remove_intr(vdp->xdf_dip, 0, NULL);
+	xvdi_free_evtchn(vdp->xdf_dip);
+	xvdi_free_ring(vdp->xdf_xb_ring);
+	vdp->xdf_xb_ring = NULL;
+	vdp->xdf_xb_ring_hdl = NULL;
+	vdp->xdf_peer = (domid_t)-1;
+
+	ASSERT(mutex_owned(&vdp->xdf_cb_lk));
+	mutex_enter(&vdp->xdf_dev_lk);
+	vdp->xdf_status = XD_CLOSED;
+	mutex_exit(&vdp->xdf_dev_lk);
+}
+
+/*ARGSUSED*/
+static void
+xdf_oe_change(dev_info_t *dip, ddi_eventcookie_t id, void *arg, void *impl_data)
+{
+	XenbusState new_state = *(XenbusState *)impl_data;
+	xdf_t *vdp = (xdf_t *)ddi_get_driver_private(dip);
+	boolean_t unexpect_die = B_FALSE;
+	int status;
+
+	DPRINTF(DDI_DBG, ("xdf@%s: otherend state change to %d!\n",
+	    ddi_get_name_addr(dip), new_state));
+
+	mutex_enter(&vdp->xdf_cb_lk);
+
+	if (xdf_check_state_transition(vdp, new_state) == DDI_FAILURE) {
+		mutex_exit(&vdp->xdf_cb_lk);
+		return;
+	}
+
+	switch (new_state) {
+	case XenbusStateInitialising:
+		ASSERT(vdp->xdf_status == XD_CLOSED);
+		/*
+		 * backend recovered from a previous failure,
+		 * kick-off connect process again
+		 */
+		if (xdf_start_connect(vdp) != DDI_SUCCESS) {
+			cmn_err(CE_WARN, "xdf@%s:"
+			    " failed to start reconnecting to backend",
+			    ddi_get_name_addr(dip));
+		}
+		break;
+	case XenbusStateConnected:
+		ASSERT(vdp->xdf_status == XD_INIT);
+		(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateConnected);
+		/* finish final init after connect */
+		if (xdf_post_connect(vdp) != DDI_SUCCESS)
+			(void) xdf_start_disconnect(vdp);
+		break;
+	case XenbusStateClosing:
+		if (vdp->xdf_status == XD_READY) {
+			mutex_enter(&vdp->xdf_dev_lk);
+			if (xdf_isopen(vdp, -1)) {
+				cmn_err(CE_NOTE, "xdf@%s: hot-unplug failed, "
+				    "still in use", ddi_get_name_addr(dip));
+				mutex_exit(&vdp->xdf_dev_lk);
+				break;
+			} else {
+				vdp->xdf_status = XD_CLOSING;
+			}
+			mutex_exit(&vdp->xdf_dev_lk);
+		}
+		(void) xdf_start_disconnect(vdp);
+		break;
+	case XenbusStateClosed:
+		/* first check if BE closed unexpectedly */
+		mutex_enter(&vdp->xdf_dev_lk);
+		if (xdf_isopen(vdp, -1)) {
+			unexpect_die = B_TRUE;
+			unexpectedie(vdp);
+			cmn_err(CE_WARN, "xdf@%s: backend closed, "
+			    "reconnecting...", ddi_get_name_addr(dip));
+		}
+		mutex_exit(&vdp->xdf_dev_lk);
+
+		if (vdp->xdf_status == XD_READY) {
+			mutex_enter(&vdp->xdf_dev_lk);
+			vdp->xdf_status = XD_CLOSING;
+			mutex_exit(&vdp->xdf_dev_lk);
+
+#ifdef	DOMU_BACKEND
+			(void) xvdi_post_event(dip, XEN_HP_REMOVE);
+#endif
+
+			xdf_post_disconnect(vdp);
+			(void) xvdi_switch_state(dip, XBT_NULL,
+			    XenbusStateClosed);
+		} else if ((vdp->xdf_status == XD_INIT) ||
+		    (vdp->xdf_status == XD_CLOSING)) {
+			xdf_post_disconnect(vdp);
+		} else {
+			mutex_enter(&vdp->xdf_dev_lk);
+			vdp->xdf_status = XD_CLOSED;
+			mutex_exit(&vdp->xdf_dev_lk);
+		}
+	}
+
+	/* notify anybody waiting for oe state change */
+	mutex_enter(&vdp->xdf_dev_lk);
+	cv_broadcast(&vdp->xdf_dev_cv);
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	status = vdp->xdf_status;
+	mutex_exit(&vdp->xdf_cb_lk);
+
+	if (status == XD_READY) {
+		xdf_iostart(vdp);
+	} else if ((status == XD_CLOSED) && !unexpect_die) {
+		/* interface is closed successfully, remove all minor nodes */
+		cmlb_detach(vdp->xdf_vd_lbl, NULL);
+		cmlb_free_handle(&vdp->xdf_vd_lbl);
+	}
+}
+
+/* check if partition is open, -1 - check all partitions on the disk */
+static boolean_t
+xdf_isopen(xdf_t *vdp, int partition)
+{
+	int i;
+	ulong_t parbit;
+	boolean_t rval = B_FALSE;
+
+	if (partition == -1)
+		parbit = (ulong_t)-1;
+	else
+		parbit = 1 << partition;
+
+	for (i = 0; i < OTYPCNT; i++) {
+		if (vdp->xdf_vd_open[i] & parbit)
+			rval = B_TRUE;
+	}
+
+	return (rval);
+}
+
+/*
+ * Xdf_check_state_transition will check the XenbusState change to see
+ * if the change is a valid transition or not.
+ * The new state is written by backend domain, or by running xenstore-write
+ * to change it manually in dom0
+ */
+static int
+xdf_check_state_transition(xdf_t *vdp, XenbusState oestate)
+{
+	int status;
+	int stcheck;
+#define	STOK	0 /* need further process */
+#define	STNOP	1 /* no action need taking */
+#define	STBUG	2 /* unexpected state change, could be a bug */
+
+	status = vdp->xdf_status;
+	stcheck = STOK;
+
+	switch (status) {
+	case XD_UNKNOWN:
+		if ((oestate == XenbusStateUnknown)		||
+		    (oestate == XenbusStateConnected))
+			stcheck = STBUG;
+		else if ((oestate == XenbusStateInitialising)	||
+		    (oestate == XenbusStateInitWait)		||
+		    (oestate == XenbusStateInitialised))
+			stcheck = STNOP;
+		break;
+	case XD_INIT:
+		if (oestate == XenbusStateUnknown)
+			stcheck = STBUG;
+		else if ((oestate == XenbusStateInitialising)	||
+		    (oestate == XenbusStateInitWait)		||
+		    (oestate == XenbusStateInitialised))
+			stcheck = STNOP;
+		break;
+	case XD_READY:
+		if ((oestate == XenbusStateUnknown)		||
+		    (oestate == XenbusStateInitialising)	||
+		    (oestate == XenbusStateInitWait)		||
+		    (oestate == XenbusStateInitialised))
+			stcheck = STBUG;
+		else if (oestate == XenbusStateConnected)
+			stcheck = STNOP;
+		break;
+	case XD_CLOSING:
+		if ((oestate == XenbusStateUnknown)		||
+		    (oestate == XenbusStateInitialising)	||
+		    (oestate == XenbusStateInitWait)		||
+		    (oestate == XenbusStateInitialised)		||
+		    (oestate == XenbusStateConnected))
+			stcheck = STBUG;
+		else if (oestate == XenbusStateClosing)
+			stcheck = STNOP;
+		break;
+	case XD_CLOSED:
+		if ((oestate == XenbusStateUnknown)		||
+		    (oestate == XenbusStateConnected))
+			stcheck = STBUG;
+		else if ((oestate == XenbusStateInitWait)	||
+		    (oestate == XenbusStateInitialised)		||
+		    (oestate == XenbusStateClosing)		||
+		    (oestate == XenbusStateClosed))
+			stcheck = STNOP;
+		break;
+	case XD_SUSPEND:
+	default:
+			stcheck = STBUG;
+	}
+
+	if (stcheck == STOK)
+		return (DDI_SUCCESS);
+
+	if (stcheck == STBUG)
+		cmn_err(CE_NOTE, "xdf@%s: unexpected otherend "
+		    "state change to %d!, when status is %d",
+		    ddi_get_name_addr(vdp->xdf_dip), oestate, status);
+
+	return (DDI_FAILURE);
+}
+
+static int
+xdf_connect(xdf_t *vdp, boolean_t wait)
+{
+	ASSERT(mutex_owned(&vdp->xdf_dev_lk));
+	while (vdp->xdf_status != XD_READY) {
+		if (!wait || (vdp->xdf_status > XD_READY))
+			break;
+
+		if (cv_wait_sig(&vdp->xdf_dev_cv, &vdp->xdf_dev_lk) == 0)
+			break;
+	}
+
+	return (vdp->xdf_status);
+}
+
+/*
+ * callback func when DMA/GTE resources is available
+ *
+ * Note: we only register one callback function to grant table subsystem
+ * since we only have one 'struct gnttab_free_callback' in xdf_t.
+ */
+static int
+xdf_dmacallback(caddr_t arg)
+{
+	xdf_t *vdp = (xdf_t *)arg;
+	ASSERT(vdp != NULL);
+
+	DPRINTF(DMA_DBG, ("xdf@%s: DMA callback started\n",
+	    ddi_get_name_addr(vdp->xdf_dip)));
+
+	ddi_trigger_softintr(vdp->xdf_softintr_id);
+	return (DDI_DMA_CALLBACK_DONE);
+}
+
+static uint_t
+xdf_iorestart(caddr_t arg)
+{
+	xdf_t *vdp = (xdf_t *)arg;
+
+	ASSERT(vdp != NULL);
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	ASSERT(ISDMACBON(vdp));
+	SETDMACBOFF(vdp);
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	xdf_iostart(vdp);
+
+	return (DDI_INTR_CLAIMED);
+}
+
+static void
+xdf_timeout_handler(void *arg)
+{
+	xdf_t *vdp = arg;
+
+	mutex_enter(&vdp->xdf_dev_lk);
+	vdp->xdf_timeout_id = 0;
+	mutex_exit(&vdp->xdf_dev_lk);
+
+	/* new timeout thread could be re-scheduled */
+	xdf_iostart(vdp);
+}
+
+/*
+ * Alloc a vreq for this bp
+ * bp->av_back contains the pointer to the vreq upon return
+ */
+static v_req_t *
+vreq_get(xdf_t *vdp, buf_t *bp)
+{
+	v_req_t *vreq = NULL;
+
+	ASSERT(BP2VREQ(bp) == NULL);
+
+	vreq = kmem_cache_alloc(xdf_vreq_cache, KM_NOSLEEP);
+	if (vreq == NULL) {
+		if (vdp->xdf_timeout_id == 0)
+			/* restart I/O after one second */
+			vdp->xdf_timeout_id =
+			    timeout(xdf_timeout_handler, vdp, hz);
+		return (NULL);
+	}
+	bzero(vreq, sizeof (v_req_t));
+
+	list_insert_head(&vdp->xdf_vreq_act, (void *)vreq);
+	bp->av_back = (buf_t *)vreq;
+	vreq->v_buf = bp;
+	vreq->v_status = VREQ_INIT;
+	/* init of other fields in vreq is up to the caller */
+
+	return (vreq);
+}
+
+static void
+vreq_free(xdf_t *vdp, v_req_t *vreq)
+{
+	buf_t *bp = vreq->v_buf;
+
+	list_remove(&vdp->xdf_vreq_act, (void *)vreq);
+
+	switch (vreq->v_status) {
+	case VREQ_DMAWIN_DONE:
+	case VREQ_GS_ALLOCED:
+	case VREQ_DMABUF_BOUND:
+		(void) ddi_dma_unbind_handle(vreq->v_dmahdl);
+		/*FALLTHRU*/
+	case VREQ_DMAMEM_ALLOCED:
+		if (!ALIGNED_XFER(bp)) {
+			ASSERT(vreq->v_abuf != NULL);
+			if (!IS_ERROR(bp) && IS_READ(bp))
+				bcopy(vreq->v_abuf, bp->b_un.b_addr,
+				    bp->b_bcount);
+			ddi_dma_mem_free(&vreq->v_align);
+		}
+		/*FALLTHRU*/
+	case VREQ_MEMDMAHDL_ALLOCED:
+		if (!ALIGNED_XFER(bp))
+			ddi_dma_free_handle(&vreq->v_memdmahdl);
+		/*FALLTHRU*/
+	case VREQ_DMAHDL_ALLOCED:
+		ddi_dma_free_handle(&vreq->v_dmahdl);
+		break;
+	default:
+		break;
+	}
+	vreq->v_buf->av_back = NULL;
+	kmem_cache_free(xdf_vreq_cache, vreq);
+}
+
+/*
+ * Initalize the DMA and grant table resources for the buf
+ */
+static int
+vreq_setup(xdf_t *vdp, v_req_t *vreq)
+{
+	int rc;
+	ddi_dma_attr_t dmaattr;
+	uint_t ndcs, ndws;
+	ddi_dma_handle_t dh;
+	ddi_dma_handle_t mdh;
+	ddi_dma_cookie_t dc;
+	ddi_acc_handle_t abh;
+	caddr_t	aba;
+	ge_slot_t *gs;
+	size_t bufsz;
+	off_t off;
+	size_t sz;
+	buf_t *bp = vreq->v_buf;
+	int dma_flags = (IS_READ(bp) ? DDI_DMA_READ : DDI_DMA_WRITE) |
+	    DDI_DMA_STREAMING | DDI_DMA_PARTIAL;
+
+	switch (vreq->v_status) {
+	case VREQ_INIT:
+		if (IS_FLUSH_DISKCACHE(bp)) {
+			if ((gs = gs_get(vdp, IS_READ(bp))) == NULL) {
+				DPRINTF(DMA_DBG, (
+				    "xdf@%s: get ge_slotfailed\n",
+				    ddi_get_name_addr(vdp->xdf_dip)));
+				return (DDI_FAILURE);
+			}
+			vreq->v_blkno = 0;
+			vreq->v_nslots = 1;
+			vreq->v_gs = gs;
+			vreq->v_flush_diskcache = FLUSH_DISKCACHE;
+			gs->vreq = vreq;
+			return (DDI_SUCCESS);
+		}
+
+		if (IS_WRITE_BARRIER(vdp, bp))
+			vreq->v_flush_diskcache = WRITE_BARRIER;
+		vreq->v_blkno = bp->b_blkno +
+		    (diskaddr_t)(uintptr_t)bp->b_private;
+		bp->b_private = NULL;
+		/* See if we wrote new data to our flush block */
+		if (!IS_READ(bp) && USE_WRITE_BARRIER(vdp))
+			check_fbwrite(vdp, bp, vreq->v_blkno);
+		vreq->v_status = VREQ_INIT_DONE;
+		/*FALLTHRU*/
+
+	case VREQ_INIT_DONE:
+		/*
+		 * alloc DMA handle
+		 */
+		rc = ddi_dma_alloc_handle(vdp->xdf_dip, &xb_dma_attr,
+		    xdf_dmacallback, (caddr_t)vdp, &dh);
+		if (rc != DDI_SUCCESS) {
+			SETDMACBON(vdp);
+			DPRINTF(DMA_DBG, ("xdf@%s: DMA handle alloc failed\n",
+			    ddi_get_name_addr(vdp->xdf_dip)));
+			return (DDI_FAILURE);
+		}
+
+		vreq->v_dmahdl = dh;
+		vreq->v_status = VREQ_DMAHDL_ALLOCED;
+		/*FALLTHRU*/
+
+	case VREQ_DMAHDL_ALLOCED:
+		/*
+		 * alloc dma handle for 512-byte aligned buf
+		 */
+		if (!ALIGNED_XFER(bp)) {
+			/*
+			 * XXPV: we need to temporarily enlarge the seg
+			 * boundary and s/g length to work round CR6381968
+			 */
+			dmaattr = xb_dma_attr;
+			dmaattr.dma_attr_seg = (uint64_t)-1;
+			dmaattr.dma_attr_sgllen = INT_MAX;
+			rc = ddi_dma_alloc_handle(vdp->xdf_dip, &dmaattr,
+			    xdf_dmacallback, (caddr_t)vdp, &mdh);
+			if (rc != DDI_SUCCESS) {
+				SETDMACBON(vdp);
+				DPRINTF(DMA_DBG, ("xdf@%s: unaligned buf DMA"
+				    "handle alloc failed\n",
+				    ddi_get_name_addr(vdp->xdf_dip)));
+				return (DDI_FAILURE);
+			}
+			vreq->v_memdmahdl = mdh;
+			vreq->v_status = VREQ_MEMDMAHDL_ALLOCED;
+		}
+		/*FALLTHRU*/
+
+	case VREQ_MEMDMAHDL_ALLOCED:
+		/*
+		 * alloc 512-byte aligned buf
+		 */
+		if (!ALIGNED_XFER(bp)) {
+			if (bp->b_flags & (B_PAGEIO | B_PHYS))
+				bp_mapin(bp);
+
+			rc = ddi_dma_mem_alloc(vreq->v_memdmahdl,
+			    roundup(bp->b_bcount, XB_BSIZE), &xc_acc_attr,
+			    DDI_DMA_STREAMING, xdf_dmacallback, (caddr_t)vdp,
+			    &aba, &bufsz, &abh);
+			if (rc != DDI_SUCCESS) {
+				SETDMACBON(vdp);
+				DPRINTF(DMA_DBG, (
+				    "xdf@%s: DMA mem allocation failed\n",
+				    ddi_get_name_addr(vdp->xdf_dip)));
+				return (DDI_FAILURE);
+			}
+
+			vreq->v_abuf = aba;
+			vreq->v_align = abh;
+			vreq->v_status = VREQ_DMAMEM_ALLOCED;
+
+			ASSERT(bufsz >= bp->b_bcount);
+			if (!IS_READ(bp))
+				bcopy(bp->b_un.b_addr, vreq->v_abuf,
+				    bp->b_bcount);
+		}
+		/*FALLTHRU*/
+
+	case VREQ_DMAMEM_ALLOCED:
+		/*
+		 * dma bind
+		 */
+		if (ALIGNED_XFER(bp)) {
+			rc = ddi_dma_buf_bind_handle(vreq->v_dmahdl, bp,
+			    dma_flags, xdf_dmacallback, (caddr_t)vdp,
+			    &dc, &ndcs);
+		} else {
+			rc = ddi_dma_addr_bind_handle(vreq->v_dmahdl,
+			    NULL, vreq->v_abuf, bp->b_bcount, dma_flags,
+			    xdf_dmacallback, (caddr_t)vdp, &dc, &ndcs);
+		}
+		if (rc == DDI_DMA_MAPPED || rc == DDI_DMA_PARTIAL_MAP) {
+			/* get num of dma windows */
+			if (rc == DDI_DMA_PARTIAL_MAP) {
+				rc = ddi_dma_numwin(vreq->v_dmahdl, &ndws);
+				ASSERT(rc == DDI_SUCCESS);
+			} else {
+				ndws = 1;
+			}
+		} else {
+			SETDMACBON(vdp);
+			DPRINTF(DMA_DBG, ("xdf@%s: DMA bind failed\n",
+			    ddi_get_name_addr(vdp->xdf_dip)));
+			return (DDI_FAILURE);
+		}
+
+		vreq->v_dmac = dc;
+		vreq->v_dmaw = 0;
+		vreq->v_ndmacs = ndcs;
+		vreq->v_ndmaws = ndws;
+		vreq->v_nslots = ndws;
+		vreq->v_status = VREQ_DMABUF_BOUND;
+		/*FALLTHRU*/
+
+	case VREQ_DMABUF_BOUND:
+		/*
+		 * get ge_slot, callback is set upon failure from gs_get(),
+		 * if not set previously
+		 */
+		if ((gs = gs_get(vdp, IS_READ(bp))) == NULL) {
+			DPRINTF(DMA_DBG, ("xdf@%s: get ge_slot failed\n",
+			    ddi_get_name_addr(vdp->xdf_dip)));
+			return (DDI_FAILURE);
+		}
+
+		vreq->v_gs = gs;
+		gs->vreq = vreq;
+		vreq->v_status = VREQ_GS_ALLOCED;
+		break;
+
+	case VREQ_GS_ALLOCED:
+		/* nothing need to be done */
+		break;
+
+	case VREQ_DMAWIN_DONE:
+		/*
+		 * move to the next dma window
+		 */
+		ASSERT((vreq->v_dmaw + 1) < vreq->v_ndmaws);
+
+		/* get a ge_slot for this DMA window */
+		if ((gs = gs_get(vdp, IS_READ(bp))) == NULL) {
+			DPRINTF(DMA_DBG, ("xdf@%s: get ge_slot failed\n",
+			    ddi_get_name_addr(vdp->xdf_dip)));
+			return (DDI_FAILURE);
+		}
+
+		vreq->v_gs = gs;
+		gs->vreq = vreq;
+		vreq->v_dmaw++;
+		rc = ddi_dma_getwin(vreq->v_dmahdl, vreq->v_dmaw, &off, &sz,
+		    &vreq->v_dmac, &vreq->v_ndmacs);
+		ASSERT(rc == DDI_SUCCESS);
+		vreq->v_status = VREQ_GS_ALLOCED;
+		break;
+
+	default:
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static ge_slot_t *
+gs_get(xdf_t *vdp, int isread)
+{
+	grant_ref_t gh;
+	ge_slot_t *gs;
+
+	/* try to alloc GTEs needed in this slot, first */
+	if (gnttab_alloc_grant_references(
+	    BLKIF_MAX_SEGMENTS_PER_REQUEST, &gh) == -1) {
+		if (vdp->xdf_gnt_callback.next == NULL) {
+			SETDMACBON(vdp);
+			gnttab_request_free_callback(
+			    &vdp->xdf_gnt_callback,
+			    (void (*)(void *))xdf_dmacallback,
+			    (void *)vdp,
+			    BLKIF_MAX_SEGMENTS_PER_REQUEST);
+		}
+		return (NULL);
+	}
+
+	gs = kmem_cache_alloc(xdf_gs_cache, KM_NOSLEEP);
+	if (gs == NULL) {
+		gnttab_free_grant_references(gh);
+		if (vdp->xdf_timeout_id == 0)
+			/* restart I/O after one second */
+			vdp->xdf_timeout_id =
+			    timeout(xdf_timeout_handler, vdp, hz);
+		return (NULL);
+	}
+
+	/* init gs_slot */
+	list_insert_head(&vdp->xdf_gs_act, (void *)gs);
+	gs->oeid = vdp->xdf_peer;
+	gs->isread = isread;
+	gs->ghead = gh;
+	gs->ngrefs = 0;
+
+	return (gs);
+}
+
+static void
+gs_free(xdf_t *vdp, ge_slot_t *gs)
+{
+	int i;
+	grant_ref_t *gp = gs->ge;
+	int ngrefs = gs->ngrefs;
+	boolean_t isread = gs->isread;
+
+	list_remove(&vdp->xdf_gs_act, (void *)gs);
+
+	/* release all grant table entry resources used in this slot */
+	for (i = 0; i < ngrefs; i++, gp++)
+		gnttab_end_foreign_access(*gp, !isread, 0);
+	gnttab_free_grant_references(gs->ghead);
+
+	kmem_cache_free(xdf_gs_cache, (void *)gs);
+}
+
+static grant_ref_t
+gs_grant(ge_slot_t *gs, mfn_t mfn)
+{
+	grant_ref_t gr = gnttab_claim_grant_reference(&gs->ghead);
+
+	ASSERT(gr != -1);
+	ASSERT(gs->ngrefs < BLKIF_MAX_SEGMENTS_PER_REQUEST);
+	gs->ge[gs->ngrefs++] = gr;
+	gnttab_grant_foreign_access_ref(gr, gs->oeid, mfn, !gs->isread);
+
+	return (gr);
+}
+
+static void
+unexpectedie(xdf_t *vdp)
+{
+	/* clean up I/Os in ring that have responses */
+	if (xvdi_ring_has_unconsumed_responses(vdp->xdf_xb_ring)) {
+		mutex_exit(&vdp->xdf_dev_lk);
+		(void) xdf_intr((caddr_t)vdp);
+		mutex_enter(&vdp->xdf_dev_lk);
+	}
+
+	/* free up all grant table entries */
+	while (!list_is_empty(&vdp->xdf_gs_act))
+		gs_free(vdp, list_head(&vdp->xdf_gs_act));
+
+	/*
+	 * move bp back to active list orderly
+	 * vreq_busy is updated in vreq_free()
+	 */
+	while (!list_is_empty(&vdp->xdf_vreq_act)) {
+		v_req_t *vreq = list_head(&vdp->xdf_vreq_act);
+		buf_t *bp = vreq->v_buf;
+
+		bp->av_back = NULL;
+		bp->b_resid = bp->b_bcount;
+		if (vdp->xdf_f_act == NULL) {
+			vdp->xdf_f_act = vdp->xdf_l_act = bp;
+		} else {
+			/* move to the head of list */
+			bp->av_forw = vdp->xdf_f_act;
+			vdp->xdf_f_act = bp;
+		}
+		kstat_runq_back_to_waitq(KSTAT_IO_PTR(vdp->xdf_xdev_iostat));
+		vreq_free(vdp, vreq);
+	}
+}
+
+static void
+xdfmin(struct buf *bp)
+{
+	if (bp->b_bcount > xdf_maxphys)
+		bp->b_bcount = xdf_maxphys;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xdf.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,286 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _SYS_XDF_H
+#define	_SYS_XDF_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include <sys/types.h>
+#include <sys/conf.h>
+#include <sys/ddi.h>
+#include <sys/dditypes.h>
+#include <sys/sunddi.h>
+#include <sys/list.h>
+#include <sys/dkio.h>
+#include <sys/vtoc.h>
+#include <sys/modctl.h>
+#include <sys/bootconf.h>
+#include <sys/promif.h>
+#include <sys/open.h>
+#include <sys/sysmacros.h>
+#include <sys/kstat.h>
+#include <sys/gnttab.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+#include <sys/cmlb.h>
+#include <sys/scsi/generic/inquiry.h>
+
+#define	BLKIF_RING_SIZE	__RING_SIZE((blkif_sring_t *)NULL, PAGESIZE)
+
+/*
+ * VBDs have standard 512 byte blocks
+ * A single blkif_request can transfer up to 11 pages of data, 1 page/segment
+ */
+#define	XB_BSIZE	DEV_BSIZE
+#define	XB_BMASK	(XB_BSIZE - 1)
+#define	XB_BSHIFT	9
+#define	XB_DTOB(bn)	((bn) << XB_BSHIFT)
+
+#define	XB_MAX_SEGLEN	(8 * XB_BSIZE)
+#define	XB_SEGOFFSET	(XB_MAX_SEGLEN - 1)
+#define	XB_MAX_XFER	(XB_MAX_SEGLEN * BLKIF_MAX_SEGMENTS_PER_REQUEST)
+#define	XB_MAXPHYS	(XB_MAX_XFER * BLKIF_RING_SIZE)
+
+/*
+ * blkif status
+ */
+enum xdf_state {
+	/*
+	 * initial state
+	 */
+	XD_UNKNOWN,
+	/*
+	 * ring and evtchn alloced, xenbus state changed to
+	 * XenbusStateInitialised, wait for backend to connect
+	 */
+	XD_INIT,
+	/*
+	 * backend's xenbus state has changed to XenbusStateConnected,
+	 * this is the only state allowing I/Os
+	 */
+	XD_READY,
+	/*
+	 * vbd interface close request received from backend, no more I/O
+	 * requestis allowed to be put into ring buffer, while interrupt handler
+	 * is allowed to run to finish any outstanding I/O request, disconnect
+	 * process is kicked off by changing xenbus state to XenbusStateClosed
+	 */
+	XD_CLOSING,
+	/*
+	 * disconnection process finished, both backend and frontend's
+	 * xenbus state has been changed to XenbusStateClosed, can be detached
+	 */
+	XD_CLOSED,
+	/*
+	 * disconnection process finished, frontend is suspended
+	 */
+	XD_SUSPEND
+};
+
+/*
+ * 16 paritions + fdisk
+ */
+#define	XDF_PSHIFT	6
+#define	XDF_PMASK	((1 << XDF_PSHIFT) - 1)
+#define	XDF_PEXT	(1 << XDF_PSHIFT)
+#define	XDF_MINOR(i, m) (((i) << XDF_PSHIFT) | (m))
+#define	XDF_INST(m)	((m) >> XDF_PSHIFT)
+#define	XDF_PART(m)	((m) & XDF_PMASK)
+
+/*
+ * one blkif_request_t will have one corresponding ge_slot_t
+ * where we save those grant table refs used in this blkif_request_t
+ *
+ * the id of this ge_slot_t will also be put into 'id' field in
+ * each blkif_request_t when sent out to the ring buffer.
+ */
+typedef struct ge_slot {
+	list_node_t	link;
+	domid_t		oeid;
+	struct v_req	*vreq;
+	int		isread;
+	grant_ref_t	ghead;
+	int		ngrefs;
+	grant_ref_t	ge[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+} ge_slot_t;
+
+/*
+ * vbd I/O request
+ *
+ * An instance of this structure is bound to each buf passed to
+ * the driver's strategy by setting the pointer into bp->av_back.
+ * The id of this vreq will also be put into 'id' field in each
+ * blkif_request_t when sent out to the ring buffer for one DMA
+ * window of this buf.
+ *
+ * Vreq mainly contains DMA information for this buf. In one vreq/buf,
+ * there could be more than one DMA window, each of which will be
+ * mapped to one blkif_request_t/ge_slot_t. Ge_slot_t contains all grant
+ * table entry information for this buf. The ge_slot_t for current DMA
+ * window is pointed to by v_gs in vreq.
+ *
+ * So, grant table entries will only be alloc'ed when the DMA window is
+ * about to be transferred via blkif_request_t to the ring buffer. And
+ * they will be freed right after the blkif_response_t is seen. By this
+ * means, we can make use of grant table entries more efficiently.
+ */
+typedef struct v_req {
+	list_node_t	v_link;
+	int		v_status;
+	buf_t		*v_buf;
+	ddi_dma_handle_t v_dmahdl;
+	ddi_dma_cookie_t v_dmac;
+	uint_t		v_ndmacs;
+	uint_t		v_dmaw;
+	uint_t		v_ndmaws;
+	uint_t		v_nslots;
+	ge_slot_t	*v_gs;
+	uint64_t	v_blkno;
+	ddi_acc_handle_t v_align;
+	caddr_t		v_abuf;
+	ddi_dma_handle_t v_memdmahdl;
+	uint8_t		v_flush_diskcache;
+} v_req_t;
+
+/*
+ * Status set and checked in vreq->v_status by vreq_setup()
+ *
+ * These flags will help us to continue the vreq setup work from last failure
+ * point, instead of starting from scrath after each failure.
+ */
+#define	VREQ_INIT		0x0
+#define	VREQ_INIT_DONE		0x1
+#define	VREQ_DMAHDL_ALLOCED	0x2
+#define	VREQ_MEMDMAHDL_ALLOCED	0x3
+#define	VREQ_DMAMEM_ALLOCED	0x4
+#define	VREQ_DMABUF_BOUND	0x5
+#define	VREQ_GS_ALLOCED		0x6
+#define	VREQ_DMAWIN_DONE	0x7
+
+/*
+ * virtual block device per-instance softstate
+ */
+typedef struct xdf {
+	dev_info_t	*xdf_dip;
+	domid_t		xdf_peer; /* otherend's dom ID */
+	xendev_ring_t	*xdf_xb_ring; /* I/O ring buffer */
+	ddi_acc_handle_t xdf_xb_ring_hdl; /* access handler for ring buffer */
+	list_t		xdf_vreq_act; /* active vreq list */
+	list_t		xdf_gs_act; /* active grant table slot list */
+	buf_t		*xdf_f_act; /* active buf list head */
+	buf_t		*xdf_l_act; /* active buf list tail */
+	enum xdf_state	xdf_status; /* status of this virtual disk */
+	ulong_t		xdf_vd_open[OTYPCNT];
+	ulong_t		xdf_vd_lyropen[XDF_PEXT];
+	ulong_t		xdf_vd_exclopen;
+	kmutex_t	xdf_dev_lk; /* mutex lock for I/O path */
+	kmutex_t	xdf_cb_lk; /* mutex lock for event handling path */
+	kcondvar_t	xdf_dev_cv; /* cv used in I/O path */
+	uint_t		xdf_xdev_info; /* disk info from backend xenstore */
+	diskaddr_t	xdf_xdev_nblocks; /* total size in block */
+	kstat_t		*xdf_xdev_iostat;
+	cmlb_handle_t	xdf_vd_lbl;
+	ddi_softintr_t	xdf_softintr_id;
+	timeout_id_t	xdf_timeout_id;
+	struct gnttab_free_callback xdf_gnt_callback;
+	int		xdf_feature_barrier;
+	int		xdf_flush_supported;
+	int		xdf_wce;
+	char		*xdf_flush_mem;
+	char		*xdf_cache_flush_block;
+#ifdef	DEBUG
+	int		xdf_dmacallback_num;
+#endif
+} xdf_t;
+
+#define	BP2VREQ(bp)	((v_req_t *)((bp)->av_back))
+
+/*
+ * VBD I/O requests must be aligned on a 512-byte boundary and specify
+ * a transfer size which is a mutiple of 512-bytes
+ */
+#define	ALIGNED_XFER(bp) \
+	((((uintptr_t)((bp)->b_un.b_addr) & XB_BMASK) == 0) && \
+	(((bp)->b_bcount & XB_BMASK) == 0))
+
+#define	U_INVAL(u)	(((u)->uio_loffset & (offset_t)(XB_BMASK)) || \
+	((u)->uio_iov->iov_len & (offset_t)(XB_BMASK)))
+
+/* wrap pa_to_ma() for xdf to run in dom0 */
+#define	PATOMA(addr)	(DOMAIN_IS_INITDOMAIN(xen_info) ? addr : pa_to_ma(addr))
+
+#define	XD_IS_RO(vbd)	((vbd)->xdf_xdev_info & VDISK_READONLY)
+#define	XD_IS_CD(vbd)	((vbd)->xdf_xdev_info & VDISK_CDROM)
+#define	XD_IS_RM(vbd)	((vbd)->xdf_xdev_info & VDISK_REMOVABLE)
+#define	IS_READ(bp)	((bp)->b_flags & B_READ)
+#define	IS_ERROR(bp)	((bp)->b_flags & B_ERROR)
+
+#define	XDF_UPDATE_IO_STAT(vdp, bp)					\
+	if ((vdp)->xdf_xdev_iostat != NULL) {				\
+		kstat_io_t *kip = KSTAT_IO_PTR((vdp)->xdf_xdev_iostat);	\
+		size_t n_done = (bp)->b_bcount - (bp)->b_resid;		\
+		if ((bp)->b_flags & B_READ) {				\
+			kip->reads++;					\
+			kip->nread += n_done;				\
+		} else {                                                \
+			kip->writes++;					\
+			kip->nwritten += n_done;			\
+		}							\
+	}
+
+extern int xdfdebug;
+#ifdef DEBUG
+#define	DPRINTF(flag, args)	{if (xdfdebug & (flag)) prom_printf args; }
+#define	SETDMACBON(vbd)		{(vbd)->xdf_dmacallback_num++; }
+#define	SETDMACBOFF(vbd)	{(vbd)->xdf_dmacallback_num--; }
+#define	ISDMACBON(vbd)		((vbd)->xdf_dmacallback_num > 0)
+#else
+#define	DPRINTF(flag, args)
+#define	SETDMACBON(vbd)
+#define	SETDMACBOFF(vbd)
+#define	ISDMACBON(vbd)
+#endif /* DEBUG */
+
+#define	DDI_DBG		0x1
+#define	DMA_DBG		0x2
+#define	INTR_DBG	0x8
+#define	IO_DBG		0x10
+#define	IOCTL_DBG	0x20
+#define	SUSRES_DBG	0x40
+#define	LBL_DBG		0x80
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XDF_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xenbus_client.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,284 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Client-facing interface for the Xenbus driver.  In other words, the
+ * interface between the Xenbus and the device-specific code, be it the
+ * frontend or the backend of that driver.
+ *
+ * Copyright (C) 2005 XenSource Ltd
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/hypervisor.h>
+#include <sys/xen_mmu.h>
+#include <sys/evtchn_impl.h>
+#include <sys/gnttab.h>
+#include <xen/sys/xenbus_impl.h>
+#include <sys/cmn_err.h>
+
+
+int
+xenbus_watch_path(struct xenbus_device *dev, const char *path,
+			struct xenbus_watch *watch,
+			void (*callback)(struct xenbus_watch *,
+			const char **, unsigned int))
+{
+	int err;
+
+	watch->node = path;
+	watch->callback = callback;
+
+	err = register_xenbus_watch(watch);
+
+	if (err) {
+		watch->node = NULL;
+		watch->callback = NULL;
+		xenbus_dev_fatal(dev, err, "adding watch on %s", path);
+	}
+
+	return (err);
+}
+
+
+int
+xenbus_watch_path2(struct xenbus_device *dev, const char *path,
+			const char *path2, struct xenbus_watch *watch,
+			void (*callback)(struct xenbus_watch *,
+			const char **, unsigned int))
+{
+	int err;
+	char *state;
+
+	state = kmem_alloc(strlen(path) + 1 + strlen(path2) + 1, KM_SLEEP);
+	(void) strcpy(state, path);
+	(void) strcat(state, "/");
+	(void) strcat(state, path2);
+
+	err = xenbus_watch_path(dev, state, watch, callback);
+	if (err)
+		kmem_free(state, strlen(state) + 1);
+	return (err);
+}
+
+/*
+ * Returns 0 on success, -1 if no change was made, or an errno on failure.  We
+ * check whether the state is currently set to the given value, and if not,
+ * then the state is set.  We don't want to unconditionally write the given
+ * state, because we don't want to fire watches unnecessarily.  Furthermore, if
+ * the node has gone, we don't write to it, as the device will be tearing down,
+ * and we don't want to resurrect that directory.
+ *
+ * XXPV: not clear that this is still safe if two threads are racing to update
+ * the state?
+ */
+int
+xenbus_switch_state(struct xenbus_device *dev, xenbus_transaction_t xbt,
+			XenbusState state)
+{
+	int current_state;
+	int err;
+
+	err = xenbus_scanf(xbt, dev->nodename, "state", "%d", &current_state);
+
+	/* XXPV: is this really the right thing to do? */
+	if (err == ENOENT)
+		return (0);
+	if (err)
+		return (err);
+
+	err = -1;
+
+	if ((XenbusState)current_state != state) {
+		err = xenbus_printf(xbt, dev->nodename, "state", "%d", state);
+		if (err)
+			xenbus_dev_fatal(dev, err, "writing new state");
+	}
+
+	return (err);
+}
+
+
+/*
+ * Return the path to the error node for the given device, or NULL on failure.
+ * If the value returned is non-NULL, then it is the caller's to kmem_free.
+ */
+static char *
+error_path(struct xenbus_device *dev)
+{
+	char *path_buffer;
+
+	path_buffer = kmem_alloc(strlen("error/") + strlen(dev->nodename) +
+	    1, KM_SLEEP);
+
+	(void) strcpy(path_buffer, "error/");
+	(void) strcpy(path_buffer + strlen("error/"), dev->nodename);
+
+	return (path_buffer);
+}
+
+static void
+common_dev_error(struct xenbus_device *dev, int err, const char *fmt,
+		va_list ap)
+{
+	int ret;
+	unsigned int len;
+	char *printf_buffer = NULL, *path_buffer = NULL;
+
+#define	PRINTF_BUFFER_SIZE 4096
+	printf_buffer = kmem_alloc(PRINTF_BUFFER_SIZE, KM_SLEEP);
+
+	(void) snprintf(printf_buffer, PRINTF_BUFFER_SIZE, "%d ", err);
+	len = strlen(printf_buffer);
+	ret = vsnprintf(printf_buffer+len, PRINTF_BUFFER_SIZE-len, fmt, ap);
+
+	ASSERT(len + ret <= PRINTF_BUFFER_SIZE-1);
+	dev->has_error = 1;
+
+	path_buffer = error_path(dev);
+
+	if (path_buffer == NULL) {
+		printf("xenbus: failed to write error node for %s (%s)\n",
+		    dev->nodename, printf_buffer);
+		goto fail;
+	}
+
+	if (xenbus_write(NULL, path_buffer, "error", printf_buffer) != 0) {
+		printf("xenbus: failed to write error node for %s (%s)\n",
+		    dev->nodename, printf_buffer);
+		goto fail;
+	}
+
+fail:
+	if (printf_buffer)
+		kmem_free(printf_buffer, PRINTF_BUFFER_SIZE);
+	if (path_buffer)
+		kmem_free(path_buffer, strlen(path_buffer) + 1);
+}
+
+
+void
+xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+	common_dev_error(dev, err, fmt, ap);
+	va_end(ap);
+}
+
+
+void
+xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+	common_dev_error(dev, err, fmt, ap);
+	va_end(ap);
+
+	(void) xenbus_switch_state(dev, XBT_NULL, XenbusStateClosing);
+}
+
+/* Clear any error. */
+void
+xenbus_dev_ok(struct xenbus_device *dev)
+{
+	if (dev->has_error) {
+		if (xenbus_rm(NULL, dev->nodename, "error") != 0)
+			printf("xenbus: failed to clear error node for %s\n",
+			    dev->nodename);
+		else
+			dev->has_error = 0;
+	}
+}
+
+int
+xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn)
+{
+	int err = gnttab_grant_foreign_access(dev->otherend_id, ring_mfn, 0);
+	if (err < 0)
+		xenbus_dev_fatal(dev, err, "granting access to ring page");
+	return (err);
+}
+
+
+int
+xenbus_alloc_evtchn(struct xenbus_device *dev, int *port)
+{
+	int err;
+
+	err = xen_alloc_unbound_evtchn(dev->otherend_id, port);
+	if (err)
+		xenbus_dev_fatal(dev, err, "allocating event channel");
+	return (err);
+}
+
+
+XenbusState
+xenbus_read_driver_state(const char *path)
+{
+	XenbusState result;
+
+	int err = xenbus_gather(XBT_NULL, path, "state", "%d", &result, NULL);
+	if (err)
+		result = XenbusStateClosed;
+
+	return (result);
+}
+
+
+/*
+ * Local variables:
+ *  c-file-style: "solaris"
+ *  indent-tabs-mode: t
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xenbus_comms.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,290 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ *
+ * xenbus_comms.c
+ *
+ * Low level code to talks to Xen Store: ringbuffer and event channel.
+ *
+ * Copyright (C) 2005 Rusty Russell, IBM Corporation
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <vm/hat.h>
+#include <vm/as.h>
+#include <sys/bootinfo.h>
+#include <sys/bootconf.h>
+#include <vm/kboot_mmu.h>
+#include <vm/seg_kmem.h>
+#include <sys/hypervisor.h>
+#include <sys/evtchn_impl.h>
+#include <sys/condvar.h>
+#include <sys/mutex.h>
+#include <sys/atomic.h>
+#include <sys/mman.h>
+#include <sys/errno.h>
+#include <sys/cmn_err.h>
+#include <sys/avintr.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/public/io/xs_wire.h>
+
+static int xenbus_irq;
+static ddi_umem_cookie_t xb_cookie; /* cookie for xenbus comm page */
+extern caddr_t xb_addr;	/* va of xenbus comm page */
+
+static kcondvar_t xb_wait_cv;
+static kmutex_t xb_wait_lock;
+
+#define	xs_domain_interface(ra) ((struct xenstore_domain_interface *)(ra))
+
+/*ARGSUSED*/
+static uint_t
+xenbus_intr(void *unused)
+{
+	mutex_enter(&xb_wait_lock);
+	cv_broadcast(&xb_wait_cv);
+	mutex_exit(&xb_wait_lock);
+	return (DDI_INTR_CLAIMED);
+}
+
+static int
+check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
+{
+	return ((prod - cons) <= XENSTORE_RING_SIZE);
+}
+
+static void *
+get_output_chunk(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod,
+    char *buf, uint32_t *len)
+{
+	*len = XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(prod);
+	if ((XENSTORE_RING_SIZE - (prod - cons)) < *len)
+		*len = XENSTORE_RING_SIZE - (prod - cons);
+	return ((void *)(buf + MASK_XENSTORE_IDX(prod)));
+}
+
+static const void *
+get_input_chunk(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod,
+    const char *buf, uint32_t *len)
+{
+	*len = XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(cons);
+	if ((prod - cons) < *len)
+		*len = prod - cons;
+	return ((void *)(buf + MASK_XENSTORE_IDX(cons)));
+}
+
+
+int
+xb_write(const void *data, unsigned len)
+{
+	volatile struct xenstore_domain_interface *intf =
+	    xs_domain_interface(xb_addr);
+	XENSTORE_RING_IDX cons, prod;
+	extern int do_polled_io;
+
+	while (len != 0) {
+		void *dst;
+		unsigned int avail;
+
+		mutex_enter(&xb_wait_lock);
+		while ((intf->req_prod - intf->req_cons) ==
+		    XENSTORE_RING_SIZE) {
+			if (interrupts_unleashed && !do_polled_io) {
+				if (cv_wait_sig(&xb_wait_cv,
+				    &xb_wait_lock) == 0) {
+					mutex_exit(&xb_wait_lock);
+					return (EINTR);
+				}
+			} else { /* polled mode needed for early probes */
+				(void) HYPERVISOR_yield();
+			}
+		}
+		mutex_exit(&xb_wait_lock);
+		/* Read indexes, then verify. */
+		cons = intf->req_cons;
+		prod = intf->req_prod;
+		membar_enter();
+		if (!check_indexes(cons, prod))
+			return (EIO);
+
+		dst = get_output_chunk(cons, prod, (char *)intf->req, &avail);
+		if (avail == 0)
+			continue;
+		if (avail > len)
+			avail = len;
+
+		(void) memcpy(dst, data, avail);
+		data = (void *)((uintptr_t)data + avail);
+		len -= avail;
+
+		/* Other side must not see new header until data is there. */
+		membar_producer();
+		intf->req_prod += avail;
+
+		/* This implies mb() before other side sees interrupt. */
+		ec_notify_via_evtchn(xen_info->store_evtchn);
+	}
+
+	return (0);
+}
+
+int
+xb_read(void *data, unsigned len)
+{
+	volatile struct xenstore_domain_interface *intf =
+	    xs_domain_interface(xb_addr);
+	XENSTORE_RING_IDX cons, prod;
+	extern int do_polled_io;
+
+	while (len != 0) {
+		unsigned int avail;
+		const char *src;
+
+		mutex_enter(&xb_wait_lock);
+		while (intf->rsp_cons == intf->rsp_prod) {
+			if (interrupts_unleashed && !do_polled_io) {
+				if (cv_wait_sig(&xb_wait_cv,
+				    &xb_wait_lock) == 0) {
+					mutex_exit(&xb_wait_lock);
+					return (EINTR);
+				}
+			} else { /* polled mode needed for early probes */
+				(void) HYPERVISOR_yield();
+			}
+		}
+		mutex_exit(&xb_wait_lock);
+		/* Read indexes, then verify. */
+		cons = intf->rsp_cons;
+		prod = intf->rsp_prod;
+		membar_enter();
+		if (!check_indexes(cons, prod))
+			return (EIO);
+
+		src = get_input_chunk(cons, prod, (char *)intf->rsp, &avail);
+		if (avail == 0)
+			continue;
+		if (avail > len)
+			avail = len;
+
+		/* We must read header before we read data. */
+		membar_consumer();
+
+		(void) memcpy(data, src, avail);
+		data = (void *)((uintptr_t)data + avail);
+		len -= avail;
+
+		/* Other side must not see free space until we've copied out */
+		membar_enter();
+		intf->rsp_cons += avail;
+
+		/* Implies mb(): they will see new header. */
+		ec_notify_via_evtchn(xen_info->store_evtchn);
+	}
+
+	return (0);
+}
+
+void
+xb_suspend(void)
+{
+	rem_avintr(NULL, IPL_XENBUS, (avfunc)xenbus_intr, xenbus_irq);
+}
+
+void
+xb_setup_intr(void)
+{
+	xenbus_irq = ec_bind_evtchn_to_irq(xen_info->store_evtchn);
+	if (!add_avintr(NULL, IPL_XENBUS, (avfunc)xenbus_intr, "xenbus",
+	    xenbus_irq, NULL, NULL, NULL, NULL))
+		cmn_err(CE_WARN, "XENBUS add intr failed\n");
+}
+
+/*
+ * Set up our xenstore page and event channel. Domain 0 needs to allocate a
+ * page and event channel; other domains use what we are told.
+ */
+void
+xb_init(void)
+{
+	int err;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+
+		if (xb_addr != NULL)
+			return;
+
+		xb_addr = ddi_umem_alloc(PAGESIZE, DDI_UMEM_SLEEP,
+		    &xb_cookie);
+		xen_info->store_mfn = pfn_to_mfn(hat_getpfnum(kas.a_hat,
+		    xb_addr));
+
+		err = xen_alloc_unbound_evtchn(0,
+		    (int *)&xen_info->store_evtchn);
+		ASSERT(err == 0);
+	} else {
+		/*
+		 * This is harmless on first boot, but needed for resume and
+		 * migrate. We use kbm_map_ma() as a shortcut instead of
+		 * directly using HYPERVISOR_update_va_mapping().
+		 */
+		ASSERT(xb_addr != NULL);
+		kbm_map_ma(mfn_to_ma(xen_info->store_mfn),
+		    (uintptr_t)xb_addr, 0);
+	}
+
+	ASSERT(xen_info->store_evtchn);
+}
+
+void *
+xb_xenstore_cookie(void)
+{
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	return (xb_cookie);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xenbus_dev.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,645 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * xenbus_dev.c
+ *
+ * Driver giving user-space access to the kernel's xenbus connection
+ * to xenstore.
+ *
+ * Copyright (c) 2005, Christian Limpach
+ * Copyright (c) 2005, Rusty Russell, IBM Corporation
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/sysmacros.h>
+#include <sys/conf.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/uio.h>
+#include <sys/list.h>
+#include <sys/file.h>
+#include <sys/errno.h>
+#include <sys/open.h>
+#include <sys/cred.h>
+#include <sys/condvar.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/hypervisor.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xenbus.h>
+#include <xen/public/io/xs_wire.h>
+
+#ifdef DEBUG
+#define	XENBUSDRV_DBPRINT(fmt) { if (xenbusdrv_debug) cmn_err fmt; }
+#else
+#define	XENBUSDRV_DBPRINT(fmt)
+#endif /* ifdef DEBUG */
+
+/* Some handy macros */
+#define	XENBUSDRV_MASK_READ_IDX(idx)	((idx) & (PAGESIZE - 1))
+#define	XENBUSDRV_MINOR2INST(minor)	((int)(minor))
+#define	XENBUSDRV_NCLONES 		256
+#define	XENBUSDRV_INST2SOFTS(instance)	\
+	((xenbus_dev_t *)ddi_get_soft_state(xenbusdrv_statep, (instance)))
+
+static int xenbusdrv_debug = 0;
+static int xenbusdrv_clone_tab[XENBUSDRV_NCLONES];
+static dev_info_t *xenbusdrv_dip;
+static kmutex_t xenbusdrv_clone_tab_mutex;
+
+struct xenbus_dev_transaction {
+	list_t list;
+	xenbus_transaction_t handle;
+};
+
+/* Soft state data structure for xenbus driver */
+struct xenbus_dev_data {
+	dev_info_t *dip;
+
+	/* In-progress transaction. */
+	list_t transactions;
+
+	/* Partial request. */
+	unsigned int len;
+	union {
+		struct xsd_sockmsg msg;
+		char buffer[MMU_PAGESIZE];
+	} u;
+
+	/* Response queue. */
+	char read_buffer[MMU_PAGESIZE];
+	unsigned int read_cons, read_prod;
+	kcondvar_t read_cv;
+	kmutex_t read_mutex;
+	int xenstore_inst;
+};
+typedef struct xenbus_dev_data xenbus_dev_t;
+static void *xenbusdrv_statep;
+
+static int xenbusdrv_info(dev_info_t *, ddi_info_cmd_t, void *, void **);
+static int xenbusdrv_attach(dev_info_t *, ddi_attach_cmd_t);
+static int xenbusdrv_detach(dev_info_t *, ddi_detach_cmd_t);
+static int xenbusdrv_open(dev_t *, int, int, cred_t *);
+static int xenbusdrv_close(dev_t, int, int, cred_t *);
+static int xenbusdrv_read(dev_t, struct uio *, cred_t *);
+static int xenbusdrv_write(dev_t, struct uio *, cred_t *);
+static int xenbusdrv_devmap(dev_t, devmap_cookie_t, offset_t, size_t, size_t *,
+    uint_t);
+static int xenbusdrv_ioctl(dev_t, int, intptr_t, int, cred_t *, int *);
+static int xenbusdrv_queue_reply(xenbus_dev_t *, const struct xsd_sockmsg *,
+    const char *);
+
+/* Solaris driver framework */
+
+static 	struct cb_ops xenbusdrv_cb_ops = {
+	xenbusdrv_open,			/* cb_open */
+	xenbusdrv_close,		/* cb_close */
+	nodev,				/* cb_strategy */
+	nodev,				/* cb_print */
+	nodev,				/* cb_dump */
+	xenbusdrv_read,			/* cb_read */
+	xenbusdrv_write,		/* cb_write */
+	xenbusdrv_ioctl,		/* cb_ioctl */
+	xenbusdrv_devmap,		/* cb_devmap */
+	NULL,				/* cb_mmap */
+	NULL,				/* cb_segmap */
+	nochpoll,			/* cb_chpoll */
+	ddi_prop_op,			/* cb_prop_op */
+	0,				/* cb_stream */
+	D_DEVMAP | D_NEW | D_MP,	/* cb_flag */
+	CB_REV
+};
+
+static struct dev_ops xenbusdrv_dev_ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt */
+	xenbusdrv_info,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	xenbusdrv_attach,	/* devo_attach */
+	xenbusdrv_detach,	/* devo_detach */
+	nodev,			/* devo_reset */
+	&xenbusdrv_cb_ops,	/* devo_cb_ops */
+	NULL,			/* devo_bus_ops */
+	NULL			/* power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,		/* Type of module.  This one is a driver */
+	"virtual bus driver v%I%",	/* Name of the module. */
+	&xenbusdrv_dev_ops	/* driver ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	&modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	int e;
+
+	e = ddi_soft_state_init(&xenbusdrv_statep, sizeof (xenbus_dev_t), 1);
+	if (e)
+		return (e);
+
+	e = mod_install(&modlinkage);
+	if (e)
+		ddi_soft_state_fini(&xenbusdrv_statep);
+
+	return (e);
+}
+
+int
+_fini(void)
+{
+	int e;
+
+	e = mod_remove(&modlinkage);
+	if (e)
+		return (e);
+
+	ddi_soft_state_fini(&xenbusdrv_statep);
+
+	return (0);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+/* ARGSUSED */
+static int
+xenbusdrv_info(dev_info_t *dip, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	dev_t	dev = (dev_t)arg;
+	minor_t	minor = getminor(dev);
+	int	retval;
+
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		if (minor != 0 || xenbusdrv_dip == NULL) {
+			*result = (void *)NULL;
+			retval = DDI_FAILURE;
+		} else {
+			*result = (void *)xenbusdrv_dip;
+			retval = DDI_SUCCESS;
+		}
+		break;
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = (void *)0;
+		retval = DDI_SUCCESS;
+		break;
+	default:
+		retval = DDI_FAILURE;
+	}
+	return (retval);
+}
+
+static int
+xenbusdrv_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	int	error;
+	int	unit = ddi_get_instance(dip);
+
+
+	switch (cmd) {
+	case DDI_ATTACH:
+		break;
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+	default:
+		cmn_err(CE_WARN, "xenbus_attach: unknown cmd 0x%x\n", cmd);
+		return (DDI_FAILURE);
+	}
+
+	/* DDI_ATTACH */
+
+	/*
+	 * only one instance - but we clone using the open routine
+	 */
+	if (ddi_get_instance(dip) > 0)
+		return (DDI_FAILURE);
+
+	mutex_init(&xenbusdrv_clone_tab_mutex, NULL, MUTEX_DRIVER,
+	    NULL);
+
+	error = ddi_create_minor_node(dip, "xenbus", S_IFCHR, unit,
+	    DDI_PSEUDO, NULL);
+	if (error != DDI_SUCCESS)
+		goto fail;
+
+	/*
+	 * save dip for getinfo
+	 */
+	xenbusdrv_dip = dip;
+	ddi_report_dev(dip);
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		xs_dom0_init();
+
+	return (DDI_SUCCESS);
+
+fail:
+	(void) xenbusdrv_detach(dip, DDI_DETACH);
+	return (error);
+}
+
+static int
+xenbusdrv_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	/*
+	 * again, only one instance
+	 */
+	if (ddi_get_instance(dip) > 0)
+		return (DDI_FAILURE);
+
+	switch (cmd) {
+	case DDI_DETACH:
+		ddi_remove_minor_node(dip, NULL);
+		mutex_destroy(&xenbusdrv_clone_tab_mutex);
+		xenbusdrv_dip = NULL;
+		return (DDI_SUCCESS);
+	case DDI_SUSPEND:
+		return (DDI_SUCCESS);
+	default:
+		cmn_err(CE_WARN, "xenbus_detach: unknown cmd 0x%x\n", cmd);
+		return (DDI_FAILURE);
+	}
+}
+
+/* ARGSUSED */
+static int
+xenbusdrv_open(dev_t *devp, int flag, int otyp, cred_t *credp)
+{
+	xenbus_dev_t *xbs;
+	minor_t minor = getminor(*devp);
+
+	if (otyp == OTYP_BLK)
+		return (ENXIO);
+
+	/*
+	 * only allow open on minor = 0 - the clone device
+	 */
+	if (minor != 0)
+		return (ENXIO);
+
+	/*
+	 * find a free slot and grab it
+	 */
+	mutex_enter(&xenbusdrv_clone_tab_mutex);
+	for (minor = 1; minor < XENBUSDRV_NCLONES; minor++) {
+		if (xenbusdrv_clone_tab[minor] == 0) {
+			xenbusdrv_clone_tab[minor] = 1;
+			break;
+		}
+	}
+	mutex_exit(&xenbusdrv_clone_tab_mutex);
+	if (minor == XENBUSDRV_NCLONES)
+		return (EAGAIN);
+
+	/* Allocate softstate structure */
+	if (ddi_soft_state_zalloc(xenbusdrv_statep,
+	    XENBUSDRV_MINOR2INST(minor)) != DDI_SUCCESS) {
+		mutex_enter(&xenbusdrv_clone_tab_mutex);
+		xenbusdrv_clone_tab[minor] = 0;
+		mutex_exit(&xenbusdrv_clone_tab_mutex);
+		return (EAGAIN);
+	}
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(minor));
+
+	/* ... and init it */
+	xbs->dip = xenbusdrv_dip;
+	mutex_init(&xbs->read_mutex, NULL, MUTEX_DRIVER, NULL);
+	cv_init(&xbs->read_cv, NULL, CV_DEFAULT, NULL);
+	list_create(&xbs->transactions, sizeof (struct xenbus_dev_transaction),
+	    offsetof(struct xenbus_dev_transaction, list));
+
+	/* clone driver */
+	*devp = makedevice(getmajor(*devp), minor);
+	XENBUSDRV_DBPRINT((CE_NOTE, "Xenbus drv open succeeded, minor=%d",
+	    minor));
+
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+xenbusdrv_close(dev_t dev, int flag, int otyp, struct cred *credp)
+{
+	xenbus_dev_t *xbs;
+	minor_t minor = getminor(dev);
+	struct xenbus_dev_transaction *trans;
+
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(minor));
+	if (xbs == NULL)
+		return (ENXIO);
+
+#ifdef notyet
+	/*
+	 * XXPV - would like to be able to notify xenstore down here, but
+	 * as the daemon is currently written, it doesn't leave the device
+	 * open after initial setup, so we have no way of knowing if it has
+	 * gone away.
+	 */
+	if (xbs->xenstore_inst)
+		xs_notify_xenstore_down();
+#endif
+	/* free pending transaction */
+	while (trans = (struct xenbus_dev_transaction *)
+	    list_head(&xbs->transactions)) {
+		(void) xenbus_transaction_end(trans->handle, 1);
+		list_remove(&xbs->transactions, (void *)trans);
+		kmem_free(trans, sizeof (*trans));
+	}
+
+	mutex_destroy(&xbs->read_mutex);
+	cv_destroy(&xbs->read_cv);
+	ddi_soft_state_free(xenbusdrv_statep, XENBUSDRV_MINOR2INST(minor));
+
+	/*
+	 * free clone tab slot
+	 */
+	mutex_enter(&xenbusdrv_clone_tab_mutex);
+	xenbusdrv_clone_tab[minor] = 0;
+	mutex_exit(&xenbusdrv_clone_tab_mutex);
+
+	XENBUSDRV_DBPRINT((CE_NOTE, "Xenbus drv close succeeded, minor=%d",
+	    minor));
+
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+xenbusdrv_read(dev_t dev, struct uio *uiop, cred_t *credp)
+{
+	xenbus_dev_t *xbs;
+	size_t len;
+	int res, ret;
+	int idx;
+
+	XENBUSDRV_DBPRINT((CE_NOTE, "xenbusdrv_read called"));
+
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(getminor(dev)));
+
+	mutex_enter(&xbs->read_mutex);
+
+	/* check if we have something to read */
+	while (xbs->read_prod == xbs->read_cons) {
+		if (cv_wait_sig(&xbs->read_cv, &xbs->read_mutex) == 0) {
+			mutex_exit(&xbs->read_mutex);
+			return (EINTR);
+		}
+	}
+
+	idx = XENBUSDRV_MASK_READ_IDX(xbs->read_cons);
+	res = uiop->uio_resid;
+
+	len = xbs->read_prod - xbs->read_cons;
+
+	if (len > (sizeof (xbs->read_buffer) - idx))
+		len = sizeof (xbs->read_buffer) - idx;
+	if (len > res)
+		len = res;
+
+	ret = uiomove(xbs->read_buffer + idx, len, UIO_READ, uiop);
+	xbs->read_cons += res - uiop->uio_resid;
+	mutex_exit(&xbs->read_mutex);
+
+	return (ret);
+}
+
+/*
+ * prepare data for xenbusdrv_read()
+ */
+static int
+xenbusdrv_queue_reply(xenbus_dev_t *xbs, const struct xsd_sockmsg *msg,
+    const char *reply)
+{
+	int i;
+	int remaining;
+
+	XENBUSDRV_DBPRINT((CE_NOTE, "xenbusdrv_queue_reply called"));
+
+	mutex_enter(&xbs->read_mutex);
+
+	remaining = sizeof (xbs->read_buffer) -
+	    (xbs->read_prod - xbs->read_cons);
+
+	if (sizeof (*msg) + msg->len > remaining) {
+		mutex_exit(&xbs->read_mutex);
+		return (EOVERFLOW);
+	}
+
+	for (i = 0; i < sizeof (*msg); i++, xbs->read_prod++) {
+		xbs->read_buffer[XENBUSDRV_MASK_READ_IDX(xbs->read_prod)] =
+		    ((char *)msg)[i];
+	}
+
+	for (i = 0; i < msg->len; i++, xbs->read_prod++) {
+		xbs->read_buffer[XENBUSDRV_MASK_READ_IDX(xbs->read_prod)] =
+		    reply[i];
+	}
+
+	cv_broadcast(&xbs->read_cv);
+
+	mutex_exit(&xbs->read_mutex);
+
+	XENBUSDRV_DBPRINT((CE_NOTE, "xenbusdrv_queue_reply exited"));
+
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+xenbusdrv_write(dev_t dev, struct uio *uiop, cred_t *credp)
+{
+	xenbus_dev_t *xbs;
+	struct xenbus_dev_transaction *trans;
+	void *reply;
+	size_t len;
+	int rc = 0;
+
+	XENBUSDRV_DBPRINT((CE_NOTE, "xenbusdrv_write called"));
+
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(getminor(dev)));
+	len = uiop->uio_resid;
+
+	if ((len + xbs->len) > sizeof (xbs->u.buffer)) {
+		XENBUSDRV_DBPRINT((CE_WARN, "Request is too big"));
+		rc = EINVAL;
+		goto out;
+	}
+
+	if (uiomove(xbs->u.buffer + xbs->len, len, UIO_WRITE, uiop) != 0) {
+		XENBUSDRV_DBPRINT((CE_WARN, "Uiomove failed"));
+		rc = EFAULT;
+		goto out;
+	}
+
+	xbs->len += len;
+
+	if (xbs->len < (sizeof (xbs->u.msg)) ||
+	    xbs->len < (sizeof (xbs->u.msg) + xbs->u.msg.len)) {
+		XENBUSDRV_DBPRINT((CE_NOTE, "Partial request"));
+		return (0);
+	}
+
+	switch (xbs->u.msg.type) {
+	case XS_TRANSACTION_START:
+	case XS_TRANSACTION_END:
+	case XS_DIRECTORY:
+	case XS_READ:
+	case XS_GET_PERMS:
+	case XS_RELEASE:
+	case XS_GET_DOMAIN_PATH:
+	case XS_WRITE:
+	case XS_MKDIR:
+	case XS_RM:
+	case XS_SET_PERMS:
+		/* send the request to xenstore and get feedback */
+		rc = xenbus_dev_request_and_reply(&xbs->u.msg, &reply);
+		if (rc) {
+			XENBUSDRV_DBPRINT((CE_WARN,
+			    "xenbus_dev_request_and_reply failed"));
+			goto out;
+		}
+
+		/* handle transaction start/end */
+		if (xbs->u.msg.type == XS_TRANSACTION_START) {
+			trans = kmem_alloc(sizeof (*trans), KM_SLEEP);
+			(void) ddi_strtoul((char *)reply, NULL, 0,
+			    (unsigned long *)&trans->handle);
+			list_insert_tail(&xbs->transactions, (void *)trans);
+		} else if (xbs->u.msg.type == XS_TRANSACTION_END) {
+			/* try to find out the ending transaction */
+			for (trans = (struct xenbus_dev_transaction *)
+			    list_head(&xbs->transactions); trans;
+			    trans = (struct xenbus_dev_transaction *)
+			    list_next(&xbs->transactions, (void *)trans))
+				if (trans->handle ==
+				    (xenbus_transaction_t)
+				    xbs->u.msg.tx_id)
+					break;
+			ASSERT(trans);
+			/* free it, if we find it */
+			list_remove(&xbs->transactions, (void *)trans);
+			kmem_free(trans, sizeof (*trans));
+		}
+
+		/* prepare data for xenbusdrv_read() to get */
+		rc = xenbusdrv_queue_reply(xbs, &xbs->u.msg, reply);
+
+		kmem_free(reply, xbs->u.msg.len + 1);
+		break;
+	default:
+		rc = EINVAL;
+	}
+
+out:
+	xbs->len = 0;
+	return (rc);
+}
+
+/*ARGSUSED*/
+static int
+xenbusdrv_devmap(dev_t dev, devmap_cookie_t dhp, offset_t off, size_t len,
+    size_t *maplen, uint_t model)
+{
+	xenbus_dev_t *xbs;
+	int err;
+
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(getminor(dev)));
+
+	if (off != 0 || len != PAGESIZE)
+		return (-1);
+
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		return (-1);
+
+	err = devmap_umem_setup(dhp, xbs->dip, NULL, xb_xenstore_cookie(),
+	    0, PAGESIZE, PROT_READ | PROT_WRITE | PROT_USER, 0, NULL);
+
+	if (err)
+		return (err);
+
+	*maplen = PAGESIZE;
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
+xenbusdrv_ioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp,
+    int *rvalp)
+{
+	xenbus_dev_t *xbs;
+
+	xbs = XENBUSDRV_INST2SOFTS(XENBUSDRV_MINOR2INST(getminor(dev)));
+	switch (cmd) {
+	case IOCTL_XENBUS_XENSTORE_EVTCHN:
+		*rvalp = xen_info->store_evtchn;
+		break;
+	case IOCTL_XENBUS_NOTIFY_UP:
+		xs_notify_xenstore_up();
+		xbs->xenstore_inst = 1;
+		break;
+	default:
+		return (EINVAL);
+	}
+
+	return (0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xenbus_probe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,185 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Talks to Xen Store to figure out what devices we have.
+ *
+ * Copyright (C) 2005 Rusty Russell, IBM Corporation
+ * Copyright (C) 2005 Mike Wray, Hewlett-Packard
+ * Copyright (C) 2005 XenSource Ltd
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/hypervisor.h>
+#include <sys/evtchn_impl.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/public/io/xs_wire.h>
+
+static int
+read_otherend_details(struct xenbus_device *xendev,
+			char *id_node, char *path_node)
+{
+	int err = xenbus_gather(XBT_NULL, xendev->nodename,
+	    id_node, "%i", &xendev->otherend_id, path_node, NULL,
+	    &xendev->otherend, NULL);
+	if (err) {
+		xenbus_dev_fatal(xendev, err,
+		    "reading other end details from %s", xendev->nodename);
+		return (err);
+	}
+	if (strlen(xendev->otherend) == 0 ||
+	    !xenbus_exists(XBT_NULL, xendev->otherend, "")) {
+		xenbus_dev_fatal(xendev, X_ENOENT, "missing other end from %s",
+		    xendev->nodename);
+		kmem_free((void *)xendev->otherend,
+		    strlen(xendev->otherend) + 1);
+		xendev->otherend = NULL;
+		return (X_ENOENT);
+	}
+
+	return (0);
+}
+
+
+static int
+read_backend_details(struct xenbus_device *xendev)
+{
+	return (read_otherend_details(xendev, "backend-id", "backend"));
+}
+
+
+static int
+read_frontend_details(struct xenbus_device *xendev)
+{
+	return (read_otherend_details(xendev, "frontend-id", "frontend"));
+}
+
+
+static void
+free_otherend_details(struct xenbus_device *dev)
+{
+	if (dev->otherend != NULL) {
+		kmem_free((void *)dev->otherend, strlen(dev->otherend) + 1);
+		dev->otherend = NULL;
+	}
+}
+
+
+static void
+free_otherend_watch(struct xenbus_device *dev)
+{
+	if (dev->otherend_watch.node) {
+		unregister_xenbus_watch(&dev->otherend_watch);
+		kmem_free((void *)dev->otherend_watch.node,
+		    strlen(dev->otherend_watch.node) + 1);
+		dev->otherend_watch.node = NULL;
+	}
+}
+
+
+/*ARGSUSED2*/
+static void
+otherend_changed(struct xenbus_watch *watch, const char **vec, unsigned int len)
+{
+	struct xenbus_device *dev = watch->dev;
+	XenbusState state;
+
+	/*
+	 * Protect us against watches firing on old details when the otherend
+	 * details change, say immediately after a resume.
+	 */
+	if (!dev->otherend ||
+	    strncmp(dev->otherend, vec[XS_WATCH_PATH], strlen(dev->otherend))) {
+#if 0
+		printf("Ignoring watch at %s", vec[XS_WATCH_PATH]);
+#endif
+		return;
+	}
+
+	state = xenbus_read_driver_state(dev->otherend);
+
+#if 0
+	printf("state is %d, %s, %s",
+	    state, dev->otherend_watch.node, vec[XS_WATCH_PATH]);
+#endif
+	if (dev->otherend_changed)
+		dev->otherend_changed(dev, state);
+}
+
+
+int
+talk_to_otherend(struct xenbus_device *dev)
+{
+	int err;
+
+	free_otherend_watch(dev);
+	free_otherend_details(dev);
+
+	if (dev->frontend)
+		err = read_backend_details(dev);
+	else
+		err = read_frontend_details(dev);
+	if (err)
+		return (err);
+
+	dev->otherend_watch.dev = dev;
+	return (xenbus_watch_path2(dev, dev->otherend, "state",
+	    &dev->otherend_watch, otherend_changed));
+}
+
+
+/*
+ * Local variables:
+ *  c-file-style: "solaris"
+ *  indent-tabs-mode: t
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xenbus_xs.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1073 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ *
+ * xenbus_xs.c
+ *
+ * This is the kernel equivalent of the "xs" library.  We don't need everything
+ * and we use xenbus_comms for communication.
+ *
+ * Copyright (C) 2005 Rusty Russell, IBM Corporation
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/*
+ * NOTE: To future maintainers of the Solaris version of this file:
+ * I found the Linux version of this code to be very disgusting in
+ * overloading pointers and error codes into void * return values.
+ * The main difference you will find is that all such usage is changed
+ * to pass pointers to void* to be filled in with return values and
+ * the functions return error codes.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/errno.h>
+#include <sys/types.h>
+#include <sys/sysmacros.h>
+#include <sys/uio.h>
+#include <sys/mutex.h>
+#include <sys/condvar.h>
+#include <sys/rwlock.h>
+#include <sys/disp.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/avintr.h>
+#include <sys/cmn_err.h>
+#include <util/sscanf.h>
+#define	_XSD_ERRORS_DEFINED
+#include <sys/hypervisor.h>
+#include <sys/mach_mmu.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/sys/xendev.h>
+#include <sys/taskq.h>
+#include <xen/public/io/xs_wire.h>
+
+#define	streq(a, b) (strcmp((a), (b)) == 0)
+
+#define	list_empty(list) (list_head(list) == NULL)
+
+struct xs_stored_msg {
+	list_t list;
+
+	struct xsd_sockmsg hdr;
+
+	union {
+		/* Queued replies. */
+		struct {
+			char *body;
+		} reply;
+
+		/* Queued watch events. */
+		struct {
+			struct xenbus_watch *handle;
+			char **vec;
+			unsigned int vec_size;
+		} watch;
+	} un;
+};
+
+static struct xs_handle {
+	/* A list of replies. Currently only one will ever be outstanding. */
+	list_t reply_list;
+	kmutex_t reply_lock;
+	kcondvar_t reply_cv;
+
+	/* One request at a time. */
+	kmutex_t request_mutex;
+
+	/* Protect transactions against save/restore. */
+	krwlock_t suspend_lock;
+} xs_state;
+
+static int last_req_id;
+
+/*
+ * List of clients wanting a xenstore up notification, and a lock to protect it
+ */
+static boolean_t xenstore_up;
+static list_t notify_list;
+static kmutex_t notify_list_lock;
+static taskq_t *xenbus_taskq;
+
+/* List of registered watches, and a lock to protect it. */
+static list_t watches;
+static kmutex_t watches_lock;
+
+/* List of pending watch callback events, and a lock to protect it. */
+static list_t watch_events;
+static kmutex_t watch_events_lock;
+
+/*
+ * Details of the xenwatch callback kernel thread. The thread waits on the
+ * watch_events_cv for work to do (queued on watch_events list). When it
+ * wakes up it acquires the xenwatch_mutex before reading the list and
+ * carrying out work.
+ */
+static kmutex_t xenwatch_mutex;
+static kcondvar_t watch_events_cv;
+
+static int process_msg(void);
+
+static int
+get_error(const char *errorstring)
+{
+	unsigned int i;
+
+	for (i = 0; !streq(errorstring, xsd_errors[i].errstring); i++) {
+		if (i == (sizeof (xsd_errors) / sizeof (xsd_errors[0])) - 1) {
+			cmn_err(CE_WARN,
+			    "XENBUS xen store gave: unknown error %s",
+			    errorstring);
+			return (EINVAL);
+		}
+	}
+	return (xsd_errors[i].errnum);
+}
+
+/*
+ * Read a synchronous reply from xenstore.  Since we can return early before
+ * reading a relevant reply, we discard any messages not matching the request
+ * ID.  Caller must free returned message on success.
+ */
+static int
+read_reply(struct xsd_sockmsg *req_hdr, struct xs_stored_msg **reply)
+{
+	extern int do_polled_io;
+
+	mutex_enter(&xs_state.reply_lock);
+
+	for (;;) {
+		while (list_empty(&xs_state.reply_list)) {
+			if (interrupts_unleashed && !do_polled_io) {
+				if (cv_wait_sig(&xs_state.reply_cv,
+				    &xs_state.reply_lock) == 0) {
+					mutex_exit(&xs_state.reply_lock);
+					*reply = NULL;
+					return (EINTR);
+				}
+			} else { /* polled mode needed for early probes */
+				mutex_exit(&xs_state.reply_lock);
+				(void) HYPERVISOR_yield();
+				(void) process_msg();
+				mutex_enter(&xs_state.reply_lock);
+			}
+		}
+
+		*reply = list_head(&xs_state.reply_list);
+		list_remove(&xs_state.reply_list, *reply);
+
+		if ((*reply)->hdr.req_id == req_hdr->req_id)
+			break;
+	}
+
+	mutex_exit(&xs_state.reply_lock);
+	return (0);
+}
+
+/* Emergency write. */
+void
+xenbus_debug_write(const char *str, unsigned int count)
+{
+	struct xsd_sockmsg msg = { 0 };
+
+	msg.type = XS_DEBUG;
+	msg.len = sizeof ("print") + count + 1;
+
+	mutex_enter(&xs_state.request_mutex);
+	(void) xb_write(&msg, sizeof (msg));
+	(void) xb_write("print", sizeof ("print"));
+	(void) xb_write(str, count);
+	(void) xb_write("", 1);
+	mutex_exit(&xs_state.request_mutex);
+}
+
+/*
+ * This is pretty unpleasant.  First off, there's the horrible logic around
+ * suspend_lock and transactions.  Also, we can be interrupted either before we
+ * write a message, or before we receive a reply.  A client that wants to
+ * survive this can't know which case happened.  Luckily all clients don't care
+ * about signals currently, and the alternative (a hard wait on a userspace
+ * daemon) isn't exactly preferable.  Caller must free 'reply' on success.
+ */
+int
+xenbus_dev_request_and_reply(struct xsd_sockmsg *msg, void **reply)
+{
+	struct xsd_sockmsg req_msg = *msg;
+	struct xs_stored_msg *reply_msg = NULL;
+	int err;
+
+	if (req_msg.type == XS_TRANSACTION_START)
+		rw_enter(&xs_state.suspend_lock, RW_READER);
+
+	mutex_enter(&xs_state.request_mutex);
+
+	msg->req_id = last_req_id++;
+
+	err = xb_write(msg, sizeof (*msg) + msg->len);
+	if (err) {
+		if (req_msg.type == XS_TRANSACTION_START)
+			rw_exit(&xs_state.suspend_lock);
+		msg->type = XS_ERROR;
+		*reply = NULL;
+		goto out;
+	}
+
+	err = read_reply(msg, &reply_msg);
+
+	if (err) {
+		if (msg->type == XS_TRANSACTION_START)
+			rw_exit(&xs_state.suspend_lock);
+		*reply = NULL;
+		goto out;
+	}
+
+	*reply = reply_msg->un.reply.body;
+	*msg = reply_msg->hdr;
+
+	if (reply_msg->hdr.type == XS_TRANSACTION_END)
+		rw_exit(&xs_state.suspend_lock);
+
+out:
+	if (reply_msg != NULL)
+		kmem_free(reply_msg, sizeof (*reply_msg));
+
+	mutex_exit(&xs_state.request_mutex);
+	return (err);
+}
+
+/*
+ * Send message to xs, return errcode, rval filled in with pointer
+ * to kmem_alloc'ed reply.
+ */
+static int
+xs_talkv(xenbus_transaction_t t,
+		    enum xsd_sockmsg_type type,
+		    const iovec_t *iovec,
+		    unsigned int num_vecs,
+		    void **rval,
+		    unsigned int *len)
+{
+	struct xsd_sockmsg msg;
+	struct xs_stored_msg *reply_msg;
+	char *reply;
+	unsigned int i;
+	int err;
+
+	msg.tx_id = (uint32_t)(unsigned long)t;
+	msg.type = type;
+	msg.len = 0;
+	for (i = 0; i < num_vecs; i++)
+		msg.len += iovec[i].iov_len;
+
+	mutex_enter(&xs_state.request_mutex);
+
+	msg.req_id = last_req_id++;
+
+	err = xb_write(&msg, sizeof (msg));
+	if (err) {
+		mutex_exit(&xs_state.request_mutex);
+		return (err);
+	}
+
+	for (i = 0; i < num_vecs; i++) {
+		err = xb_write(iovec[i].iov_base, iovec[i].iov_len);
+		if (err) {
+			mutex_exit(&xs_state.request_mutex);
+			return (err);
+		}
+	}
+
+	err = read_reply(&msg, &reply_msg);
+
+	mutex_exit(&xs_state.request_mutex);
+
+	if (err)
+		return (err);
+
+	reply = reply_msg->un.reply.body;
+
+	if (reply_msg->hdr.type == XS_ERROR) {
+		err = get_error(reply);
+		kmem_free(reply, reply_msg->hdr.len + 1);
+		goto out;
+	}
+
+	if (len != NULL)
+		*len = reply_msg->hdr.len + 1;
+
+	ASSERT(reply_msg->hdr.type == type);
+
+	if (rval != NULL)
+		*rval = reply;
+	else
+		kmem_free(reply, reply_msg->hdr.len + 1);
+
+out:
+	kmem_free(reply_msg, sizeof (*reply_msg));
+	return (err);
+}
+
+/* Simplified version of xs_talkv: single message. */
+static int
+xs_single(xenbus_transaction_t t,
+			enum xsd_sockmsg_type type,
+			const char *string, void **ret,
+			unsigned int *len)
+{
+	iovec_t iovec;
+
+	iovec.iov_base = (char *)string;
+	iovec.iov_len = strlen(string) + 1;
+	return (xs_talkv(t, type, &iovec, 1, ret, len));
+}
+
+static unsigned int
+count_strings(const char *strings, unsigned int len)
+{
+	unsigned int num;
+	const char *p;
+
+	for (p = strings, num = 0; p < strings + len; p += strlen(p) + 1)
+		num++;
+
+	return (num);
+}
+
+/* Return the path to dir with /name appended. Buffer must be kmem_free()'ed */
+static char *
+join(const char *dir, const char *name)
+{
+	char *buffer;
+	size_t slashlen;
+
+	slashlen = streq(name, "") ? 0 : 1;
+	buffer = kmem_alloc(strlen(dir) + slashlen + strlen(name) + 1,
+	    KM_SLEEP);
+
+	(void) strcpy(buffer, dir);
+	if (slashlen != 0) {
+		(void) strcat(buffer, "/");
+		(void) strcat(buffer, name);
+	}
+	return (buffer);
+}
+
+static char **
+split(char *strings, unsigned int len, unsigned int *num)
+{
+	char *p, **ret;
+
+	/* Count the strings. */
+	if ((*num = count_strings(strings, len - 1)) == 0)
+		return (NULL);
+
+	/* Transfer to one big alloc for easy freeing. */
+	ret = kmem_alloc(*num * sizeof (char *) + (len - 1), KM_SLEEP);
+	(void) memcpy(&ret[*num], strings, len - 1);
+	kmem_free(strings, len);
+
+	strings = (char *)&ret[*num];
+	for (p = strings, *num = 0; p < strings + (len - 1);
+	    p += strlen(p) + 1) {
+		ret[(*num)++] = p;
+	}
+
+	return (ret);
+}
+
+char **
+xenbus_directory(xenbus_transaction_t t,
+			const char *dir, const char *node, unsigned int *num)
+{
+	char *strings, *path;
+	unsigned int len;
+	int err;
+
+	path = join(dir, node);
+	err = xs_single(t, XS_DIRECTORY, path, (void **)&strings, &len);
+	kmem_free(path, strlen(path) + 1);
+	if (err != 0 || strings == NULL) {
+		/* sigh, we lose error code info here */
+		*num = 0;
+		return (NULL);
+	}
+
+	return (split(strings, len, num));
+}
+
+/* Check if a path exists. Return 1 if it does. */
+int
+xenbus_exists(xenbus_transaction_t t, const char *dir, const char *node)
+{
+	char **d;
+	unsigned int dir_n;
+	int i, len;
+
+	d = xenbus_directory(t, dir, node, &dir_n);
+	if (d == NULL)
+		return (0);
+	for (i = 0, len = 0; i < dir_n; i++)
+		len += strlen(d[i]) + 1 + sizeof (char *);
+	kmem_free(d, len);
+	return (1);
+}
+
+/*
+ * Get the value of a single file.
+ * Returns a kmem_alloced value in retp: call kmem_free() on it after use.
+ * len indicates length in bytes.
+ */
+int
+xenbus_read(xenbus_transaction_t t,
+	    const char *dir, const char *node, void **retp, unsigned int *len)
+{
+	char *path;
+	int err;
+
+	path = join(dir, node);
+	err = xs_single(t, XS_READ, path, retp, len);
+	kmem_free(path, strlen(path) + 1);
+	return (err);
+}
+
+/*
+ * Write the value of a single file.
+ * Returns err on failure.
+ */
+int
+xenbus_write(xenbus_transaction_t t,
+		const char *dir, const char *node, const char *string)
+{
+	char *path;
+	iovec_t iovec[2];
+	int ret;
+
+	path = join(dir, node);
+
+	iovec[0].iov_base = (void *)path;
+	iovec[0].iov_len = strlen(path) + 1;
+	iovec[1].iov_base = (void *)string;
+	iovec[1].iov_len = strlen(string);
+
+	ret = xs_talkv(t, XS_WRITE, iovec, 2, NULL, NULL);
+	kmem_free(path, iovec[0].iov_len);
+	return (ret);
+}
+
+/* Create a new directory. */
+int
+xenbus_mkdir(xenbus_transaction_t t, const char *dir, const char *node)
+{
+	char *path;
+	int ret;
+
+	path = join(dir, node);
+	ret = xs_single(t, XS_MKDIR, path, NULL, NULL);
+	kmem_free(path, strlen(path) + 1);
+	return (ret);
+}
+
+/* Destroy a file or directory (directories must be empty). */
+int
+xenbus_rm(xenbus_transaction_t t, const char *dir, const char *node)
+{
+	char *path;
+	int ret;
+
+	path = join(dir, node);
+	ret = xs_single(t, XS_RM, path, NULL, NULL);
+	kmem_free(path, strlen(path) + 1);
+	return (ret);
+}
+
+/*
+ * Start a transaction: changes by others will not be seen during this
+ * transaction, and changes will not be visible to others until end.
+ */
+int
+xenbus_transaction_start(xenbus_transaction_t *t)
+{
+	void *id_str;
+	unsigned long id;
+	int err;
+	unsigned int len;
+
+	rw_enter(&xs_state.suspend_lock, RW_READER);
+
+	err = xs_single(XBT_NULL, XS_TRANSACTION_START, "", &id_str, &len);
+	if (err) {
+		rw_exit(&xs_state.suspend_lock);
+		return (err);
+	}
+
+	(void) ddi_strtoul((char *)id_str, NULL, 0, &id);
+	*t = (xenbus_transaction_t)id;
+	kmem_free(id_str, len);
+
+	return (0);
+}
+
+/*
+ * End a transaction.
+ * If abandon is true, transaction is discarded instead of committed.
+ */
+int
+xenbus_transaction_end(xenbus_transaction_t t, int abort)
+{
+	char abortstr[2];
+	int err;
+
+	if (abort)
+		(void) strcpy(abortstr, "F");
+	else
+		(void) strcpy(abortstr, "T");
+
+	err = xs_single(t, XS_TRANSACTION_END, abortstr, NULL, NULL);
+
+	rw_exit(&xs_state.suspend_lock);
+
+	return (err);
+}
+
+/*
+ * Single read and scanf: returns errno or 0.  This can only handle a single
+ * conversion specifier.
+ */
+/* SCANFLIKE4 */
+int
+xenbus_scanf(xenbus_transaction_t t,
+		const char *dir, const char *node, const char *fmt, ...)
+{
+	va_list ap;
+	int ret;
+	char *val;
+	unsigned int len;
+
+	ret = xenbus_read(t, dir, node, (void **)&val, &len);
+	if (ret)
+		return (ret);
+
+	va_start(ap, fmt);
+	if (vsscanf(val, fmt, ap) != 1)
+		ret = ERANGE;
+	va_end(ap);
+	kmem_free(val, len);
+	return (ret);
+}
+
+/* Single printf and write: returns errno or 0. */
+/* PRINTFLIKE4 */
+int
+xenbus_printf(xenbus_transaction_t t,
+		const char *dir, const char *node, const char *fmt, ...)
+{
+	va_list ap;
+	int ret;
+#define	PRINTF_BUFFER_SIZE 4096
+	char *printf_buffer;
+
+	printf_buffer = kmem_alloc(PRINTF_BUFFER_SIZE, KM_SLEEP);
+
+	va_start(ap, fmt);
+	ret = vsnprintf(printf_buffer, PRINTF_BUFFER_SIZE, fmt, ap);
+	va_end(ap);
+
+	ASSERT(ret <= PRINTF_BUFFER_SIZE-1);
+	ret = xenbus_write(t, dir, node, printf_buffer);
+
+	kmem_free(printf_buffer, PRINTF_BUFFER_SIZE);
+
+	return (ret);
+}
+
+
+/* Takes tuples of names, scanf-style args, and void **, NULL terminated. */
+int
+xenbus_gather(xenbus_transaction_t t, const char *dir, ...)
+{
+	va_list ap;
+	const char *name;
+	int ret = 0;
+	unsigned int len;
+
+	va_start(ap, dir);
+	while (ret == 0 && (name = va_arg(ap, char *)) != NULL) {
+		const char *fmt = va_arg(ap, char *);
+		void *result = va_arg(ap, void *);
+		char *p;
+
+		ret = xenbus_read(t, dir, name, (void **)&p, &len);
+		if (ret)
+			break;
+		if (fmt) {
+			ASSERT(result != NULL);
+			if (sscanf(p, fmt, result) != 1)
+				ret = EINVAL;
+			kmem_free(p, len);
+		} else
+			*(char **)result = p;
+	}
+	va_end(ap);
+	return (ret);
+}
+
+static int
+xs_watch(const char *path, const char *token)
+{
+	iovec_t iov[2];
+
+	iov[0].iov_base = (void *)path;
+	iov[0].iov_len = strlen(path) + 1;
+	iov[1].iov_base = (void *)token;
+	iov[1].iov_len = strlen(token) + 1;
+
+	return (xs_talkv(XBT_NULL, XS_WATCH, iov, 2, NULL, NULL));
+}
+
+static int
+xs_unwatch(const char *path, const char *token)
+{
+	iovec_t iov[2];
+
+	iov[0].iov_base = (char *)path;
+	iov[0].iov_len = strlen(path) + 1;
+	iov[1].iov_base = (char *)token;
+	iov[1].iov_len = strlen(token) + 1;
+
+	return (xs_talkv(XBT_NULL, XS_UNWATCH, iov, 2, NULL, NULL));
+}
+
+static struct xenbus_watch *
+find_watch(const char *token)
+{
+	struct xenbus_watch *i, *cmp;
+
+	(void) ddi_strtoul(token, NULL, 16, (unsigned long *)&cmp);
+
+	for (i = list_head(&watches); i != NULL; i = list_next(&watches, i))
+		if (i == cmp)
+			break;
+
+	return (i);
+}
+
+/* Register a xenstore state notify callback */
+int
+xs_register_xenbus_callback(void (*callback)(int))
+{
+	struct xenbus_notify *xbn, *xnp;
+
+	xbn = kmem_alloc(sizeof (struct xenbus_notify), KM_SLEEP);
+	xbn->notify_func = callback;
+	mutex_enter(&notify_list_lock);
+	/*
+	 * Make sure not already on the list
+	 */
+	xnp = list_head(&notify_list);
+	for (; xnp != NULL; xnp = list_next(&notify_list, xnp)) {
+		if (xnp->notify_func == callback) {
+			kmem_free(xbn, sizeof (struct xenbus_notify));
+			mutex_exit(&notify_list_lock);
+			return (EEXIST);
+		}
+	}
+	xnp = xbn;
+	list_insert_tail(&notify_list, xbn);
+done:
+	if (xenstore_up)
+		xnp->notify_func(XENSTORE_UP);
+	mutex_exit(&notify_list_lock);
+	return (0);
+}
+
+/*
+ * Notify clients of xenstore state
+ */
+static void
+do_notify_callbacks(void *arg)
+{
+	struct xenbus_notify *xnp;
+
+	mutex_enter(&notify_list_lock);
+	xnp = list_head(&notify_list);
+	for (; xnp != NULL; xnp = list_next(&notify_list, xnp)) {
+		xnp->notify_func((int)((uintptr_t)arg));
+	}
+	mutex_exit(&notify_list_lock);
+}
+
+void
+xs_notify_xenstore_up(void)
+{
+	xenstore_up = B_TRUE;
+	(void) taskq_dispatch(xenbus_taskq, do_notify_callbacks,
+	    (void *)XENSTORE_UP, 0);
+}
+
+void
+xs_notify_xenstore_down(void)
+{
+	xenstore_up = B_FALSE;
+	(void) taskq_dispatch(xenbus_taskq, do_notify_callbacks,
+	    (void *)XENSTORE_DOWN, 0);
+}
+
+/* Register callback to watch this node. */
+int
+register_xenbus_watch(struct xenbus_watch *watch)
+{
+	/* Pointer in ascii is the token. */
+	char token[sizeof (watch) * 2 + 1];
+	int err;
+
+	ASSERT(xenstore_up);
+	(void) snprintf(token, sizeof (token), "%lX", (long)watch);
+
+	rw_enter(&xs_state.suspend_lock, RW_READER);
+
+	mutex_enter(&watches_lock);
+	/*
+	 * May be re-registering a watch if xenstore daemon was restarted
+	 */
+	if (find_watch(token) == NULL)
+		list_insert_tail(&watches, watch);
+	mutex_exit(&watches_lock);
+
+	err = xs_watch(watch->node, token);
+
+	/* Ignore errors due to multiple registration. */
+	if ((err != 0) && (err != EEXIST)) {
+		mutex_enter(&watches_lock);
+		list_remove(&watches, watch);
+		mutex_exit(&watches_lock);
+	}
+
+	rw_exit(&xs_state.suspend_lock);
+
+	return (err);
+}
+
+static void
+free_stored_msg(struct xs_stored_msg *msg)
+{
+	int i, len = 0;
+
+	for (i = 0; i < msg->un.watch.vec_size; i++)
+		len += strlen(msg->un.watch.vec[i]) + 1 + sizeof (char *);
+	kmem_free(msg->un.watch.vec, len);
+	kmem_free(msg, sizeof (*msg));
+}
+
+void
+unregister_xenbus_watch(struct xenbus_watch *watch)
+{
+	struct xs_stored_msg *msg;
+	char token[sizeof (watch) * 2 + 1];
+	int err;
+
+	(void) snprintf(token, sizeof (token), "%lX", (long)watch);
+
+	rw_enter(&xs_state.suspend_lock, RW_READER);
+
+	mutex_enter(&watches_lock);
+	ASSERT(find_watch(token));
+	list_remove(&watches, watch);
+	mutex_exit(&watches_lock);
+
+	err = xs_unwatch(watch->node, token);
+	if (err)
+		cmn_err(CE_WARN, "XENBUS Failed to release watch %s: %d",
+		    watch->node, err);
+
+	rw_exit(&xs_state.suspend_lock);
+
+	/* Cancel pending watch events. */
+	mutex_enter(&watch_events_lock);
+	msg = list_head(&watch_events);
+
+	while (msg != NULL) {
+		struct xs_stored_msg *tmp = list_next(&watch_events, msg);
+		if (msg->un.watch.handle == watch) {
+			list_remove(&watch_events, msg);
+			free_stored_msg(msg);
+		}
+		msg = tmp;
+	}
+
+	mutex_exit(&watch_events_lock);
+
+	/* Flush any currently-executing callback, unless we are it. :-) */
+	if (mutex_owner(&xenwatch_mutex) != curthread) {
+		mutex_enter(&xenwatch_mutex);
+		mutex_exit(&xenwatch_mutex);
+	}
+}
+
+void
+xenbus_suspend(void)
+{
+	rw_enter(&xs_state.suspend_lock, RW_WRITER);
+	mutex_enter(&xs_state.request_mutex);
+
+	xb_suspend();
+}
+
+void
+xenbus_resume(void)
+{
+	struct xenbus_watch *watch;
+	char token[sizeof (watch) * 2 + 1];
+
+	mutex_exit(&xs_state.request_mutex);
+
+	xb_init();
+	xb_setup_intr();
+
+	/* No need for watches_lock: the suspend_lock is sufficient. */
+	for (watch = list_head(&watches); watch != NULL;
+	    watch = list_next(&watches, watch)) {
+		(void) snprintf(token, sizeof (token), "%lX", (long)watch);
+		(void) xs_watch(watch->node, token);
+	}
+
+	rw_exit(&xs_state.suspend_lock);
+}
+
+static void
+xenwatch_thread(void)
+{
+	struct xs_stored_msg *msg;
+
+	for (;;) {
+		mutex_enter(&watch_events_lock);
+		while (list_empty(&watch_events))
+			cv_wait(&watch_events_cv, &watch_events_lock);
+
+		mutex_enter(&xenwatch_mutex);
+
+		msg = list_head(&watch_events);
+		if (msg != NULL)
+			list_remove(&watch_events, msg);
+		mutex_exit(&watch_events_lock);
+
+		if (msg != NULL) {
+			msg->un.watch.handle->callback(
+			    msg->un.watch.handle,
+			    (const char **)msg->un.watch.vec,
+			    msg->un.watch.vec_size);
+			free_stored_msg(msg);
+		}
+
+		mutex_exit(&xenwatch_mutex);
+	}
+}
+
+static int
+process_msg(void)
+{
+	struct xs_stored_msg *msg;
+	char *body;
+	int err, mlen;
+
+	msg = kmem_alloc(sizeof (*msg), KM_SLEEP);
+
+	err = xb_read(&msg->hdr, sizeof (msg->hdr));
+	if (err) {
+		kmem_free(msg, sizeof (*msg));
+		return (err);
+	}
+
+	mlen = msg->hdr.len + 1;
+	body = kmem_alloc(mlen, KM_SLEEP);
+
+	err = xb_read(body, msg->hdr.len);
+	if (err) {
+		kmem_free(body, mlen);
+		kmem_free(msg, sizeof (*msg));
+		return (err);
+	}
+
+	body[mlen - 1] = '\0';
+
+	if (msg->hdr.type == XS_WATCH_EVENT) {
+		msg->un.watch.vec = split(body, msg->hdr.len + 1,
+		    &msg->un.watch.vec_size);
+		if (msg->un.watch.vec == NULL) {
+			kmem_free(msg, sizeof (*msg));
+			return (EIO);
+		}
+
+		mutex_enter(&watches_lock);
+		msg->un.watch.handle = find_watch(
+		    msg->un.watch.vec[XS_WATCH_TOKEN]);
+		if (msg->un.watch.handle != NULL) {
+			mutex_enter(&watch_events_lock);
+			list_insert_tail(&watch_events, msg);
+			cv_broadcast(&watch_events_cv);
+			mutex_exit(&watch_events_lock);
+		} else {
+			free_stored_msg(msg);
+		}
+		mutex_exit(&watches_lock);
+	} else {
+		msg->un.reply.body = body;
+		mutex_enter(&xs_state.reply_lock);
+		list_insert_tail(&xs_state.reply_list, msg);
+		mutex_exit(&xs_state.reply_lock);
+		cv_signal(&xs_state.reply_cv);
+	}
+
+	return (0);
+}
+
+static void
+xenbus_thread(void)
+{
+	int err;
+
+	for (; interrupts_unleashed != 0; ) {
+		err = process_msg();
+		if (err)
+			cmn_err(CE_WARN, "XENBUS error %d while reading "
+			    "message", err);
+	}
+}
+
+/*
+ * When setting up xenbus, dom0 and domU have to take different paths, which
+ * makes this code a little confusing. For dom0:
+ *
+ * xs_early_init - mutex init only
+ * xs_dom0_init - called on xenbus dev attach: set up our xenstore page and
+ * event channel; start xenbus threads for responding to interrupts.
+ *
+ * And for domU:
+ *
+ * xs_early_init - mutex init; set up our xenstore page and event channel
+ * xs_domu_init - installation of IRQ handler; start xenbus threads.
+ *
+ * We need an early init on domU so we can use xenbus in polled mode to
+ * discover devices, VCPUs etc.
+ *
+ * On resume, we use xb_init() and xb_setup_intr() to restore xenbus to a
+ * working state.
+ */
+
+void
+xs_early_init(void)
+{
+	list_create(&xs_state.reply_list, sizeof (struct xs_stored_msg),
+	    offsetof(struct xs_stored_msg, list));
+	list_create(&watch_events, sizeof (struct xs_stored_msg),
+	    offsetof(struct xs_stored_msg, list));
+	list_create(&watches, sizeof (struct xenbus_watch),
+	    offsetof(struct xenbus_watch, list));
+	list_create(&notify_list, sizeof (struct xenbus_notify),
+	    offsetof(struct xenbus_notify, list));
+	mutex_init(&xs_state.reply_lock, NULL, MUTEX_DEFAULT, NULL);
+	mutex_init(&xs_state.request_mutex, NULL, MUTEX_DEFAULT, NULL);
+	mutex_init(&notify_list_lock, NULL, MUTEX_DEFAULT, NULL);
+	rw_init(&xs_state.suspend_lock, NULL, RW_DEFAULT, NULL);
+	cv_init(&xs_state.reply_cv, NULL, CV_DEFAULT, NULL);
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		return;
+
+	xb_init();
+	xenstore_up = B_TRUE;
+}
+
+static void
+xs_thread_init(void)
+{
+	(void) thread_create(NULL, 0, xenwatch_thread, NULL, 0, &p0,
+	    TS_RUN, minclsyspri);
+	(void) thread_create(NULL, 0, xenbus_thread, NULL, 0, &p0,
+	    TS_RUN, minclsyspri);
+	xenbus_taskq = taskq_create("xenbus_taskq", 1,
+	    maxclsyspri - 1, 1, 1, TASKQ_PREPOPULATE);
+	ASSERT(xenbus_taskq != NULL);
+}
+
+void
+xs_domu_init(void)
+{
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		return;
+
+	/*
+	 * Add interrupt handler for xenbus now, must wait till after
+	 * psm module is loaded.  All use of xenbus is in polled mode
+	 * until xs_init is called since it is what kicks off the xs
+	 * server threads.
+	 */
+	xs_thread_init();
+	xb_setup_intr();
+}
+
+
+void
+xs_dom0_init(void)
+{
+	static boolean_t initialized = B_FALSE;
+
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+
+	/*
+	 * The xenbus driver might be re-attaching.
+	 */
+	if (initialized)
+		return;
+
+	xb_init();
+	xs_thread_init();
+	xb_setup_intr();
+
+	initialized = B_TRUE;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xencons.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1654 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
+/*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
+/*	  All Rights Reserved					*/
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ *
+ * Copyright (c) 2004 Christian Limpach.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. This section intentionally left blank.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Section 3 of the above license was updated in response to bug 6379571.
+ */
+
+/*
+ * Hypervisor virtual console driver
+ */
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/signal.h>
+#include <sys/stream.h>
+#include <sys/termio.h>
+#include <sys/errno.h>
+#include <sys/file.h>
+#include <sys/cmn_err.h>
+#include <sys/stropts.h>
+#include <sys/strsubr.h>
+#include <sys/strtty.h>
+#include <sys/debug.h>
+#include <sys/kbio.h>
+#include <sys/cred.h>
+#include <sys/stat.h>
+#include <sys/consdev.h>
+#include <sys/mkdev.h>
+#include <sys/kmem.h>
+#include <sys/cred.h>
+#include <sys/strsun.h>
+#ifdef DEBUG
+#include <sys/promif.h>
+#endif
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/sunndi.h>
+#include <sys/policy.h>
+#include <sys/atomic.h>
+#include <sys/psm.h>
+#include <xen/public/io/console.h>
+
+#include "xencons.h"
+
+#include <sys/hypervisor.h>
+#include <sys/evtchn_impl.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+
+#ifdef DEBUG
+#define	XENCONS_DEBUG_INIT	0x0001	/* msgs during driver initialization. */
+#define	XENCONS_DEBUG_INPUT	0x0002	/* characters received during int. */
+#define	XENCONS_DEBUG_EOT	0x0004	/* msgs when wait for xmit to finish. */
+#define	XENCONS_DEBUG_CLOSE	0x0008	/* msgs when driver open/close called */
+#define	XENCONS_DEBUG_PROCS	0x0020	/* each proc name as it is entered. */
+#define	XENCONS_DEBUG_OUT	0x0100	/* msgs about output events. */
+#define	XENCONS_DEBUG_BUSY	0x0200	/* msgs when xmit is enabled/disabled */
+#define	XENCONS_DEBUG_MODEM	0x0400	/* msgs about modem status & control. */
+#define	XENCONS_DEBUG_MODM2	0x0800	/* msgs about modem status & control. */
+#define	XENCONS_DEBUG_IOCTL	0x1000	/* Output msgs about ioctl messages. */
+#define	XENCONS_DEBUG_CHIP	0x2000	/* msgs about chip identification. */
+#define	XENCONS_DEBUG_SFLOW	0x4000	/* msgs when S/W flowcontrol active */
+#define	XENCONS_DEBUG(x) (debug & (x))
+static int debug  = 0;
+#else
+#define	XENCONS_DEBUG(x) B_FALSE
+#endif
+
+#define	XENCONS_WBUFSIZE	4096
+
+static boolean_t abort_charseq_recognize(uchar_t);
+
+/* The async interrupt entry points */
+static void	xcasync_ioctl(struct asyncline *, queue_t *, mblk_t *);
+static void	xcasync_reioctl(void *);
+static void	xcasync_start(struct asyncline *);
+static void	xenconsputchar(cons_polledio_arg_t, uchar_t);
+static int	xenconsgetchar(cons_polledio_arg_t);
+static boolean_t	xenconsischar(cons_polledio_arg_t);
+
+static uint_t	xenconsintr(caddr_t);
+static uint_t	xenconsintr_priv(caddr_t);
+/*PRINTFLIKE2*/
+static void	xenconserror(int, const char *, ...) __KPRINTFLIKE(2);
+static void	xencons_soft_state_free(struct xencons *);
+static boolean_t
+xcasync_flowcontrol_sw_input(struct xencons *, async_flowc_action, int);
+static void
+xcasync_flowcontrol_sw_output(struct xencons *, async_flowc_action);
+
+void		*xencons_soft_state;
+char		*xencons_wbuf;
+struct xencons	*xencons_console;
+
+static void
+xenconssetup_avintr(struct xencons *xcp, int attach)
+{
+	/*
+	 * On xen, CPU 0 always exists and can't be taken offline,
+	 * so binding this thread to it should always succeed.
+	 */
+	mutex_enter(&cpu_lock);
+	thread_affinity_set(curthread, 0);
+	mutex_exit(&cpu_lock);
+
+	if (attach) {
+		/* Setup our interrupt binding. */
+		(void) add_avintr(NULL, IPL_CONS, (avfunc)xenconsintr_priv,
+		    "xencons", xcp->console_irq, (caddr_t)xcp, NULL, NULL,
+		    xcp->dip);
+	} else {
+		/*
+		 * Cleanup interrupt configuration.  Note that the framework
+		 * _should_ ensure that when rem_avintr() returns the interrupt
+		 * service routine is not currently executing and that it won't
+		 * be invoked again.
+		 */
+		(void) rem_avintr(NULL, IPL_CONS, (avfunc)xenconsintr_priv,
+		    xcp->console_irq);
+	}
+
+	/* Notify our caller that we're done. */
+	mutex_enter(&xcp->excl);
+	cv_signal(&xcp->excl_cv);
+	mutex_exit(&xcp->excl);
+
+	/* Clear our binding to CPU 0 */
+	thread_affinity_clear(curthread);
+
+}
+
+static void
+xenconssetup_add_avintr(struct xencons *xcp)
+{
+	xenconssetup_avintr(xcp, B_TRUE);
+}
+
+static void
+xenconssetup_rem_avintr(struct xencons *xcp)
+{
+	xenconssetup_avintr(xcp, B_FALSE);
+}
+
+static int
+xenconsdetach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	int instance;
+	struct xencons *xcp;
+
+	if (cmd != DDI_DETACH && cmd != DDI_SUSPEND)
+		return (DDI_FAILURE);
+
+	if (cmd == DDI_SUSPEND) {
+		ddi_remove_intr(devi, 0, NULL);
+		return (DDI_SUCCESS);
+	}
+
+	/*
+	 * We should never try to detach the console driver on a domU
+	 * because it should always be held open
+	 */
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		return (DDI_FAILURE);
+
+	instance = ddi_get_instance(devi);	/* find out which unit */
+
+	xcp = ddi_get_soft_state(xencons_soft_state, instance);
+	if (xcp == NULL)
+		return (DDI_FAILURE);
+
+	/*
+	 * Cleanup our interrupt bindings.  For more info on why we
+	 * do this in a seperate thread, see the comments for when we
+	 * setup the interrupt bindings.
+	 */
+	xencons_console = NULL;
+	mutex_enter(&xcp->excl);
+	(void) taskq_dispatch(system_taskq,
+	    (void (*)(void *))xenconssetup_rem_avintr, xcp, TQ_SLEEP);
+	cv_wait(&xcp->excl_cv, &xcp->excl);
+	mutex_exit(&xcp->excl);
+
+	/* remove all minor device node(s) for this device */
+	ddi_remove_minor_node(devi, NULL);
+
+	/* free up state */
+	xencons_soft_state_free(xcp);
+	kmem_free(xencons_wbuf, XENCONS_WBUFSIZE);
+
+	DEBUGNOTE1(XENCONS_DEBUG_INIT, "xencons%d: shutdown complete",
+	    instance);
+	return (DDI_SUCCESS);
+}
+
+static void
+xenconssetup(struct xencons *xcp)
+{
+	xcp->ifp = (volatile struct xencons_interface *)HYPERVISOR_console_page;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		xencons_wbuf = kmem_alloc(XENCONS_WBUFSIZE, KM_SLEEP);
+
+		/*
+		 * Activate the xen console virq.  Note that xen requires
+		 * that VIRQs be bound to CPU 0 when first created.
+		 */
+		xcp->console_irq = ec_bind_virq_to_irq(VIRQ_CONSOLE, 0);
+
+		/*
+		 * Ok.  This is kinda ugly.  We want to register an
+		 * interrupt handler for the xen console virq, but
+		 * virq's are xen sepcific and currently the DDI doesn't
+		 * support binding to them.  So instead we need to use
+		 * add_avintr().  So to make things more complicated,
+		 * we already had to bind the xen console VIRQ to CPU 0,
+		 * and add_avintr() needs to be invoked on the same CPU
+		 * where the VIRQ is bound, in this case on CPU 0.  We
+		 * could just temporarily bind ourselves to CPU 0, but
+		 * we don't want to do that since this attach thread
+		 * could have been invoked in a user thread context,
+		 * in which case this thread could already have some
+		 * pre-existing cpu binding.  So to avoid changing our
+		 * cpu binding we're going to use a taskq thread that
+		 * will bind to CPU 0 and register our interrupts
+		 * handler for us.
+		 */
+		mutex_enter(&xcp->excl);
+		(void) taskq_dispatch(system_taskq,
+		    (void (*)(void *))xenconssetup_add_avintr, xcp, TQ_SLEEP);
+		cv_wait(&xcp->excl_cv, &xcp->excl);
+		mutex_exit(&xcp->excl);
+	} else {
+		(void) xvdi_alloc_evtchn(xcp->dip);
+		(void) ddi_add_intr(xcp->dip, 0, NULL, NULL, xenconsintr,
+		    (caddr_t)xcp);
+		xcp->evtchn = xvdi_get_evtchn(xcp->dip);
+	}
+}
+
+static int
+xenconsattach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	int instance = ddi_get_instance(devi);
+	struct xencons *xcp;
+	int ret;
+
+	/* There can be only one. */
+	if (instance != 0)
+		return (DDI_FAILURE);
+
+	switch (cmd) {
+	case DDI_RESUME:
+		xcp = xencons_console;
+		xenconssetup(xcp);
+		return (DDI_SUCCESS);
+	case DDI_ATTACH:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	ret = ddi_soft_state_zalloc(xencons_soft_state, instance);
+	if (ret != DDI_SUCCESS)
+		return (DDI_FAILURE);
+	xcp = ddi_get_soft_state(xencons_soft_state, instance);
+	ASSERT(xcp != NULL);	/* can't fail - we only just allocated it */
+
+	/*
+	 * Set up the other components of the xencons structure for this port.
+	 */
+	xcp->unit = instance;
+	xcp->dip = devi;
+
+	/* Fill in the polled I/O structure. */
+	xcp->polledio.cons_polledio_version = CONSPOLLEDIO_V0;
+	xcp->polledio.cons_polledio_argument = (cons_polledio_arg_t)xcp;
+	xcp->polledio.cons_polledio_putchar = xenconsputchar;
+	xcp->polledio.cons_polledio_getchar = xenconsgetchar;
+	xcp->polledio.cons_polledio_ischar = xenconsischar;
+	xcp->polledio.cons_polledio_enter = NULL;
+	xcp->polledio.cons_polledio_exit = NULL;
+
+	/*
+	 * Initializes the asyncline structure which has TTY protocol-private
+	 * data before enabling interrupts.
+	 */
+	xcp->priv = kmem_zalloc(sizeof (struct asyncline), KM_SLEEP);
+	xcp->priv->async_common = xcp;
+	cv_init(&xcp->priv->async_flags_cv, NULL, CV_DRIVER, NULL);
+
+	/* Initialize mutexes before accessing the interface. */
+	mutex_init(&xcp->excl, NULL, MUTEX_DRIVER, NULL);
+	cv_init(&xcp->excl_cv, NULL, CV_DEFAULT, NULL);
+
+	/* create minor device node for this device */
+	ret = ddi_create_minor_node(devi, "xencons", S_IFCHR, instance,
+	    DDI_NT_SERIAL, NULL);
+	if (ret != DDI_SUCCESS) {
+		ddi_remove_minor_node(devi, NULL);
+		xencons_soft_state_free(xcp);
+		return (DDI_FAILURE);
+	}
+
+	ddi_report_dev(devi);
+	xencons_console = xcp;
+	xenconssetup(xcp);
+	DEBUGCONT1(XENCONS_DEBUG_INIT, "xencons%dattach: done\n", instance);
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+static int
+xenconsinfo(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg,
+	void **result)
+{
+	dev_t dev = (dev_t)arg;
+	int instance, error;
+	struct xencons *xcp;
+
+	instance = getminor(dev);
+	xcp = ddi_get_soft_state(xencons_soft_state, instance);
+	if (xcp == NULL)
+		return (DDI_FAILURE);
+
+	switch (infocmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		if (xcp->dip == NULL)
+			error = DDI_FAILURE;
+		else {
+			*result = (void *) xcp->dip;
+			error = DDI_SUCCESS;
+		}
+		break;
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = (void *)(intptr_t)instance;
+		error = DDI_SUCCESS;
+		break;
+	default:
+		error = DDI_FAILURE;
+	}
+	return (error);
+}
+
+/* xencons_soft_state_free - local wrapper for ddi_soft_state_free(9F) */
+
+static void
+xencons_soft_state_free(struct xencons *xcp)
+{
+	mutex_destroy(&xcp->excl);
+	cv_destroy(&xcp->excl_cv);
+	kmem_free(xcp->priv, sizeof (struct asyncline));
+	ddi_soft_state_free(xencons_soft_state, xcp->unit);
+}
+
+/*ARGSUSED*/
+static int
+xenconsopen(queue_t *rq, dev_t *dev, int flag, int sflag, cred_t *cr)
+{
+	struct xencons	*xcp;
+	struct asyncline *async;
+	int		unit;
+
+	unit = getminor(*dev);
+	DEBUGCONT1(XENCONS_DEBUG_CLOSE, "xencons%dopen\n", unit);
+	xcp = ddi_get_soft_state(xencons_soft_state, unit);
+	if (xcp == NULL)
+		return (ENXIO);		/* unit not configured */
+	async = xcp->priv;
+	mutex_enter(&xcp->excl);
+
+again:
+
+	if ((async->async_flags & ASYNC_ISOPEN) == 0) {
+		async->async_ttycommon.t_iflag = 0;
+		async->async_ttycommon.t_iocpending = NULL;
+		async->async_ttycommon.t_size.ws_row = 0;
+		async->async_ttycommon.t_size.ws_col = 0;
+		async->async_ttycommon.t_size.ws_xpixel = 0;
+		async->async_ttycommon.t_size.ws_ypixel = 0;
+		async->async_dev = *dev;
+		async->async_wbufcid = 0;
+
+		async->async_startc = CSTART;
+		async->async_stopc = CSTOP;
+	} else if ((async->async_ttycommon.t_flags & TS_XCLUDE) &&
+	    secpolicy_excl_open(cr) != 0) {
+		mutex_exit(&xcp->excl);
+		return (EBUSY);
+	}
+
+	async->async_ttycommon.t_flags |= TS_SOFTCAR;
+
+	async->async_ttycommon.t_readq = rq;
+	async->async_ttycommon.t_writeq = WR(rq);
+	rq->q_ptr = WR(rq)->q_ptr = (caddr_t)async;
+	mutex_exit(&xcp->excl);
+	/*
+	 * Caution here -- qprocson sets the pointers that are used by canput
+	 * called by xencons_rxint.  ASYNC_ISOPEN must *not* be set until those
+	 * pointers are valid.
+	 */
+	qprocson(rq);
+	async->async_flags |= ASYNC_ISOPEN;
+	DEBUGCONT1(XENCONS_DEBUG_INIT, "asy%dopen: done\n", unit);
+	return (0);
+}
+
+
+/*
+ * Close routine.
+ */
+/*ARGSUSED*/
+static int
+xenconsclose(queue_t *q, int flag, cred_t *credp)
+{
+	struct asyncline *async;
+	struct xencons	 *xcp;
+#ifdef DEBUG
+	int instance;
+#endif
+
+	async = (struct asyncline *)q->q_ptr;
+	ASSERT(async != NULL);
+	xcp = async->async_common;
+#ifdef DEBUG
+	instance = xcp->unit;
+	DEBUGCONT1(XENCONS_DEBUG_CLOSE, "xencons%dclose\n", instance);
+#endif
+
+	mutex_enter(&xcp->excl);
+	async->async_flags |= ASYNC_CLOSING;
+
+	async->async_ocnt = 0;
+	if (async->async_xmitblk != NULL)
+		freeb(async->async_xmitblk);
+	async->async_xmitblk = NULL;
+
+out:
+	ttycommon_close(&async->async_ttycommon);
+
+	/*
+	 * Cancel outstanding "bufcall" request.
+	 */
+	if (async->async_wbufcid != 0) {
+		unbufcall(async->async_wbufcid);
+		async->async_wbufcid = 0;
+	}
+
+	/* Note that qprocsoff can't be done until after interrupts are off */
+	qprocsoff(q);
+	q->q_ptr = WR(q)->q_ptr = NULL;
+	async->async_ttycommon.t_readq = NULL;
+	async->async_ttycommon.t_writeq = NULL;
+
+	/*
+	 * Clear out device state, except persistant device property flags.
+	 */
+	async->async_flags = 0;
+	cv_broadcast(&async->async_flags_cv);
+	mutex_exit(&xcp->excl);
+
+	DEBUGCONT1(XENCONS_DEBUG_CLOSE, "xencons%dclose: done\n", instance);
+	return (0);
+}
+
+#define	INBUF_IX(ix, ifp)	(DOMAIN_IS_INITDOMAIN(xen_info) ? \
+	(ix) : MASK_XENCONS_IDX((ix), (ifp)->in))
+
+/*
+ * Handle a xen console rx interrupt.
+ */
+/*ARGSUSED*/
+static void
+xencons_rxint(struct xencons *xcp)
+{
+	struct asyncline *async;
+	short	cc;
+	mblk_t	*bp;
+	queue_t	*q;
+	uchar_t	c, buf[16];
+	uchar_t	*cp;
+	tty_common_t	*tp;
+	int instance;
+	volatile struct xencons_interface *ifp;
+	XENCONS_RING_IDX cons, prod;
+
+	DEBUGCONT0(XENCONS_DEBUG_PROCS, "xencons_rxint\n");
+
+loop:
+	mutex_enter(&xcp->excl);
+
+	/* sanity check if we should bail */
+	if (xencons_console == NULL) {
+		mutex_exit(&xcp->excl);
+		goto out;
+	}
+
+	async = xcp->priv;
+	instance = xcp->unit;
+	ifp = xcp->ifp;
+	tp = &async->async_ttycommon;
+	q = tp->t_readq;
+
+	if (async->async_flags & ASYNC_OUT_FLW_RESUME) {
+		xcasync_start(async);
+		async->async_flags &= ~ASYNC_OUT_FLW_RESUME;
+	}
+
+	/*
+	 * If data is available, send it up the stream if there's
+	 * somebody listening.
+	 */
+	if (!(async->async_flags & ASYNC_ISOPEN)) {
+		mutex_exit(&xcp->excl);
+		goto out;
+	}
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		cc = HYPERVISOR_console_io(CONSOLEIO_read, 16, (char *)buf);
+		cp = buf;
+		cons = 0;
+	} else {
+		cons = ifp->in_cons;
+		prod = ifp->in_prod;
+
+		cc = prod - cons;
+		cp = (uchar_t *)ifp->in;
+	}
+	if (cc <= 0) {
+		mutex_exit(&xcp->excl);
+		goto out;
+	}
+
+	/*
+	 * Check for character break sequence.
+	 *
+	 * Note that normally asy drivers only check for a character sequence
+	 * if abort_enable == KIOCABORTALTERNATE and otherwise use a break
+	 * sensed on the line to do an abort_sequence_enter.  Since the
+	 * hypervisor does not use a real chip for the console we default to
+	 * using the alternate sequence.
+	 */
+	if ((abort_enable == KIOCABORTENABLE) && (xcp->flags & ASY_CONSOLE)) {
+		XENCONS_RING_IDX i;
+
+		for (i = 0; i < cc; i++) {
+			c = cp[INBUF_IX(cons + i, ifp)];
+			if (abort_charseq_recognize(c)) {
+				/*
+				 * Eat abort seg, it's not a valid debugger
+				 * command.
+				 */
+				if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+					membar_producer();
+					ifp->in_cons = cons + i;
+				} else {
+					cons += i;
+				}
+				abort_sequence_enter((char *)NULL);
+				/*
+				 * Back from debugger, resume normal processing
+				 */
+				mutex_exit(&xcp->excl);
+				goto loop;
+			}
+		}
+	}
+
+	if (!canput(q)) {
+		if (!(async->async_inflow_source & IN_FLOW_STREAMS)) {
+			(void) xcasync_flowcontrol_sw_input(xcp, FLOW_STOP,
+			    IN_FLOW_STREAMS);
+		}
+		mutex_exit(&xcp->excl);
+		goto out;
+	}
+	if (async->async_inflow_source & IN_FLOW_STREAMS) {
+		(void) xcasync_flowcontrol_sw_input(xcp, FLOW_START,
+		    IN_FLOW_STREAMS);
+	}
+	DEBUGCONT2(XENCONS_DEBUG_INPUT,
+	    "xencons%d_rxint: %d char(s) in queue.\n", instance, cc);
+	if (!(bp = allocb(cc, BPRI_MED))) {
+		mutex_exit(&xcp->excl);
+		ttycommon_qfull(&async->async_ttycommon, q);
+		goto out;
+	}
+	do {
+		c = cp[INBUF_IX(cons++, ifp)];
+		/*
+		 * We handle XON/XOFF char if IXON is set,
+		 * but if received char is _POSIX_VDISABLE,
+		 * we left it to the up level module.
+		 */
+		if (tp->t_iflag & IXON) {
+			if ((c == async->async_stopc) &&
+			    (c != _POSIX_VDISABLE)) {
+				xcasync_flowcontrol_sw_output(xcp, FLOW_STOP);
+				continue;
+			} else if ((c == async->async_startc) &&
+			    (c != _POSIX_VDISABLE)) {
+				xcasync_flowcontrol_sw_output(xcp, FLOW_START);
+				continue;
+			}
+			if ((tp->t_iflag & IXANY) &&
+			    (async->async_flags & ASYNC_SW_OUT_FLW)) {
+				xcasync_flowcontrol_sw_output(xcp, FLOW_START);
+			}
+		}
+		*bp->b_wptr++ = c;
+	} while (--cc);
+	membar_producer();
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		ifp->in_cons = cons;
+	mutex_exit(&xcp->excl);
+	if (bp->b_wptr > bp->b_rptr) {
+		if (!canput(q)) {
+			xenconserror(CE_NOTE, "xencons%d: local queue full",
+			    instance);
+			freemsg(bp);
+		} else
+			(void) putq(q, bp);
+	} else
+		freemsg(bp);
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		goto loop;
+out:
+	DEBUGCONT1(XENCONS_DEBUG_PROCS, "xencons%d_rxint: done\n", instance);
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		ec_notify_via_evtchn(xcp->evtchn);
+}
+
+
+/*
+ * Handle a xen console tx interrupt.
+ */
+/*ARGSUSED*/
+static void
+xencons_txint(struct xencons *xcp)
+{
+	struct asyncline *async;
+
+	DEBUGCONT0(XENCONS_DEBUG_PROCS, "xencons_txint\n");
+
+	/*
+	 * prevent recursive entry
+	 */
+	if (mutex_owner(&xcp->excl) == curthread) {
+		goto out;
+	}
+
+	mutex_enter(&xcp->excl);
+	if (xencons_console == NULL) {
+		mutex_exit(&xcp->excl);
+		goto out;
+	}
+
+	/* make sure the device is open */
+	async = xcp->priv;
+	if ((async->async_flags & ASYNC_ISOPEN) != 0)
+		xcasync_start(async);
+
+	mutex_exit(&xcp->excl);
+out:
+	DEBUGCONT0(XENCONS_DEBUG_PROCS, "xencons_txint: done\n");
+}
+
+
+/*
+ * Get an event when input ring becomes not empty or output ring becomes not
+ * full.
+ */
+static uint_t
+xenconsintr(caddr_t arg)
+{
+	struct xencons *xcp = (struct xencons *)arg;
+	volatile struct xencons_interface *ifp = xcp->ifp;
+
+	if (ifp->in_prod != ifp->in_cons)
+		xencons_rxint(xcp);
+	if (ifp->out_prod - ifp->out_cons < sizeof (ifp->out))
+		xencons_txint(xcp);
+	return (DDI_INTR_CLAIMED);
+}
+
+/*
+ * Console interrupt routine for priviliged domains
+ */
+static uint_t
+xenconsintr_priv(caddr_t arg)
+{
+	struct xencons *xcp = (struct xencons *)arg;
+
+	xencons_rxint(xcp);
+	xencons_txint(xcp);
+	return (DDI_INTR_CLAIMED);
+}
+
+/*
+ * Start output on a line, unless it's busy, frozen, or otherwise.
+ */
+/*ARGSUSED*/
+static void
+xcasync_start(struct asyncline *async)
+{
+	struct xencons *xcp = async->async_common;
+	int cc;
+	queue_t *q;
+	mblk_t *bp;
+	int	len, space, blen;
+	mblk_t *nbp;
+
+#ifdef DEBUG
+	int instance = xcp->unit;
+
+	DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_nstart\n", instance);
+#endif
+	ASSERT(mutex_owned(&xcp->excl));
+
+	/*
+	 * Check only pended sw input flow control.
+	 */
+domore:
+	(void) xcasync_flowcontrol_sw_input(xcp, FLOW_CHECK, IN_FLOW_NULL);
+
+	if ((q = async->async_ttycommon.t_writeq) == NULL) {
+		return;	/* not attached to a stream */
+	}
+
+	for (;;) {
+		if ((bp = getq(q)) == NULL)
+			return;	/* no data to transmit */
+
+		/*
+		 * We have a message block to work on.
+		 * Check whether it's a break, a delay, or an ioctl (the latter
+		 * occurs if the ioctl in question was waiting for the output
+		 * to drain).  If it's one of those, process it immediately.
+		 */
+		switch (bp->b_datap->db_type) {
+
+		case M_IOCTL:
+			/*
+			 * This ioctl was waiting for the output ahead of
+			 * it to drain; obviously, it has.  Do it, and
+			 * then grab the next message after it.
+			 */
+			mutex_exit(&xcp->excl);
+			xcasync_ioctl(async, q, bp);
+			mutex_enter(&xcp->excl);
+			continue;
+		}
+
+		while (bp != NULL && (cc = bp->b_wptr - bp->b_rptr) == 0) {
+			nbp = bp->b_cont;
+			freeb(bp);
+			bp = nbp;
+		}
+		if (bp != NULL)
+			break;
+	}
+
+	/*
+	 * We have data to transmit.  If output is stopped, put
+	 * it back and try again later.
+	 */
+	if (async->async_flags & (ASYNC_SW_OUT_FLW | ASYNC_STOPPED)) {
+		(void) putbq(q, bp);
+		return;
+	}
+
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		len = 0;
+		space = XENCONS_WBUFSIZE;
+		while (bp != NULL && space) {
+			blen = bp->b_wptr - bp->b_rptr;
+			cc = min(blen, space);
+			bcopy(bp->b_rptr, &xencons_wbuf[len], cc);
+			bp->b_rptr += cc;
+			if (cc == blen) {
+				nbp = bp->b_cont;
+				freeb(bp);
+				bp = nbp;
+			}
+			space -= cc;
+			len += cc;
+		}
+		mutex_exit(&xcp->excl);
+		(void) HYPERVISOR_console_io(CONSOLEIO_write, len,
+		    xencons_wbuf);
+		mutex_enter(&xcp->excl);
+		if (bp != NULL)
+			(void) putbq(q, bp); /* not done with this msg yet */
+		/*
+		 * There are no completion interrupts when using the
+		 * HYPERVISOR_console_io call to write console data
+		 * so we loop here till we have sent all the data to the
+		 * hypervisor.
+		 */
+		goto domore;
+	} else {
+		volatile struct xencons_interface *ifp = xcp->ifp;
+		XENCONS_RING_IDX cons, prod;
+
+		cons = ifp->out_cons;
+		prod = ifp->out_prod;
+		membar_enter();
+		while (bp != NULL && ((prod - cons) < sizeof (ifp->out))) {
+			ifp->out[MASK_XENCONS_IDX(prod++, ifp->out)] =
+			    *bp->b_rptr++;
+			if (bp->b_rptr == bp->b_wptr) {
+				nbp = bp->b_cont;
+				freeb(bp);
+				bp = nbp;
+			}
+		}
+		membar_producer();
+		ifp->out_prod = prod;
+		ec_notify_via_evtchn(xcp->evtchn);
+		if (bp != NULL)
+			(void) putbq(q, bp); /* not done with this msg yet */
+	}
+}
+
+
+/*
+ * Process an "ioctl" message sent down to us.
+ * Note that we don't need to get any locks until we are ready to access
+ * the hardware.  Nothing we access until then is going to be altered
+ * outside of the STREAMS framework, so we should be safe.
+ */
+static void
+xcasync_ioctl(struct asyncline *async, queue_t *wq, mblk_t *mp)
+{
+	struct xencons *xcp = async->async_common;
+	tty_common_t  *tp = &async->async_ttycommon;
+	struct iocblk *iocp;
+	unsigned datasize;
+	int error = 0;
+
+#ifdef DEBUG
+	int instance = xcp->unit;
+
+	DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_ioctl\n", instance);
+#endif
+
+	if (tp->t_iocpending != NULL) {
+		/*
+		 * We were holding an "ioctl" response pending the
+		 * availability of an "mblk" to hold data to be passed up;
+		 * another "ioctl" came through, which means that "ioctl"
+		 * must have timed out or been aborted.
+		 */
+		freemsg(async->async_ttycommon.t_iocpending);
+		async->async_ttycommon.t_iocpending = NULL;
+	}
+
+	iocp = (struct iocblk *)mp->b_rptr;
+
+	/*
+	 * For TIOCMGET and the PPS ioctls, do NOT call ttycommon_ioctl()
+	 * because this function frees up the message block (mp->b_cont) that
+	 * contains the user location where we pass back the results.
+	 *
+	 * Similarly, CONSOPENPOLLEDIO needs ioc_count, which ttycommon_ioctl
+	 * zaps.  We know that ttycommon_ioctl doesn't know any CONS*
+	 * ioctls, so keep the others safe too.
+	 */
+	DEBUGCONT2(XENCONS_DEBUG_IOCTL, "async%d_ioctl: %s\n",
+	    instance,
+	    iocp->ioc_cmd == TIOCMGET ? "TIOCMGET" :
+	    iocp->ioc_cmd == TIOCMSET ? "TIOCMSET" :
+	    iocp->ioc_cmd == TIOCMBIS ? "TIOCMBIS" :
+	    iocp->ioc_cmd == TIOCMBIC ? "TIOCMBIC" : "other");
+
+	switch (iocp->ioc_cmd) {
+	case TIOCMGET:
+	case TIOCGPPS:
+	case TIOCSPPS:
+	case TIOCGPPSEV:
+	case CONSOPENPOLLEDIO:
+	case CONSCLOSEPOLLEDIO:
+	case CONSSETABORTENABLE:
+	case CONSGETABORTENABLE:
+		error = -1; /* Do Nothing */
+		break;
+	default:
+
+		/*
+		 * The only way in which "ttycommon_ioctl" can fail is if the
+		 * "ioctl" requires a response containing data to be returned
+		 * to the user, and no mblk could be allocated for the data.
+		 * No such "ioctl" alters our state.  Thus, we always go ahead
+		 * and do any state-changes the "ioctl" calls for.  If we
+		 * couldn't allocate the data, "ttycommon_ioctl" has stashed
+		 * the "ioctl" away safely, so we just call "bufcall" to
+		 * request that we be called back when we stand a better
+		 * chance of allocating the data.
+		 */
+		if ((datasize = ttycommon_ioctl(tp, wq, mp, &error)) != 0) {
+			if (async->async_wbufcid)
+				unbufcall(async->async_wbufcid);
+			async->async_wbufcid = bufcall(datasize, BPRI_HI,
+			    (void (*)(void *)) xcasync_reioctl,
+			    (void *)(intptr_t)async->async_common->unit);
+			return;
+		}
+	}
+
+	mutex_enter(&xcp->excl);
+
+	if (error == 0) {
+		/*
+		 * "ttycommon_ioctl" did most of the work; we just use the
+		 * data it set up.
+		 */
+		switch (iocp->ioc_cmd) {
+
+		case TCSETS:
+		case TCSETSF:
+		case TCSETSW:
+		case TCSETA:
+		case TCSETAW:
+		case TCSETAF:
+			break;
+		}
+	} else if (error < 0) {
+		/*
+		 * "ttycommon_ioctl" didn't do anything; we process it here.
+		 */
+		error = 0;
+		switch (iocp->ioc_cmd) {
+
+		case TCSBRK:
+			error = miocpullup(mp, sizeof (int));
+			break;
+
+		case TIOCSBRK:
+			mioc2ack(mp, NULL, 0, 0);
+			break;
+
+		case TIOCCBRK:
+			mioc2ack(mp, NULL, 0, 0);
+			break;
+
+		case CONSOPENPOLLEDIO:
+			error = miocpullup(mp, sizeof (cons_polledio_arg_t));
+			if (error != 0)
+				break;
+
+			*(cons_polledio_arg_t *)mp->b_cont->b_rptr =
+			    (cons_polledio_arg_t)&xcp->polledio;
+
+			mp->b_datap->db_type = M_IOCACK;
+			break;
+
+		case CONSCLOSEPOLLEDIO:
+			mp->b_datap->db_type = M_IOCACK;
+			iocp->ioc_error = 0;
+			iocp->ioc_rval = 0;
+			break;
+
+		case CONSSETABORTENABLE:
+			error = secpolicy_console(iocp->ioc_cr);
+			if (error != 0)
+				break;
+
+			if (iocp->ioc_count != TRANSPARENT) {
+				error = EINVAL;
+				break;
+			}
+
+			if (*(intptr_t *)mp->b_cont->b_rptr)
+				xcp->flags |= ASY_CONSOLE;
+			else
+				xcp->flags &= ~ASY_CONSOLE;
+
+			mp->b_datap->db_type = M_IOCACK;
+			iocp->ioc_error = 0;
+			iocp->ioc_rval = 0;
+			break;
+
+		case CONSGETABORTENABLE:
+			/*CONSTANTCONDITION*/
+			ASSERT(sizeof (boolean_t) <= sizeof (boolean_t *));
+			/*
+			 * Store the return value right in the payload
+			 * we were passed.  Crude.
+			 */
+			mcopyout(mp, NULL, sizeof (boolean_t), NULL, NULL);
+			*(boolean_t *)mp->b_cont->b_rptr =
+			    (xcp->flags & ASY_CONSOLE) != 0;
+			break;
+
+		default:
+			/*
+			 * If we don't understand it, it's an error.  NAK it.
+			 */
+			error = EINVAL;
+			break;
+		}
+	}
+	if (error != 0) {
+		iocp->ioc_error = error;
+		mp->b_datap->db_type = M_IOCNAK;
+	}
+	mutex_exit(&xcp->excl);
+	qreply(wq, mp);
+	DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_ioctl: done\n", instance);
+}
+
+static int
+xenconsrsrv(queue_t *q)
+{
+	mblk_t *bp;
+
+	while (canputnext(q) && (bp = getq(q)))
+		putnext(q, bp);
+	return (0);
+}
+
+/*
+ * Put procedure for write queue.
+ * Respond to M_STOP, M_START, M_IOCTL, and M_FLUSH messages here;
+ * set the flow control character for M_STOPI and M_STARTI messages;
+ * queue up M_BREAK, M_DELAY, and M_DATA messages for processing
+ * by the start routine, and then call the start routine; discard
+ * everything else.  Note that this driver does not incorporate any
+ * mechanism to negotiate to handle the canonicalization process.
+ * It expects that these functions are handled in upper module(s),
+ * as we do in ldterm.
+ */
+static int
+xenconswput(queue_t *q, mblk_t *mp)
+{
+	struct asyncline *async;
+	struct xencons *xcp;
+
+	async = (struct asyncline *)q->q_ptr;
+	xcp = async->async_common;
+
+	switch (mp->b_datap->db_type) {
+
+	case M_STOP:
+		mutex_enter(&xcp->excl);
+		async->async_flags |= ASYNC_STOPPED;
+		mutex_exit(&xcp->excl);
+		freemsg(mp);
+		break;
+
+	case M_START:
+		mutex_enter(&xcp->excl);
+		if (async->async_flags & ASYNC_STOPPED) {
+			async->async_flags &= ~ASYNC_STOPPED;
+			xcasync_start(async);
+		}
+		mutex_exit(&xcp->excl);
+		freemsg(mp);
+		break;
+
+	case M_IOCTL:
+		switch (((struct iocblk *)mp->b_rptr)->ioc_cmd) {
+
+		case TCSETSW:
+		case TCSETSF:
+		case TCSETAW:
+		case TCSETAF:
+			/*
+			 * The changes do not take effect until all
+			 * output queued before them is drained.
+			 * Put this message on the queue, so that
+			 * "xcasync_start" will see it when it's done
+			 * with the output before it.  Poke the
+			 * start routine, just in case.
+			 */
+			(void) putq(q, mp);
+			mutex_enter(&xcp->excl);
+			xcasync_start(async);
+			mutex_exit(&xcp->excl);
+			break;
+
+		default:
+			/*
+			 * Do it now.
+			 */
+			xcasync_ioctl(async, q, mp);
+			break;
+		}
+		break;
+
+	case M_FLUSH:
+		if (*mp->b_rptr & FLUSHW) {
+			mutex_enter(&xcp->excl);
+			/*
+			 * Flush our write queue.
+			 */
+			flushq(q, FLUSHDATA);	/* XXX doesn't flush M_DELAY */
+			if (async->async_xmitblk != NULL) {
+				freeb(async->async_xmitblk);
+				async->async_xmitblk = NULL;
+			}
+			mutex_exit(&xcp->excl);
+			*mp->b_rptr &= ~FLUSHW;	/* it has been flushed */
+		}
+		if (*mp->b_rptr & FLUSHR) {
+			flushq(RD(q), FLUSHDATA);
+			qreply(q, mp);	/* give the read queues a crack at it */
+		} else {
+			freemsg(mp);
+		}
+
+		/*
+		 * We must make sure we process messages that survive the
+		 * write-side flush.
+		 */
+		mutex_enter(&xcp->excl);
+		xcasync_start(async);
+		mutex_exit(&xcp->excl);
+		break;
+
+	case M_BREAK:
+	case M_DELAY:
+	case M_DATA:
+		/*
+		 * Queue the message up to be transmitted,
+		 * and poke the start routine.
+		 */
+		(void) putq(q, mp);
+		mutex_enter(&xcp->excl);
+		xcasync_start(async);
+		mutex_exit(&xcp->excl);
+		break;
+
+	case M_STOPI:
+		mutex_enter(&xcp->excl);
+		mutex_enter(&xcp->excl);
+		if (!(async->async_inflow_source & IN_FLOW_USER)) {
+			(void) xcasync_flowcontrol_sw_input(xcp, FLOW_STOP,
+			    IN_FLOW_USER);
+		}
+		mutex_exit(&xcp->excl);
+		mutex_exit(&xcp->excl);
+		freemsg(mp);
+		break;
+
+	case M_STARTI:
+		mutex_enter(&xcp->excl);
+		mutex_enter(&xcp->excl);
+		if (async->async_inflow_source & IN_FLOW_USER) {
+			(void) xcasync_flowcontrol_sw_input(xcp, FLOW_START,
+			    IN_FLOW_USER);
+		}
+		mutex_exit(&xcp->excl);
+		mutex_exit(&xcp->excl);
+		freemsg(mp);
+		break;
+
+	case M_CTL:
+		if (MBLKL(mp) >= sizeof (struct iocblk) &&
+		    ((struct iocblk *)mp->b_rptr)->ioc_cmd == MC_POSIXQUERY) {
+			((struct iocblk *)mp->b_rptr)->ioc_cmd = MC_HAS_POSIX;
+			qreply(q, mp);
+		} else {
+			freemsg(mp);
+		}
+		break;
+
+	default:
+		freemsg(mp);
+		break;
+	}
+	return (0);
+}
+
+/*
+ * Retry an "ioctl", now that "bufcall" claims we may be able to allocate
+ * the buffer we need.
+ */
+static void
+xcasync_reioctl(void *unit)
+{
+	int instance = (uintptr_t)unit;
+	struct asyncline *async;
+	struct xencons *xcp;
+	queue_t	*q;
+	mblk_t	*mp;
+
+	xcp = ddi_get_soft_state(xencons_soft_state, instance);
+	ASSERT(xcp != NULL);
+	async = xcp->priv;
+
+	/*
+	 * The bufcall is no longer pending.
+	 */
+	mutex_enter(&xcp->excl);
+	async->async_wbufcid = 0;
+	if ((q = async->async_ttycommon.t_writeq) == NULL) {
+		mutex_exit(&xcp->excl);
+		return;
+	}
+	if ((mp = async->async_ttycommon.t_iocpending) != NULL) {
+		/* not pending any more */
+		async->async_ttycommon.t_iocpending = NULL;
+		mutex_exit(&xcp->excl);
+		xcasync_ioctl(async, q, mp);
+	} else
+		mutex_exit(&xcp->excl);
+}
+
+
+/*
+ * debugger/console support routines.
+ */
+
+/*
+ * put a character out
+ * Do not use interrupts.  If char is LF, put out CR, LF.
+ */
+/*ARGSUSED*/
+static void
+xenconsputchar(cons_polledio_arg_t arg, uchar_t c)
+{
+	struct xencons *xcp = xencons_console;
+	volatile struct xencons_interface *ifp = xcp->ifp;
+	XENCONS_RING_IDX prod;
+
+	if (c == '\n')
+		xenconsputchar(arg, '\r');
+
+	/*
+	 * domain 0 can use the console I/O...
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		char	buffer[1];
+
+		buffer[0] = c;
+		(void) HYPERVISOR_console_io(CONSOLEIO_write, 1, buffer);
+		return;
+	}
+
+	/*
+	 * domU has to go through dom0 virtual console.
+	 */
+	while (ifp->out_prod - ifp->out_cons == sizeof (ifp->out))
+		(void) HYPERVISOR_yield();
+
+	prod = ifp->out_prod;
+	ifp->out[MASK_XENCONS_IDX(prod++, ifp->out)] = c;
+	membar_producer();
+	ifp->out_prod = prod;
+	ec_notify_via_evtchn(xcp->evtchn);
+}
+
+/*
+ * See if there's a character available. If no character is
+ * available, return 0. Run in polled mode, no interrupts.
+ */
+static boolean_t
+xenconsischar(cons_polledio_arg_t arg)
+{
+	struct xencons *xcp = (struct xencons *)arg;
+	volatile struct xencons_interface *ifp = xcp->ifp;
+
+	if (xcp->polldix < xcp->polllen)
+		return (B_TRUE);
+	/*
+	 * domain 0 can use the console I/O...
+	 */
+	xcp->polldix = 0;
+	xcp->polllen = 0;
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		xcp->polllen = HYPERVISOR_console_io(CONSOLEIO_read, 1,
+		    (char *)xcp->pollbuf);
+		return (xcp->polllen != 0);
+	}
+
+	/*
+	 * domU has to go through virtual console device.
+	 */
+	if (ifp->in_prod != ifp->in_cons) {
+		XENCONS_RING_IDX cons;
+
+		cons = ifp->in_cons;
+		membar_enter();
+		xcp->pollbuf[0] = ifp->in[MASK_XENCONS_IDX(cons++, ifp->in)];
+		membar_producer();
+		ifp->in_cons = cons;
+		xcp->polllen = 1;
+	}
+	return (xcp->polllen != 0);
+}
+
+/*
+ * Get a character. Run in polled mode, no interrupts.
+ */
+static int
+xenconsgetchar(cons_polledio_arg_t arg)
+{
+	struct xencons *xcp = (struct xencons *)arg;
+
+	ec_wait_on_evtchn(xcp->evtchn, (int (*)(void *))xenconsischar, arg);
+
+	return (xcp->pollbuf[xcp->polldix++]);
+}
+
+static void
+xenconserror(int level, const char *fmt, ...)
+{
+	va_list adx;
+	static time_t	last;
+	static const char *lastfmt;
+	time_t now;
+
+	/*
+	 * Don't print the same error message too often.
+	 * Print the message only if we have not printed the
+	 * message within the last second.
+	 * Note: that fmt cannot be a pointer to a string
+	 * stored on the stack. The fmt pointer
+	 * must be in the data segment otherwise lastfmt would point
+	 * to non-sense.
+	 */
+	now = gethrestime_sec();
+	if (last == now && lastfmt == fmt)
+		return;
+
+	last = now;
+	lastfmt = fmt;
+
+	va_start(adx, fmt);
+	vcmn_err(level, fmt, adx);
+	va_end(adx);
+}
+
+
+/*
+ * Check for abort character sequence
+ */
+static boolean_t
+abort_charseq_recognize(uchar_t ch)
+{
+	static int state = 0;
+#define	CNTRL(c) ((c)&037)
+	static char sequence[] = { '\r', '~', CNTRL('b') };
+
+	if (ch == sequence[state]) {
+		if (++state >= sizeof (sequence)) {
+			state = 0;
+			return (B_TRUE);
+		}
+	} else {
+		state = (ch == sequence[0]) ? 1 : 0;
+	}
+	return (B_FALSE);
+}
+
+/*
+ * Flow control functions
+ */
+
+/*
+ * Software output flow control
+ * This function can be executed sucessfully at any situation.
+ * It does not handle HW, and just change the SW output flow control flag.
+ * INPUT VALUE of onoff:
+ *                 FLOW_START means to clear SW output flow control flag,
+ *			also set ASYNC_OUT_FLW_RESUME.
+ *                 FLOW_STOP means to set SW output flow control flag,
+ *			also clear ASYNC_OUT_FLW_RESUME.
+ */
+static void
+xcasync_flowcontrol_sw_output(struct xencons *xcp, async_flowc_action onoff)
+{
+	struct asyncline *async = xcp->priv;
+	int instance = xcp->unit;
+
+	ASSERT(mutex_owned(&xcp->excl));
+
+	if (!(async->async_ttycommon.t_iflag & IXON))
+		return;
+
+	switch (onoff) {
+	case FLOW_STOP:
+		async->async_flags |= ASYNC_SW_OUT_FLW;
+		async->async_flags &= ~ASYNC_OUT_FLW_RESUME;
+		DEBUGCONT1(XENCONS_DEBUG_SFLOW,
+		    "xencons%d: output sflow stop\n", instance);
+		break;
+	case FLOW_START:
+		async->async_flags &= ~ASYNC_SW_OUT_FLW;
+		async->async_flags |= ASYNC_OUT_FLW_RESUME;
+		DEBUGCONT1(XENCONS_DEBUG_SFLOW,
+		    "xencons%d: output sflow start\n", instance);
+		break;
+	default:
+		break;
+	}
+}
+
+/*
+ * Software input flow control
+ * This function can execute software input flow control
+ * INPUT VALUE of onoff:
+ *               FLOW_START means to send out a XON char
+ *                          and clear SW input flow control flag.
+ *               FLOW_STOP means to send out a XOFF char
+ *                          and set SW input flow control flag.
+ *               FLOW_CHECK means to check whether there is pending XON/XOFF
+ *                          if it is true, send it out.
+ * INPUT VALUE of type:
+ *		 IN_FLOW_STREAMS means flow control is due to STREAMS
+ *		 IN_FLOW_USER means flow control is due to user's commands
+ * RETURN VALUE: B_FALSE means no flow control char is sent
+ *               B_TRUE means one flow control char is sent
+ */
+static boolean_t
+xcasync_flowcontrol_sw_input(struct xencons *xcp, async_flowc_action onoff,
+    int type)
+{
+	struct asyncline *async = xcp->priv;
+	int instance = xcp->unit;
+	int rval = B_FALSE;
+
+	ASSERT(mutex_owned(&xcp->excl));
+
+	if (!(async->async_ttycommon.t_iflag & IXOFF))
+		return (rval);
+
+	/*
+	 * If we get this far, then we know IXOFF is set.
+	 */
+	switch (onoff) {
+	case FLOW_STOP:
+		async->async_inflow_source |= type;
+
+		/*
+		 * We'll send an XOFF character for each of up to
+		 * three different input flow control attempts to stop input.
+		 * If we already send out one XOFF, but FLOW_STOP comes again,
+		 * it seems that input flow control becomes more serious,
+		 * then send XOFF again.
+		 */
+		if (async->async_inflow_source & (IN_FLOW_STREAMS |
+		    IN_FLOW_USER))
+			async->async_flags |= ASYNC_SW_IN_FLOW |
+			    ASYNC_SW_IN_NEEDED;
+		DEBUGCONT2(XENCONS_DEBUG_SFLOW, "xencons%d: input sflow stop, "
+		    "type = %x\n", instance, async->async_inflow_source);
+		break;
+	case FLOW_START:
+		async->async_inflow_source &= ~type;
+		if (async->async_inflow_source == 0) {
+			async->async_flags = (async->async_flags &
+			    ~ASYNC_SW_IN_FLOW) | ASYNC_SW_IN_NEEDED;
+			DEBUGCONT1(XENCONS_DEBUG_SFLOW, "xencons%d: "
+			    "input sflow start\n", instance);
+		}
+		break;
+	default:
+		break;
+	}
+
+	if (async->async_flags & ASYNC_SW_IN_NEEDED) {
+		/*
+		 * If we get this far, then we know we need to send out
+		 * XON or XOFF char.
+		 */
+		char c;
+
+		rval = B_TRUE;
+		c = (async->async_flags & ASYNC_SW_IN_FLOW) ?
+		    async->async_stopc : async->async_startc;
+		if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+			(void) HYPERVISOR_console_io(CONSOLEIO_write, 1, &c);
+			async->async_flags &= ~ASYNC_SW_IN_NEEDED;
+			return (rval);
+		} else {
+			xenconsputchar(NULL, c);
+		}
+	}
+	return (rval);
+}
+
+struct module_info xencons_info = {
+	0,
+	"xencons",
+	0,
+	INFPSZ,
+	4096,
+	128
+};
+
+static struct qinit xencons_rint = {
+	putq,
+	xenconsrsrv,
+	xenconsopen,
+	xenconsclose,
+	NULL,
+	&xencons_info,
+	NULL
+};
+
+static struct qinit xencons_wint = {
+	xenconswput,
+	NULL,
+	NULL,
+	NULL,
+	NULL,
+	&xencons_info,
+	NULL
+};
+
+struct streamtab xencons_str_info = {
+	&xencons_rint,
+	&xencons_wint,
+	NULL,
+	NULL
+};
+
+static struct cb_ops cb_xencons_ops = {
+	nodev,			/* cb_open */
+	nodev,			/* cb_close */
+	nodev,			/* cb_strategy */
+	nodev,			/* cb_print */
+	nodev,			/* cb_dump */
+	nodev,			/* cb_read */
+	nodev,			/* cb_write */
+	nodev,			/* cb_ioctl */
+	nodev,			/* cb_devmap */
+	nodev,			/* cb_mmap */
+	nodev,			/* cb_segmap */
+	nochpoll,		/* cb_chpoll */
+	ddi_prop_op,		/* cb_prop_op */
+	&xencons_str_info,		/* cb_stream */
+	D_MP			/* cb_flag */
+};
+
+struct dev_ops xencons_ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt */
+	xenconsinfo,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	xenconsattach,		/* devo_attach */
+	xenconsdetach,		/* devo_detach */
+	nodev,			/* devo_reset */
+	&cb_xencons_ops,		/* devo_cb_ops */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops, /* Type of module.  This one is a driver */
+	"virtual console driver %I%",
+	&xencons_ops,	/* driver ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	(void *)&modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	int rv;
+
+	if ((rv = ddi_soft_state_init(&xencons_soft_state,
+	    sizeof (struct xencons), 1)) != 0)
+		return (rv);
+	if ((rv = mod_install(&modlinkage)) != 0) {
+		ddi_soft_state_fini(&xencons_soft_state);
+		return (rv);
+	}
+	DEBUGCONT2(XENCONS_DEBUG_INIT, "%s, debug = %x\n",
+	    modldrv.drv_linkinfo, debug);
+	return (0);
+}
+
+int
+_fini(void)
+{
+	int rv;
+
+	if ((rv = mod_remove(&modlinkage)) != 0)
+		return (rv);
+
+	ddi_soft_state_fini(&xencons_soft_state);
+	return (0);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xencons.conf	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,27 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xencons.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,208 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
+/*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
+/*	  All Rights Reserved 	*/
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_XENCONS_H
+#define	_SYS_XENCONS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/tty.h>
+#include <sys/ksynch.h>
+#include <sys/dditypes.h>
+#include <xen/public/io/console.h>
+
+
+/*
+ * Xencons tracing macros.  These are a similar to some macros in sys/vtrace.h.
+ *
+ * XXX - Needs review:  would it be better to use the macros in sys/vtrace.h ?
+ */
+#ifdef DEBUG
+#define	DEBUGWARN0(fac, format) \
+	if (debug & (fac)) \
+		cmn_err(CE_WARN, format)
+#define	DEBUGNOTE0(fac, format) \
+	if (debug & (fac)) \
+		cmn_err(CE_NOTE, format)
+#define	DEBUGNOTE1(fac, format, arg1) \
+	if (debug & (fac)) \
+		cmn_err(CE_NOTE, format, arg1)
+#define	DEBUGNOTE2(fac, format, arg1, arg2) \
+	if (debug & (fac)) \
+		cmn_err(CE_NOTE, format, arg1, arg2)
+#define	DEBUGNOTE3(fac, format, arg1, arg2, arg3) \
+	if (debug & (fac)) \
+		cmn_err(CE_NOTE, format, arg1, arg2, arg3)
+#define	DEBUGCONT0(fac, format) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format)
+#define	DEBUGCONT1(fac, format, arg1) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format, arg1)
+#define	DEBUGCONT2(fac, format, arg1, arg2) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format, arg1, arg2)
+#define	DEBUGCONT3(fac, format, arg1, arg2, arg3) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format, arg1, arg2, arg3)
+#define	DEBUGCONT4(fac, format, arg1, arg2, arg3, arg4) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format, arg1, arg2, arg3, arg4)
+#define	DEBUGCONT10(fac, format, \
+	arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) \
+	if (debug & (fac)) \
+		cmn_err(CE_CONT, format, \
+		arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
+#else
+#define	DEBUGWARN0(fac, format)
+#define	DEBUGNOTE0(fac, format)
+#define	DEBUGNOTE1(fac, format, arg1)
+#define	DEBUGNOTE2(fac, format, arg1, arg2)
+#define	DEBUGNOTE3(fac, format, arg1, arg2, arg3)
+#define	DEBUGCONT0(fac, format)
+#define	DEBUGCONT1(fac, format, arg1)
+#define	DEBUGCONT2(fac, format, arg1, arg2)
+#define	DEBUGCONT3(fac, format, arg1, arg2, arg3)
+#define	DEBUGCONT4(fac, format, arg1, arg2, arg3, arg4)
+#define	DEBUGCONT10(fac, format, \
+	arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
+#endif
+
+/* enum value for sw and hw flow control action */
+typedef enum {
+	FLOW_CHECK,
+	FLOW_STOP,
+	FLOW_START
+} async_flowc_action;
+
+#define	async_stopc	async_ttycommon.t_stopc
+#define	async_startc	async_ttycommon.t_startc
+
+/*
+ * Console instance data.
+ * Each of the fields in this structure is required to be protected by a
+ * mutex lock at the highest priority at which it can be altered.
+ */
+
+struct xencons {
+	int		flags;	/* random flags  */
+	struct asyncline *priv;	/* protocol private data -- asyncline */
+	dev_info_t	*dip;	/* dev_info */
+	int		unit;	/* which port */
+	kmutex_t	excl;	/* adaptive mutex */
+	kcondvar_t	excl_cv;	/* condition variable */
+	struct cons_polledio polledio;	/* polled I/O functions */
+	unsigned char	pollbuf[60];	/* polled I/O data */
+	int		polldix;	/* polled data buffer index */
+	int		polllen;	/* polled data buffer length */
+	volatile struct xencons_interface *ifp;	/* console ring buffers */
+	int		console_irq;	/* dom0 console interrupt */
+	int		evtchn;		/* console event channel */
+};
+
+/*
+ * Asychronous protocol private data structure for ASY.
+ * Each of the fields in the structure is required to be protected by
+ * the lower priority lock except the fields that are set only at
+ * base level but cleared (with out lock) at interrupt level.
+ */
+
+struct asyncline {
+	int		async_flags;	/* random flags */
+	kcondvar_t	async_flags_cv; /* condition variable for flags */
+	dev_t		async_dev;	/* device major/minor numbers */
+	mblk_t		*async_xmitblk;	/* transmit: active msg block */
+	struct xencons	*async_common;	/* device common data */
+	tty_common_t 	async_ttycommon; /* tty driver common data */
+	bufcall_id_t	async_wbufcid;	/* id for pending write-side bufcall */
+	timeout_id_t	async_polltid;	/* softint poll timeout id */
+	timeout_id_t    async_dtrtid;   /* delaying DTR turn on */
+	timeout_id_t    async_utbrktid; /* hold minimum untimed break time id */
+
+	/*
+	 * The following fields are protected by the excl_hi lock.
+	 * Some, such as async_flowc, are set only at the base level and
+	 * cleared (without the lock) only by the interrupt level.
+	 */
+	uchar_t		*async_optr;	/* output pointer */
+	int		async_ocnt;	/* output count */
+	ushort_t	async_rput;	/* producing pointer for input */
+	ushort_t	async_rget;	/* consuming pointer for input */
+	int		async_inflow_source; /* input flow control type */
+
+	union {
+		struct {
+			uchar_t _hw;	/* overrun (hw) */
+			uchar_t _sw;	/* overrun (sw) */
+		} _a;
+		ushort_t uover_overrun;
+	} async_uover;
+#define	async_overrun		async_uover._a.uover_overrun
+#define	async_hw_overrun	async_uover._a._hw
+#define	async_sw_overrun	async_uover._a._sw
+	short		async_ext;	/* modem status change count */
+	short		async_work;	/* work to do flag */
+};
+
+/* definitions for async_flags field */
+#define	ASYNC_EXCL_OPEN	 0x10000000	/* exclusive open */
+#define	ASYNC_WOPEN	 0x00000001	/* waiting for open to complete */
+#define	ASYNC_ISOPEN	 0x00000002	/* open is complete */
+#define	ASYNC_STOPPED	 0x00000010	/* output is stopped */
+#define	ASYNC_PROGRESS	 0x00001000	/* made progress on output effort */
+#define	ASYNC_CLOSING	 0x00002000	/* processing close on stream */
+#define	ASYNC_SW_IN_FLOW 0x00020000	/* sw input flow control in effect */
+#define	ASYNC_SW_OUT_FLW 0x00040000	/* sw output flow control in effect */
+#define	ASYNC_SW_IN_NEEDED 0x00080000	/* sw input flow control char is */
+					/* needed to be sent */
+#define	ASYNC_OUT_FLW_RESUME 0x00100000 /* output need to be resumed */
+					/* because of transition of flow */
+					/* control from stop to start */
+
+
+/* definitions for asy_flags field */
+#define	ASY_CONSOLE	0x00000080
+
+/* definitions for async_inflow_source field in struct asyncline */
+#define	IN_FLOW_NULL	0x00000000
+#define	IN_FLOW_STREAMS	0x00000002
+#define	IN_FLOW_USER	0x00000004
+
+#define	XENCONS_BURST	128	/* burst size for console writes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XENCONS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnb.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1536 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef DEBUG
+#define	XNB_DEBUG 1
+#endif /* DEBUG */
+
+#include "xnb.h"
+
+#include <sys/sunddi.h>
+#include <sys/sunndi.h>
+#include <sys/modctl.h>
+#include <sys/conf.h>
+#include <sys/mac.h>
+#include <sys/dlpi.h>
+#include <sys/strsubr.h>
+#include <sys/strsun.h>
+#include <sys/pattr.h>
+#include <vm/seg_kmem.h>
+#include <vm/hat_i86.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+#include <sys/balloon_impl.h>
+#include <sys/evtchn_impl.h>
+#include <sys/gnttab.h>
+
+#include <sys/gld.h>
+#include <inet/ip.h>
+#include <inet/ip_impl.h>
+#include <sys/vnic_impl.h> /* blech. */
+
+/*
+ * The terms "transmit" and "receive" are used in their traditional
+ * sense here - packets from other parts of this system are
+ * "transmitted" to the peer domain and those originating from the
+ * peer are "received".
+ *
+ * In some cases this can be confusing, because various data
+ * structures are shared with the domU driver, which has the opposite
+ * view of what constitutes "transmit" and "receive".  In naming the
+ * shared structures the domU driver always wins.
+ */
+
+/*
+ * XXPV dme: things to do, as well as various things indicated
+ * throughout the source:
+ * - copy avoidance outbound.
+ * - copy avoidance inbound.
+ * - transfer credit limiting.
+ * - MAC address based filtering.
+ */
+
+/*
+ * Linux expects to have some headroom in received buffers.  The Linux
+ * frontend driver (netfront) checks to see if the headroom is
+ * available and will re-allocate the buffer to make room if
+ * necessary.  To avoid this we add TX_BUFFER_HEADROOM bytes of
+ * headroom to each packet we pass to the peer.
+ */
+#define	TX_BUFFER_HEADROOM	16
+
+static boolean_t	xnb_cksum_offload = B_TRUE;
+
+static boolean_t	xnb_connect_rings(dev_info_t *);
+static void		xnb_disconnect_rings(dev_info_t *);
+static void		xnb_oe_state_change(dev_info_t *, ddi_eventcookie_t,
+    void *, void *);
+static void		xnb_hp_state_change(dev_info_t *, ddi_eventcookie_t,
+    void *, void *);
+
+static int	xnb_rxbuf_constructor(void *, void *, int);
+static void	xnb_rxbuf_destructor(void *, void *);
+static xnb_rxbuf_t *xnb_rxbuf_get(xnb_t *, int);
+static void	xnb_rxbuf_put(xnb_t *, xnb_rxbuf_t *);
+static void	xnb_rx_notify_peer(xnb_t *);
+static void	xnb_rx_complete(xnb_rxbuf_t *);
+static void	xnb_rx_mark_complete(xnb_t *, RING_IDX, int16_t);
+static void	xnb_rx_schedule_unmop(xnb_t *, gnttab_map_grant_ref_t *);
+static void	xnb_rx_perform_pending_unmop(xnb_t *);
+
+#ifdef XNB_DEBUG
+#define	NR_GRANT_ENTRIES \
+	(NR_GRANT_FRAMES * PAGESIZE / sizeof (grant_entry_t))
+#endif /* XNB_DEBUG */
+
+/* XXPV dme: are these really invalid? */
+#define	INVALID_GRANT_HANDLE	((grant_handle_t)-1)
+#define	INVALID_GRANT_REF	((grant_ref_t)-1)
+
+static kmem_cache_t *xnb_rxbuf_cachep;
+static kmutex_t	xnb_alloc_page_lock;
+
+/*
+ * Statistics.
+ */
+static char *aux_statistics[] = {
+	"tx_cksum_deferred",
+	"rx_cksum_no_need",
+	"tx_notify_deferred",
+	"tx_notify_sent",
+	"rx_notify_deferred",
+	"rx_notify_sent",
+	"tx_too_early",
+	"rx_too_early",
+	"rx_allocb_failed",
+	"mac_full",
+	"spurious_intr",
+	"allocation_success",
+	"allocation_failure",
+	"small_allocation_success",
+	"small_allocation_failure",
+	"csum_hardware",
+	"csum_software",
+};
+
+static int
+xnb_ks_aux_update(kstat_t *ksp, int flag)
+{
+	xnb_t *xnbp;
+	kstat_named_t *knp;
+
+	if (flag != KSTAT_READ)
+		return (EACCES);
+
+	xnbp = ksp->ks_private;
+	knp = ksp->ks_data;
+
+	/*
+	 * Assignment order should match that of the names in
+	 * aux_statistics.
+	 */
+	(knp++)->value.ui64 = xnbp->x_stat_tx_cksum_deferred;
+	(knp++)->value.ui64 = xnbp->x_stat_rx_cksum_no_need;
+	(knp++)->value.ui64 = xnbp->x_stat_tx_notify_deferred;
+	(knp++)->value.ui64 = xnbp->x_stat_tx_notify_sent;
+	(knp++)->value.ui64 = xnbp->x_stat_rx_notify_deferred;
+	(knp++)->value.ui64 = xnbp->x_stat_rx_notify_sent;
+	(knp++)->value.ui64 = xnbp->x_stat_tx_too_early;
+	(knp++)->value.ui64 = xnbp->x_stat_rx_too_early;
+	(knp++)->value.ui64 = xnbp->x_stat_rx_allocb_failed;
+	(knp++)->value.ui64 = xnbp->x_stat_mac_full;
+	(knp++)->value.ui64 = xnbp->x_stat_spurious_intr;
+	(knp++)->value.ui64 = xnbp->x_stat_allocation_success;
+	(knp++)->value.ui64 = xnbp->x_stat_allocation_failure;
+	(knp++)->value.ui64 = xnbp->x_stat_small_allocation_success;
+	(knp++)->value.ui64 = xnbp->x_stat_small_allocation_failure;
+	(knp++)->value.ui64 = xnbp->x_stat_csum_hardware;
+	(knp++)->value.ui64 = xnbp->x_stat_csum_software;
+
+	return (0);
+}
+
+static boolean_t
+xnb_ks_init(xnb_t *xnbp)
+{
+	int nstat = sizeof (aux_statistics) /
+	    sizeof (aux_statistics[0]);
+	char **cp = aux_statistics;
+	kstat_named_t *knp;
+
+	/*
+	 * Create and initialise kstats.
+	 */
+	xnbp->x_kstat_aux = kstat_create(ddi_driver_name(xnbp->x_devinfo),
+	    ddi_get_instance(xnbp->x_devinfo), "aux_statistics", "net",
+	    KSTAT_TYPE_NAMED, nstat, 0);
+	if (xnbp->x_kstat_aux == NULL)
+		return (B_FALSE);
+
+	xnbp->x_kstat_aux->ks_private = xnbp;
+	xnbp->x_kstat_aux->ks_update = xnb_ks_aux_update;
+
+	knp = xnbp->x_kstat_aux->ks_data;
+	while (nstat > 0) {
+		kstat_named_init(knp, *cp, KSTAT_DATA_UINT64);
+
+		knp++;
+		cp++;
+		nstat--;
+	}
+
+	kstat_install(xnbp->x_kstat_aux);
+
+	return (B_TRUE);
+}
+
+static void
+xnb_ks_free(xnb_t *xnbp)
+{
+	kstat_delete(xnbp->x_kstat_aux);
+}
+
+/*
+ * Software checksum calculation and insertion for an arbitrary packet.
+ */
+/*ARGSUSED*/
+static mblk_t *
+xnb_software_csum(xnb_t *xnbp, mblk_t *mp)
+{
+	/*
+	 * XXPV dme: shouldn't rely on vnic_fix_cksum(), not least
+	 * because it doesn't cover all of the interesting cases :-(
+	 */
+	(void) hcksum_assoc(mp, NULL, NULL, 0, 0, 0, 0,
+	    HCK_FULLCKSUM, KM_NOSLEEP);
+
+	return (vnic_fix_cksum(mp));
+}
+
+mblk_t *
+xnb_process_cksum_flags(xnb_t *xnbp, mblk_t *mp, uint32_t capab)
+{
+	struct ether_header *ehp;
+	uint16_t sap;
+	uint32_t offset;
+	ipha_t *ipha;
+
+	ASSERT(mp->b_next == NULL);
+
+	/*
+	 * Check that the packet is contained in a single mblk.  In
+	 * the "from peer" path this is true today, but will change
+	 * when scatter gather support is added.  In the "to peer"
+	 * path we cannot be sure, but in most cases it will be true
+	 * (in the xnbo case the packet has come from a MAC device
+	 * which is unlikely to split packets).
+	 */
+	if (mp->b_cont != NULL)
+		goto software;
+
+	/*
+	 * If the MAC has no hardware capability don't do any further
+	 * checking.
+	 */
+	if (capab == 0)
+		goto software;
+
+	ASSERT(MBLKL(mp) >= sizeof (struct ether_header));
+	ehp = (struct ether_header *)mp->b_rptr;
+
+	if (ntohs(ehp->ether_type) == VLAN_TPID) {
+		struct ether_vlan_header *evhp;
+
+		ASSERT(MBLKL(mp) >= sizeof (struct ether_vlan_header));
+		evhp = (struct ether_vlan_header *)mp->b_rptr;
+		sap = ntohs(evhp->ether_type);
+		offset = sizeof (struct ether_vlan_header);
+	} else {
+		sap = ntohs(ehp->ether_type);
+		offset = sizeof (struct ether_header);
+	}
+
+	/*
+	 * We only attempt to do IPv4 packets in hardware.
+	 */
+	if (sap != ETHERTYPE_IP)
+		goto software;
+
+	/*
+	 * We know that this is an IPv4 packet.
+	 */
+	ipha = (ipha_t *)(mp->b_rptr + offset);
+
+	switch (ipha->ipha_protocol) {
+	case IPPROTO_TCP:
+	case IPPROTO_UDP:
+		/*
+		 * This is a TCP/IPv4 or UDP/IPv4 packet.
+		 *
+		 * If the capabilities indicate that full checksum
+		 * offload is available, use it.
+		 */
+		if ((capab & HCKSUM_INET_FULL_V4) != 0) {
+			(void) hcksum_assoc(mp, NULL, NULL,
+			    0, 0, 0, 0,
+			    HCK_FULLCKSUM, KM_NOSLEEP);
+
+			xnbp->x_stat_csum_hardware++;
+
+			return (mp);
+		}
+
+		/*
+		 * XXPV dme: If the capabilities indicate that partial
+		 * checksum offload is available, we should use it.
+		 */
+
+		break;
+
+	default:
+		/* Use software. */
+		break;
+	}
+
+software:
+	/*
+	 * We are not able to use any offload so do the whole thing in
+	 * software.
+	 */
+	xnbp->x_stat_csum_software++;
+
+	return (xnb_software_csum(xnbp, mp));
+}
+
+int
+xnb_attach(dev_info_t *dip, xnb_flavour_t *flavour, void *flavour_data)
+{
+	xnb_t *xnbp;
+	char *xsname, mac[ETHERADDRL * 3];
+
+	xnbp = kmem_zalloc(sizeof (*xnbp), KM_SLEEP);
+
+	xnbp->x_flavour = flavour;
+	xnbp->x_flavour_data = flavour_data;
+	xnbp->x_devinfo = dip;
+	xnbp->x_evtchn = INVALID_EVTCHN;
+	xnbp->x_irq = B_FALSE;
+	xnbp->x_tx_ring_handle = INVALID_GRANT_HANDLE;
+	xnbp->x_rx_ring_handle = INVALID_GRANT_HANDLE;
+	xnbp->x_cksum_offload = xnb_cksum_offload;
+	xnbp->x_connected = B_FALSE;
+	xnbp->x_hotplugged = B_FALSE;
+	xnbp->x_detachable = B_FALSE;
+	xnbp->x_peer = xvdi_get_oeid(dip);
+	xnbp->x_rx_pages_writable = B_FALSE;
+
+	xnbp->x_rx_buf_count = 0;
+	xnbp->x_rx_unmop_count = 0;
+
+	xnbp->x_tx_va = vmem_alloc(heap_arena, PAGESIZE, VM_SLEEP);
+	ASSERT(xnbp->x_tx_va != NULL);
+
+	if (ddi_get_iblock_cookie(dip, 0, &xnbp->x_icookie)
+	    != DDI_SUCCESS)
+		goto failure;
+
+	mutex_init(&xnbp->x_tx_lock, NULL, MUTEX_DRIVER, xnbp->x_icookie);
+	mutex_init(&xnbp->x_rx_lock, NULL, MUTEX_DRIVER, xnbp->x_icookie);
+
+	/* set driver private pointer now */
+	ddi_set_driver_private(dip, xnbp);
+
+	if (!xnb_ks_init(xnbp))
+		goto late_failure;
+
+	/*
+	 * Receive notification of changes in the state of the
+	 * driver in the guest domain.
+	 */
+	if (xvdi_add_event_handler(dip, XS_OE_STATE,
+	    xnb_oe_state_change) != DDI_SUCCESS)
+		goto very_late_failure;
+
+	/*
+	 * Receive notification of hotplug events.
+	 */
+	if (xvdi_add_event_handler(dip, XS_HP_STATE,
+	    xnb_hp_state_change) != DDI_SUCCESS)
+		goto very_late_failure;
+
+	xsname = xvdi_get_xsname(dip);
+
+	if (xenbus_printf(XBT_NULL, xsname,
+	    "feature-no-csum-offload", "%d",
+	    xnbp->x_cksum_offload ? 0 : 1) != 0)
+		goto very_very_late_failure;
+
+	if (xenbus_scanf(XBT_NULL, xsname,
+	    "mac", "%s", mac) != 0) {
+		cmn_err(CE_WARN, "xnb_attach: "
+		    "cannot read mac address from %s",
+		    xsname);
+		goto very_very_late_failure;
+	}
+
+	if (ether_aton(mac, xnbp->x_mac_addr) != ETHERADDRL) {
+		cmn_err(CE_WARN,
+		    "xnb_attach: cannot parse mac address %s",
+		    mac);
+		goto very_very_late_failure;
+	}
+
+	(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateInitWait);
+	(void) xvdi_post_event(dip, XEN_HP_ADD);
+
+	return (DDI_SUCCESS);
+
+very_very_late_failure: /* not that the naming is getting silly or anything */
+	xvdi_remove_event_handler(dip, NULL);
+
+very_late_failure:
+	xnb_ks_free(xnbp);
+
+late_failure:
+	mutex_destroy(&xnbp->x_rx_lock);
+	mutex_destroy(&xnbp->x_tx_lock);
+
+failure:
+	vmem_free(heap_arena, xnbp->x_tx_va, PAGESIZE);
+	kmem_free(xnbp, sizeof (*xnbp));
+	return (DDI_FAILURE);
+}
+
+/*ARGSUSED*/
+void
+xnb_detach(dev_info_t *dip)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+
+	ASSERT(xnbp != NULL);
+	ASSERT(!xnbp->x_connected);
+	ASSERT(xnbp->x_rx_buf_count == 0);
+
+	xnb_disconnect_rings(dip);
+
+	xvdi_remove_event_handler(dip, NULL);
+
+	xnb_ks_free(xnbp);
+
+	ddi_set_driver_private(dip, NULL);
+
+	mutex_destroy(&xnbp->x_tx_lock);
+	mutex_destroy(&xnbp->x_rx_lock);
+
+	ASSERT(xnbp->x_tx_va != NULL);
+	vmem_free(heap_arena, xnbp->x_tx_va, PAGESIZE);
+
+	kmem_free(xnbp, sizeof (*xnbp));
+}
+
+
+static mfn_t
+xnb_alloc_page(xnb_t *xnbp)
+{
+#define	WARNING_RATE_LIMIT 100
+#define	BATCH_SIZE 256
+	static mfn_t mfns[BATCH_SIZE];	/* common across all instances */
+	static int nth = BATCH_SIZE;
+	mfn_t mfn;
+
+	mutex_enter(&xnb_alloc_page_lock);
+	if (nth == BATCH_SIZE) {
+		if (balloon_alloc_pages(BATCH_SIZE, mfns) != BATCH_SIZE) {
+			xnbp->x_stat_allocation_failure++;
+			mutex_exit(&xnb_alloc_page_lock);
+
+			/*
+			 * Try for a single page in low memory situations.
+			 */
+			if (balloon_alloc_pages(1, &mfn) != 1) {
+				xnbp->x_stat_small_allocation_failure++;
+				if ((xnbp->x_stat_small_allocation_failure
+				    % WARNING_RATE_LIMIT) == 0) {
+					cmn_err(CE_WARN, "xnb_alloc_page: "
+					    "Cannot allocate memory to "
+					    "transfer packets to peer.");
+				}
+				return (0);
+			} else {
+				xnbp->x_stat_small_allocation_success++;
+				return (mfn);
+			}
+		}
+
+		nth = 0;
+		xnbp->x_stat_allocation_success++;
+	}
+
+	mfn = mfns[nth++];
+	mutex_exit(&xnb_alloc_page_lock);
+
+	ASSERT(mfn != 0);
+
+	return (mfn);
+#undef BATCH_SIZE
+#undef WARNING_RATE_LIMIT
+}
+
+/*ARGSUSED*/
+static void
+xnb_free_page(xnb_t *xnbp, mfn_t mfn)
+{
+	int r;
+
+	/*
+	 * This happens only in the error path, so batching is
+	 * not worth the complication.
+	 */
+	if ((r = balloon_free_pages(1, &mfn, NULL, NULL)) != 1) {
+		cmn_err(CE_WARN, "free_page: cannot decrease memory "
+		    "reservation (%d): page kept but unusable (mfn = 0x%lx).",
+		    r, mfn);
+	}
+}
+
+mblk_t *
+xnb_to_peer(xnb_t *xnbp, mblk_t *mp)
+{
+	mblk_t *free = mp, *prev = NULL;
+	size_t len;
+	gnttab_transfer_t *gop;
+	boolean_t notify;
+	RING_IDX loop, prod, end;
+
+	/*
+	 * For each packet the sequence of operations is:
+	 *
+	 * 1. get a new page from the hypervisor.
+	 * 2. get a request slot from the ring.
+	 * 3. copy the data into the new page.
+	 * 4. transfer the page to the peer.
+	 * 5. update the request slot.
+	 * 6. kick the peer.
+	 * 7. free mp.
+	 *
+	 * In order to reduce the number of hypercalls, we prepare
+	 * several packets for the peer and perform a single hypercall
+	 * to transfer them.
+	 */
+
+	mutex_enter(&xnbp->x_tx_lock);
+
+	/*
+	 * If we are not connected to the peer or have not yet
+	 * finished hotplug it is too early to pass packets to the
+	 * peer.
+	 */
+	if (!(xnbp->x_connected && xnbp->x_hotplugged)) {
+		mutex_exit(&xnbp->x_tx_lock);
+		xnbp->x_stat_tx_too_early++;
+		return (mp);
+	}
+
+	loop = xnbp->x_rx_ring.req_cons;
+	prod = xnbp->x_rx_ring.rsp_prod_pvt;
+	gop = xnbp->x_tx_top;
+
+	/*
+	 * Similar to RING_HAS_UNCONSUMED_REQUESTS(&xnbp->x_rx_ring) but
+	 * using local variables.
+	 */
+#define	XNB_RING_HAS_UNCONSUMED_REQUESTS(_r)		\
+	((((_r)->sring->req_prod - loop) <		\
+		(RING_SIZE(_r) - (loop - prod))) ?	\
+	    ((_r)->sring->req_prod - loop) :		\
+	    (RING_SIZE(_r) - (loop - prod)))
+
+	while ((mp != NULL) &&
+	    XNB_RING_HAS_UNCONSUMED_REQUESTS(&xnbp->x_rx_ring)) {
+
+		mfn_t mfn;
+		pfn_t pfn;
+		netif_rx_request_t *rxreq;
+		netif_rx_response_t *rxresp;
+		char *valoop;
+		size_t offset;
+		mblk_t *ml;
+		uint16_t cksum_flags;
+
+		/* 1 */
+		if ((mfn = xnb_alloc_page(xnbp)) == 0) {
+			xnbp->x_stat_xmit_defer++;
+			break;
+		}
+
+		/* 2 */
+		rxreq = RING_GET_REQUEST(&xnbp->x_rx_ring, loop);
+
+#ifdef XNB_DEBUG
+		if (!(rxreq->id < NET_RX_RING_SIZE))
+			cmn_err(CE_PANIC, "xnb_to_peer: "
+			    "id %d out of range in request 0x%p",
+			    rxreq->id, (void *)rxreq);
+		if (rxreq->gref >= NR_GRANT_ENTRIES)
+			cmn_err(CE_PANIC, "xnb_to_peer: "
+			    "grant ref %d out of range in request 0x%p",
+			    rxreq->gref, (void *)rxreq);
+#endif /* XNB_DEBUG */
+
+		/* Assign a pfn and map the new page at the allocated va. */
+		pfn = xen_assign_pfn(mfn);
+		hat_devload(kas.a_hat, xnbp->x_tx_va, PAGESIZE,
+		    pfn, PROT_READ | PROT_WRITE, HAT_LOAD);
+
+		offset = TX_BUFFER_HEADROOM;
+
+		/* 3 */
+		len = 0;
+		valoop = xnbp->x_tx_va + offset;
+		for (ml = mp; ml != NULL; ml = ml->b_cont) {
+			size_t chunk = ml->b_wptr - ml->b_rptr;
+
+			bcopy(ml->b_rptr, valoop, chunk);
+			valoop += chunk;
+			len += chunk;
+		}
+
+		ASSERT(len + offset < PAGESIZE);
+
+		/* Release the pfn. */
+		hat_unload(kas.a_hat, xnbp->x_tx_va, PAGESIZE,
+		    HAT_UNLOAD_UNMAP);
+		xen_release_pfn(pfn);
+
+		/* 4 */
+		gop->mfn = mfn;
+		gop->domid = xnbp->x_peer;
+		gop->ref = rxreq->gref;
+
+		/* 5.1 */
+		rxresp = RING_GET_RESPONSE(&xnbp->x_rx_ring, prod);
+		rxresp->offset = offset;
+		rxresp->flags = 0;
+
+		cksum_flags = xnbp->x_flavour->xf_cksum_to_peer(xnbp, mp);
+		if (cksum_flags != 0)
+			xnbp->x_stat_tx_cksum_deferred++;
+		rxresp->flags |= cksum_flags;
+
+		rxresp->id = RING_GET_REQUEST(&xnbp->x_rx_ring, prod)->id;
+		rxresp->status = len;
+
+		loop++;
+		prod++;
+		gop++;
+		prev = mp;
+		mp = mp->b_next;
+	}
+
+	/*
+	 * Did we actually do anything?
+	 */
+	if (loop == xnbp->x_rx_ring.req_cons) {
+		mutex_exit(&xnbp->x_tx_lock);
+		return (mp);
+	}
+
+	end = loop;
+
+	/*
+	 * Unlink the end of the 'done' list from the remainder.
+	 */
+	ASSERT(prev != NULL);
+	prev->b_next = NULL;
+
+	if (HYPERVISOR_grant_table_op(GNTTABOP_transfer, xnbp->x_tx_top,
+	    loop - xnbp->x_rx_ring.req_cons) != 0) {
+		cmn_err(CE_WARN, "xnb_to_peer: transfer operation failed");
+	}
+
+	loop = xnbp->x_rx_ring.req_cons;
+	prod = xnbp->x_rx_ring.rsp_prod_pvt;
+	gop = xnbp->x_tx_top;
+
+	while (loop < end) {
+		int16_t status = NETIF_RSP_OKAY;
+
+		if (gop->status != 0) {
+			status = NETIF_RSP_ERROR;
+
+			/*
+			 * If the status is anything other than
+			 * GNTST_bad_page then we don't own the page
+			 * any more, so don't try to give it back.
+			 */
+			if (gop->status != GNTST_bad_page)
+				gop->mfn = 0;
+		} else {
+			/* The page is no longer ours. */
+			gop->mfn = 0;
+		}
+
+		if (gop->mfn != 0)
+			/*
+			 * Give back the page, as we won't be using
+			 * it.
+			 */
+			xnb_free_page(xnbp, gop->mfn);
+		else
+			/*
+			 * We gave away a page, update our accounting
+			 * now.
+			 */
+			balloon_drv_subtracted(1);
+
+		/* 5.2 */
+		if (status != NETIF_RSP_OKAY) {
+			RING_GET_RESPONSE(&xnbp->x_rx_ring, prod)->status =
+			    status;
+		} else {
+			xnbp->x_stat_opackets++;
+			xnbp->x_stat_obytes += len;
+		}
+
+		loop++;
+		prod++;
+		gop++;
+	}
+
+	xnbp->x_rx_ring.req_cons = loop;
+	xnbp->x_rx_ring.rsp_prod_pvt = prod;
+
+	/* 6 */
+	/*LINTED: constant in conditional context*/
+	RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&xnbp->x_rx_ring, notify);
+	if (notify) {
+		ec_notify_via_evtchn(xnbp->x_evtchn);
+		xnbp->x_stat_tx_notify_sent++;
+	} else {
+		xnbp->x_stat_tx_notify_deferred++;
+	}
+
+	if (mp != NULL)
+		xnbp->x_stat_xmit_defer++;
+
+	mutex_exit(&xnbp->x_tx_lock);
+
+	/* Free mblk_t's that we consumed. */
+	freemsgchain(free);
+
+	return (mp);
+}
+
+/*ARGSUSED*/
+static int
+xnb_rxbuf_constructor(void *buf, void *arg, int kmflag)
+{
+	xnb_rxbuf_t *rxp = buf;
+
+	bzero(rxp, sizeof (*rxp));
+
+	rxp->xr_free_rtn.free_func = xnb_rx_complete;
+	rxp->xr_free_rtn.free_arg = (caddr_t)rxp;
+
+	rxp->xr_mop.host_addr =
+	    (uint64_t)(uintptr_t)vmem_alloc(heap_arena, PAGESIZE,
+	    ((kmflag & KM_NOSLEEP) == KM_NOSLEEP) ?
+	    VM_NOSLEEP : VM_SLEEP);
+
+	if (rxp->xr_mop.host_addr == NULL) {
+		cmn_err(CE_WARN, "xnb_rxbuf_constructor: "
+		    "cannot get address space");
+		return (-1);
+	}
+
+	/*
+	 * Have the hat ensure that page table exists for the VA.
+	 */
+	hat_prepare_mapping(kas.a_hat,
+	    (caddr_t)(uintptr_t)rxp->xr_mop.host_addr);
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static void
+xnb_rxbuf_destructor(void *buf, void *arg)
+{
+	xnb_rxbuf_t *rxp = buf;
+
+	ASSERT(rxp->xr_mop.host_addr != NULL);
+	ASSERT((rxp->xr_flags & XNB_RXBUF_INUSE) == 0);
+
+	hat_release_mapping(kas.a_hat,
+	    (caddr_t)(uintptr_t)rxp->xr_mop.host_addr);
+	vmem_free(heap_arena,
+	    (caddr_t)(uintptr_t)rxp->xr_mop.host_addr, PAGESIZE);
+}
+
+static void
+xnb_rx_notify_peer(xnb_t *xnbp)
+{
+	boolean_t notify;
+
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+
+	/*LINTED: constant in conditional context*/
+	RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&xnbp->x_tx_ring, notify);
+	if (notify) {
+		ec_notify_via_evtchn(xnbp->x_evtchn);
+		xnbp->x_stat_rx_notify_sent++;
+	} else {
+		xnbp->x_stat_rx_notify_deferred++;
+	}
+}
+
+static void
+xnb_rx_complete(xnb_rxbuf_t *rxp)
+{
+	xnb_t *xnbp = rxp->xr_xnbp;
+
+	ASSERT((rxp->xr_flags & XNB_RXBUF_INUSE) == XNB_RXBUF_INUSE);
+
+	mutex_enter(&xnbp->x_rx_lock);
+
+	xnb_rx_schedule_unmop(xnbp, &rxp->xr_mop);
+	xnb_rx_perform_pending_unmop(xnbp);
+
+	if (xnbp->x_connected) {
+		xnb_rx_mark_complete(xnbp, rxp->xr_id, rxp->xr_status);
+		xnb_rx_notify_peer(xnbp);
+	}
+
+	xnb_rxbuf_put(xnbp, rxp);
+
+	mutex_exit(&xnbp->x_rx_lock);
+}
+
+static void
+xnb_rx_mark_complete(xnb_t *xnbp, RING_IDX id, int16_t status)
+{
+	RING_IDX i;
+	netif_tx_response_t *txresp;
+
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+
+	i = xnbp->x_tx_ring.rsp_prod_pvt;
+
+	txresp = RING_GET_RESPONSE(&xnbp->x_tx_ring, i);
+	txresp->id = id;
+	txresp->status = status;
+
+	xnbp->x_tx_ring.rsp_prod_pvt = i + 1;
+
+	/*
+	 * Note that we don't push the change to the peer here - that
+	 * is the callers responsibility.
+	 */
+}
+
+/*
+ * XXPV dme: currently pending unmap operations are stored on a
+ * per-instance basis.  Should they be per-driver?  The locking would
+ * have to change (obviously), but there might be an improvement from
+ * batching more together.  Right now they are all 'done' either at
+ * the tail of each receive operation (copy case) or on each
+ * completion (non-copy case).  Should that be changed to some
+ * interval (watermark?) to improve the chance of batching?
+ */
+static void
+xnb_rx_schedule_unmop(xnb_t *xnbp, gnttab_map_grant_ref_t *mop)
+{
+	gnttab_unmap_grant_ref_t *unmop;
+
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+	ASSERT(xnbp->x_rx_unmop_count <= NET_TX_RING_SIZE);
+
+	unmop = &xnbp->x_rx_unmop[xnbp->x_rx_unmop_count];
+	xnbp->x_rx_unmop_count++;
+
+	unmop->host_addr = mop->host_addr;
+	unmop->dev_bus_addr = mop->dev_bus_addr;
+	unmop->handle = mop->handle;
+
+#ifdef XNB_DEBUG
+	if (xnbp->x_rx_unmop_count <= NET_TX_RING_SIZE)
+		ASSERT(xnbp->x_rx_unmop[xnbp->x_rx_unmop_count].host_addr
+		    == NULL);
+#endif /* XNB_DEBUG */
+
+}
+
+static void
+xnb_rx_perform_pending_unmop(xnb_t *xnbp)
+{
+#ifdef XNB_DEBUG
+	RING_IDX loop;
+	gnttab_unmap_grant_ref_t *unmop;
+#endif /* XNB_DEBUG */
+
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+
+	if (xnbp->x_rx_unmop_count == 0)
+		return;
+
+	if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+	    xnbp->x_rx_unmop, xnbp->x_rx_unmop_count) < 0) {
+		cmn_err(CE_WARN, "xnb_rx_perform_pending_unmop: "
+		    "unmap grant operation failed, "
+		    "%d pages lost", xnbp->x_rx_unmop_count);
+	}
+
+#ifdef XNB_DEBUG
+	for (loop = 0, unmop = xnbp->x_rx_unmop;
+	    loop < xnbp->x_rx_unmop_count;
+	    loop++, unmop++) {
+		if (unmop->status != 0) {
+			cmn_err(CE_WARN, "xnb_rx_perform_pending_unmop: "
+			    "unmap grant reference failed (%d)",
+			    unmop->status);
+		}
+	}
+#endif /* XNB_DEBUG */
+
+	xnbp->x_rx_unmop_count = 0;
+
+#ifdef XNB_DEBUG
+	bzero(xnbp->x_rx_unmop, sizeof (xnbp->x_rx_unmop));
+#endif /* XNB_DEBUG */
+}
+
+static xnb_rxbuf_t *
+xnb_rxbuf_get(xnb_t *xnbp, int flags)
+{
+	xnb_rxbuf_t *rxp;
+
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+
+	rxp = kmem_cache_alloc(xnb_rxbuf_cachep, flags);
+	if (rxp != NULL) {
+		ASSERT((rxp->xr_flags & XNB_RXBUF_INUSE) == 0);
+		rxp->xr_flags |= XNB_RXBUF_INUSE;
+
+		rxp->xr_xnbp = xnbp;
+		rxp->xr_mop.dom = xnbp->x_peer;
+
+		rxp->xr_mop.flags = GNTMAP_host_map;
+		if (!xnbp->x_rx_pages_writable)
+			rxp->xr_mop.flags |= GNTMAP_readonly;
+
+		xnbp->x_rx_buf_count++;
+	}
+
+	return (rxp);
+}
+
+static void
+xnb_rxbuf_put(xnb_t *xnbp, xnb_rxbuf_t *rxp)
+{
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+	ASSERT((rxp->xr_flags & XNB_RXBUF_INUSE) == XNB_RXBUF_INUSE);
+
+	rxp->xr_flags &= ~XNB_RXBUF_INUSE;
+	xnbp->x_rx_buf_count--;
+
+	kmem_cache_free(xnb_rxbuf_cachep, rxp);
+}
+
+static mblk_t *
+xnb_recv(xnb_t *xnbp)
+{
+	RING_IDX start, end, loop;
+	gnttab_map_grant_ref_t *mop;
+	xnb_rxbuf_t **rxpp;
+	netif_tx_request_t *txreq;
+	boolean_t work_to_do;
+	mblk_t *head, *tail;
+	/*
+	 * If the peer granted a read-only mapping to the page then we
+	 * must copy the data, as the local protocol stack (should the
+	 * packet be destined for this host) will modify the packet
+	 * 'in place'.
+	 */
+	boolean_t copy = !xnbp->x_rx_pages_writable;
+
+	/*
+	 * For each individual request, the sequence of actions is:
+	 *
+	 * 1. get the request.
+	 * 2. map the page based on the grant ref.
+	 * 3. allocate an mblk, copy the data to it.
+	 * 4. release the grant.
+	 * 5. update the ring.
+	 * 6. pass the packet upward.
+	 * 7. kick the peer.
+	 *
+	 * In fact, we try to perform the grant operations in batches,
+	 * so there are two loops.
+	 */
+
+	head = tail = NULL;
+around:
+	ASSERT(MUTEX_HELD(&xnbp->x_rx_lock));
+
+	/*LINTED: constant in conditional context*/
+	RING_FINAL_CHECK_FOR_REQUESTS(&xnbp->x_tx_ring, work_to_do);
+	if (!work_to_do) {
+finished:
+		xnb_rx_notify_peer(xnbp);
+
+		return (head);
+	}
+
+	start = xnbp->x_tx_ring.req_cons;
+	end = xnbp->x_tx_ring.sring->req_prod;
+
+	for (loop = start, mop = xnbp->x_rx_mop, rxpp = xnbp->x_rx_bufp;
+	    loop != end;
+	    loop++, mop++, rxpp++) {
+		xnb_rxbuf_t *rxp;
+
+		rxp = xnb_rxbuf_get(xnbp, KM_NOSLEEP);
+		if (rxp == NULL)
+			break;
+
+		ASSERT(xnbp->x_rx_pages_writable ||
+		    ((rxp->xr_mop.flags & GNTMAP_readonly)
+		    == GNTMAP_readonly));
+
+		rxp->xr_mop.ref =
+		    RING_GET_REQUEST(&xnbp->x_tx_ring, loop)->gref;
+
+		ASSERT(rxp->xr_mop.ref < NR_GRANT_ENTRIES);
+
+		*mop = rxp->xr_mop;
+		*rxpp = rxp;
+	}
+
+	if ((loop - start) == 0)
+		goto finished;
+
+	end = loop;
+
+	if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
+	    xnbp->x_rx_mop, end - start) != 0) {
+
+		cmn_err(CE_WARN, "xnb_recv: map grant operation failed");
+
+		loop = start;
+		rxpp = xnbp->x_rx_bufp;
+
+		while (loop != end) {
+			xnb_rxbuf_put(xnbp, *rxpp);
+
+			loop++;
+			rxpp++;
+		}
+
+		goto finished;
+	}
+
+	for (loop = start, mop = xnbp->x_rx_mop, rxpp = xnbp->x_rx_bufp;
+	    loop != end;
+	    loop++, mop++, rxpp++) {
+		mblk_t *mp = NULL;
+		int16_t status = NETIF_RSP_OKAY;
+		xnb_rxbuf_t *rxp = *rxpp;
+
+		if (mop->status != 0) {
+			cmn_err(CE_WARN, "xnb_recv: "
+			    "failed to map buffer: %d",
+			    mop->status);
+			status = NETIF_RSP_ERROR;
+		}
+
+		txreq = RING_GET_REQUEST(&xnbp->x_tx_ring, loop);
+
+		if (status == NETIF_RSP_OKAY) {
+			if (copy) {
+				mp = allocb(txreq->size, BPRI_MED);
+				if (mp == NULL) {
+					status = NETIF_RSP_ERROR;
+					xnbp->x_stat_rx_allocb_failed++;
+				} else {
+					bcopy((caddr_t)(uintptr_t)
+					    mop->host_addr + txreq->offset,
+					    mp->b_wptr, txreq->size);
+					mp->b_wptr += txreq->size;
+				}
+			} else {
+				mp = desballoc((unsigned char *)(uintptr_t)
+				    mop->host_addr + txreq->offset,
+				    txreq->size, 0, &rxp->xr_free_rtn);
+				if (mp == NULL) {
+					status = NETIF_RSP_ERROR;
+					xnbp->x_stat_rx_allocb_failed++;
+				} else {
+					rxp->xr_id = txreq->id;
+					rxp->xr_status = status;
+					rxp->xr_mop = *mop;
+
+					mp->b_wptr += txreq->size;
+				}
+			}
+
+			/*
+			 * If we have a buffer and there are checksum
+			 * flags, process them appropriately.
+			 */
+			if ((mp != NULL) &&
+			    ((txreq->flags &
+			    (NETTXF_csum_blank | NETTXF_data_validated))
+			    != 0)) {
+				mp = xnbp->x_flavour->xf_cksum_from_peer(xnbp,
+				    mp, txreq->flags);
+				xnbp->x_stat_rx_cksum_no_need++;
+			}
+		}
+
+		if (copy || (mp == NULL)) {
+			xnb_rx_mark_complete(xnbp, txreq->id, status);
+			xnb_rx_schedule_unmop(xnbp, mop);
+		}
+
+		if (mp != NULL) {
+			xnbp->x_stat_ipackets++;
+			xnbp->x_stat_rbytes += txreq->size;
+
+			mp->b_next = NULL;
+			if (head == NULL) {
+				ASSERT(tail == NULL);
+				head = mp;
+			} else {
+				ASSERT(tail != NULL);
+				tail->b_next = mp;
+			}
+			tail = mp;
+		}
+	}
+
+	/*
+	 * This has to be here rather than in the 'finished' code
+	 * because we can only handle NET_TX_RING_SIZE pending unmap
+	 * operations, which may be exceeded by multiple trips around
+	 * the receive loop during heavy load (one trip around the
+	 * loop cannot generate more than NET_TX_RING_SIZE unmap
+	 * operations).
+	 */
+	xnb_rx_perform_pending_unmop(xnbp);
+	if (copy) {
+		for (loop = start, rxpp = xnbp->x_rx_bufp;
+		    loop != end;
+		    loop++, rxpp++)
+			xnb_rxbuf_put(xnbp, *rxpp);
+	}
+
+	xnbp->x_tx_ring.req_cons = loop;
+
+	goto around;
+	/* NOTREACHED */
+}
+
+/*
+ *  intr() -- ring interrupt service routine
+ */
+static uint_t
+xnb_intr(caddr_t arg)
+{
+	xnb_t *xnbp = (xnb_t *)arg;
+	mblk_t *mp;
+
+	xnbp->x_stat_intr++;
+
+	mutex_enter(&xnbp->x_rx_lock);
+
+	ASSERT(xnbp->x_connected);
+
+	mp = xnb_recv(xnbp);
+
+	mutex_exit(&xnbp->x_rx_lock);
+
+	if (!xnbp->x_hotplugged) {
+		xnbp->x_stat_rx_too_early++;
+		goto fail;
+	}
+	if (mp == NULL) {
+		xnbp->x_stat_spurious_intr++;
+		goto fail;
+	}
+
+	xnbp->x_flavour->xf_recv(xnbp, mp);
+
+	return (DDI_INTR_CLAIMED);
+
+fail:
+	freemsgchain(mp);
+	return (DDI_INTR_CLAIMED);
+}
+
+static boolean_t
+xnb_connect_rings(dev_info_t *dip)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+	char *oename;
+	struct gnttab_map_grant_ref map_op;
+	evtchn_port_t evtchn;
+	int i;
+
+	/*
+	 * Cannot attempt to connect the rings if already connected.
+	 */
+	ASSERT(!xnbp->x_connected);
+
+	oename = xvdi_get_oename(dip);
+
+	if (xenbus_gather(XBT_NULL, oename,
+	    "event-channel", "%u", &evtchn,
+	    "tx-ring-ref", "%lu", &xnbp->x_tx_ring_ref,
+	    "rx-ring-ref", "%lu", &xnbp->x_rx_ring_ref,
+	    NULL) != 0) {
+		cmn_err(CE_WARN, "xnb_connect_rings: "
+		    "cannot read other-end details from %s",
+		    oename);
+		goto fail;
+	}
+
+	if (xenbus_scanf(XBT_NULL, oename,
+	    "feature-tx-writable", "%d", &i) != 0)
+		i = 0;
+	if (i != 0)
+		xnbp->x_rx_pages_writable = B_TRUE;
+
+	if (xenbus_scanf(XBT_NULL, oename,
+	    "feature-no-csum-offload", "%d", &i) != 0)
+		i = 0;
+	if ((i == 1) || !xnbp->x_cksum_offload)
+		xnbp->x_cksum_offload = B_FALSE;
+
+	/*
+	 * 1. allocate a vaddr for the tx page, one for the rx page.
+	 * 2. call GNTTABOP_map_grant_ref to map the relevant pages
+	 *    into the allocated vaddr (one for tx, one for rx).
+	 * 3. call EVTCHNOP_bind_interdomain to have the event channel
+	 *    bound to this domain.
+	 * 4. associate the event channel with an interrupt.
+	 * 5. declare ourselves connected.
+	 * 6. enable the interrupt.
+	 */
+
+	/* 1.tx */
+	xnbp->x_tx_ring_addr = vmem_xalloc(heap_arena, PAGESIZE, PAGESIZE,
+	    0, 0, 0, 0, VM_SLEEP);
+	ASSERT(xnbp->x_tx_ring_addr != NULL);
+
+	/* 2.tx */
+	map_op.host_addr = (uint64_t)((long)xnbp->x_tx_ring_addr);
+	map_op.flags = GNTMAP_host_map;
+	map_op.ref = xnbp->x_tx_ring_ref;
+	map_op.dom = xnbp->x_peer;
+	hat_prepare_mapping(kas.a_hat, xnbp->x_tx_ring_addr);
+	if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
+	    &map_op, 1) != 0 || map_op.status != 0) {
+		cmn_err(CE_WARN, "xnb_connect_rings: cannot map tx-ring page.");
+		goto fail;
+	}
+	xnbp->x_tx_ring_handle = map_op.handle;
+
+	/*LINTED: constant in conditional context*/
+	BACK_RING_INIT(&xnbp->x_tx_ring,
+	    (netif_tx_sring_t *)xnbp->x_tx_ring_addr, PAGESIZE);
+
+	/* 1.rx */
+	xnbp->x_rx_ring_addr = vmem_xalloc(heap_arena, PAGESIZE, PAGESIZE,
+	    0, 0, 0, 0, VM_SLEEP);
+	ASSERT(xnbp->x_rx_ring_addr != NULL);
+
+	/* 2.rx */
+	map_op.host_addr = (uint64_t)((long)xnbp->x_rx_ring_addr);
+	map_op.flags = GNTMAP_host_map;
+	map_op.ref = xnbp->x_rx_ring_ref;
+	map_op.dom = xnbp->x_peer;
+	hat_prepare_mapping(kas.a_hat, xnbp->x_rx_ring_addr);
+	if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
+	    &map_op, 1) != 0 || map_op.status != 0) {
+		cmn_err(CE_WARN, "xnb_connect_rings: cannot map rx-ring page.");
+		goto fail;
+	}
+	xnbp->x_rx_ring_handle = map_op.handle;
+
+	/*LINTED: constant in conditional context*/
+	BACK_RING_INIT(&xnbp->x_rx_ring,
+	    (netif_rx_sring_t *)xnbp->x_rx_ring_addr, PAGESIZE);
+
+	/* 3 */
+	if (xvdi_bind_evtchn(dip, evtchn) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xnb_connect_rings: "
+		    "cannot bind event channel %d", xnbp->x_evtchn);
+		xnbp->x_evtchn = INVALID_EVTCHN;
+		goto fail;
+	}
+	xnbp->x_evtchn = xvdi_get_evtchn(dip);
+
+	/*
+	 * It would be good to set the state to XenbusStateConnected
+	 * here as well, but then what if ddi_add_intr() failed?
+	 * Changing the state in the store will be noticed by the peer
+	 * and cannot be "taken back".
+	 */
+	mutex_enter(&xnbp->x_tx_lock);
+	mutex_enter(&xnbp->x_rx_lock);
+
+	/* 5.1 */
+	xnbp->x_connected = B_TRUE;
+
+	mutex_exit(&xnbp->x_rx_lock);
+	mutex_exit(&xnbp->x_tx_lock);
+
+	/* 4, 6 */
+	if (ddi_add_intr(dip, 0, NULL, NULL, xnb_intr, (caddr_t)xnbp)
+	    != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xnb_connect_rings: cannot add interrupt");
+		goto fail;
+	}
+	xnbp->x_irq = B_TRUE;
+
+	/* 5.2 */
+	(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateConnected);
+
+	return (B_TRUE);
+
+fail:
+	mutex_enter(&xnbp->x_tx_lock);
+	mutex_enter(&xnbp->x_rx_lock);
+
+	xnbp->x_connected = B_FALSE;
+
+	mutex_exit(&xnbp->x_rx_lock);
+	mutex_exit(&xnbp->x_tx_lock);
+
+	return (B_FALSE);
+}
+
+static void
+xnb_disconnect_rings(dev_info_t *dip)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+
+	if (xnbp->x_irq) {
+		ddi_remove_intr(dip, 0, NULL);
+		xnbp->x_irq = B_FALSE;
+	}
+
+	if (xnbp->x_evtchn != INVALID_EVTCHN) {
+		xvdi_free_evtchn(dip);
+		xnbp->x_evtchn = INVALID_EVTCHN;
+	}
+
+	if (xnbp->x_rx_ring_handle != INVALID_GRANT_HANDLE) {
+		struct gnttab_unmap_grant_ref unmap_op;
+
+		unmap_op.host_addr = (uint64_t)(uintptr_t)xnbp->x_rx_ring_addr;
+		unmap_op.dev_bus_addr = 0;
+		unmap_op.handle = xnbp->x_rx_ring_handle;
+		if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+		    &unmap_op, 1) != 0)
+			cmn_err(CE_WARN, "xnb_disconnect_rings: "
+			    "cannot unmap rx-ring page (%d)",
+			    unmap_op.status);
+
+		xnbp->x_rx_ring_handle = INVALID_GRANT_HANDLE;
+	}
+
+	if (xnbp->x_rx_ring_addr != NULL) {
+		hat_release_mapping(kas.a_hat, xnbp->x_rx_ring_addr);
+		vmem_free(heap_arena, xnbp->x_rx_ring_addr, PAGESIZE);
+		xnbp->x_rx_ring_addr = NULL;
+	}
+
+	if (xnbp->x_tx_ring_handle != INVALID_GRANT_HANDLE) {
+		struct gnttab_unmap_grant_ref unmap_op;
+
+		unmap_op.host_addr = (uint64_t)(uintptr_t)xnbp->x_tx_ring_addr;
+		unmap_op.dev_bus_addr = 0;
+		unmap_op.handle = xnbp->x_tx_ring_handle;
+		if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+		    &unmap_op, 1) != 0)
+			cmn_err(CE_WARN, "xnb_disconnect_rings: "
+			    "cannot unmap tx-ring page (%d)",
+			    unmap_op.status);
+
+		xnbp->x_tx_ring_handle = INVALID_GRANT_HANDLE;
+	}
+
+	if (xnbp->x_tx_ring_addr != NULL) {
+		hat_release_mapping(kas.a_hat, xnbp->x_tx_ring_addr);
+		vmem_free(heap_arena, xnbp->x_tx_ring_addr, PAGESIZE);
+		xnbp->x_tx_ring_addr = NULL;
+	}
+}
+
+/*ARGSUSED*/
+static void
+xnb_oe_state_change(dev_info_t *dip, ddi_eventcookie_t id,
+    void *arg, void *impl_data)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+	XenbusState new_state = *(XenbusState *)impl_data;
+
+	ASSERT(xnbp != NULL);
+
+	switch (new_state) {
+	case XenbusStateConnected:
+		if (xnb_connect_rings(dip)) {
+			xnbp->x_flavour->xf_peer_connected(xnbp);
+		} else {
+			xnbp->x_flavour->xf_peer_disconnected(xnbp);
+			xnb_disconnect_rings(dip);
+			(void) xvdi_switch_state(dip, XBT_NULL,
+			    XenbusStateClosed);
+			(void) xvdi_post_event(dip, XEN_HP_REMOVE);
+		}
+
+		/*
+		 * Now that we've attempted to connect it's reasonable
+		 * to allow an attempt to detach.
+		 */
+		xnbp->x_detachable = B_TRUE;
+
+		break;
+
+	case XenbusStateClosing:
+		(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateClosing);
+
+		break;
+
+	case XenbusStateClosed:
+		xnbp->x_flavour->xf_peer_disconnected(xnbp);
+
+		mutex_enter(&xnbp->x_tx_lock);
+		mutex_enter(&xnbp->x_rx_lock);
+
+		xnb_disconnect_rings(dip);
+		xnbp->x_connected = B_FALSE;
+
+		mutex_exit(&xnbp->x_rx_lock);
+		mutex_exit(&xnbp->x_tx_lock);
+
+		(void) xvdi_switch_state(dip, XBT_NULL, XenbusStateClosed);
+		(void) xvdi_post_event(dip, XEN_HP_REMOVE);
+		/*
+		 * In all likelyhood this is already set (in the above
+		 * case), but if the peer never attempted to connect
+		 * and the domain is destroyed we get here without
+		 * having been through the case above, so we set it to
+		 * be sure.
+		 */
+		xnbp->x_detachable = B_TRUE;
+
+		break;
+
+	default:
+		break;
+	}
+}
+
+/*ARGSUSED*/
+static void
+xnb_hp_state_change(dev_info_t *dip, ddi_eventcookie_t id,
+    void *arg, void *impl_data)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+	xendev_hotplug_state_t state = *(xendev_hotplug_state_t *)impl_data;
+	boolean_t success;
+
+	ASSERT(xnbp != NULL);
+
+	switch (state) {
+	case Connected:
+
+		success = xnbp->x_flavour->xf_hotplug_connected(xnbp);
+
+		mutex_enter(&xnbp->x_tx_lock);
+		mutex_enter(&xnbp->x_rx_lock);
+
+		xnbp->x_hotplugged = success;
+
+		mutex_exit(&xnbp->x_rx_lock);
+		mutex_exit(&xnbp->x_tx_lock);
+		break;
+
+	default:
+		break;
+	}
+}
+
+static struct modldrv modldrv = {
+	&mod_miscops, "xnb module %I%",
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, &modldrv, NULL
+};
+
+int
+_init(void)
+{
+	int i;
+
+	mutex_init(&xnb_alloc_page_lock, NULL, MUTEX_DRIVER, NULL);
+
+	xnb_rxbuf_cachep = kmem_cache_create("xnb_rxbuf_cachep",
+	    sizeof (xnb_rxbuf_t), 0, xnb_rxbuf_constructor,
+	    xnb_rxbuf_destructor, NULL, NULL, NULL, 0);
+	ASSERT(xnb_rxbuf_cachep != NULL);
+
+	i = mod_install(&modlinkage);
+	if (i != DDI_SUCCESS) {
+		kmem_cache_destroy(xnb_rxbuf_cachep);
+		mutex_destroy(&xnb_alloc_page_lock);
+	}
+	return (i);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+int
+_fini(void)
+{
+	int i;
+
+	i = mod_remove(&modlinkage);
+	if (i == DDI_SUCCESS) {
+		kmem_cache_destroy(xnb_rxbuf_cachep);
+		mutex_destroy(&xnb_alloc_page_lock);
+	}
+	return (i);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnb.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,181 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ *
+ * xnb.h - definitions for Xen dom0 network driver
+ */
+
+#ifndef _SYS_XNB_H
+#define	_SYS_XNB_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/kstat.h>
+#include <sys/stream.h>
+#include <sys/ethernet.h>
+#include <sys/hypervisor.h>
+#include <xen/public/io/netif.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	NET_TX_RING_SIZE  __RING_SIZE((netif_tx_sring_t *)0, PAGESIZE)
+#define	NET_RX_RING_SIZE  __RING_SIZE((netif_rx_sring_t *)0, PAGESIZE)
+
+#define	XNBMAXPKT	1500		/* MTU size */
+
+/* DEBUG flags */
+#define	XNBDDI		0x01
+#define	XNBTRACE	0x02
+#define	XNBSEND		0x04
+#define	XNBRECV		0x08
+#define	XNBINTR		0x10
+#define	XNBRING		0x20
+#define	XNBCKSUM	0x40
+
+typedef struct xnb xnb_t;
+
+/*
+ * The xnb module provides core inter-domain network protocol functionality.
+ * It is connected to the rest of Solaris in two ways:
+ * - as a GLDv3 driver (with xnbu),
+ * - as a GLDv3 consumer (with xnbo).
+ *
+ * The different modes of operation are termed "flavours" and each
+ * instance of an xnb based driver operates in one and only one mode.
+ * The common xnb driver exports a set of functions to these drivers
+ * (declarations at the foot of this file) and calls back into the
+ * drivers via the xnb_flavour_t structure.
+ */
+typedef struct xnb_flavour {
+	void		(*xf_recv)(xnb_t *, mblk_t *);
+	void		(*xf_peer_connected)(xnb_t *);
+	void		(*xf_peer_disconnected)(xnb_t *);
+	boolean_t	(*xf_hotplug_connected)(xnb_t *);
+	mblk_t		*(*xf_cksum_from_peer)(xnb_t *, mblk_t *, uint16_t);
+	uint16_t	(*xf_cksum_to_peer)(xnb_t *, mblk_t *);
+} xnb_flavour_t;
+
+typedef struct xnb_rxbuf {
+	frtn_t			xr_free_rtn;
+	xnb_t			*xr_xnbp;
+	gnttab_map_grant_ref_t	xr_mop;
+	RING_IDX		xr_id;
+	uint16_t		xr_status;
+	unsigned int		xr_flags;
+
+#define	XNB_RXBUF_INUSE	0x01
+
+} xnb_rxbuf_t;
+
+/* Per network-interface-controller driver private structure */
+struct xnb {
+	/* most interesting stuff first to assist debugging */
+	dev_info_t		*x_devinfo;	/* System per-device info. */
+
+	xnb_flavour_t		*x_flavour;
+	void			*x_flavour_data;
+
+	boolean_t		x_irq;
+	unsigned char		x_mac_addr[ETHERADDRL];
+
+	uint64_t		x_stat_ipackets;
+	uint64_t		x_stat_opackets;
+	uint64_t		x_stat_rbytes;
+	uint64_t		x_stat_obytes;
+
+	uint64_t		x_stat_intr;
+	uint64_t		x_stat_xmit_defer;
+
+	uint64_t		x_stat_tx_cksum_deferred;
+	uint64_t		x_stat_rx_cksum_no_need;
+
+	uint64_t		x_stat_tx_notify_sent;
+	uint64_t		x_stat_tx_notify_deferred;
+
+	uint64_t		x_stat_rx_notify_sent;
+	uint64_t		x_stat_rx_notify_deferred;
+
+	uint64_t		x_stat_tx_too_early;
+	uint64_t		x_stat_rx_too_early;
+	uint64_t		x_stat_rx_allocb_failed;
+	uint64_t		x_stat_mac_full;
+	uint64_t		x_stat_spurious_intr;
+	uint64_t		x_stat_allocation_success;
+	uint64_t		x_stat_allocation_failure;
+	uint64_t		x_stat_small_allocation_success;
+	uint64_t		x_stat_small_allocation_failure;
+
+	uint64_t		x_stat_csum_hardware;
+	uint64_t		x_stat_csum_software;
+
+	kstat_t			*x_kstat_aux;
+
+	boolean_t		x_cksum_offload;
+
+	ddi_iblock_cookie_t	x_icookie;
+
+	kmutex_t		x_rx_lock;
+	kmutex_t		x_tx_lock;
+
+	int			x_rx_unmop_count;
+	int			x_rx_buf_count;
+	boolean_t		x_rx_pages_writable;
+
+	netif_rx_back_ring_t	x_rx_ring;	/* rx interface struct ptr */
+	void			*x_rx_ring_addr;
+	grant_ref_t		x_rx_ring_ref;
+	grant_handle_t		x_rx_ring_handle;
+
+	netif_tx_back_ring_t	x_tx_ring;	/* tx interface struct ptr */
+	void			*x_tx_ring_addr;
+	grant_ref_t		x_tx_ring_ref;
+	grant_handle_t		x_tx_ring_handle;
+
+	boolean_t		x_connected;
+	boolean_t		x_hotplugged;
+	boolean_t		x_detachable;
+	int			x_evtchn;	/* channel to front end */
+	domid_t			x_peer;
+
+	xnb_rxbuf_t			*x_rx_bufp[NET_TX_RING_SIZE];
+	gnttab_map_grant_ref_t		x_rx_mop[NET_TX_RING_SIZE];
+	gnttab_unmap_grant_ref_t	x_rx_unmop[NET_TX_RING_SIZE];
+
+	caddr_t			x_tx_va;
+	gnttab_transfer_t	x_tx_top[NET_RX_RING_SIZE];
+};
+
+extern int xnb_attach(dev_info_t *, xnb_flavour_t *, void *);
+extern void xnb_detach(dev_info_t *);
+extern mblk_t *xnb_to_peer(xnb_t *, mblk_t *);
+extern mblk_t *xnb_process_cksum_flags(xnb_t *, mblk_t *, uint32_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XNB_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnbe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,163 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Xen network backend - ioemu version.
+ *
+ * HVM guest domains use an emulated network device (typically the
+ * rtl8139) to access the physical network via IO emulation running in
+ * a backend domain (generally domain 0).
+ *
+ * The IO emulation code sends and receives packets using DLPI, usually
+ * through a virtual NIC (vnic).
+ *
+ * The creation of the relevant vnic to correspond to the network interface
+ * in the guest domain requires the use of 'hotplug' scripts in the backend
+ * domain. This driver ensures that the hotplug scripts are run when
+ * such guest domains are created.
+ *
+ * It is used as a result of the 'compatible' property associated with
+ * IO emulated devices. See /etc/driver_aliases and common/xen/os/xvdi.c.
+ */
+
+#ifdef DEBUG
+#define	XNBE_DEBUG 1
+#endif /* DEBUG */
+
+#include <sys/types.h>
+#include <sys/conf.h>
+#include <sys/sunddi.h>
+#include <sys/modctl.h>
+#include <xen/sys/xendev.h>
+#ifdef XNBE_DEBUG
+#include <sys/cmn_err.h>
+#endif /* XNBE_DEBUG */
+
+#ifdef XNBE_DEBUG
+int xnbe_debug = 0;
+#endif /* XNBE_DEBUG */
+
+static int
+xnbe_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+#ifdef XNBE_DEBUG
+	if (xnbe_debug > 0)
+		cmn_err(CE_NOTE, "xnbe_attach: dip 0x%p, cmd %d",
+		    (void *)dip, cmd);
+#endif /* XNBE_DEBUG */
+
+	switch (cmd) {
+	case DDI_ATTACH:
+		break;
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+
+	(void) xvdi_post_event(dip, XEN_HP_ADD);
+
+	return (DDI_SUCCESS);
+}
+
+static int
+xnbe_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+#ifdef XNBE_DEBUG
+	if (xnbe_debug > 0)
+		cmn_err(CE_NOTE, "detach: dip 0x%p, cmd %d",
+		    (void *)dip, cmd);
+#endif /* XNBE_DEBUG */
+
+	switch (cmd) {
+	case DDI_DETACH:
+		return (DDI_SUCCESS);
+	case DDI_SUSPEND:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+}
+
+static struct cb_ops cb_ops = {
+	nulldev,		/* open */
+	nulldev,		/* close */
+	nodev,			/* strategy */
+	nodev,			/* print */
+	nodev,			/* dump */
+	nodev,			/* read */
+	nodev,			/* write */
+	nodev,			/* ioctl */
+	nodev,			/* devmap */
+	nodev,			/* mmap */
+	nodev,			/* segmap */
+	nochpoll,		/* poll */
+	ddi_prop_op,		/* cb_prop_op */
+	0,			/* streamtab  */
+	D_NEW | D_MP | D_64BIT	/* Driver compatibility flag */
+};
+
+static struct dev_ops ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt  */
+	nulldev,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	xnbe_attach,		/* devo_attach */
+	xnbe_detach,		/* devo_detach */
+	nodev,			/* devo_reset */
+	&cb_ops,		/* devo_cb_ops */
+	(struct bus_ops *)0,	/* devo_bus_ops */
+	NULL			/* devo_power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops, "xnbe driver %I%", &ops,
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, &modldrv, NULL
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modlinkage));
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modlinkage));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnbo.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,569 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Xen network backend - mac client edition.
+ *
+ * A driver that sits above an existing GLDv3/Nemo MAC driver and
+ * relays packets to/from that driver from/to a guest domain.
+ */
+
+#include "xnb.h"
+
+#include <sys/sunddi.h>
+#include <sys/modctl.h>
+#include <sys/strsubr.h>
+#include <sys/mac.h>
+#include <net/if.h>
+#include <sys/dlpi.h>
+#include <sys/pattr.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+
+typedef struct xnbo {
+	mac_handle_t		o_mh;
+	mac_rx_handle_t		o_mrh;
+	const mac_txinfo_t	*o_mtx;
+	mac_notify_handle_t	o_mnh;
+	boolean_t		o_running;
+	boolean_t		o_promiscuous;
+	uint32_t		o_hcksum_capab;
+} xnbo_t;
+
+static void xnbo_close_mac(xnbo_t *);
+
+/*
+ * Packets from the peer come here.  We pass them to the mac device.
+ */
+static void
+xnbo_to_mac(xnb_t *xnbp, mblk_t *mp)
+{
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+
+	ASSERT(mp != NULL);
+
+	if (!xnbop->o_running) {
+		xnbp->x_stat_rx_too_early++;
+		goto fail;
+	}
+
+	mp = xnbop->o_mtx->mt_fn(xnbop->o_mtx->mt_arg, mp);
+
+	if (mp != NULL) {
+		xnbp->x_stat_mac_full++;
+		goto fail;
+	}
+
+	return;
+
+fail:
+	freemsgchain(mp);
+}
+
+static mblk_t *
+xnbo_cksum_from_peer(xnb_t *xnbp, mblk_t *mp, uint16_t flags)
+{
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+
+	ASSERT(mp->b_next == NULL);
+
+	if ((flags & NETTXF_csum_blank) != 0) {
+		/*
+		 * It would be nice to ASSERT that xnbp->x_cksum_offload
+		 * is TRUE here, but some peers insist on assuming
+		 * that it is available even when they have been told
+		 * otherwise.
+		 *
+		 * The checksum in the packet is blank.  Determine
+		 * whether we can do hardware offload and, if so,
+		 * update the flags on the mblk according.  If not,
+		 * calculate and insert the checksum using software.
+		 */
+		mp = xnb_process_cksum_flags(xnbp, mp,
+		    xnbop->o_hcksum_capab);
+	}
+
+	return (mp);
+}
+
+static uint16_t
+xnbo_cksum_to_peer(xnb_t *xnbp, mblk_t *mp)
+{
+	uint16_t r = 0;
+
+	/*
+	 * We might also check for HCK_PARTIALCKSUM here and,
+	 * providing that the partial checksum covers the TCP/UDP
+	 * payload, return NETRXF_data_validated.
+	 *
+	 * It seems that it's probably not worthwhile, as even MAC
+	 * devices which advertise HCKSUM_INET_PARTIAL in their
+	 * capabilities tend to use HCK_FULLCKSUM on the receive side
+	 * - they are actually saying that in the output path the
+	 * caller must use HCK_PARTIALCKSUM.
+	 */
+
+	if (xnbp->x_cksum_offload) {
+		uint32_t pflags, csum;
+
+		/*
+		 * XXPV dme: Pull in improved hcksum_retrieve() from
+		 * Crossbow, which gives back the csum in the seventh
+		 * argument for HCK_FULLCKSUM.
+		 */
+		hcksum_retrieve(mp, NULL, NULL, NULL, NULL,
+		    NULL, NULL, &pflags);
+		csum = DB_CKSUM16(mp);
+
+		/*
+		 * If the MAC driver has asserted that the checksum is
+		 * good, let the peer know.
+		 */
+		if (((pflags & HCK_FULLCKSUM) != 0) &&
+		    (((pflags & HCK_FULLCKSUM_OK) != 0) ||
+		    (csum == 0xffff)))
+			r |= NETRXF_data_validated;
+	}
+
+	return (r);
+}
+
+/*
+ * Packets from the mac device come here.  We pass them to the peer.
+ */
+/*ARGSUSED*/
+static void
+xnbo_from_mac(void *arg, mac_resource_handle_t mrh, mblk_t *mp)
+{
+	xnb_t *xnbp = arg;
+
+	mp = xnb_to_peer(xnbp, mp);
+
+	if (mp != NULL)
+		freemsgchain(mp);
+}
+
+/*
+ * Packets from the mac device come here. We pass them to the peer if
+ * the destination mac address matches or it's a multicast/broadcast
+ * address.
+ */
+/*ARGSUSED*/
+static void
+xnbo_from_mac_filter(void *arg, mac_resource_handle_t mrh, mblk_t *mp)
+{
+	xnb_t *xnbp = arg;
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+	mblk_t *next, *keep, *keep_head, *free, *free_head;
+
+	keep = keep_head = free = free_head = NULL;
+
+#define	ADD(list, bp)				\
+	if (list != NULL)			\
+		list->b_next = bp;		\
+	else					\
+		list##_head = bp;		\
+	list = bp;
+
+	for (; mp != NULL; mp = next) {
+		mac_header_info_t hdr_info;
+
+		next = mp->b_next;
+		mp->b_next = NULL;
+
+		if (mac_header_info(xnbop->o_mh, mp, &hdr_info) != 0) {
+			ADD(free, mp);
+			continue;
+		}
+
+		if ((hdr_info.mhi_dsttype == MAC_ADDRTYPE_BROADCAST) ||
+		    (hdr_info.mhi_dsttype == MAC_ADDRTYPE_MULTICAST)) {
+			ADD(keep, mp);
+			continue;
+		}
+
+		if (bcmp(hdr_info.mhi_daddr, xnbp->x_mac_addr,
+		    sizeof (xnbp->x_mac_addr)) == 0) {
+			ADD(keep, mp);
+			continue;
+		}
+
+		ADD(free, mp);
+	}
+#undef	ADD
+
+	if (keep_head != NULL)
+		xnbo_from_mac(xnbp, mrh, keep_head);
+
+	if (free_head != NULL)
+		freemsgchain(free_head);
+}
+
+static void
+xnbo_notify(void *arg, mac_notify_type_t type)
+{
+	xnb_t *xnbp = arg;
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+
+	switch (type) {
+	case MAC_NOTE_PROMISC:
+		xnbop->o_mtx = mac_tx_get(xnbop->o_mh);
+		break;
+	}
+}
+
+static boolean_t
+xnbo_open_mac(xnb_t *xnbp, char *mac)
+{
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+	char drv[LIFNAMSIZ];
+	uint_t ddi_instance;
+	int err, need_rx_filter, need_setphysaddr, need_promiscuous;
+	const mac_info_t *mi;
+	char *xsname;
+	void (*rx_fn)(void *, mac_resource_handle_t, mblk_t *);
+
+	xsname = xvdi_get_xsname(xnbp->x_devinfo);
+
+	if (ddi_parse(mac, drv, &ddi_instance) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xnbo_hotplug: "
+		    "invalid device name %s", mac);
+		return (B_FALSE);
+	}
+
+	if ((err = mac_open(mac, ddi_instance, &xnbop->o_mh)) != 0) {
+		cmn_err(CE_WARN, "xnbo_open_mac: "
+		    "cannot open mac device %s (%d)", mac, err);
+		return (B_FALSE);
+	}
+	ASSERT(xnbop->o_mh != NULL);
+
+	mi = mac_info(xnbop->o_mh);
+	ASSERT(mi != NULL);
+
+	if (mi->mi_media != DL_ETHER) {
+		cmn_err(CE_WARN, "xnbo_open_mac: "
+		    "mac device is not DL_ETHER (%d)", mi->mi_media);
+		xnbo_close_mac(xnbop);
+		return (B_FALSE);
+	}
+	if (mi->mi_media != mi->mi_nativemedia) {
+		cmn_err(CE_WARN, "xnbo_open_mac: "
+		    "mac device media and native media mismatch (%d != %d)",
+		    mi->mi_media, mi->mi_nativemedia);
+		xnbo_close_mac(xnbop);
+		return (B_FALSE);
+	}
+	if (mi->mi_sdu_max > XNBMAXPKT) {
+		cmn_err(CE_WARN, "xnbo_open_mac: "
+		    "mac device SDU too big (%d)", mi->mi_sdu_max);
+		xnbo_close_mac(xnbop);
+		return (B_FALSE);
+	}
+
+	xnbop->o_mnh = mac_notify_add(xnbop->o_mh, xnbo_notify, xnbp);
+	ASSERT(xnbop->o_mnh != NULL);
+
+	/*
+	 * Should the receive path filter packets from the downstream
+	 * NIC before passing them to the peer? The default is "no".
+	 */
+	if (xenbus_scanf(XBT_NULL, xsname,
+	    "SUNW-need-rx-filter", "%d", &need_rx_filter) != 0)
+		need_rx_filter = 0;
+	if (need_rx_filter > 0)
+		rx_fn = xnbo_from_mac_filter;
+	else
+		rx_fn = xnbo_from_mac;
+
+	xnbop->o_mrh = mac_rx_add(xnbop->o_mh, rx_fn, xnbp);
+	ASSERT(xnbop->o_mrh != NULL);
+
+	xnbop->o_mtx = mac_tx_get(xnbop->o_mh);
+	ASSERT(xnbop->o_mtx != NULL);
+
+	if (!mac_capab_get(xnbop->o_mh, MAC_CAPAB_HCKSUM,
+	    &xnbop->o_hcksum_capab))
+		xnbop->o_hcksum_capab = 0;
+
+	/*
+	 * Should we set the physical address of the underlying NIC
+	 * to match that assigned to the peer? The default is "no".
+	 */
+	if (xenbus_scanf(XBT_NULL, xsname,
+	    "SUNW-need-set-physaddr", "%d", &need_setphysaddr) != 0)
+		need_setphysaddr = 0;
+	if (need_setphysaddr > 0) {
+		struct ether_addr ea;
+
+		err = mac_unicst_set(xnbop->o_mh, xnbp->x_mac_addr);
+		/* Warn, but continue on. */
+		if (err != 0) {
+			bcopy(xnbp->x_mac_addr, ea.ether_addr_octet,
+			    ETHERADDRL);
+			cmn_err(CE_WARN, "xnbo_open_mac: "
+			    "cannot set MAC address of %s to "
+			    "%s: %d", mac, ether_sprintf(&ea),
+			    err);
+		}
+	}
+
+	/*
+	 * Should we set the underlying NIC into promiscuous mode? The
+	 * default is "no".
+	 */
+	if (xenbus_scanf(XBT_NULL, xsname,
+	    "SUNW-need-promiscuous", "%d", &need_promiscuous) != 0)
+		need_promiscuous = 0;
+	if (need_promiscuous > 0) {
+		err = mac_promisc_set(xnbop->o_mh, B_TRUE, MAC_DEVPROMISC);
+		if (err != 0) {
+			cmn_err(CE_WARN, "xnbo_open_mac: "
+			    "cannot enable promiscuous mode of %s: %d",
+			    mac, err);
+			xnbo_close_mac(xnbop);
+			return (B_FALSE);
+		}
+		xnbop->o_promiscuous = B_TRUE;
+	}
+
+	if ((err = mac_start(xnbop->o_mh)) != 0) {
+		cmn_err(CE_WARN, "xnbo_open_mac: "
+		    "cannot start mac device (%d)", err);
+		xnbo_close_mac(xnbop);
+		return (B_FALSE);
+	}
+	xnbop->o_running = B_TRUE;
+
+	return (B_TRUE);
+}
+
+/*
+ * xnb calls back here when the user-level hotplug code reports that
+ * the hotplug has successfully completed. For this flavour that means
+ * that the underlying MAC device that we will use is ready to be
+ * opened.
+ */
+static boolean_t
+xnbo_hotplug(xnb_t *xnbp)
+{
+	char *xsname;
+	char mac[LIFNAMSIZ];
+
+	xsname = xvdi_get_xsname(xnbp->x_devinfo);
+	if (xenbus_scanf(XBT_NULL, xsname, "nic", "%s", mac) != 0) {
+		cmn_err(CE_WARN, "xnbo_hotplug: "
+		    "cannot read nic name from %s", xsname);
+		return (B_FALSE);
+	}
+
+	return (xnbo_open_mac(xnbp, mac));
+}
+
+static void
+xnbo_close_mac(xnbo_t *xnbop)
+{
+	if (xnbop->o_mh == NULL)
+		return;
+
+	if (xnbop->o_running) {
+		mac_stop(xnbop->o_mh);
+		xnbop->o_running = B_FALSE;
+	}
+
+	if (xnbop->o_promiscuous) {
+		(void) mac_promisc_set(xnbop->o_mh, B_FALSE,
+		    MAC_DEVPROMISC);
+		xnbop->o_promiscuous = B_FALSE;
+	}
+
+	xnbop->o_mtx = NULL;
+
+	if (xnbop->o_mrh != NULL) {
+		mac_rx_remove(xnbop->o_mh, xnbop->o_mrh, B_TRUE);
+		xnbop->o_mrh = NULL;
+	}
+
+	if (xnbop->o_mnh != NULL) {
+		mac_notify_remove(xnbop->o_mh, xnbop->o_mnh);
+		xnbop->o_mnh = NULL;
+	}
+
+	mac_close(xnbop->o_mh);
+	xnbop->o_mh = NULL;
+}
+
+/*
+ * xnb calls back here when we successfully synchronize with the
+ * driver in the guest domain. In this flavour there is nothing to do as
+ * we open the underlying MAC device on successful hotplug completion.
+ */
+/*ARGSUSED*/
+static void
+xnbo_connected(xnb_t *xnbp)
+{
+}
+
+/*
+ * xnb calls back here when the driver in the guest domain has closed
+ * down the inter-domain connection. We close the underlying MAC device.
+ */
+static void
+xnbo_disconnected(xnb_t *xnbp)
+{
+	xnbo_close_mac(xnbp->x_flavour_data);
+}
+
+static int
+xnbo_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	static xnb_flavour_t flavour = {
+		xnbo_to_mac, xnbo_connected, xnbo_disconnected, xnbo_hotplug,
+		xnbo_cksum_from_peer, xnbo_cksum_to_peer,
+	};
+	xnbo_t *xnbop;
+
+	switch (cmd) {
+	case DDI_ATTACH:
+		break;
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+
+	xnbop = kmem_zalloc(sizeof (*xnbop), KM_SLEEP);
+
+	xnbop->o_mh = NULL;
+	xnbop->o_mrh = NULL;
+	xnbop->o_mtx = NULL;
+	xnbop->o_running = B_FALSE;
+	xnbop->o_hcksum_capab = 0;
+
+	if (xnb_attach(dip, &flavour, xnbop) != DDI_SUCCESS) {
+		kmem_free(xnbop, sizeof (*xnbop));
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static int
+xnbo_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+	xnbo_t *xnbop = xnbp->x_flavour_data;
+
+	switch (cmd) {
+	case DDI_DETACH:
+		break;
+	case DDI_SUSPEND:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+
+	mutex_enter(&xnbp->x_tx_lock);
+	mutex_enter(&xnbp->x_rx_lock);
+
+	if (!xnbp->x_detachable || xnbp->x_connected ||
+	    (xnbp->x_rx_buf_count > 0)) {
+		mutex_exit(&xnbp->x_rx_lock);
+		mutex_exit(&xnbp->x_tx_lock);
+
+		return (DDI_FAILURE);
+	}
+
+	mutex_exit(&xnbp->x_rx_lock);
+	mutex_exit(&xnbp->x_tx_lock);
+
+	xnbo_close_mac(xnbop);
+	kmem_free(xnbop, sizeof (*xnbop));
+
+	xnb_detach(dip);
+
+	return (DDI_SUCCESS);
+}
+
+static struct cb_ops cb_ops = {
+	nulldev,		/* open */
+	nulldev,		/* close */
+	nodev,			/* strategy */
+	nodev,			/* print */
+	nodev,			/* dump */
+	nodev,			/* read */
+	nodev,			/* write */
+	nodev,			/* ioctl */
+	nodev,			/* devmap */
+	nodev,			/* mmap */
+	nodev,			/* segmap */
+	nochpoll,		/* poll */
+	ddi_prop_op,		/* cb_prop_op */
+	0,			/* streamtab  */
+	D_NEW | D_MP | D_64BIT	/* Driver compatibility flag */
+};
+
+static struct dev_ops ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* devo_refcnt  */
+	nulldev,		/* devo_getinfo */
+	nulldev,		/* devo_identify */
+	nulldev,		/* devo_probe */
+	xnbo_attach,		/* devo_attach */
+	xnbo_detach,		/* devo_detach */
+	nodev,			/* devo_reset */
+	&cb_ops,		/* devo_cb_ops */
+	(struct bus_ops *)0,	/* devo_bus_ops */
+	NULL			/* devo_power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops, "xnbo driver %I%", &ops,
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, &modldrv, NULL
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modlinkage));
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modlinkage));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnbu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,542 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Xen inter-domain backend - GLDv3 driver edition.
+ *
+ * A traditional GLDv3 driver used to communicate with a guest
+ * domain.  This driver is typically plumbed underneath the IP stack
+ * or a software ethernet bridge.
+ */
+
+#include "xnb.h"
+
+#include <sys/sunddi.h>
+#include <sys/conf.h>
+#include <sys/modctl.h>
+#include <sys/strsubr.h>
+#include <sys/dlpi.h>
+#include <sys/pattr.h>
+#include <sys/mac.h>
+#include <sys/mac_ether.h>
+#include <xen/sys/xendev.h>
+
+/* Required driver entry points for GLDv3 */
+static int	xnbu_m_start(void *);
+static void	xnbu_m_stop(void *);
+static int	xnbu_m_set_mac_addr(void *, const uint8_t *);
+static int	xnbu_m_set_multicast(void *, boolean_t, const uint8_t *);
+static int	xnbu_m_set_promiscuous(void *, boolean_t);
+static int	xnbu_m_stat(void *, uint_t, uint64_t *);
+static void	xnbu_m_blank(void *, time_t, uint_t);
+static void	xnbu_m_resources(void *);
+static boolean_t xnbu_m_getcapab(void *, mac_capab_t, void *);
+static mblk_t	*xnbu_m_send(void *, mblk_t *);
+
+typedef struct xnbu {
+	mac_handle_t		u_mh;
+	mac_resource_handle_t	u_rx_handle;
+	boolean_t		u_need_sched;
+} xnbu_t;
+
+static mac_callbacks_t xnb_callbacks = {
+	MC_RESOURCES | MC_GETCAPAB,
+	xnbu_m_stat,
+	xnbu_m_start,
+	xnbu_m_stop,
+	xnbu_m_set_promiscuous,
+	xnbu_m_set_multicast,
+	xnbu_m_set_mac_addr,
+	xnbu_m_send,
+	xnbu_m_resources,
+	NULL,
+	xnbu_m_getcapab
+};
+
+static void
+xnbu_to_host(xnb_t *xnbp, mblk_t *mp)
+{
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+	boolean_t sched = B_FALSE;
+
+	ASSERT(mp != NULL);
+
+	mac_rx(xnbup->u_mh, xnbup->u_rx_handle, mp);
+
+	mutex_enter(&xnbp->x_tx_lock);
+
+	/*
+	 * If a transmit attempt failed because we ran out of ring
+	 * space and there is now some space, re-enable the transmit
+	 * path.
+	 */
+	if (xnbup->u_need_sched &&
+	    RING_HAS_UNCONSUMED_REQUESTS(&xnbp->x_rx_ring)) {
+		sched = B_TRUE;
+		xnbup->u_need_sched = B_FALSE;
+	}
+
+	mutex_exit(&xnbp->x_tx_lock);
+
+	if (sched)
+		mac_tx_update(xnbup->u_mh);
+}
+
+static mblk_t *
+xnbu_cksum_from_peer(xnb_t *xnbp, mblk_t *mp, uint16_t flags)
+{
+	/*
+	 * Take a conservative approach - if the checksum is blank
+	 * then we fill it in.
+	 *
+	 * If the consumer of the packet is IP then we might actually
+	 * only need fill it in if the data is not validated, but how
+	 * do we know who might end up with the packet?
+	 */
+
+	if ((flags & NETTXF_csum_blank) != 0) {
+		/*
+		 * The checksum is blank.  We must fill it in here.
+		 */
+		mp = xnb_process_cksum_flags(xnbp, mp, 0);
+
+		/*
+		 * Because we calculated the checksum ourselves we
+		 * know that it must be good, so we assert this.
+		 */
+		flags &= NETTXF_data_validated;
+	}
+
+	if ((flags & NETTXF_data_validated) != 0) {
+		/*
+		 * The checksum is asserted valid.
+		 *
+		 * The hardware checksum offload specification says
+		 * that we must provide the actual checksum as well as
+		 * an assertion that it is valid, but the protocol
+		 * stack doesn't actually use it so we don't bother.
+		 * If it was necessary we could grovel in the packet
+		 * to find it.
+		 */
+		(void) hcksum_assoc(mp, NULL, NULL, 0, 0, 0, 0,
+		    HCK_FULLCKSUM | HCK_FULLCKSUM_OK, KM_NOSLEEP);
+	}
+
+	return (mp);
+}
+
+static uint16_t
+xnbu_cksum_to_peer(xnb_t *xnbp, mblk_t *mp)
+{
+	uint16_t r = 0;
+
+	if (xnbp->x_cksum_offload) {
+		uint32_t pflags;
+
+		hcksum_retrieve(mp, NULL, NULL, NULL, NULL,
+		    NULL, NULL, &pflags);
+
+		/*
+		 * If the protocol stack has requested checksum
+		 * offload, inform the peer that we have not
+		 * calculated the checksum.
+		 */
+		if ((pflags & HCK_FULLCKSUM) != 0)
+			r |= NETRXF_csum_blank;
+	}
+
+	return (r);
+}
+
+static void
+xnbu_connected(xnb_t *xnbp)
+{
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+
+	mac_link_update(xnbup->u_mh, LINK_STATE_UP);
+	/*
+	 * We are able to send packets now - bring them on.
+	 */
+	mac_tx_update(xnbup->u_mh);
+}
+
+static void
+xnbu_disconnected(xnb_t *xnbp)
+{
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+
+	mac_link_update(xnbup->u_mh, LINK_STATE_DOWN);
+}
+
+/*ARGSUSED*/
+static boolean_t
+xnbu_hotplug(xnb_t *xnbp)
+{
+	return (B_TRUE);
+}
+
+static mblk_t *
+xnbu_m_send(void *arg, mblk_t *mp)
+{
+	xnb_t *xnbp = arg;
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+
+	mp = xnb_to_peer(arg, mp);
+
+	/* XXPV dme: playing with need_sched without txlock? */
+
+	/*
+	 * If we consumed all of the mblk_t's offered, perhaps we need
+	 * to indicate that we can accept more.  Otherwise we are full
+	 * and need to wait for space.
+	 */
+	if (mp == NULL) {
+		/*
+		 * If a previous transmit attempt failed because the ring
+		 * was full, try again now.
+		 */
+		if (xnbup->u_need_sched) {
+			xnbup->u_need_sched = B_FALSE;
+			mac_tx_update(xnbup->u_mh);
+		}
+	} else {
+		xnbup->u_need_sched = B_TRUE;
+	}
+
+	return (mp);
+}
+
+/*
+ *  xnbu_m_set_mac_addr() -- set the physical network address on the board
+ */
+/* ARGSUSED */
+static int
+xnbu_m_set_mac_addr(void *arg, const uint8_t *macaddr)
+{
+	xnb_t *xnbp = arg;
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+
+	bcopy(macaddr, xnbp->x_mac_addr, ETHERADDRL);
+	mac_unicst_update(xnbup->u_mh, xnbp->x_mac_addr);
+
+	return (0);
+}
+
+/*
+ *  xnbu_m_set_multicast() -- set (enable) or disable a multicast address
+ */
+/*ARGSUSED*/
+static int
+xnbu_m_set_multicast(void *arg, boolean_t add, const uint8_t *mca)
+{
+	/*
+	 * We always accept all packets from the peer, so nothing to
+	 * do for enable or disable.
+	 */
+	return (0);
+}
+
+
+/*
+ * xnbu_m_set_promiscuous() -- set or reset promiscuous mode on the board
+ */
+/* ARGSUSED */
+static int
+xnbu_m_set_promiscuous(void *arg, boolean_t on)
+{
+	/*
+	 * We always accept all packets from the peer, so nothing to
+	 * do for enable or disable.
+	 */
+	return (0);
+}
+
+/*
+ *  xnbu_m_start() -- start the board receiving and enable interrupts.
+ */
+/*ARGSUSED*/
+static int
+xnbu_m_start(void *arg)
+{
+	return (0);
+}
+
+/*
+ * xnbu_m_stop() - disable hardware
+ */
+/*ARGSUSED*/
+static void
+xnbu_m_stop(void *arg)
+{
+}
+
+static int
+xnbu_m_stat(void *arg, uint_t stat, uint64_t *val)
+{
+	xnb_t *xnbp = arg;
+
+	mutex_enter(&xnbp->x_tx_lock);
+	mutex_enter(&xnbp->x_rx_lock);
+
+#define	map_stat(q, r)				\
+	case (MAC_STAT_##q):			\
+		*val = xnbp->x_stat_##r;		\
+		break
+
+	switch (stat) {
+
+	map_stat(IPACKETS, ipackets);
+	map_stat(OPACKETS, opackets);
+	map_stat(RBYTES, rbytes);
+	map_stat(OBYTES, obytes);
+
+	default:
+		mutex_exit(&xnbp->x_rx_lock);
+		mutex_exit(&xnbp->x_tx_lock);
+
+		return (ENOTSUP);
+	}
+
+#undef map_stat
+
+	mutex_exit(&xnbp->x_rx_lock);
+	mutex_exit(&xnbp->x_tx_lock);
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static void
+xnbu_m_blank(void *arg, time_t ticks, uint_t count)
+{
+	/*
+	 * XXPV dme: blanking is not currently implemented.
+	 */
+}
+
+static void
+xnbu_m_resources(void *arg)
+{
+	xnb_t *xnbp = arg;
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+	mac_rx_fifo_t mrf;
+
+	mrf.mrf_type = MAC_RX_FIFO;
+	mrf.mrf_blank = xnbu_m_blank;
+	mrf.mrf_arg = (void *)xnbp;
+	mrf.mrf_normal_blank_time = 128; /* XXPV dme: see xnbu_m_blank() */
+	mrf.mrf_normal_pkt_count = 8;    /* XXPV dme: see xnbu_m_blank() */
+
+	xnbup->u_rx_handle = mac_resource_add(xnbup->u_mh,
+	    (mac_resource_t *)&mrf);
+}
+
+static boolean_t
+xnbu_m_getcapab(void *arg, mac_capab_t cap, void *cap_data)
+{
+	xnb_t *xnbp = arg;
+
+	switch (cap) {
+	case MAC_CAPAB_HCKSUM: {
+		uint32_t *capab = cap_data;
+
+		if (xnbp->x_cksum_offload)
+			*capab = HCKSUM_INET_FULL_V4;
+		else
+			*capab = 0;
+		break;
+	}
+
+	case MAC_CAPAB_POLL:
+		/* Just return B_TRUE. */
+		break;
+
+	default:
+		return (B_FALSE);
+	}
+
+	return (B_TRUE);
+}
+
+static int
+xnbu_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	static xnb_flavour_t flavour = {
+		xnbu_to_host, xnbu_connected, xnbu_disconnected, xnbu_hotplug,
+		xnbu_cksum_from_peer, xnbu_cksum_to_peer,
+	};
+	xnbu_t *xnbup;
+	xnb_t *xnbp;
+	mac_register_t *mr;
+	int err;
+
+	switch (cmd) {
+	case DDI_ATTACH:
+		break;
+	case DDI_RESUME:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+
+	xnbup = kmem_zalloc(sizeof (*xnbup), KM_SLEEP);
+
+	if ((mr = mac_alloc(MAC_VERSION)) == NULL) {
+		kmem_free(xnbup, sizeof (*xnbup));
+		return (DDI_FAILURE);
+	}
+
+	if (xnb_attach(dip, &flavour, xnbup) != DDI_SUCCESS) {
+		mac_free(mr);
+		kmem_free(xnbup, sizeof (*xnbup));
+		return (DDI_FAILURE);
+	}
+
+	xnbp = ddi_get_driver_private(dip);
+	ASSERT(xnbp != NULL);
+
+	mr->m_dip = dip;
+	mr->m_driver = xnbp;
+
+	/*
+	 *  Initialize pointers to device specific functions which will be
+	 *  used by the generic layer.
+	 */
+	mr->m_type_ident = MAC_PLUGIN_IDENT_ETHER;
+	mr->m_src_addr = xnbp->x_mac_addr;
+	mr->m_callbacks = &xnb_callbacks;
+	mr->m_min_sdu = 0;
+	mr->m_max_sdu = XNBMAXPKT;
+
+	(void) memset(xnbp->x_mac_addr, 0xff, ETHERADDRL);
+	xnbp->x_mac_addr[0] &= 0xfe;
+	xnbup->u_need_sched = B_FALSE;
+
+	/*
+	 * Register ourselves with the GLDv3 interface.
+	 */
+	err = mac_register(mr, &xnbup->u_mh);
+	mac_free(mr);
+	if (err != 0) {
+		xnb_detach(dip);
+		kmem_free(xnbup, sizeof (*xnbup));
+		return (DDI_FAILURE);
+	}
+
+	mac_link_update(xnbup->u_mh, LINK_STATE_DOWN);
+
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+int
+xnbu_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	xnb_t *xnbp = ddi_get_driver_private(dip);
+	xnbu_t *xnbup = xnbp->x_flavour_data;
+
+	switch (cmd) {
+	case DDI_DETACH:
+		break;
+	case DDI_SUSPEND:
+		return (DDI_SUCCESS);
+	default:
+		return (DDI_FAILURE);
+	}
+
+	ASSERT(xnbp != NULL);
+	ASSERT(xnbup != NULL);
+
+	mutex_enter(&xnbp->x_tx_lock);
+	mutex_enter(&xnbp->x_rx_lock);
+
+	if (!xnbp->x_detachable || xnbp->x_connected ||
+	    (xnbp->x_rx_buf_count > 0)) {
+		mutex_exit(&xnbp->x_rx_lock);
+		mutex_exit(&xnbp->x_tx_lock);
+
+		return (DDI_FAILURE);
+	}
+
+	mutex_exit(&xnbp->x_rx_lock);
+	mutex_exit(&xnbp->x_tx_lock);
+
+	/*
+	 * Attempt to unregister the mac.
+	 */
+	if ((xnbup->u_mh != NULL) && (mac_unregister(xnbup->u_mh) != 0))
+		return (DDI_FAILURE);
+	kmem_free(xnbup, sizeof (*xnbup));
+
+	xnb_detach(dip);
+
+	return (DDI_SUCCESS);
+}
+
+DDI_DEFINE_STREAM_OPS(ops, nulldev, nulldev, xnbu_attach, xnbu_detach,
+    nodev, NULL, D_MP, NULL);
+
+static struct modldrv modldrv = {
+	&mod_driverops, "xnbu driver %I%", &ops
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, &modldrv, NULL
+};
+
+int
+_init(void)
+{
+	int i;
+
+	mac_init_ops(&ops, "xnbu");
+
+	i = mod_install(&modlinkage);
+	if (i != DDI_SUCCESS)
+		mac_fini_ops(&ops);
+
+	return (i);
+}
+
+int
+_fini(void)
+{
+	int i;
+
+	i = mod_remove(&modlinkage);
+	if (i == DDI_SUCCESS)
+		mac_fini_ops(&ops);
+
+	return (i);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnf.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,2204 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ *
+ * Copyright (c) 2004 Christian Limpach.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. This section intentionally left blank.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Section 3 of the above license was updated in response to bug 6379571.
+ */
+
+/*
+ * xnf.c - Nemo-based network driver for domU
+ */
+
+#include <sys/types.h>
+#include <sys/hypervisor.h>
+#include <sys/debug.h>
+#include <sys/errno.h>
+#include <sys/param.h>
+#include <sys/sysmacros.h>
+#include <sys/systm.h>
+#include <sys/stropts.h>
+#include <sys/stream.h>
+#include <sys/strsubr.h>
+#include <sys/kmem.h>
+#include <sys/conf.h>
+#include <sys/ddi.h>
+#include <sys/devops.h>
+#include <sys/sunddi.h>
+#include <sys/sunndi.h>
+#include <sys/ksynch.h>
+#include <sys/dlpi.h>
+#include <sys/ethernet.h>
+#include <sys/strsun.h>
+#include <sys/pattr.h>
+#include <inet/common.h>
+#include <inet/ip.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/mac.h>
+#include <sys/mac_ether.h>
+#include <sys/atomic.h>
+#include <sys/errno.h>
+#include <sys/machsystm.h>
+#include <sys/bootconf.h>
+#include <sys/bootsvcs.h>
+#include <sys/bootinfo.h>
+#include <sys/promif.h>
+#include <sys/archsystm.h>
+#include <sys/gnttab.h>
+#include <sys/mach_mmu.h>
+#include <xen/public/memory.h>
+
+#include "xnf.h"
+
+#include <sys/evtchn_impl.h>
+#include <sys/balloon_impl.h>
+#include <xen/sys/xendev.h>
+
+/*
+ *  Declarations and Module Linkage
+ */
+
+#define	IDENT	"Virtual Ethernet driver"
+
+#if defined(DEBUG) || defined(__lint)
+#define	XNF_DEBUG
+int	xnfdebug = 0;
+#endif
+
+/*
+ * On a 32 bit PAE system physical and machine addresses are larger
+ * than 32 bits.  ddi_btop() on such systems take an unsigned long
+ * argument, and so addresses above 4G are truncated before ddi_btop()
+ * gets to see them.  To avoid this, code the shift operation here.
+ */
+#define	xnf_btop(addr)	((addr) >> PAGESHIFT)
+
+boolean_t	xnf_cksum_offload = B_TRUE;
+/*
+ * Should pages used for transmit be readonly for the peer?
+ */
+boolean_t	xnf_tx_pages_readonly = B_FALSE;
+/*
+ * Packets under this size are bcopied instead of using desballoc.
+ * Choose a value > XNF_FRAMESIZE (1514) to force the receive path to
+ * always copy.
+ */
+unsigned int	xnf_rx_bcopy_thresh = 64;
+
+unsigned int	xnf_max_tx_frags = 1;
+
+/* Required system entry points */
+static int	xnf_attach(dev_info_t *, ddi_attach_cmd_t);
+static int	xnf_detach(dev_info_t *, ddi_detach_cmd_t);
+
+/* Required driver entry points for Nemo */
+static int	xnf_start(void *);
+static void	xnf_stop(void *);
+static int	xnf_set_mac_addr(void *, const uint8_t *);
+static int	xnf_set_multicast(void *, boolean_t, const uint8_t *);
+static int	xnf_set_promiscuous(void *, boolean_t);
+static mblk_t	*xnf_send(void *, mblk_t *);
+static uint_t	xnf_intr(caddr_t);
+static int	xnf_stat(void *, uint_t, uint64_t *);
+static void	xnf_blank(void *, time_t, uint_t);
+static void	xnf_resources(void *);
+static void	xnf_ioctl(void *, queue_t *, mblk_t *);
+static boolean_t xnf_getcapab(void *, mac_capab_t, void *);
+
+/* Driver private functions */
+static int xnf_alloc_dma_resources(xnf_t *);
+static void xnf_release_dma_resources(xnf_t *);
+static mblk_t *xnf_process_recv(xnf_t *);
+static void xnf_rcv_complete(struct xnf_buffer_desc *);
+static void xnf_release_mblks(xnf_t *);
+static struct xnf_buffer_desc *xnf_alloc_xmit_buffer(xnf_t *);
+static struct xnf_buffer_desc *xnf_alloc_buffer(xnf_t *);
+static struct xnf_buffer_desc *xnf_get_xmit_buffer(xnf_t *);
+static struct xnf_buffer_desc *xnf_get_buffer(xnf_t *);
+static void xnf_free_buffer(struct xnf_buffer_desc *);
+static void xnf_free_xmit_buffer(struct xnf_buffer_desc *);
+void xnf_send_driver_status(int, int);
+static void rx_buffer_hang(xnf_t *, struct xnf_buffer_desc *);
+static int xnf_clean_tx_ring(xnf_t  *);
+static void oe_state_change(dev_info_t *, ddi_eventcookie_t,
+    void *, void *);
+
+/*
+ * XXPV dme: remove MC_IOCTL?
+ */
+static mac_callbacks_t xnf_callbacks = {
+	MC_RESOURCES | MC_IOCTL | MC_GETCAPAB,
+	xnf_stat,
+	xnf_start,
+	xnf_stop,
+	xnf_set_promiscuous,
+	xnf_set_multicast,
+	xnf_set_mac_addr,
+	xnf_send,
+	xnf_resources,
+	xnf_ioctl,
+	xnf_getcapab
+};
+
+#define	GRANT_INVALID_REF	0
+int xnf_recv_bufs_lowat = 4 * NET_RX_RING_SIZE;
+int xnf_recv_bufs_hiwat = 8 * NET_RX_RING_SIZE; /* default max */
+
+/* DMA attributes for network ring buffer */
+static ddi_dma_attr_t ringbuf_dma_attr = {
+	DMA_ATTR_V0,		/* version of this structure */
+	0,			/* lowest usable address */
+	0xffffffffffffffffULL,	/* highest usable address */
+	0x7fffffff,		/* maximum DMAable byte count */
+	MMU_PAGESIZE,		/* alignment in bytes */
+	0x7ff,			/* bitmap of burst sizes */
+	1,			/* minimum transfer */
+	0xffffffffU,		/* maximum transfer */
+	0xffffffffffffffffULL,	/* maximum segment length */
+	1,			/* maximum number of segments */
+	1,			/* granularity */
+	0,			/* flags (reserved) */
+};
+
+/* DMA attributes for transmit data */
+static ddi_dma_attr_t tx_buffer_dma_attr = {
+	DMA_ATTR_V0,		/* version of this structure */
+	0,			/* lowest usable address */
+	0xffffffffffffffffULL,	/* highest usable address */
+	0x7fffffff,		/* maximum DMAable byte count */
+	MMU_PAGESIZE,		/* alignment in bytes */
+	0x7ff,			/* bitmap of burst sizes */
+	1,			/* minimum transfer */
+	0xffffffffU,		/* maximum transfer */
+	0xffffffffffffffffULL,	/* maximum segment length */
+	1,			/* maximum number of segments */
+	1,			/* granularity */
+	0,			/* flags (reserved) */
+};
+
+/* DMA attributes for a receive buffer */
+static ddi_dma_attr_t rx_buffer_dma_attr = {
+	DMA_ATTR_V0,		/* version of this structure */
+	0,			/* lowest usable address */
+	0xffffffffffffffffULL,	/* highest usable address */
+	0x7fffffff,		/* maximum DMAable byte count */
+	MMU_PAGESIZE,		/* alignment in bytes */
+	0x7ff,			/* bitmap of burst sizes */
+	1,			/* minimum transfer */
+	0xffffffffU,		/* maximum transfer */
+	0xffffffffffffffffULL,	/* maximum segment length */
+	1,			/* maximum number of segments */
+	1,			/* granularity */
+	0,			/* flags (reserved) */
+};
+
+/* DMA access attributes for registers and descriptors */
+static ddi_device_acc_attr_t accattr = {
+	DDI_DEVICE_ATTR_V0,
+	DDI_STRUCTURE_LE_ACC,	/* This is a little-endian device */
+	DDI_STRICTORDER_ACC
+};
+
+/* DMA access attributes for data: NOT to be byte swapped. */
+static ddi_device_acc_attr_t data_accattr = {
+	DDI_DEVICE_ATTR_V0,
+	DDI_NEVERSWAP_ACC,
+	DDI_STRICTORDER_ACC
+};
+
+unsigned char xnf_broadcastaddr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+int xnf_diagnose = 0; /* Patchable global for diagnostic purposes */
+
+DDI_DEFINE_STREAM_OPS(xnf_dev_ops, nulldev, nulldev, xnf_attach, xnf_detach,
+    nodev, NULL, D_MP, NULL);
+
+static struct modldrv xnf_modldrv = {
+	&mod_driverops,		/* Type of module.  This one is a driver */
+	IDENT " %I%",		/* short description */
+	&xnf_dev_ops		/* driver specific ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, &xnf_modldrv, NULL
+};
+
+int
+_init(void)
+{
+	int r;
+
+	mac_init_ops(&xnf_dev_ops, "xnf");
+	r = mod_install(&modlinkage);
+	if (r != DDI_SUCCESS)
+		mac_fini_ops(&xnf_dev_ops);
+
+	return (r);
+}
+
+int
+_fini(void)
+{
+	return (EBUSY); /* XXPV dme: should be removable */
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+/*
+ * Statistics.
+ */
+/* XXPV: most of these names need re-"nice"ing */
+static char *xnf_aux_statistics[] = {
+	"tx_cksum_deferred",
+	"rx_cksum_no_need",
+	"intr",
+	"xmit_pullup",
+	"xmit_pagebndry",
+	"xmit_attempt",
+	"rx_no_ringbuf",
+	"mac_rcv_error",
+	"runt",
+};
+
+static int
+xnf_kstat_aux_update(kstat_t *ksp, int flag)
+{
+	xnf_t *xnfp;
+	kstat_named_t *knp;
+
+	if (flag != KSTAT_READ)
+		return (EACCES);
+
+	xnfp = ksp->ks_private;
+	knp = ksp->ks_data;
+
+	/*
+	 * Assignment order should match that of the names in
+	 * xnf_aux_statistics.
+	 */
+	(knp++)->value.ui64 = xnfp->stat_tx_cksum_deferred;
+	(knp++)->value.ui64 = xnfp->stat_rx_cksum_no_need;
+
+	(knp++)->value.ui64 = xnfp->stat_intr;
+	(knp++)->value.ui64 = xnfp->stat_xmit_pullup;
+	(knp++)->value.ui64 = xnfp->stat_xmit_pagebndry;
+	(knp++)->value.ui64 = xnfp->stat_xmit_attempt;
+	(knp++)->value.ui64 = xnfp->stat_rx_no_ringbuf;
+	(knp++)->value.ui64 = xnfp->stat_mac_rcv_error;
+	(knp++)->value.ui64 = xnfp->stat_runt;
+
+	return (0);
+}
+
+static boolean_t
+xnf_kstat_init(xnf_t *xnfp)
+{
+	int nstat = sizeof (xnf_aux_statistics) /
+	    sizeof (xnf_aux_statistics[0]);
+	char **cp = xnf_aux_statistics;
+	kstat_named_t *knp;
+
+	/*
+	 * Create and initialise kstats.
+	 */
+	if ((xnfp->kstat_aux = kstat_create("xnf",
+	    ddi_get_instance(xnfp->devinfo),
+	    "aux_statistics", "net", KSTAT_TYPE_NAMED,
+	    nstat, 0)) == NULL)
+		return (B_FALSE);
+
+	xnfp->kstat_aux->ks_private = xnfp;
+	xnfp->kstat_aux->ks_update = xnf_kstat_aux_update;
+
+	knp = xnfp->kstat_aux->ks_data;
+	while (nstat > 0) {
+		kstat_named_init(knp, *cp, KSTAT_DATA_UINT64);
+
+		knp++;
+		cp++;
+		nstat--;
+	}
+
+	kstat_install(xnfp->kstat_aux);
+
+	return (B_TRUE);
+}
+
+static int
+xnf_setup_rings(xnf_t *xnfp)
+{
+	int			ix, err;
+	RING_IDX		i;
+	struct xnf_buffer_desc *bdesc, *rbp;
+	struct xenbus_device *xsd;
+	domid_t oeid;
+
+	oeid = xvdi_get_oeid(xnfp->devinfo);
+	xsd = xvdi_get_xsd(xnfp->devinfo);
+
+	if (xnfp->tx_ring_ref != GRANT_INVALID_REF)
+		gnttab_end_foreign_access(xnfp->tx_ring_ref, 0, 0);
+
+	err = gnttab_grant_foreign_access(oeid,
+	    xnf_btop(pa_to_ma(xnfp->tx_ring_phys_addr)), 0);
+	if (err <= 0) {
+		err = -err;
+		xenbus_dev_error(xsd, err, "granting access to tx ring page");
+		goto out;
+	}
+	xnfp->tx_ring_ref = (grant_ref_t)err;
+
+	if (xnfp->rx_ring_ref != GRANT_INVALID_REF)
+		gnttab_end_foreign_access(xnfp->rx_ring_ref, 0, 0);
+
+	err = gnttab_grant_foreign_access(oeid,
+	    xnf_btop(pa_to_ma(xnfp->rx_ring_phys_addr)), 0);
+	if (err <= 0) {
+		err = -err;
+		xenbus_dev_error(xsd, err, "granting access to rx ring page");
+		goto out;
+	}
+	xnfp->rx_ring_ref = (grant_ref_t)err;
+
+
+	mutex_enter(&xnfp->intrlock);
+
+	/*
+	 * Cleanup the TX ring.  We just clean up any valid tx_pktinfo structs
+	 * and reset the ring.  Note that this can lose packets after a resume,
+	 * but we expect to stagger on.
+	 */
+	mutex_enter(&xnfp->txlock);
+
+	for (i = 0; i < xnfp->n_xmits; i++) {
+		struct tx_pktinfo *txp = &xnfp->tx_pkt_info[i];
+
+		txp->id = i + 1;
+
+		if (txp->grant_ref == GRANT_INVALID_REF) {
+			ASSERT(txp->mp == NULL);
+			ASSERT(txp->bdesc == NULL);
+			continue;
+		}
+
+		if (gnttab_query_foreign_access(txp->grant_ref) != 0)
+			panic("tx grant still in use by backend domain");
+
+		freemsg(txp->mp);
+		txp->mp = NULL;
+
+		(void) ddi_dma_unbind_handle(txp->dma_handle);
+
+		if (txp->bdesc != NULL) {
+			xnf_free_xmit_buffer(txp->bdesc);
+			txp->bdesc = NULL;
+		}
+
+		(void) gnttab_end_foreign_access_ref(txp->grant_ref,
+		    xnfp->tx_pages_readonly);
+		gnttab_release_grant_reference(&xnfp->gref_tx_head,
+		    txp->grant_ref);
+		txp->grant_ref = GRANT_INVALID_REF;
+	}
+
+	xnfp->tx_pkt_id_list = 0;
+	xnfp->tx_ring.rsp_cons = 0;
+	xnfp->tx_ring.sring->req_prod = 0;
+	xnfp->tx_ring.sring->rsp_prod = 0;
+	xnfp->tx_ring.sring->rsp_event = 1;
+
+	mutex_exit(&xnfp->txlock);
+
+	/*
+	 * Rebuild the RX ring.  We have to rebuild the RX ring because some of
+	 * our pages are currently flipped out so we can't just free the RX
+	 * buffers.  Reclaim any unprocessed recv buffers, they won't be
+	 * useable anyway since the mfn's they refer to are no longer valid.
+	 * Grant the backend domain access to each hung rx buffer.
+	 */
+	i = xnfp->rx_ring.rsp_cons;
+	while (i++ != xnfp->rx_ring.sring->req_prod) {
+		volatile netif_rx_request_t	*rxrp;
+
+		rxrp = RING_GET_REQUEST(&xnfp->rx_ring, i);
+		ix = rxrp - RING_GET_REQUEST(&xnfp->rx_ring, 0);
+		rbp = xnfp->rxpkt_bufptr[ix];
+		if (rbp != NULL) {
+			ASSERT(rbp->grant_ref != GRANT_INVALID_REF);
+			gnttab_grant_foreign_transfer_ref(rbp->grant_ref,
+			    oeid);
+			rxrp->id = ix;
+			rxrp->gref = rbp->grant_ref;
+		}
+	}
+	/*
+	 * Reset the ring pointers to initial state.
+	 * Hang buffers for any empty ring slots.
+	 */
+	xnfp->rx_ring.rsp_cons = 0;
+	xnfp->rx_ring.sring->req_prod = 0;
+	xnfp->rx_ring.sring->rsp_prod = 0;
+	xnfp->rx_ring.sring->rsp_event = 1;
+	for (i = 0; i < NET_RX_RING_SIZE; i++) {
+		xnfp->rx_ring.req_prod_pvt = i;
+		if (xnfp->rxpkt_bufptr[i] != NULL)
+			continue;
+		if ((bdesc = xnf_get_buffer(xnfp)) == NULL)
+			break;
+		rx_buffer_hang(xnfp, bdesc);
+	}
+	xnfp->rx_ring.req_prod_pvt = i;
+	/* LINTED: constant in conditional context */
+	RING_PUSH_REQUESTS(&xnfp->rx_ring);
+
+	mutex_exit(&xnfp->intrlock);
+
+	return (0);
+
+out:
+	if (xnfp->tx_ring_ref != GRANT_INVALID_REF)
+		gnttab_end_foreign_access(xnfp->tx_ring_ref, 0, 0);
+	xnfp->tx_ring_ref = GRANT_INVALID_REF;
+
+	if (xnfp->rx_ring_ref != GRANT_INVALID_REF)
+		gnttab_end_foreign_access(xnfp->rx_ring_ref, 0, 0);
+	xnfp->rx_ring_ref = GRANT_INVALID_REF;
+
+	return (err);
+}
+
+/*
+ * Connect driver to back end, called to set up communication with
+ * back end driver both initially and on resume after restore/migrate.
+ */
+void
+xnf_be_connect(xnf_t *xnfp)
+{
+	char		mac[ETHERADDRL * 3];
+	const char	*message;
+	xenbus_transaction_t xbt;
+	struct xenbus_device *xsd;
+	char		*xsname;
+	int		err, be_no_cksum_offload;
+
+	ASSERT(!xnfp->connected);
+
+	xsd = xvdi_get_xsd(xnfp->devinfo);
+	xsname = xvdi_get_xsname(xnfp->devinfo);
+
+	err = xenbus_scanf(XBT_NULL, xvdi_get_oename(xnfp->devinfo), "mac",
+	    "%s", (char *)&mac[0]);
+	if (err != 0) {
+		/*
+		 * bad: we're supposed to be set up with a proper mac
+		 * addr. at this point
+		 */
+		cmn_err(CE_WARN, "%s%d: no mac address",
+		    ddi_driver_name(xnfp->devinfo),
+		    ddi_get_instance(xnfp->devinfo));
+			return;
+	}
+
+	if (ether_aton(mac, xnfp->mac_addr) != ETHERADDRL) {
+		err = ENOENT;
+		xenbus_dev_error(xsd, ENOENT, "parsing %s/mac", xsname);
+		return;
+	}
+
+	err = xnf_setup_rings(xnfp);
+	if (err != 0) {
+		cmn_err(CE_WARN, "failed to set up tx/rx rings");
+		xenbus_dev_error(xsd, err, "setting up ring");
+		return;
+	}
+
+	err = xenbus_scanf(XBT_NULL, xvdi_get_oename(xnfp->devinfo),
+	    "feature-no-csum-offload", "%d", &be_no_cksum_offload);
+	/*
+	 * If we fail to read the store we assume that the key is
+	 * absent, implying an older domain at the far end.  Older
+	 * domains always support checksum offload.
+	 */
+	if (err != 0)
+		be_no_cksum_offload = 0;
+	/*
+	 * If the far end cannot do checksum offload or we do not wish
+	 * to do it, disable it.
+	 */
+	if ((be_no_cksum_offload == 1) || !xnfp->cksum_offload)
+		xnfp->cksum_offload = B_FALSE;
+
+again:
+	err = xenbus_transaction_start(&xbt);
+	if (err != 0) {
+		xenbus_dev_error(xsd, EIO, "starting transaction");
+		return;
+	}
+
+	err = xenbus_printf(xbt, xsname, "tx-ring-ref", "%u",
+	    xnfp->tx_ring_ref);
+	if (err != 0) {
+		message = "writing tx ring-ref";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, xsname, "rx-ring-ref", "%u",
+	    xnfp->rx_ring_ref);
+	if (err != 0) {
+		message = "writing rx ring-ref";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, xsname, "event-channel", "%u", xnfp->evtchn);
+	if (err != 0) {
+		message = "writing event-channel";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, xsname, "feature-rx-notify", "%d", 1);
+	if (err != 0) {
+		message = "writing feature-rx-notify";
+		goto abort_transaction;
+	}
+
+	if (!xnfp->tx_pages_readonly) {
+		err = xenbus_printf(xbt, xsname, "feature-tx-writable",
+		    "%d", 1);
+		if (err != 0) {
+			message = "writing feature-tx-writable";
+			goto abort_transaction;
+		}
+	}
+
+	err = xenbus_printf(xbt, xsname, "feature-no-csum-offload", "%d",
+	    xnfp->cksum_offload ? 0 : 1);
+	if (err != 0) {
+		message = "writing feature-no-csum-offload";
+		goto abort_transaction;
+	}
+
+	err = xenbus_printf(xbt, xsname, "state", "%d", XenbusStateConnected);
+	if (err != 0) {
+		message = "writing frontend XenbusStateConnected";
+		goto abort_transaction;
+	}
+
+	err = xenbus_transaction_end(xbt, 0);
+	if (err != 0) {
+		if (err == EAGAIN)
+			goto again;
+		xenbus_dev_error(xsd, err, "completing transaction");
+	}
+
+	return;
+
+abort_transaction:
+	(void) xenbus_transaction_end(xbt, 1);
+	xenbus_dev_error(xsd, err, "%s", message);
+}
+
+/*
+ *  attach(9E) -- Attach a device to the system
+ *
+ *  Called once for each board successfully probed.
+ */
+static int
+xnf_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd)
+{
+	mac_register_t *macp;
+	xnf_t *xnfp;
+	int err;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_DDI)
+		printf("xnf%d: attach(0x%p)\n", ddi_get_instance(devinfo),
+		    (void *)devinfo);
+#endif
+
+	switch (cmd) {
+	case DDI_RESUME:
+		xnfp = ddi_get_driver_private(devinfo);
+
+		(void) xvdi_resume(devinfo);
+		(void) xvdi_alloc_evtchn(devinfo);
+		(void) ddi_add_intr(devinfo, 0, NULL, NULL, xnf_intr,
+		    (caddr_t)xnfp);
+		xnfp->evtchn = xvdi_get_evtchn(devinfo);
+		xnf_be_connect(xnfp);
+		/*
+		 * Our MAC address didn't necessarily change, but
+		 * given that we may be resuming this OS instance
+		 * on a different machine (or on the same one and got a
+		 * different MAC address because we didn't specify one of
+		 * our own), it's useful to claim that
+		 * it changed in order that IP send out a
+		 * gratuitous ARP.
+		 */
+		mac_unicst_update(xnfp->mh, xnfp->mac_addr);
+		return (DDI_SUCCESS);
+
+	case DDI_ATTACH:
+		break;
+
+	default:
+		return (DDI_FAILURE);
+	}
+
+	/*
+	 *  Allocate gld_mac_info_t and xnf_instance structures
+	 */
+	macp = mac_alloc(MAC_VERSION);
+	if (macp == NULL)
+		return (DDI_FAILURE);
+	xnfp = kmem_zalloc(sizeof (*xnfp), KM_SLEEP);
+
+	macp->m_dip = devinfo;
+	macp->m_driver = xnfp;
+	xnfp->devinfo = devinfo;
+
+	macp->m_type_ident = MAC_PLUGIN_IDENT_ETHER;
+	macp->m_src_addr = xnfp->mac_addr;
+	macp->m_callbacks = &xnf_callbacks;
+	macp->m_min_sdu = 0;
+	macp->m_max_sdu = XNF_MAXPKT;
+
+	xnfp->running = B_FALSE;
+	xnfp->connected = B_FALSE;
+	xnfp->cksum_offload = xnf_cksum_offload;
+	xnfp->tx_pages_readonly = xnf_tx_pages_readonly;
+
+	/*
+	 * Get the iblock cookie with which to initialize the mutexes.
+	 */
+	if (ddi_get_iblock_cookie(devinfo, 0, &xnfp->icookie)
+	    != DDI_SUCCESS)
+		goto failure;
+	/*
+	 * Driver locking strategy: the txlock protects all paths
+	 * through the driver, except the interrupt thread.
+	 * If the interrupt thread needs to do something which could
+	 * affect the operation of any other part of the driver,
+	 * it needs to acquire the txlock mutex.
+	 */
+	mutex_init(&xnfp->tx_buf_mutex,
+	    NULL, MUTEX_DRIVER, xnfp->icookie);
+	mutex_init(&xnfp->rx_buf_mutex,
+	    NULL, MUTEX_DRIVER, xnfp->icookie);
+	mutex_init(&xnfp->txlock,
+	    NULL, MUTEX_DRIVER, xnfp->icookie);
+	mutex_init(&xnfp->intrlock,
+	    NULL, MUTEX_DRIVER, xnfp->icookie);
+	cv_init(&xnfp->cv, NULL, CV_DEFAULT, NULL);
+
+	if (gnttab_alloc_grant_references(NET_TX_RING_SIZE,
+	    &xnfp->gref_tx_head) < 0) {
+		cmn_err(CE_WARN, "xnf%d: can't alloc tx grant refs",
+		    ddi_get_instance(xnfp->devinfo));
+		goto late_failure;
+	}
+	if (gnttab_alloc_grant_references(NET_RX_RING_SIZE,
+	    &xnfp->gref_rx_head) < 0) {
+		cmn_err(CE_WARN, "xnf%d: can't alloc rx grant refs",
+		    ddi_get_instance(xnfp->devinfo));
+		goto late_failure;
+	}
+	if (xnf_alloc_dma_resources(xnfp) == DDI_FAILURE) {
+		cmn_err(CE_WARN, "xnf%d: failed to allocate and initialize "
+		    "driver data structures", ddi_get_instance(xnfp->devinfo));
+		goto late_failure;
+	}
+
+	xnfp->rx_ring.sring->rsp_event = xnfp->tx_ring.sring->rsp_event = 1;
+
+	xnfp->tx_ring_ref = GRANT_INVALID_REF;
+	xnfp->rx_ring_ref = GRANT_INVALID_REF;
+
+	/* set driver private pointer now */
+	ddi_set_driver_private(devinfo, xnfp);
+
+	if (xvdi_add_event_handler(devinfo, XS_OE_STATE, oe_state_change)
+	    != DDI_SUCCESS)
+		goto late_failure;
+
+	if (!xnf_kstat_init(xnfp))
+		goto very_late_failure;
+
+	/*
+	 * Allocate an event channel, add the interrupt handler and
+	 * bind it to the event channel.
+	 */
+	(void) xvdi_alloc_evtchn(devinfo);
+	(void) ddi_add_intr(devinfo, 0, NULL, NULL, xnf_intr, (caddr_t)xnfp);
+	xnfp->evtchn = xvdi_get_evtchn(devinfo);
+
+	/*
+	 * connect to the backend
+	 */
+	xnf_be_connect(xnfp);
+
+	err = mac_register(macp, &xnfp->mh);
+	mac_free(macp);
+	macp = NULL;
+	if (err != 0)
+		goto very_very_late_failure;
+
+	return (DDI_SUCCESS);
+
+very_very_late_failure:
+	kstat_delete(xnfp->kstat_aux);
+
+very_late_failure:
+	xvdi_remove_event_handler(devinfo, XS_OE_STATE);
+	ddi_remove_intr(devinfo, 0, xnfp->icookie);
+	xnfp->evtchn = INVALID_EVTCHN;
+
+late_failure:
+	xnf_release_dma_resources(xnfp);
+	cv_destroy(&xnfp->cv);
+	mutex_destroy(&xnfp->rx_buf_mutex);
+	mutex_destroy(&xnfp->txlock);
+	mutex_destroy(&xnfp->intrlock);
+
+failure:
+	kmem_free(xnfp, sizeof (*xnfp));
+	if (macp != NULL)
+		mac_free(macp);
+
+	(void) xvdi_switch_state(devinfo, XBT_NULL, XenbusStateClosed);
+
+	return (DDI_FAILURE);
+}
+
+/*  detach(9E) -- Detach a device from the system */
+static int
+xnf_detach(dev_info_t *devinfo, ddi_detach_cmd_t cmd)
+{
+	xnf_t *xnfp;		/* Our private device info */
+	int i;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_DDI)
+		printf("xnf_detach(0x%p)\n", (void *)devinfo);
+#endif
+
+	xnfp = ddi_get_driver_private(devinfo);
+
+	switch (cmd) {
+	case DDI_SUSPEND:
+		ddi_remove_intr(devinfo, 0, xnfp->icookie);
+
+		xvdi_suspend(devinfo);
+
+		mutex_enter(&xnfp->intrlock);
+		mutex_enter(&xnfp->txlock);
+
+		xnfp->evtchn = INVALID_EVTCHN;
+		xnfp->connected = B_FALSE;
+		mutex_exit(&xnfp->txlock);
+		mutex_exit(&xnfp->intrlock);
+		return (DDI_SUCCESS);
+
+	case DDI_DETACH:
+		break;
+
+	default:
+		return (DDI_FAILURE);
+	}
+
+	if (xnfp->connected)
+		return (DDI_FAILURE);
+
+	/* Wait for receive buffers to be returned; give up after 5 seconds */
+	i = 50;
+
+	mutex_enter(&xnfp->rx_buf_mutex);
+	while (xnfp->rx_bufs_outstanding > 0) {
+		mutex_exit(&xnfp->rx_buf_mutex);
+		delay(drv_usectohz(100000));
+		if (--i == 0) {
+			cmn_err(CE_WARN,
+			    "xnf%d: never reclaimed all the "
+			    "receive buffers.  Still have %d "
+			    "buffers outstanding.",
+			    ddi_get_instance(xnfp->devinfo),
+			    xnfp->rx_bufs_outstanding);
+			return (DDI_FAILURE);
+		}
+		mutex_enter(&xnfp->rx_buf_mutex);
+	}
+	mutex_exit(&xnfp->rx_buf_mutex);
+
+	kstat_delete(xnfp->kstat_aux);
+
+	if (mac_unregister(xnfp->mh) != 0)
+		return (DDI_FAILURE);
+
+	/* Stop the receiver */
+	xnf_stop(xnfp);
+
+	xvdi_remove_event_handler(devinfo, XS_OE_STATE);
+
+	/* Remove the interrupt */
+	ddi_remove_intr(devinfo, 0, xnfp->icookie);
+
+	/* Release any pending xmit mblks */
+	xnf_release_mblks(xnfp);
+
+	/* Release all DMA resources */
+	xnf_release_dma_resources(xnfp);
+
+	cv_destroy(&xnfp->cv);
+	mutex_destroy(&xnfp->rx_buf_mutex);
+	mutex_destroy(&xnfp->txlock);
+	mutex_destroy(&xnfp->intrlock);
+
+	kmem_free(xnfp, sizeof (*xnfp));
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ *  xnf_set_mac_addr() -- set the physical network address on the board.
+ */
+/*ARGSUSED*/
+static int
+xnf_set_mac_addr(void *arg, const uint8_t *macaddr)
+{
+	xnf_t *xnfp = arg;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_TRACE)
+		printf("xnf%d: set_mac_addr(0x%p): "
+		    "%02x:%02x:%02x:%02x:%02x:%02x\n",
+		    ddi_get_instance(xnfp->devinfo),
+		    (void *)xnfp, macaddr[0], macaddr[1], macaddr[2],
+		    macaddr[3], macaddr[4], macaddr[5]);
+#endif
+	/*
+	 * We can't set our macaddr.
+	 *
+	 * XXPV dme: Why not?
+	 */
+	return (ENOTSUP);
+}
+
+/*
+ *  xnf_set_multicast() -- set (enable) or disable a multicast address.
+ *
+ *  Program the hardware to enable/disable the multicast address
+ *  in "mcast".  Enable if "add" is true, disable if false.
+ */
+/*ARGSUSED*/
+static int
+xnf_set_multicast(void *arg, boolean_t add, const uint8_t *mca)
+{
+	xnf_t *xnfp = arg;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_TRACE)
+		printf("xnf%d set_multicast(0x%p): "
+		    "%02x:%02x:%02x:%02x:%02x:%02x\n",
+		    ddi_get_instance(xnfp->devinfo),
+		    (void *)xnfp, mca[0], mca[1], mca[2],
+		    mca[3], mca[4], mca[5]);
+#endif
+
+	/*
+	 * XXPV dme: Ideally we'd relay the address to the backend for
+	 * enabling.  The protocol doesn't support that (interesting
+	 * extension), so we simply succeed and hope that the relevant
+	 * packets are going to arrive.
+	 *
+	 * If protocol support is added for enable/disable then we'll
+	 * need to keep a list of those in use and re-add on resume.
+	 */
+	return (0);
+}
+
+/*
+ * xnf_set_promiscuous() -- set or reset promiscuous mode on the board
+ *
+ *  Program the hardware to enable/disable promiscuous mode.
+ */
+/*ARGSUSED*/
+static int
+xnf_set_promiscuous(void *arg, boolean_t on)
+{
+	xnf_t *xnfp = arg;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_TRACE)
+		printf("xnf%d set_promiscuous(0x%p, %x)\n",
+		    ddi_get_instance(xnfp->devinfo),
+		    (void *)xnfp, on);
+#endif
+	/*
+	 * We can't really do this, but we pretend that we can in
+	 * order that snoop will work.
+	 */
+	return (0);
+}
+
+/*
+ * Clean buffers that we have responses for from the transmit ring.
+ */
+static int
+xnf_clean_tx_ring(xnf_t *xnfp)
+{
+	RING_IDX		next_resp, i;
+	struct tx_pktinfo	*reap;
+	int			id;
+	grant_ref_t		ref;
+
+	ASSERT(MUTEX_HELD(&xnfp->txlock));
+
+	do {
+		/*
+		 * index of next transmission ack
+		 */
+		next_resp = xnfp->tx_ring.sring->rsp_prod;
+		membar_consumer();
+		/*
+		 * Clean tx packets from ring that we have responses for
+		 */
+		for (i = xnfp->tx_ring.rsp_cons; i != next_resp; i++) {
+			id = RING_GET_RESPONSE(&xnfp->tx_ring, i)->id;
+			reap = &xnfp->tx_pkt_info[id];
+			ref = reap->grant_ref;
+			/*
+			 * Return id to free list
+			 */
+			reap->id = xnfp->tx_pkt_id_list;
+			xnfp->tx_pkt_id_list = id;
+			if (gnttab_query_foreign_access(ref) != 0)
+				panic("tx grant still in use"
+				    "by backend domain");
+			(void) ddi_dma_unbind_handle(reap->dma_handle);
+			(void) gnttab_end_foreign_access_ref(ref,
+			    xnfp->tx_pages_readonly);
+			gnttab_release_grant_reference(&xnfp->gref_tx_head,
+			    ref);
+			freemsg(reap->mp);
+			reap->mp = NULL;
+			reap->grant_ref = GRANT_INVALID_REF;
+			if (reap->bdesc != NULL)
+				xnf_free_xmit_buffer(reap->bdesc);
+			reap->bdesc = NULL;
+		}
+		xnfp->tx_ring.rsp_cons = next_resp;
+		membar_enter();
+	} while (next_resp != xnfp->tx_ring.sring->rsp_prod);
+	return (NET_TX_RING_SIZE - (xnfp->tx_ring.sring->req_prod - next_resp));
+}
+
+/*
+ * If we need to pull up data from either a packet that crosses a page
+ * boundary or consisting of multiple mblks, do it here.  We allocate
+ * a page aligned buffer and copy the data into it.  The header for the
+ * allocated buffer is returned. (which is also allocated here)
+ */
+static struct xnf_buffer_desc *
+xnf_pullupmsg(xnf_t *xnfp, mblk_t *mp)
+{
+	struct xnf_buffer_desc	*bdesc;
+	mblk_t			*mptr;
+	caddr_t			bp;
+	int			len;
+
+	/*
+	 * get a xmit buffer from the xmit buffer pool
+	 */
+	mutex_enter(&xnfp->rx_buf_mutex);
+	bdesc = xnf_get_xmit_buffer(xnfp);
+	mutex_exit(&xnfp->rx_buf_mutex);
+	if (bdesc == NULL)
+		return (bdesc);
+	/*
+	 * Copy the data into the buffer
+	 */
+	xnfp->stat_xmit_pullup++;
+	bp = bdesc->buf;
+	for (mptr = mp; mptr != NULL; mptr = mptr->b_cont) {
+		len = mptr->b_wptr - mptr->b_rptr;
+		bcopy(mptr->b_rptr, bp, len);
+		bp += len;
+	}
+	return (bdesc);
+}
+
+/*
+ *  xnf_send_one() -- send a packet
+ *
+ *  Called when a packet is ready to be transmitted. A pointer to an
+ *  M_DATA message that contains the packet is passed to this routine.
+ *  At least the complete LLC header is contained in the message's
+ *  first message block, and the remainder of the packet is contained
+ *  within additional M_DATA message blocks linked to the first
+ *  message block.
+ *
+ */
+static boolean_t
+xnf_send_one(xnf_t *xnfp, mblk_t *mp)
+{
+	struct xnf_buffer_desc	*xmitbuf;
+	struct tx_pktinfo	*txp_info;
+	mblk_t			*mptr;
+	ddi_dma_cookie_t	dma_cookie;
+	RING_IDX		slot, txs_out;
+	int			length = 0, i, pktlen = 0, rc, tx_id;
+	int			tx_ring_freespace, page_oops;
+	uint_t			ncookies;
+	volatile netif_tx_request_t	*txrp;
+	caddr_t			bufaddr;
+	grant_ref_t		ref;
+	unsigned long		mfn;
+	uint32_t		pflags;
+	domid_t			oeid;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_SEND)
+		printf("xnf%d send(0x%p, 0x%p)\n",
+		    ddi_get_instance(xnfp->devinfo),
+		    (void *)xnfp, (void *)mp);
+#endif
+
+	ASSERT(mp != NULL);
+	ASSERT(mp->b_next == NULL);
+	ASSERT(MUTEX_HELD(&xnfp->txlock));
+
+	tx_ring_freespace = xnf_clean_tx_ring(xnfp);
+	ASSERT(tx_ring_freespace >= 0);
+
+	oeid = xvdi_get_oeid(xnfp->devinfo);
+	xnfp->stat_xmit_attempt++;
+	/*
+	 * If there are no xmit ring slots available, return.
+	 */
+	if (tx_ring_freespace == 0) {
+		xnfp->stat_xmit_defer++;
+		return (B_FALSE);	/* Send should be retried */
+	}
+
+	slot = xnfp->tx_ring.sring->req_prod;
+	/* Count the number of mblks in message and compute packet size */
+	for (i = 0, mptr = mp; mptr != NULL; mptr = mptr->b_cont, i++)
+		pktlen += (mptr->b_wptr - mptr->b_rptr);
+
+	/* Make sure packet isn't too large */
+	if (pktlen > XNF_FRAMESIZE) {
+		cmn_err(CE_WARN, "xnf%d: large packet %d bytes",
+		    ddi_get_instance(xnfp->devinfo), pktlen);
+		freemsg(mp);
+		return (B_FALSE);
+	}
+
+	/*
+	 * Test if we cross a page boundary with our buffer
+	 */
+	page_oops = (i == 1) &&
+	    (xnf_btop((size_t)mp->b_rptr) !=
+	    xnf_btop((size_t)(mp->b_rptr + pktlen)));
+	/*
+	 * XXPV - unfortunately, the Xen virtual net device currently
+	 * doesn't support multiple packet frags, so this will always
+	 * end up doing the pullup if we got more than one packet.
+	 */
+	if (i > xnf_max_tx_frags || page_oops) {
+		if (page_oops)
+			xnfp->stat_xmit_pagebndry++;
+		if ((xmitbuf = xnf_pullupmsg(xnfp, mp)) == NULL) {
+			/* could not allocate resources? */
+#ifdef XNF_DEBUG
+			cmn_err(CE_WARN, "xnf%d: pullupmsg failed",
+			    ddi_get_instance(xnfp->devinfo));
+#endif
+			xnfp->stat_xmit_defer++;
+			return (B_FALSE);	/* Retry send */
+		}
+		bufaddr = xmitbuf->buf;
+	} else {
+		xmitbuf = NULL;
+		bufaddr = (caddr_t)mp->b_rptr;
+	}
+
+	/* set up data descriptor */
+	length = pktlen;
+
+	/*
+	 * Get packet id from free list
+	 */
+	tx_id = xnfp->tx_pkt_id_list;
+	ASSERT(tx_id < NET_TX_RING_SIZE);
+	txp_info = &xnfp->tx_pkt_info[tx_id];
+	xnfp->tx_pkt_id_list = txp_info->id;
+	txp_info->id = tx_id;
+
+	/* Prepare for DMA mapping of tx buffer(s) */
+	rc = ddi_dma_addr_bind_handle(txp_info->dma_handle,
+	    NULL, bufaddr, length, DDI_DMA_WRITE | DDI_DMA_STREAMING,
+	    DDI_DMA_DONTWAIT, 0, &dma_cookie, &ncookies);
+	if (rc != DDI_DMA_MAPPED) {
+		ASSERT(rc != DDI_DMA_INUSE);
+		ASSERT(rc != DDI_DMA_PARTIAL_MAP);
+		/*
+		 *  Return id to free list
+		 */
+		txp_info->id = xnfp->tx_pkt_id_list;
+		xnfp->tx_pkt_id_list = tx_id;
+		if (rc == DDI_DMA_NORESOURCES) {
+			xnfp->stat_xmit_defer++;
+			return (B_FALSE); /* Retry later */
+		}
+#ifdef XNF_DEBUG
+		cmn_err(CE_WARN, "xnf%d: bind_handle failed (%x)",
+		    ddi_get_instance(xnfp->devinfo), rc);
+#endif
+		return (B_FALSE);
+	}
+
+	ASSERT(ncookies == 1);
+	ref = gnttab_claim_grant_reference(&xnfp->gref_tx_head);
+	ASSERT((signed short)ref >= 0);
+	mfn = xnf_btop(pa_to_ma((paddr_t)dma_cookie.dmac_laddress));
+	gnttab_grant_foreign_access_ref(ref, oeid, mfn,
+	    xnfp->tx_pages_readonly);
+	txp_info->grant_ref = ref;
+	txrp = RING_GET_REQUEST(&xnfp->tx_ring, slot);
+	txrp->gref = ref;
+	txrp->size = dma_cookie.dmac_size;
+	txrp->offset = (uintptr_t)bufaddr & PAGEOFFSET;
+	txrp->id = tx_id;
+	txrp->flags = 0;
+	hcksum_retrieve(mp, NULL, NULL, NULL, NULL, NULL, NULL, &pflags);
+	if (pflags != 0) {
+		ASSERT(xnfp->cksum_offload);
+		/*
+		 * If the local protocol stack requests checksum
+		 * offload we set the 'checksum blank' flag,
+		 * indicating to the peer that we need the checksum
+		 * calculated for us.
+		 *
+		 * We _don't_ set the validated flag, because we haven't
+		 * validated that the data and the checksum match.
+		 */
+		txrp->flags |= NETTXF_csum_blank;
+		xnfp->stat_tx_cksum_deferred++;
+	}
+	membar_producer();
+	xnfp->tx_ring.sring->req_prod = slot + 1;
+
+	txp_info->mp = mp;
+	txp_info->bdesc = xmitbuf;
+
+	txs_out = xnfp->tx_ring.sring->req_prod - xnfp->tx_ring.sring->rsp_prod;
+	if (xnfp->tx_ring.sring->req_prod - xnfp->tx_ring.rsp_cons <
+	    XNF_TX_FREE_THRESH) {
+		/*
+		 * The ring is getting full; Set up this packet
+		 * to cause an interrupt.
+		 */
+		xnfp->tx_ring.sring->rsp_event =
+		    xnfp->tx_ring.sring->rsp_prod + txs_out;
+	}
+
+	xnfp->stat_opackets++;
+	xnfp->stat_obytes += pktlen;
+
+	return (B_TRUE);	/* successful transmit attempt */
+}
+
+mblk_t *
+xnf_send(void *arg, mblk_t *mp)
+{
+	xnf_t *xnfp = arg;
+	mblk_t *next;
+	boolean_t sent_something = B_FALSE;
+
+	mutex_enter(&xnfp->txlock);
+
+	/*
+	 * Transmission attempts should be impossible without having
+	 * previously called xnf_start().
+	 */
+	ASSERT(xnfp->running);
+
+	/*
+	 * Wait for getting connected to the backend
+	 */
+	while (!xnfp->connected) {
+		cv_wait(&xnfp->cv, &xnfp->txlock);
+	}
+
+	while (mp != NULL) {
+		next = mp->b_next;
+		mp->b_next = NULL;
+
+		if (!xnf_send_one(xnfp, mp)) {
+			mp->b_next = next;
+			break;
+		}
+
+		mp = next;
+		sent_something = B_TRUE;
+	}
+
+	if (sent_something)
+		ec_notify_via_evtchn(xnfp->evtchn);
+
+	mutex_exit(&xnfp->txlock);
+
+	return (mp);
+}
+
+/*
+ *  xnf_intr() -- ring interrupt service routine
+ */
+static uint_t
+xnf_intr(caddr_t arg)
+{
+	xnf_t *xnfp = (xnf_t *)arg;
+	int tx_ring_space;
+
+	mutex_enter(&xnfp->intrlock);
+
+	/*
+	 * If not connected to the peer or not started by the upper
+	 * layers we cannot usefully handle interrupts.
+	 */
+	if (!(xnfp->connected && xnfp->running)) {
+		mutex_exit(&xnfp->intrlock);
+		return (DDI_INTR_UNCLAIMED);
+	}
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_INT)
+		printf("xnf%d intr(0x%p)\n",
+		    ddi_get_instance(xnfp->devinfo), (void *)xnfp);
+#endif
+	if (RING_HAS_UNCONSUMED_RESPONSES(&xnfp->rx_ring)) {
+		mblk_t *mp;
+
+		if ((mp = xnf_process_recv(xnfp)) != NULL)
+			mac_rx(xnfp->mh, xnfp->rx_handle, mp);
+	}
+
+	/*
+	 * Is tx ring nearly full?
+	 */
+#define	inuse(r) ((r).sring->req_prod - (r).rsp_cons)
+
+	if ((NET_TX_RING_SIZE - inuse(xnfp->tx_ring)) < XNF_TX_FREE_THRESH) {
+		/*
+		 * Yes, clean it and try to start any blocked xmit
+		 * streams.
+		 */
+		mutex_enter(&xnfp->txlock);
+		tx_ring_space = xnf_clean_tx_ring(xnfp);
+		mutex_exit(&xnfp->txlock);
+		if (tx_ring_space > XNF_TX_FREE_THRESH) {
+			mutex_exit(&xnfp->intrlock);
+			mac_tx_update(xnfp->mh);
+			mutex_enter(&xnfp->intrlock);
+		} else {
+			/*
+			 * Schedule another tx interrupt when we have
+			 * sent enough packets to cross the threshold.
+			 */
+			xnfp->tx_ring.sring->rsp_event =
+			    xnfp->tx_ring.sring->rsp_prod +
+			    XNF_TX_FREE_THRESH - tx_ring_space + 1;
+		}
+	}
+#undef inuse
+
+	xnfp->stat_intr++;
+	mutex_exit(&xnfp->intrlock);
+	return (DDI_INTR_CLAIMED); /* indicate that the interrupt was for us */
+}
+
+/*
+ *  xnf_start() -- start the board receiving and enable interrupts.
+ */
+static int
+xnf_start(void *arg)
+{
+	xnf_t *xnfp = arg;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_TRACE)
+		printf("xnf%d start(0x%p)\n",
+		    ddi_get_instance(xnfp->devinfo), (void *)xnfp);
+#endif
+
+	mutex_enter(&xnfp->intrlock);
+	mutex_enter(&xnfp->txlock);
+
+	/* Accept packets from above. */
+	xnfp->running = B_TRUE;
+
+	mutex_exit(&xnfp->txlock);
+	mutex_exit(&xnfp->intrlock);
+
+	return (0);
+}
+
+/* xnf_stop() - disable hardware */
+static void
+xnf_stop(void *arg)
+{
+	xnf_t *xnfp = arg;
+
+#ifdef XNF_DEBUG
+	if (xnfdebug & XNF_DEBUG_TRACE)
+		printf("xnf%d stop(0x%p)\n",
+		    ddi_get_instance(xnfp->devinfo), (void *)xnfp);
+#endif
+
+	mutex_enter(&xnfp->intrlock);
+	mutex_enter(&xnfp->txlock);
+
+	xnfp->running = B_FALSE;
+
+	mutex_exit(&xnfp->txlock);
+	mutex_exit(&xnfp->intrlock);
+}
+
+/*
+ * Driver private functions follow
+ */
+
+/*
+ * Hang buffer on rx ring
+ */
+static void
+rx_buffer_hang(xnf_t *xnfp, struct xnf_buffer_desc *bdesc)
+{
+	volatile netif_rx_request_t	*reqp;
+	RING_IDX	hang_ix;
+	grant_ref_t ref;
+	domid_t oeid;
+
+	oeid = xvdi_get_oeid(xnfp->devinfo);
+
+	ASSERT(MUTEX_HELD(&xnfp->intrlock));
+	reqp = RING_GET_REQUEST(&xnfp->rx_ring, xnfp->rx_ring.req_prod_pvt);
+	hang_ix = (RING_IDX) (reqp - RING_GET_REQUEST(&xnfp->rx_ring, 0));
+	ASSERT(xnfp->rxpkt_bufptr[hang_ix] == NULL);
+	if (bdesc->grant_ref == GRANT_INVALID_REF) {
+		ref = gnttab_claim_grant_reference(&xnfp->gref_rx_head);
+		ASSERT((signed short)ref >= 0);
+		bdesc->grant_ref = ref;
+		gnttab_grant_foreign_transfer_ref(ref, oeid);
+	}
+	reqp->id = hang_ix;
+	reqp->gref = bdesc->grant_ref;
+	bdesc->id = hang_ix;
+	xnfp->rxpkt_bufptr[hang_ix] = bdesc;
+	membar_producer();
+	xnfp->rx_ring.req_prod_pvt++;
+}
+
+
+/* Process all queued received packets */
+static mblk_t *
+xnf_process_recv(xnf_t *xnfp)
+{
+	volatile netif_rx_response_t *rxpkt;
+	mblk_t *mp, *head, *tail;
+	struct xnf_buffer_desc *bdesc;
+	extern mblk_t *desballoc(unsigned char *, size_t, uint_t, frtn_t *);
+	boolean_t hwcsum = B_FALSE, notify, work_to_do;
+	size_t len;
+	pfn_t pfn;
+	long cnt;
+
+	head = tail = NULL;
+loop:
+	while (RING_HAS_UNCONSUMED_RESPONSES(&xnfp->rx_ring)) {
+
+		rxpkt = RING_GET_RESPONSE(&xnfp->rx_ring,
+		    xnfp->rx_ring.rsp_cons);
+
+		/*
+		 * Take buffer off of receive ring
+		 */
+		hwcsum = B_FALSE;
+		bdesc = xnfp->rxpkt_bufptr[rxpkt->id];
+		xnfp->rxpkt_bufptr[rxpkt->id] = NULL;
+		ASSERT(bdesc->id == rxpkt->id);
+		if (rxpkt->status <= 0) {
+			mp = NULL;
+			xnfp->stat_errrcv++;
+			if (rxpkt->status == 0)
+				xnfp->stat_runt++;
+			if (rxpkt->status == NETIF_RSP_ERROR)
+				xnfp->stat_mac_rcv_error++;
+			if (rxpkt->status == NETIF_RSP_DROPPED)
+				xnfp->stat_norcvbuf++;
+			/*
+			 * re-hang the buffer
+			 */
+			rx_buffer_hang(xnfp, bdesc);
+		} else {
+			grant_ref_t ref =  bdesc->grant_ref;
+			struct xnf_buffer_desc *new_bdesc;
+			unsigned long off = rxpkt->offset;
+			unsigned long mfn;
+
+			len = rxpkt->status;
+			ASSERT(off + len <= PAGEOFFSET);
+			if (ref == GRANT_INVALID_REF) {
+				mp = NULL;
+				new_bdesc = bdesc;
+				cmn_err(CE_WARN, "Bad rx grant reference %d "
+				    "from dom %d", ref,
+				    xvdi_get_oeid(xnfp->devinfo));
+				goto luckless;
+			}
+			bdesc->grant_ref = GRANT_INVALID_REF;
+			mfn = gnttab_end_foreign_transfer_ref(ref);
+			ASSERT(mfn != MFN_INVALID);
+			ASSERT(hat_getpfnum(kas.a_hat, bdesc->buf) ==
+			    PFN_INVALID);
+			gnttab_release_grant_reference(&xnfp->gref_rx_head,
+			    ref);
+			reassign_pfn(xnf_btop(bdesc->buf_phys), mfn);
+			hat_devload(kas.a_hat, bdesc->buf, PAGESIZE,
+			    xnf_btop(bdesc->buf_phys),
+			    PROT_READ | PROT_WRITE, HAT_LOAD);
+			balloon_drv_added(1);
+			if (rxpkt->flags & NETRXF_data_validated)
+				hwcsum = B_TRUE;
+			if (len <= xnf_rx_bcopy_thresh) {
+				/*
+				 * For small buffers, just copy the data
+				 * and send the copy upstream.
+				 */
+				new_bdesc = NULL;
+			} else {
+				/*
+				 * We send a pointer to this data upstream;
+				 * we need a new buffer to replace this one.
+				 */
+				mutex_enter(&xnfp->rx_buf_mutex);
+				new_bdesc = xnf_get_buffer(xnfp);
+				if (new_bdesc != NULL) {
+					xnfp->rx_bufs_outstanding++;
+				} else {
+					xnfp->stat_rx_no_ringbuf++;
+				}
+				mutex_exit(&xnfp->rx_buf_mutex);
+			}
+
+			if (new_bdesc == NULL) {
+				/*
+				 * Don't have a new ring buffer; bcopy the data
+				 * from the buffer, and preserve the
+				 * original buffer
+				 */
+				if ((mp = allocb(len, BPRI_MED)) == NULL) {
+					/*
+					 * Could't get buffer to copy to,
+					 * drop this data, and re-hang
+					 * the buffer on the ring.
+					 */
+					xnfp->stat_norcvbuf++;
+				} else {
+					bcopy(bdesc->buf + off, mp->b_wptr,
+					    len);
+				}
+				/*
+				 * Give the buffer page back to xen
+				 */
+				pfn = xnf_btop(bdesc->buf_phys);
+				cnt = balloon_free_pages(1, &mfn, bdesc->buf,
+				    &pfn);
+				if (cnt != 1) {
+					cmn_err(CE_WARN, "unable to give a "
+					    "page back to the hypervisor\n");
+				}
+				new_bdesc = bdesc;
+			} else {
+				if ((mp = desballoc((unsigned char *)bdesc->buf,
+				    off + len, 0, (frtn_t *)bdesc)) == NULL) {
+					/*
+					 * Couldn't get mblk to pass recv data
+					 * up with, free the old ring buffer
+					 */
+					xnfp->stat_norcvbuf++;
+					xnf_rcv_complete(bdesc);
+					goto luckless;
+				}
+				(void) ddi_dma_sync(bdesc->dma_handle,
+				    0, 0, DDI_DMA_SYNC_FORCPU);
+
+				mp->b_wptr += off;
+				mp->b_rptr += off;
+			}
+luckless:
+			if (mp)
+				mp->b_wptr += len;
+			/* re-hang old or hang new buffer */
+			rx_buffer_hang(xnfp, new_bdesc);
+		}
+		if (mp) {
+			if (hwcsum) {
+				/*
+				 * If the peer says that the data has
+				 * been validated then we declare that
+				 * the full checksum has been
+				 * verified.
+				 *
+				 * We don't look at the "checksum
+				 * blank" flag, and hence could have a
+				 * packet here that we are asserting
+				 * is good with a blank checksum.
+				 *
+				 * The hardware checksum offload
+				 * specification says that we must
+				 * provide the actual checksum as well
+				 * as an assertion that it is valid,
+				 * but the protocol stack doesn't
+				 * actually use it and some other
+				 * drivers don't bother, so we don't.
+				 * If it was necessary we could grovel
+				 * in the packet to find it.
+				 */
+
+				(void) hcksum_assoc(mp, NULL,
+				    NULL, 0, 0, 0, 0,
+				    HCK_FULLCKSUM |
+				    HCK_FULLCKSUM_OK,
+				    0);
+				xnfp->stat_rx_cksum_no_need++;
+			}
+			if (head == NULL) {
+				head = tail = mp;
+			} else {
+				tail->b_next = mp;
+				tail = mp;
+			}
+
+			ASSERT(mp->b_next == NULL);
+
+			xnfp->stat_ipackets++;
+			xnfp->stat_rbytes += len;
+		}
+
+		xnfp->rx_ring.rsp_cons++;
+	}
+
+	/*
+	 * Has more data come in since we started?
+	 */
+	/* LINTED: constant in conditional context */
+	RING_FINAL_CHECK_FOR_RESPONSES(&xnfp->rx_ring, work_to_do);
+	if (work_to_do)
+		goto loop;
+
+	/*
+	 * Indicate to the backend that we have re-filled the receive
+	 * ring.
+	 */
+	/* LINTED: constant in conditional context */
+	RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(&xnfp->rx_ring, notify);
+	if (notify)
+		ec_notify_via_evtchn(xnfp->evtchn);
+
+	return (head);
+}
+
+/* Called when the upper layers free a message we passed upstream */
+static void
+xnf_rcv_complete(struct xnf_buffer_desc *bdesc)
+{
+	xnf_t *xnfp = bdesc->xnfp;
+	pfn_t pfn;
+	long cnt;
+
+	/* One less outstanding receive buffer */
+	mutex_enter(&xnfp->rx_buf_mutex);
+	--xnfp->rx_bufs_outstanding;
+	/*
+	 * Return buffer to the free list, unless the free list is getting
+	 * too large.  XXX - this threshold may need tuning.
+	 */
+	if (xnfp->rx_descs_free < xnf_recv_bufs_lowat) {
+		/*
+		 * Unmap the page, and hand the machine page back
+		 * to xen so it can be re-used as a backend net buffer.
+		 */
+		pfn = xnf_btop(bdesc->buf_phys);
+		cnt = balloon_free_pages(1, NULL, bdesc->buf, &pfn);
+		if (cnt != 1) {
+			cmn_err(CE_WARN, "unable to give a page back to the "
+			    "hypervisor\n");
+		}
+
+		bdesc->next = xnfp->free_list;
+		xnfp->free_list = bdesc;
+		xnfp->rx_descs_free++;
+		mutex_exit(&xnfp->rx_buf_mutex);
+	} else {
+		/*
+		 * We can return everything here since we have a free buffer
+		 * that we have not given the backing page for back to xen.
+		 */
+		--xnfp->recv_buffer_count;
+		mutex_exit(&xnfp->rx_buf_mutex);
+		(void) ddi_dma_unbind_handle(bdesc->dma_handle);
+		ddi_dma_mem_free(&bdesc->acc_handle);
+		ddi_dma_free_handle(&bdesc->dma_handle);
+		kmem_free(bdesc, sizeof (*bdesc));
+	}
+}
+
+/*
+ *  xnf_alloc_dma_resources() -- initialize the drivers structures
+ */
+static int
+xnf_alloc_dma_resources(xnf_t *xnfp)
+{
+	dev_info_t 		*devinfo = xnfp->devinfo;
+	int			i;
+	size_t			len;
+	ddi_dma_cookie_t	dma_cookie;
+	uint_t			ncookies;
+	struct xnf_buffer_desc	*bdesc;
+	int			rc;
+	caddr_t			rptr;
+
+	xnfp->n_recvs = NET_RX_RING_SIZE;
+	xnfp->max_recv_bufs = xnf_recv_bufs_hiwat;
+
+	xnfp->n_xmits = NET_TX_RING_SIZE;
+
+	/*
+	 * The code below allocates all the DMA data structures that
+	 * need to be released when the driver is detached.
+	 *
+	 * First allocate handles for mapping (virtual address) pointers to
+	 * transmit data buffers to physical addresses
+	 */
+	for (i = 0; i < xnfp->n_xmits; i++) {
+		if ((rc = ddi_dma_alloc_handle(devinfo,
+		    &tx_buffer_dma_attr, DDI_DMA_SLEEP, 0,
+		    &xnfp->tx_pkt_info[i].dma_handle)) != DDI_SUCCESS)
+			return (DDI_FAILURE);
+	}
+
+	/*
+	 * Allocate page for the transmit descriptor ring.
+	 */
+	if (ddi_dma_alloc_handle(devinfo, &ringbuf_dma_attr,
+	    DDI_DMA_SLEEP, 0, &xnfp->tx_ring_dma_handle) != DDI_SUCCESS)
+		goto alloc_error;
+
+	if (ddi_dma_mem_alloc(xnfp->tx_ring_dma_handle,
+	    PAGESIZE, &accattr, DDI_DMA_CONSISTENT,
+	    DDI_DMA_SLEEP, 0, &rptr, &len,
+	    &xnfp->tx_ring_dma_acchandle) != DDI_SUCCESS) {
+		ddi_dma_free_handle(&xnfp->tx_ring_dma_handle);
+		xnfp->tx_ring_dma_handle = NULL;
+		goto alloc_error;
+	}
+
+	if ((rc = ddi_dma_addr_bind_handle(xnfp->tx_ring_dma_handle, NULL,
+	    rptr, PAGESIZE, DDI_DMA_RDWR | DDI_DMA_CONSISTENT,
+	    DDI_DMA_SLEEP, 0, &dma_cookie, &ncookies)) != DDI_DMA_MAPPED) {
+		ddi_dma_mem_free(&xnfp->tx_ring_dma_acchandle);
+		ddi_dma_free_handle(&xnfp->tx_ring_dma_handle);
+		xnfp->tx_ring_dma_handle = NULL;
+		xnfp->tx_ring_dma_acchandle = NULL;
+		if (rc == DDI_DMA_NORESOURCES)
+			goto alloc_error;
+		else
+			goto error;
+	}
+
+	ASSERT(ncookies == 1);
+	bzero(rptr, PAGESIZE);
+	/* LINTED: constant in conditional context */
+	SHARED_RING_INIT((netif_tx_sring_t *)rptr);
+	/* LINTED: constant in conditional context */
+	FRONT_RING_INIT(&xnfp->tx_ring, (netif_tx_sring_t *)rptr, PAGESIZE);
+	xnfp->tx_ring_phys_addr = dma_cookie.dmac_laddress;
+
+	/*
+	 * Allocate page for the receive descriptor ring.
+	 */
+	if (ddi_dma_alloc_handle(devinfo, &ringbuf_dma_attr,
+	    DDI_DMA_SLEEP, 0, &xnfp->rx_ring_dma_handle) != DDI_SUCCESS)
+		goto alloc_error;
+
+	if (ddi_dma_mem_alloc(xnfp->rx_ring_dma_handle,
+	    PAGESIZE, &accattr, DDI_DMA_CONSISTENT,
+	    DDI_DMA_SLEEP, 0, &rptr, &len,
+	    &xnfp->rx_ring_dma_acchandle) != DDI_SUCCESS) {
+		ddi_dma_free_handle(&xnfp->rx_ring_dma_handle);
+		xnfp->rx_ring_dma_handle = NULL;
+		goto alloc_error;
+	}
+
+	if ((rc = ddi_dma_addr_bind_handle(xnfp->rx_ring_dma_handle, NULL,
+	    rptr, PAGESIZE, DDI_DMA_RDWR | DDI_DMA_CONSISTENT,
+	    DDI_DMA_SLEEP, 0, &dma_cookie, &ncookies)) != DDI_DMA_MAPPED) {
+		ddi_dma_mem_free(&xnfp->rx_ring_dma_acchandle);
+		ddi_dma_free_handle(&xnfp->rx_ring_dma_handle);
+		xnfp->rx_ring_dma_handle = NULL;
+		xnfp->rx_ring_dma_acchandle = NULL;
+		if (rc == DDI_DMA_NORESOURCES)
+			goto alloc_error;
+		else
+			goto error;
+	}
+
+	ASSERT(ncookies == 1);
+	bzero(rptr, PAGESIZE);
+	/* LINTED: constant in conditional context */
+	SHARED_RING_INIT((netif_rx_sring_t *)rptr);
+	/* LINTED: constant in conditional context */
+	FRONT_RING_INIT(&xnfp->rx_ring, (netif_rx_sring_t *)rptr, PAGESIZE);
+	xnfp->rx_ring_phys_addr = dma_cookie.dmac_laddress;
+
+	/*
+	 * Preallocate receive buffers for each receive descriptor.
+	 */
+
+	/* Set up the "free list" of receive buffer descriptors */
+	for (i = 0; i < xnfp->n_recvs; i++) {
+		if ((bdesc = xnf_alloc_buffer(xnfp)) == NULL)
+			goto alloc_error;
+		bdesc->next = xnfp->free_list;
+		xnfp->free_list = bdesc;
+	}
+
+	return (DDI_SUCCESS);
+
+alloc_error:
+	cmn_err(CE_WARN, "xnf%d: could not allocate enough DMA memory",
+	    ddi_get_instance(xnfp->devinfo));
+error:
+	xnf_release_dma_resources(xnfp);
+	return (DDI_FAILURE);
+}
+
+/*
+ * Release all DMA resources in the opposite order from acquisition
+ * Should not be called until all outstanding esballoc buffers
+ * have been returned.
+ */
+static void
+xnf_release_dma_resources(xnf_t *xnfp)
+{
+	int i;
+
+	/*
+	 * Free receive buffers which are currently associated with
+	 * descriptors
+	 */
+	for (i = 0; i < xnfp->n_recvs; i++) {
+		struct xnf_buffer_desc *bp;
+
+		if ((bp = xnfp->rxpkt_bufptr[i]) == NULL)
+			continue;
+		xnf_free_buffer(bp);
+		xnfp->rxpkt_bufptr[i] = NULL;
+	}
+
+	/* Free the receive ring buffer */
+	if (xnfp->rx_ring_dma_acchandle != NULL) {
+		(void) ddi_dma_unbind_handle(xnfp->rx_ring_dma_handle);
+		ddi_dma_mem_free(&xnfp->rx_ring_dma_acchandle);
+		ddi_dma_free_handle(&xnfp->rx_ring_dma_handle);
+		xnfp->rx_ring_dma_acchandle = NULL;
+	}
+	/* Free the transmit ring buffer */
+	if (xnfp->tx_ring_dma_acchandle != NULL) {
+		(void) ddi_dma_unbind_handle(xnfp->tx_ring_dma_handle);
+		ddi_dma_mem_free(&xnfp->tx_ring_dma_acchandle);
+		ddi_dma_free_handle(&xnfp->tx_ring_dma_handle);
+		xnfp->tx_ring_dma_acchandle = NULL;
+	}
+}
+
+static void
+xnf_release_mblks(xnf_t *xnfp)
+{
+	int	i;
+
+	for (i = 0; i < xnfp->n_xmits; i++) {
+		if (xnfp->tx_pkt_info[i].mp == NULL)
+			continue;
+		freemsg(xnfp->tx_pkt_info[i].mp);
+		xnfp->tx_pkt_info[i].mp = NULL;
+		(void) ddi_dma_unbind_handle(xnfp->tx_pkt_info[i].dma_handle);
+	}
+}
+
+/*
+ * Remove a xmit buffer descriptor from the head of the free list and return
+ * a pointer to it.  If no buffers on list, attempt to allocate a new one.
+ * Called with the tx_buf_mutex held.
+ */
+static struct xnf_buffer_desc *
+xnf_get_xmit_buffer(xnf_t *xnfp)
+{
+	struct xnf_buffer_desc *bdesc;
+
+	bdesc = xnfp->xmit_free_list;
+	if (bdesc != NULL) {
+		xnfp->xmit_free_list = bdesc->next;
+	} else {
+		bdesc = xnf_alloc_xmit_buffer(xnfp);
+	}
+	return (bdesc);
+}
+
+/*
+ * Remove a buffer descriptor from the head of the free list and return
+ * a pointer to it.  If no buffers on list, attempt to allocate a new one.
+ * Called with the rx_buf_mutex held.
+ */
+static struct xnf_buffer_desc *
+xnf_get_buffer(xnf_t *xnfp)
+{
+	struct xnf_buffer_desc *bdesc;
+
+	bdesc = xnfp->free_list;
+	if (bdesc != NULL) {
+		xnfp->free_list = bdesc->next;
+		xnfp->rx_descs_free--;
+	} else {
+		bdesc = xnf_alloc_buffer(xnfp);
+	}
+	return (bdesc);
+}
+
+/*
+ * Free a xmit buffer back to the xmit free list
+ */
+static void
+xnf_free_xmit_buffer(struct xnf_buffer_desc *bp)
+{
+	xnf_t *xnfp = bp->xnfp;
+
+	mutex_enter(&xnfp->tx_buf_mutex);
+	bp->next = xnfp->xmit_free_list;
+	xnfp->xmit_free_list = bp;
+	mutex_exit(&xnfp->tx_buf_mutex);
+}
+
+/*
+ * Put a buffer descriptor onto the head of the free list.
+ * We can't really free these buffers back to the kernel
+ * since we have given away their backing page to be used
+ * by the back end net driver.
+ */
+static void
+xnf_free_buffer(struct xnf_buffer_desc *bp)
+{
+	xnf_t *xnfp = bp->xnfp;
+
+	mutex_enter(&xnfp->rx_buf_mutex);
+	bp->next = xnfp->free_list;
+	xnfp->free_list = bp;
+	xnfp->rx_descs_free++;
+	mutex_exit(&xnfp->rx_buf_mutex);
+}
+
+/*
+ * Allocate a DMA-able xmit buffer, including a structure to
+ * keep track of the buffer.  Called with tx_buf_mutex held.
+ */
+static struct xnf_buffer_desc *
+xnf_alloc_xmit_buffer(xnf_t *xnfp)
+{
+	struct xnf_buffer_desc *bdesc;
+	size_t len;
+
+	if ((bdesc = kmem_zalloc(sizeof (*bdesc), KM_NOSLEEP)) == NULL)
+		return (NULL);
+
+	/* allocate a DMA access handle for receive buffer */
+	if (ddi_dma_alloc_handle(xnfp->devinfo, &tx_buffer_dma_attr,
+	    0, 0, &bdesc->dma_handle) != DDI_SUCCESS)
+		goto failure;
+
+	/* Allocate DMA-able memory for transmit buffer */
+	if (ddi_dma_mem_alloc(bdesc->dma_handle,
+	    PAGESIZE, &data_accattr, DDI_DMA_STREAMING, 0, 0,
+	    &bdesc->buf, &len, &bdesc->acc_handle) != DDI_SUCCESS)
+		goto late_failure;
+
+	bdesc->xnfp = xnfp;
+	xnfp->xmit_buffer_count++;
+
+	return (bdesc);
+
+late_failure:
+	ddi_dma_free_handle(&bdesc->dma_handle);
+
+failure:
+	kmem_free(bdesc, sizeof (*bdesc));
+	return (NULL);
+}
+
+/*
+ * Allocate a DMA-able receive buffer, including a structure to
+ * keep track of the buffer.  Called with rx_buf_mutex held.
+ */
+static struct xnf_buffer_desc *
+xnf_alloc_buffer(xnf_t *xnfp)
+{
+	struct			xnf_buffer_desc *bdesc;
+	size_t			len;
+	uint_t			ncookies;
+	ddi_dma_cookie_t	dma_cookie;
+	long			cnt;
+	pfn_t			pfn;
+
+	if (xnfp->recv_buffer_count >= xnfp->max_recv_bufs)
+		return (NULL);
+
+	if ((bdesc = kmem_zalloc(sizeof (*bdesc), KM_NOSLEEP)) == NULL)
+		return (NULL);
+
+	/* allocate a DMA access handle for receive buffer */
+	if (ddi_dma_alloc_handle(xnfp->devinfo, &rx_buffer_dma_attr,
+	    0, 0, &bdesc->dma_handle) != DDI_SUCCESS)
+		goto failure;
+
+	/* Allocate DMA-able memory for receive buffer */
+	if (ddi_dma_mem_alloc(bdesc->dma_handle,
+	    PAGESIZE, &data_accattr, DDI_DMA_STREAMING, 0, 0,
+	    &bdesc->buf, &len, &bdesc->acc_handle) != DDI_SUCCESS)
+		goto late_failure;
+
+	/* bind to virtual address of buffer to get physical address */
+	if (ddi_dma_addr_bind_handle(bdesc->dma_handle, NULL,
+	    bdesc->buf, PAGESIZE, DDI_DMA_READ | DDI_DMA_STREAMING,
+	    DDI_DMA_SLEEP, 0, &dma_cookie, &ncookies) != DDI_DMA_MAPPED)
+		goto late_late_failure;
+
+	bdesc->buf_phys = dma_cookie.dmac_laddress;
+	bdesc->xnfp = xnfp;
+	bdesc->free_rtn.free_func = xnf_rcv_complete;
+	bdesc->free_rtn.free_arg = (char *)bdesc;
+	bdesc->grant_ref = GRANT_INVALID_REF;
+	ASSERT(ncookies == 1);
+
+	xnfp->recv_buffer_count++;
+	/*
+	 * Unmap the page, and hand the machine page back
+	 * to xen so it can be used as a backend net buffer.
+	 */
+	pfn = xnf_btop(bdesc->buf_phys);
+	cnt = balloon_free_pages(1, NULL, bdesc->buf, &pfn);
+	if (cnt != 1) {
+		cmn_err(CE_WARN, "unable to give a page back to the "
+		    "hypervisor\n");
+	}
+
+	return (bdesc);
+
+late_late_failure:
+	ddi_dma_mem_free(&bdesc->acc_handle);
+
+late_failure:
+	ddi_dma_free_handle(&bdesc->dma_handle);
+
+failure:
+	kmem_free(bdesc, sizeof (*bdesc));
+	return (NULL);
+}
+
+static int
+xnf_stat(void *arg, uint_t stat, uint64_t *val)
+{
+	xnf_t *xnfp = arg;
+
+	mutex_enter(&xnfp->intrlock);
+	mutex_enter(&xnfp->txlock);
+
+#define	map_stat(q, r)				\
+	case (MAC_STAT_##q):			\
+		*val = xnfp->stat_##r;		\
+		break
+
+	switch (stat) {
+
+	map_stat(IPACKETS, ipackets);
+	map_stat(OPACKETS, opackets);
+	map_stat(RBYTES, rbytes);
+	map_stat(OBYTES, obytes);
+	map_stat(NORCVBUF, norcvbuf);
+	map_stat(IERRORS, errrcv);
+	map_stat(NOXMTBUF, xmit_defer);
+
+	default:
+		mutex_exit(&xnfp->txlock);
+		mutex_exit(&xnfp->intrlock);
+
+		return (ENOTSUP);
+	}
+
+#undef map_stat
+
+	mutex_exit(&xnfp->txlock);
+	mutex_exit(&xnfp->intrlock);
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static void
+xnf_blank(void *arg, time_t ticks, uint_t count)
+{
+	/*
+	 * XXPV dme: blanking is not currently implemented.
+	 *
+	 * It's not obvious how to use the 'ticks' argument here.
+	 *
+	 * 'Count' might be used as an indicator of how to set
+	 * rsp_event when posting receive buffers to the rx_ring.  It
+	 * would replace the code at the tail of xnf_process_recv()
+	 * that simply indicates that the next completed packet should
+	 * cause an interrupt.
+	 */
+}
+
+static void
+xnf_resources(void *arg)
+{
+	xnf_t *xnfp = arg;
+	mac_rx_fifo_t mrf;
+
+	mrf.mrf_type = MAC_RX_FIFO;
+	mrf.mrf_blank = xnf_blank;
+	mrf.mrf_arg = (void *)xnfp;
+	mrf.mrf_normal_blank_time = 128;	/* XXPV dme: see xnf_blank() */
+	mrf.mrf_normal_pkt_count = 8;		/* XXPV dme: see xnf_blank() */
+
+	xnfp->rx_handle = mac_resource_add(xnfp->mh,
+	    (mac_resource_t *)&mrf);
+}
+
+/*ARGSUSED*/
+static void
+xnf_ioctl(void *arg, queue_t *q, mblk_t *mp)
+{
+	miocnak(q, mp, 0, EINVAL);
+}
+
+static boolean_t
+xnf_getcapab(void *arg, mac_capab_t cap, void *cap_data)
+{
+	xnf_t *xnfp = arg;
+
+	switch (cap) {
+	case MAC_CAPAB_HCKSUM: {
+		uint32_t *capab = cap_data;
+
+		if (xnfp->cksum_offload)
+			*capab = HCKSUM_INET_FULL_V4;
+		else
+			*capab = 0;
+		break;
+	}
+
+	case MAC_CAPAB_POLL:
+		/* Just return B_TRUE. */
+		break;
+
+	default:
+		return (B_FALSE);
+	}
+
+	return (B_TRUE);
+}
+
+/*ARGSUSED*/
+static void
+oe_state_change(dev_info_t *dip, ddi_eventcookie_t id,
+    void *arg, void *impl_data)
+{
+	xnf_t *xnfp = ddi_get_driver_private(dip);
+	XenbusState new_state = *(XenbusState *)impl_data;
+
+	ASSERT(xnfp != NULL);
+
+	switch (new_state) {
+	case XenbusStateConnected:
+		mutex_enter(&xnfp->intrlock);
+		mutex_enter(&xnfp->txlock);
+
+		xnfp->connected = B_TRUE;
+		cv_broadcast(&xnfp->cv);
+
+		mutex_exit(&xnfp->txlock);
+		mutex_exit(&xnfp->intrlock);
+
+		ec_notify_via_evtchn(xnfp->evtchn);
+		break;
+
+	default:
+		break;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xnf.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,174 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_XNF_H
+#define	_SYS_XNF_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/kstat.h>
+#include <sys/hypervisor.h>
+#include <xen/public/io/netif.h>
+#include <xen/sys/xenbus_impl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	NET_TX_RING_SIZE  __RING_SIZE((netif_tx_sring_t *)0, PAGESIZE)
+#define	NET_RX_RING_SIZE  __RING_SIZE((netif_rx_sring_t *)0, PAGESIZE)
+
+#define	XNF_MAXPKT	1500		/* MTU size */
+#define	XNF_FRAMESIZE	1514		/* frame size including MAC header */
+
+#define	XNF_MAX_RXDESCS	256
+
+/* Watermark for causing "interrupt on completion" for outgoing packets */
+#define	XNF_TX_FREE_THRESH	(NET_TX_RING_SIZE / 10)
+
+#define	MCAST_HASHBITS		256
+
+extern int	xnf_diagnose;	/* Available for use any time. */
+
+/* Flags to set in the global xnf_diagnose */
+#define	XNF_DIAG_RX		0x01
+#define	XNF_DIAG_TX		0x02
+#define	XNF_DIAG_STATS		0x04
+#define	XNF_DIAG_RX_BUFS	0x08
+
+/* DEBUG flags */
+#define	XNF_DEBUG_DDI		0x01
+#define	XNF_DEBUG_TRACE		0x02
+#define	XNF_DEBUG_SEND		0x04
+#define	XNF_DEBUG_INT		0x08
+
+#define	XNF_DESC_ALIGN		8
+
+
+/* Info pertaining to each xmit/receive buffer */
+struct xnf_buffer_desc {
+	frtn_t			free_rtn;	/* desballoc() structure */
+	struct xnf		*xnfp;
+	ddi_dma_handle_t	dma_handle;
+	caddr_t			buf;		/* DMA-able data buffer */
+	paddr_t			buf_phys;
+	struct xnf_buffer_desc	*next;	/* For linking into free list */
+	ddi_acc_handle_t	acc_handle;
+	grant_ref_t		grant_ref;	/* grant table reference */
+	uint16_t		id;		/* buffer id */
+};
+
+/* Various information about each transmit packet */
+struct tx_pktinfo {
+	mblk_t			*mp;	/* mblk associated with packet */
+	ddi_dma_handle_t	dma_handle;
+	struct xnf_buffer_desc	*bdesc; /* pointer to buffer descriptor */
+	grant_ref_t		grant_ref;	/* grant table reference */
+	uint16_t		id;	/* tx pkt id/free list next pointer */
+};
+
+/* Per network-interface-controller driver private structure */
+typedef struct xnf {
+	/* most interesting stuff first to assist debugging */
+	dev_info_t		*devinfo;	/* System per-device info. */
+	mac_handle_t		mh;		/* Nemo per-device info. */
+	int			rx_bufs_outstanding;
+	int			tx_descs_free;
+	int			rx_descs_free;	/* count of free rx bufs */
+	int			n_xmits;	/* No. xmit descriptors */
+	int			n_recvs;	/* No. recv descriptors */
+	int			n_recv_bufs;	/* No. recv DMA buffers */
+	int			tx_start_thresh_regval;
+	unsigned char		mac_addr[ETHERADDRL];
+	int			max_recv_bufs;
+	int			recv_buffer_count;
+	int			xmit_buffer_count;
+
+	boolean_t		connected;
+	boolean_t		running;
+
+	boolean_t		cksum_offload;
+
+	uint64_t		stat_intr;
+	uint64_t		stat_norcvbuf;
+	uint64_t		stat_errrcv;
+
+	uint64_t		stat_xmit_attempt;
+	uint64_t		stat_xmit_pullup;
+	uint64_t		stat_xmit_pagebndry;
+	uint64_t		stat_xmit_defer;
+	uint64_t		stat_rx_no_ringbuf;
+	uint64_t		stat_mac_rcv_error;
+	uint64_t		stat_runt;
+
+	uint64_t		stat_ipackets;
+	uint64_t		stat_opackets;
+	uint64_t		stat_rbytes;
+	uint64_t		stat_obytes;
+
+	uint64_t		stat_tx_cksum_deferred;
+	uint64_t		stat_rx_cksum_no_need;
+
+	kstat_t			*kstat_aux;
+
+	struct xnf_buffer_desc	*free_list;
+	struct xnf_buffer_desc	*xmit_free_list;
+	int			tx_pkt_id_list; /* free list of avail pkt ids */
+	struct tx_pktinfo	tx_pkt_info[NET_TX_RING_SIZE];
+	struct xnf_buffer_desc	*rxpkt_bufptr[XNF_MAX_RXDESCS];
+
+	mac_resource_handle_t	rx_handle;
+	ddi_iblock_cookie_t	icookie;
+	kmutex_t		tx_buf_mutex;
+	kmutex_t		rx_buf_mutex;
+	kmutex_t		txlock;
+	kmutex_t		intrlock;
+	boolean_t		tx_pages_readonly;
+
+	netif_tx_front_ring_t	tx_ring;	/* tx interface struct ptr */
+	ddi_dma_handle_t	tx_ring_dma_handle;
+	ddi_acc_handle_t	tx_ring_dma_acchandle;
+	paddr_t			tx_ring_phys_addr;
+	grant_ref_t		tx_ring_ref;
+
+	netif_rx_front_ring_t	rx_ring;	/* rx interface struct ptr */
+	ddi_dma_handle_t	rx_ring_dma_handle;
+	ddi_acc_handle_t	rx_ring_dma_acchandle;
+	paddr_t			rx_ring_phys_addr;
+	grant_ref_t		rx_ring_ref;
+
+	uint16_t		evtchn;		/* channel to back end ctlr */
+	grant_ref_t		gref_tx_head;	/* tx grant free list */
+	grant_ref_t		gref_rx_head;	/* rx grant free list */
+	kcondvar_t		cv;
+} xnf_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XNF_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xpv_autoconfig.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,122 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/hypervisor.h>
+#include <sys/sunndi.h>
+#include <sys/sunddi.h>
+#include <sys/ddi_subrdefs.h>
+#include <sys/bootconf.h>
+#include <sys/psw.h>
+#include <sys/modctl.h>
+#include <sys/errno.h>
+#include <sys/reboot.h>
+#include <sys/hypervisor.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+
+extern int xen_boot_debug;
+
+/*
+ * Internal structures and functions
+ */
+int xendev_nounload = 0;
+void xendev_enumerate(int);
+
+/*
+ * Interface routines
+ */
+
+static struct modlmisc modlmisc = {
+	&mod_miscops, "virtual device probe %I%"
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1, (void *)&modlmisc, NULL
+};
+
+int
+_init(void)
+{
+	int	err;
+
+	if ((err = mod_install(&modlinkage)) != 0)
+		return (err);
+
+	impl_bus_add_probe(xendev_enumerate);
+	return (0);
+}
+
+int
+_fini(void)
+{
+	int	err;
+
+	if (xendev_nounload)
+		return (EBUSY);
+
+	if ((err = mod_remove(&modlinkage)) != 0)
+		return (err);
+
+	impl_bus_delete_probe(xendev_enumerate);
+	return (0);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+
+/*
+ * This functions is invoked twice, first time with reprogram=0 to
+ * set up the xpvd portion of the device tree. The second time is
+ * ignored.
+ */
+void
+xendev_enumerate(int reprogram)
+{
+	dev_info_t *dip;
+
+	if (reprogram != 0)
+		return;
+
+	ndi_devi_alloc_sleep(ddi_root_node(), "xpvd",
+	    (pnode_t)DEVI_SID_NODEID, &dip);
+
+	(void) ndi_devi_bind_driver(dip, 0);
+
+	/*
+	 * Too early to enumerate split device drivers in domU
+	 * since we need to create taskq thread during enumeration.
+	 * So, we only enumerate softdevs and console here.
+	 */
+	xendev_enum_all(dip, B_TRUE);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/io/xpvd.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,971 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ *	Host to hypervisor virtual devices nexus driver
+ *
+ * TODO:
+ * - Add watchpoints on vbd/vif and enumerate/offline on watch callback
+ * - Add DR IOCTLs
+ * - Filter/restrict property lookups into xenstore
+ */
+
+#include <sys/conf.h>
+#include <sys/hypervisor.h>
+#include <sys/kmem.h>
+#include <sys/debug.h>
+#include <sys/modctl.h>
+#include <sys/autoconf.h>
+#include <sys/ddi_impldefs.h>
+#include <sys/ddi_subrdefs.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/sunndi.h>
+#include <sys/mach_intr.h>
+#include <sys/evtchn_impl.h>
+#include <sys/avintr.h>
+#include <sys/psm.h>
+#include <sys/spl.h>
+#include <sys/promif.h>
+#include <sys/list.h>
+#include <sys/xen_mmu.h>
+#include <sys/bootconf.h>
+#include <sys/bootsvcs.h>
+#include <sys/bootinfo.h>
+#include <util/sscanf.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+
+/*
+ * DDI dev_ops entrypoints
+ */
+static int xpvd_info(dev_info_t *, ddi_info_cmd_t, void *, void **);
+static int xpvd_attach(dev_info_t *devi, ddi_attach_cmd_t cmd);
+static int xpvd_detach(dev_info_t *devi, ddi_detach_cmd_t cmd);
+
+
+/*
+ * NDI bus_ops entrypoints
+ */
+static int xpvd_ctlops(dev_info_t *, dev_info_t *, ddi_ctl_enum_t, void *,
+	void *);
+static int xpvd_intr_ops(dev_info_t *, dev_info_t *, ddi_intr_op_t,
+	ddi_intr_handle_impl_t *, void *);
+static int xpvd_prop_op(dev_t, dev_info_t *, dev_info_t *, ddi_prop_op_t,
+	int, char *, caddr_t, int *);
+static int xpvd_bus_config(dev_info_t *, uint_t, ddi_bus_config_op_t,
+	void *, dev_info_t **);
+static int xpvd_bus_unconfig(dev_info_t *, uint_t, ddi_bus_config_op_t,
+    void *);
+static int xpvd_get_eventcookie(dev_info_t *, dev_info_t *,
+    char *, ddi_eventcookie_t *);
+static int xpvd_add_eventcall(dev_info_t *, dev_info_t *,
+    ddi_eventcookie_t, void (*)(dev_info_t *,
+    ddi_eventcookie_t, void *, void *),
+    void *, ddi_callback_id_t *);
+static int xpvd_remove_eventcall(dev_info_t *, ddi_callback_id_t);
+static int xpvd_post_event(dev_info_t *, dev_info_t *,
+    ddi_eventcookie_t, void *);
+
+/*
+ * misc functions
+ */
+static int xpvd_enable_intr(dev_info_t *, ddi_intr_handle_impl_t *, int);
+static void xpvd_disable_intr(dev_info_t *, ddi_intr_handle_impl_t *, int);
+static int xpvd_removechild(dev_info_t *);
+static int xpvd_initchild(dev_info_t *);
+static int xpvd_name_child(dev_info_t *, char *, int);
+static boolean_t i_xpvd_parse_devname(char *, xendev_devclass_t *,
+    domid_t *, int *);
+
+
+/* Extern declarations */
+extern int (*psm_intr_ops)(dev_info_t *, ddi_intr_handle_impl_t *,
+    psm_intr_op_t, int *);
+
+struct bus_ops xpvd_bus_ops = {
+	BUSO_REV,
+	i_ddi_bus_map,
+	NULL,
+	NULL,
+	NULL,
+	i_ddi_map_fault,
+	ddi_dma_map,
+	ddi_dma_allochdl,
+	ddi_dma_freehdl,
+	ddi_dma_bindhdl,
+	ddi_dma_unbindhdl,
+	ddi_dma_flush,
+	ddi_dma_win,
+	ddi_dma_mctl,
+	xpvd_ctlops,
+	xpvd_prop_op,
+	xpvd_get_eventcookie,
+	xpvd_add_eventcall,
+	xpvd_remove_eventcall,
+	xpvd_post_event,
+	0,		/* (*bus_intr_ctl)(); */
+	xpvd_bus_config,
+	xpvd_bus_unconfig,
+	NULL,		/* (*bus_fm_init)(); */
+	NULL,		/* (*bus_fm_fini)(); */
+	NULL,		/* (*bus_fm_access_enter)(); */
+	NULL,		/* (*bus_fm_access_exit)(); */
+	NULL,		/* (*bus_power)(); */
+	xpvd_intr_ops	/* (*bus_intr_op)(); */
+};
+
+struct dev_ops xpvd_ops = {
+	DEVO_REV,		/* devo_rev */
+	0,			/* refcnt  */
+	xpvd_info,		/* info */
+	nulldev,		/* identify */
+	nulldev,		/* probe */
+	xpvd_attach,		/* attach */
+	xpvd_detach,		/* detach */
+	nulldev,		/* reset */
+	(struct cb_ops *)0,	/* driver operations */
+	&xpvd_bus_ops		/* bus operations */
+};
+
+
+dev_info_t *xpvd_dip;
+
+#define	CF_DBG		0x1
+#define	ALL_DBG		0xff
+
+static ndi_event_definition_t xpvd_ndi_event_defs[] = {
+	{ 0, XS_OE_STATE, EPL_KERNEL, NDI_EVENT_POST_TO_TGT },
+	{ 1, XS_HP_STATE, EPL_KERNEL, NDI_EVENT_POST_TO_TGT },
+};
+
+#define	XENDEV_N_NDI_EVENTS \
+	(sizeof (xpvd_ndi_event_defs) / sizeof (xpvd_ndi_event_defs[0]))
+
+static ndi_event_set_t xpvd_ndi_events = {
+	NDI_EVENTS_REV1, XENDEV_N_NDI_EVENTS, xpvd_ndi_event_defs
+};
+
+static ndi_event_hdl_t xpvd_ndi_event_handle;
+
+/*
+ * Hypervisor interrupt capabilities
+ */
+#define	XENDEV_INTR_CAPABILITIES \
+	(DDI_INTR_FLAG_EDGE | DDI_INTR_FLAG_MASKABLE | DDI_INTR_FLAG_PENDING)
+
+/*
+ * Module linkage information for the kernel.
+ */
+
+static struct modldrv modldrv = {
+	&mod_driverops, /* Type of module */
+	"virtual device nexus driver %I%",
+	&xpvd_ops,	/* driver ops */
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	(void *)&modldrv,
+	NULL
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modlinkage));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modlinkage));
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
+
+/* ARGSUSED */
+static int
+xpvd_info(dev_info_t *dip, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	switch (cmd) {
+	default:
+		return (DDI_FAILURE);
+
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = (void *)0;
+		return (DDI_SUCCESS);
+
+	case DDI_INFO_DEVT2DEVINFO:
+		*result = (void *)xpvd_dip;
+		return (DDI_SUCCESS);
+	}
+}
+
+/*ARGSUSED*/
+static int
+xpvd_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	extern void xvdi_watch_devices(int);
+	xpvd_dip = devi;
+
+	if (ndi_event_alloc_hdl(devi, 0, &xpvd_ndi_event_handle,
+	    NDI_SLEEP) != NDI_SUCCESS) {
+		xpvd_dip = NULL;
+		return (DDI_FAILURE);
+	}
+	if (ndi_event_bind_set(xpvd_ndi_event_handle, &xpvd_ndi_events,
+	    NDI_SLEEP) != NDI_SUCCESS) {
+		(void) ndi_event_free_hdl(xpvd_ndi_event_handle);
+		xpvd_dip = NULL;
+		return (DDI_FAILURE);
+	}
+
+	/* watch both frontend and backend for new devices */
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		(void) xs_register_xenbus_callback(xvdi_watch_devices);
+	else
+		xvdi_watch_devices(XENSTORE_UP);
+
+	ddi_report_dev(devi);
+
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+static int
+xpvd_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	return (DDI_FAILURE);
+}
+
+/*
+ * xpvd_prop_op()
+ *
+ * Query xenstore for the value of properties if DDI_PROP_NOTPROM
+ * is not set.  Xenstore property values are represented as ascii strings.
+ */
+static int
+xpvd_prop_op(dev_t dev, dev_info_t *dip, dev_info_t *ch_dip,
+    ddi_prop_op_t prop_op, int mod_flags, char *name, caddr_t valuep,
+    int *lengthp)
+{
+	caddr_t buff;
+	struct xendev_ppd *pdp;
+	void *prop_str;
+	size_t prop_len;
+	unsigned int len;
+	int rv;
+
+	pdp = (struct xendev_ppd *)ddi_get_parent_data(ch_dip);
+
+	if ((pdp == NULL) || !(mod_flags & (DDI_PROP_CANSLEEP)) ||
+	    (mod_flags & DDI_PROP_NOTPROM) || (pdp->xd_xsdev.nodename == NULL))
+		goto toss_off;
+	/*
+	 * First try reading the property off the the frontend. if that
+	 * fails, try and read it from the backend node.  If that
+	 * also fails, pass the request on the DDI framework
+	 */
+	prop_str = NULL;
+	if ((xenbus_read(XBT_NULL, pdp->xd_xsdev.nodename, name, &prop_str,
+	    &len) == 0) && (prop_str != NULL) && (strlen(prop_str) != 0))
+		goto got_xs_prop;
+
+	prop_str = NULL;
+	if ((pdp->xd_xsdev.otherend != NULL) &&
+	    (xenbus_read(XBT_NULL, pdp->xd_xsdev.otherend, name, &prop_str,
+	    &len) == 0) && (prop_str != NULL) && (strlen(prop_str) != 0))
+		goto got_xs_prop;
+
+toss_off:
+	return (ddi_bus_prop_op(dev, dip, ch_dip, prop_op,
+	    mod_flags | DDI_PROP_NOTPROM, name, valuep, lengthp));
+
+got_xs_prop:
+	prop_len = strlen(prop_str) + 1;
+	rv = DDI_PROP_SUCCESS;
+
+	switch (prop_op) {
+	case PROP_LEN:
+		*lengthp = prop_len;
+		break;
+
+	case PROP_LEN_AND_VAL_ALLOC:
+		buff = kmem_alloc((size_t)prop_len, KM_SLEEP);
+		*(caddr_t *)valuep = (caddr_t)buff;
+		break;
+	case PROP_LEN_AND_VAL_BUF:
+		buff = (caddr_t)valuep;
+		if (*lengthp < prop_len)
+			rv = DDI_PROP_BUF_TOO_SMALL;
+		break;
+	default:
+		rv = DDI_PROP_INVAL_ARG;
+		break;
+	}
+
+	if ((rv == DDI_PROP_SUCCESS) && (prop_len > 0)) {
+		bcopy(prop_str, buff, prop_len);
+		*lengthp = prop_len;
+	}
+	kmem_free(prop_str, len);
+	return (rv);
+}
+
+
+/*
+ * return address of the device's interrupt spec structure.
+ */
+/*ARGSUSED*/
+struct intrspec *
+xpvd_get_ispec(dev_info_t *rdip, uint_t inumber)
+{
+	struct xendev_ppd *pdp;
+
+	ASSERT(inumber == 0);
+
+	if ((pdp = ddi_get_parent_data(rdip)) == NULL)
+		return (NULL);
+
+	return (&pdp->xd_ispec);
+}
+
+/*
+ * return (and determine) the interrupt priority of the device.
+ */
+/*ARGSUSED*/
+static int
+xpvd_get_priority(dev_info_t *dip, int inum, int *pri)
+{
+	struct xendev_ppd *pdp;
+	struct intrspec *ispec;
+	int	*intpriorities;
+	uint_t	num_intpriorities;
+
+	DDI_INTR_NEXDBG((CE_CONT, "xpvd_get_priority: dip = 0x%p\n",
+	    (void *)dip));
+
+	ASSERT(inum == 0);
+
+	if ((pdp = ddi_get_parent_data(dip)) == NULL)
+		return (DDI_FAILURE);
+
+	ispec = &pdp->xd_ispec;
+
+	/*
+	 * Set the default priority based on the device class.  The
+	 * "interrupt-priorities" property can be used to override
+	 * the default.
+	 */
+	if (ispec->intrspec_pri == 0) {
+		ispec->intrspec_pri = xendev_devclass_ipl(pdp->xd_devclass);
+		if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,
+		    DDI_PROP_NOTPROM | DDI_PROP_DONTPASS,
+		    "interrupt-priorities", &intpriorities,
+		    &num_intpriorities) == DDI_PROP_SUCCESS) {
+			ispec->intrspec_pri = intpriorities[0];
+			ddi_prop_free(intpriorities);
+		}
+	}
+	*pri = ispec->intrspec_pri;
+	return (DDI_SUCCESS);
+}
+
+
+/*
+ * xpvd_intr_ops: bus_intr_op() function for interrupt support
+ */
+/* ARGSUSED */
+static int
+xpvd_intr_ops(dev_info_t *pdip, dev_info_t *rdip, ddi_intr_op_t intr_op,
+    ddi_intr_handle_impl_t *hdlp, void *result)
+{
+	int priority = 0;
+	struct intrspec *ispec;
+	struct xendev_ppd *pdp;
+
+	DDI_INTR_NEXDBG((CE_CONT,
+	    "xpvd_intr_ops: pdip 0x%p, rdip 0x%p, op %x handle 0x%p\n",
+	    (void *)pdip, (void *)rdip, intr_op, (void *)hdlp));
+
+	/* Process the request */
+	switch (intr_op) {
+	case DDI_INTROP_SUPPORTED_TYPES:
+		/* Fixed supported by default */
+		*(int *)result = DDI_INTR_TYPE_FIXED;
+		break;
+
+	case DDI_INTROP_NINTRS:
+		*(int *)result = 1;
+		break;
+
+	case DDI_INTROP_ALLOC:
+		/*
+		 * FIXED interrupts: just return available interrupts
+		 */
+		if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) {
+			/*
+			 * event channels are edge-triggered, maskable,
+			 * and support int pending.
+			 */
+			hdlp->ih_cap |= XENDEV_INTR_CAPABILITIES;
+			*(int *)result = 1;	/* DDI_INTR_TYPE_FIXED */
+		} else {
+			return (DDI_FAILURE);
+		}
+		break;
+
+	case DDI_INTROP_FREE:
+		ispec = xpvd_get_ispec(rdip, (int)hdlp->ih_inum);
+		if (ispec == NULL)
+			return (DDI_FAILURE);
+		ispec->intrspec_pri = 0; /* mark as un-initialized */
+		break;
+
+	case DDI_INTROP_GETPRI:
+		if (xpvd_get_priority(rdip, hdlp->ih_inum, &priority) !=
+		    DDI_SUCCESS)
+			return (DDI_FAILURE);
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd_intr_ops: priority = 0x%x\n",
+		    priority));
+		*(int *)result = priority;
+		break;
+
+	case DDI_INTROP_SETPRI:
+		/* Validate the interrupt priority passed */
+		if (*(int *)result > LOCK_LEVEL)
+			return (DDI_FAILURE);
+
+		/* Ensure that PSM is all initialized */
+		if (psm_intr_ops == NULL)
+			return (DDI_FAILURE);
+
+		/* Change the priority */
+		if ((*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_SET_PRI, result) ==
+		    PSM_FAILURE)
+			return (DDI_FAILURE);
+
+		ispec = xpvd_get_ispec(rdip, (int)hdlp->ih_inum);
+		if (ispec == NULL)
+			return (DDI_FAILURE);
+		ispec->intrspec_pri = *(int *)result;
+		break;
+
+	case DDI_INTROP_ADDISR:
+		/* update ispec */
+		ispec = xpvd_get_ispec(rdip, (int)hdlp->ih_inum);
+		if (ispec == NULL)
+			return (DDI_FAILURE);
+		ispec->intrspec_func = hdlp->ih_cb_func;
+
+		break;
+
+	case DDI_INTROP_REMISR:
+		ispec = xpvd_get_ispec(rdip, (int)hdlp->ih_inum);
+		pdp = (struct xendev_ppd *)ddi_get_parent_data(rdip);
+
+		ASSERT(pdp != NULL);
+		ASSERT(pdp->xd_evtchn != INVALID_EVTCHN);
+
+		if (ispec) {
+			ispec->intrspec_vec = 0;
+			ispec->intrspec_func = (uint_t (*)()) 0;
+		}
+		pdp->xd_evtchn = INVALID_EVTCHN;
+		break;
+
+	case DDI_INTROP_GETCAP:
+		if (hdlp->ih_type ==  DDI_INTR_TYPE_FIXED) {
+			/*
+			 * event channels are edge-triggered, maskable,
+			 * and support int pending.
+			 */
+			*(int *)result = XENDEV_INTR_CAPABILITIES;
+		} else {
+			*(int *)result = 0;
+			return (DDI_FAILURE);
+		}
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd: GETCAP returned = %x\n",
+		    *(int *)result));
+		break;
+	case DDI_INTROP_SETCAP:
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd_intr_ops: SETCAP cap=0x%x\n",
+		    *(int *)result));
+		if (psm_intr_ops == NULL)
+			return (DDI_FAILURE);
+
+		if ((*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_SET_CAP, result)) {
+			DDI_INTR_NEXDBG((CE_CONT, "GETCAP: psm_intr_ops"
+			    " returned failure\n"));
+			return (DDI_FAILURE);
+		}
+		break;
+
+	case DDI_INTROP_ENABLE:
+		if (psm_intr_ops == NULL)
+			return (DDI_FAILURE);
+
+		if (xpvd_enable_intr(rdip, hdlp, (int)hdlp->ih_inum) !=
+		    DDI_SUCCESS)
+			return (DDI_FAILURE);
+
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd_intr_ops: ENABLE vec=0x%x\n",
+		    hdlp->ih_vector));
+		break;
+
+	case DDI_INTROP_DISABLE:
+		if (psm_intr_ops == NULL)
+			return (DDI_FAILURE);
+		xpvd_disable_intr(rdip, hdlp, hdlp->ih_inum);
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd_intr_ops: DISABLE vec = %x\n",
+		    hdlp->ih_vector));
+		break;
+
+	case DDI_INTROP_BLOCKENABLE:
+	case DDI_INTROP_BLOCKDISABLE:
+		return (DDI_FAILURE);
+
+	case DDI_INTROP_SETMASK:
+	case DDI_INTROP_CLRMASK:
+		/*
+		 * Handle this here
+		 */
+		if (hdlp->ih_type != DDI_INTR_TYPE_FIXED)
+			return (DDI_FAILURE);
+		if (intr_op == DDI_INTROP_SETMASK) {
+			ec_disable_irq(hdlp->ih_vector);
+		} else {
+			ec_enable_irq(hdlp->ih_vector);
+		}
+		break;
+
+	case DDI_INTROP_GETPENDING:
+		if (hdlp->ih_type != DDI_INTR_TYPE_FIXED)
+			return (DDI_FAILURE);
+		*(int *)result = ec_pending_irq(hdlp->ih_vector);
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd: GETPENDING returned = %x\n",
+		    *(int *)result));
+		break;
+
+	case DDI_INTROP_NAVAIL:
+		*(int *)result = 1;
+		DDI_INTR_NEXDBG((CE_CONT, "xpvd: NAVAIL returned = %x\n",
+		    *(int *)result));
+		break;
+
+	default:
+		return (i_ddi_intr_ops(pdip, rdip, intr_op, hdlp, result));
+	}
+
+	return (DDI_SUCCESS);
+}
+
+
+static int
+xpvd_enable_intr(dev_info_t *rdip, ddi_intr_handle_impl_t *hdlp, int inum)
+{
+	int		vector;
+	ihdl_plat_t	*ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private;
+
+	DDI_INTR_NEXDBG((CE_CONT, "xpvd_enable_intr: hdlp %p inum %x\n",
+	    (void *)hdlp, inum));
+
+	ihdl_plat_datap->ip_ispecp = xpvd_get_ispec(rdip, inum);
+	if (ihdl_plat_datap->ip_ispecp == NULL)
+		return (DDI_FAILURE);
+
+	/* translate the interrupt if needed */
+	(void) (*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_XLATE_VECTOR, &vector);
+	DDI_INTR_NEXDBG((CE_CONT, "xpvd_enable_intr: priority=%x vector=%x\n",
+	    hdlp->ih_pri, vector));
+
+	/* Add the interrupt handler */
+	if (!add_avintr((void *)hdlp, hdlp->ih_pri, hdlp->ih_cb_func,
+	    DEVI(rdip)->devi_name, vector, hdlp->ih_cb_arg1,
+	    hdlp->ih_cb_arg2, NULL, rdip))
+		return (DDI_FAILURE);
+
+	/* Note this really is an irq. */
+	hdlp->ih_vector = (ushort_t)vector;
+
+	return (DDI_SUCCESS);
+}
+
+
+static void
+xpvd_disable_intr(dev_info_t *rdip, ddi_intr_handle_impl_t *hdlp, int inum)
+{
+	int		vector;
+	ihdl_plat_t	*ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private;
+
+	DDI_INTR_NEXDBG((CE_CONT, "xpvd_disable_intr: \n"));
+	ihdl_plat_datap->ip_ispecp = xpvd_get_ispec(rdip, inum);
+	if (ihdl_plat_datap->ip_ispecp == NULL)
+		return;
+
+	/* translate the interrupt if needed */
+	(void) (*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_XLATE_VECTOR, &vector);
+
+	/* Disable the interrupt handler */
+	rem_avintr((void *)hdlp, hdlp->ih_pri, hdlp->ih_cb_func, vector);
+	ihdl_plat_datap->ip_ispecp = NULL;
+}
+
+/*ARGSUSED*/
+static int
+xpvd_ctlops(dev_info_t *dip, dev_info_t *rdip,
+	ddi_ctl_enum_t ctlop, void *arg, void *result)
+{
+	switch (ctlop) {
+	case DDI_CTLOPS_REPORTDEV:
+		if (rdip == (dev_info_t *)0)
+			return (DDI_FAILURE);
+		cmn_err(CE_CONT, "?%s@%s, %s%d\n", ddi_node_name(rdip),
+		    ddi_get_name_addr(rdip), ddi_driver_name(rdip),
+		    ddi_get_instance(rdip));
+		return (DDI_SUCCESS);
+
+	case DDI_CTLOPS_INITCHILD:
+		return (xpvd_initchild((dev_info_t *)arg));
+
+	case DDI_CTLOPS_UNINITCHILD:
+		return (xpvd_removechild((dev_info_t *)arg));
+
+	case DDI_CTLOPS_SIDDEV:
+		return (DDI_SUCCESS);
+
+	case DDI_CTLOPS_REGSIZE:
+	case DDI_CTLOPS_NREGS:
+		return (DDI_FAILURE);
+
+	case DDI_CTLOPS_POWER: {
+		return (ddi_ctlops(dip, rdip, ctlop, arg, result));
+	}
+
+	default:
+		return (ddi_ctlops(dip, rdip, ctlop, arg, result));
+	}
+
+	/* NOTREACHED */
+
+}
+
+/*
+ * Assign the address portion of the node name
+ */
+static int
+xpvd_name_child(dev_info_t *child, char *name, int namelen)
+{
+	int *domain, *vdev;
+	uint_t ndomain, nvdev;
+	char *unit_address;
+
+	/*
+	 * i_xpvd_parse_devname() knows the formats used by this
+	 * routine.  If this code changes, so must that.
+	 */
+
+	if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, child, DDI_PROP_DONTPASS,
+	    "domain", &domain, &ndomain) != DDI_PROP_SUCCESS)
+		return (DDI_FAILURE);
+	ASSERT(ndomain == 1);
+
+	/*
+	 * Use "domain" and "vdev" properties (backend drivers).
+	 */
+	if (*domain != DOMID_SELF) {
+		if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, child,
+		    DDI_PROP_DONTPASS, "vdev", &vdev, &nvdev)
+		    != DDI_PROP_SUCCESS) {
+			ddi_prop_free(domain);
+			return (DDI_FAILURE);
+		}
+		ASSERT(nvdev == 1);
+
+		(void) snprintf(name, namelen, "%d,%d", domain[0], vdev[0]);
+		ddi_prop_free(vdev);
+		ddi_prop_free(domain);
+		return (DDI_SUCCESS);
+	}
+	ddi_prop_free(domain);
+
+	/*
+	 * Use "unit-address" property (frontend/softdev drivers).
+	 */
+	if (ddi_prop_lookup_string(DDI_DEV_T_ANY, child,
+	    DDI_PROP_DONTPASS, "unit-address", &unit_address)
+	    == DDI_PROP_SUCCESS) {
+		(void) snprintf(name, namelen, "%s", unit_address);
+		ddi_prop_free(unit_address);
+		return (DDI_SUCCESS);
+	}
+
+	return (DDI_FAILURE);
+}
+
+static int
+xpvd_initchild(dev_info_t *child)
+{
+	char name[80];
+
+	/*
+	 * Pseudo nodes indicate a prototype node with per-instance
+	 * properties to be merged into the real h/w device node.
+	 */
+	if (ndi_dev_is_persistent_node(child) == 0) {
+		ddi_set_parent_data(child, NULL);
+
+		/*
+		 * Try to merge the properties from this prototype
+		 * node into real h/w nodes.
+		 */
+		if (ndi_merge_node(child, xpvd_name_child) == DDI_SUCCESS) {
+			/*
+			 * Merged ok - return failure to remove the node.
+			 */
+			ddi_set_name_addr(child, NULL);
+			return (DDI_FAILURE);
+		}
+
+		/*
+		 * The child was not merged into a h/w node,
+		 * but there's not much we can do with it other
+		 * than return failure to cause the node to be removed.
+		 */
+		cmn_err(CE_WARN, "!%s@%s: %s.conf properties not merged",
+		    ddi_get_name(child), ddi_get_name_addr(child),
+		    ddi_get_name(child));
+		ddi_set_name_addr(child, NULL);
+		return (DDI_NOT_WELL_FORMED);
+	}
+
+	if (xvdi_init_dev(child) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	if (xpvd_name_child(child, name, 80) != DDI_SUCCESS) {
+		xvdi_uninit_dev(child);
+		return (DDI_FAILURE);
+	}
+	ddi_set_name_addr(child, name);
+
+	return (DDI_SUCCESS);
+}
+
+static int
+xpvd_removechild(dev_info_t *dip)
+{
+	xvdi_uninit_dev(dip);
+
+	ddi_set_name_addr(dip, NULL);
+
+	/*
+	 * Strip the node to properly convert it back to prototype
+	 * form.
+	 */
+	ddi_remove_minor_node(dip, NULL);
+
+	return (DDI_SUCCESS);
+}
+
+static int
+xpvd_bus_unconfig(dev_info_t *parent, uint_t flag, ddi_bus_config_op_t op,
+    void *device_name)
+{
+	return (ndi_busop_bus_unconfig(parent, flag, op, device_name));
+}
+
+/*
+ * Given the name of a child of xpvd, determine the device class,
+ * domain and vdevnum to which it refers.
+ */
+static boolean_t
+i_xpvd_parse_devname(char *name, xendev_devclass_t *devclassp,
+    domid_t *domp, int *vdevp)
+{
+	int len = strlen(name) + 1;
+	char *device_name = i_ddi_strdup(name, KM_SLEEP);
+	char *cname = NULL, *caddr = NULL;
+	boolean_t ret;
+
+	i_ddi_parse_name(device_name, &cname, &caddr, NULL);
+
+	if ((cname == NULL) || (strlen(cname) == 0) ||
+	    (caddr == NULL) || (strlen(caddr) == 0)) {
+		ret = B_FALSE;
+		goto done;
+	}
+
+	*devclassp = xendev_nodename_to_devclass(cname);
+	if (*devclassp < 0) {
+		ret = B_FALSE;
+		goto done;
+	}
+
+	/*
+	 * Parsing the address component requires knowledge of how
+	 * xpvd_name_child() works.  If that code changes, so must
+	 * this.
+	 */
+
+	/* Backend format is "<domain>,<vdev>". */
+	if (sscanf(caddr, "%d,%d", domp, vdevp) == 2) {
+		ret = B_TRUE;
+		goto done;
+	}
+
+	/* Frontend format is "<vdev>". */
+	*domp = DOMID_SELF;
+	if (sscanf(caddr, "%x", vdevp) == 1) {
+		ret = B_TRUE;
+		goto done;
+	}
+
+done:
+	kmem_free(device_name, len);
+	return (ret);
+}
+
+/*
+ * xpvd_bus_config()
+ *
+ * BUS_CONFIG_ONE:
+ *	Enumerate the exact instance of a driver.
+ *
+ * BUS_CONFIG_ALL:
+ *	Enumerate all the instances of all the possible children (seen before
+ *	and never seen before).
+ *
+ * BUS_CONFIG_DRIVER:
+ *	Enumerate all the instances of a particular driver.
+ */
+static int
+xpvd_bus_config(dev_info_t *parent, uint_t flag, ddi_bus_config_op_t op,
+	void *arg, dev_info_t **childp)
+{
+	int circ;
+	char *cname = NULL;
+
+	ndi_devi_enter(parent, &circ);
+
+	switch (op) {
+	case BUS_CONFIG_ONE: {
+		xendev_devclass_t devclass;
+		domid_t dom;
+		int vdev;
+
+		if (!i_xpvd_parse_devname(arg, &devclass, &dom, &vdev)) {
+			ndi_devi_exit(parent, circ);
+			return (NDI_FAILURE);
+		}
+
+		*childp = xvdi_find_dev(parent, devclass, dom, vdev);
+		if (*childp == NULL)
+			*childp = xvdi_create_dev(parent, devclass, dom, vdev);
+
+		ndi_devi_exit(parent, circ);
+
+		if (*childp == NULL)
+			return (NDI_FAILURE);
+		else
+			return (ndi_busop_bus_config(parent, flag,
+			    op, arg, childp, 0));
+	}
+
+	case BUS_CONFIG_DRIVER: {
+		xendev_devclass_t devclass = XEN_INVAL;
+
+		cname = ddi_major_to_name((major_t)(uintptr_t)arg);
+		if (cname != NULL)
+			devclass = xendev_nodename_to_devclass(cname);
+
+		if (devclass == XEN_INVAL) {
+			ndi_devi_exit(parent, circ);
+			return (NDI_FAILURE);
+		} else {
+			xendev_enum_class(parent, devclass);
+			ndi_devi_exit(parent, circ);
+			return (ndi_busop_bus_config(parent, flag, op,
+			    arg, childp, 0));
+		}
+		/* NOTREACHED */
+	}
+
+	case BUS_CONFIG_ALL:
+		xendev_enum_all(parent, B_FALSE);
+		ndi_devi_exit(parent, circ);
+
+		return (ndi_busop_bus_config(parent, flag, op,
+		    arg, childp, 0));
+
+	default:
+		ndi_devi_exit(parent, circ);
+		return (NDI_FAILURE);
+	}
+}
+
+/*ARGSUSED*/
+static int
+xpvd_get_eventcookie(dev_info_t *dip, dev_info_t *rdip,
+    char *eventname, ddi_eventcookie_t *cookie)
+{
+	return (ndi_event_retrieve_cookie(xpvd_ndi_event_handle,
+	    rdip, eventname, cookie, NDI_EVENT_NOPASS));
+}
+
+/*ARGSUSED*/
+static int
+xpvd_add_eventcall(dev_info_t *dip, dev_info_t *rdip,
+    ddi_eventcookie_t cookie, void (*callback)(dev_info_t *dip,
+    ddi_eventcookie_t cookie, void *arg, void *bus_impldata),
+    void *arg, ddi_callback_id_t *cb_id)
+{
+	return (ndi_event_add_callback(xpvd_ndi_event_handle,
+	    rdip, cookie, callback, arg, NDI_SLEEP, cb_id));
+}
+
+/*ARGSUSED*/
+static int
+xpvd_remove_eventcall(dev_info_t *dip, ddi_callback_id_t cb_id)
+{
+	return (ndi_event_remove_callback(xpvd_ndi_event_handle,
+	    cb_id));
+}
+
+/*ARGSUSED*/
+static int
+xpvd_post_event(dev_info_t *dip, dev_info_t *rdip,
+    ddi_eventcookie_t cookie, void *bus_impldata)
+{
+	return (ndi_event_run_callbacks(xpvd_ndi_event_handle, rdip,
+	    cookie, bus_impldata));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/os/xvdi.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,2091 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Xen virtual device driver interfaces
+ */
+
+/*
+ * todo:
+ * + name space clean up:
+ *	xvdi_* - public xen interfaces, for use by all leaf drivers
+ *	xd_* - public xen data structures
+ *	i_xvdi_* - implementation private functions
+ *	xendev_* - xendev driver interfaces, both internal and in cb_ops/bus_ops
+ * + add mdb dcmds to dump ring status
+ * + implement xvdi_xxx to wrap xenbus_xxx read/write function
+ * + convert (xendev_ring_t *) into xvdi_ring_handle_t
+ */
+#include <sys/conf.h>
+#include <sys/param.h>
+#include <sys/hypervisor.h>
+#include <sys/xen_mmu.h>
+#include <sys/kmem.h>
+#include <vm/seg_kmem.h>
+#include <sys/debug.h>
+#include <sys/modctl.h>
+#include <sys/autoconf.h>
+#include <sys/ddi_impldefs.h>
+#include <sys/ddi_subrdefs.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/sunndi.h>
+#include <sys/sunldi.h>
+#include <sys/fs/dv_node.h>
+#include <sys/evtchn_impl.h>
+#include <sys/gnttab.h>
+#include <sys/avintr.h>
+#include <sys/psm.h>
+#include <sys/spl.h>
+#include <sys/promif.h>
+#include <sys/list.h>
+#include <sys/bootconf.h>
+#include <sys/bootsvcs.h>
+#include <sys/bootinfo.h>
+#include <sys/note.h>
+#include <sys/xen_mmu.h>
+#include <xen/sys/xenbus_impl.h>
+#include <xen/sys/xendev.h>
+#include <vm/hat_i86.h>
+#include <sys/scsi/generic/inquiry.h>
+#include <util/sscanf.h>
+#include <xen/public/io/xs_wire.h>
+
+
+static void xvdi_ring_init_sring(xendev_ring_t *);
+static void xvdi_ring_init_front_ring(xendev_ring_t *, size_t, size_t);
+static void xvdi_ring_init_back_ring(xendev_ring_t *, size_t, size_t);
+static void xvdi_reinit_ring(dev_info_t *, grant_ref_t *, xendev_ring_t *);
+
+static int i_xvdi_add_watches(dev_info_t *);
+static void i_xvdi_rem_watches(dev_info_t *);
+
+static int i_xvdi_add_watch_oestate(dev_info_t *);
+static void i_xvdi_rem_watch_oestate(dev_info_t *);
+static void i_xvdi_oestate_cb(struct xenbus_device *, XenbusState);
+static void i_xvdi_oestate_handler(void *);
+
+static int i_xvdi_add_watch_hpstate(dev_info_t *);
+static void i_xvdi_rem_watch_hpstate(dev_info_t *);
+static void i_xvdi_hpstate_cb(struct xenbus_watch *, const char **,
+    unsigned int);
+static void i_xvdi_hpstate_handler(void *);
+
+static int i_xvdi_add_watch_bepath(dev_info_t *);
+static void i_xvdi_rem_watch_bepath(dev_info_t *);
+static void i_xvdi_bepath_cb(struct xenbus_watch *, const char **,
+    unsigned in);
+
+static void xendev_offline_device(void *);
+
+static void i_xvdi_probe_path_cb(struct xenbus_watch *, const char **,
+    unsigned int);
+static void i_xvdi_probe_path_handler(void *);
+
+typedef struct xd_cfg {
+	xendev_devclass_t devclass;
+	char *xsdev;
+	char *xs_path_fe;
+	char *xs_path_be;
+	char *node_fe;
+	char *node_be;
+	char *device_type;
+	int xd_ipl;
+	int flags;
+} i_xd_cfg_t;
+
+#define	XD_DOM_ZERO	0x01	/* dom0 only. */
+#define	XD_DOM_GUEST	0x02	/* Guest domains (i.e. non-dom0). */
+#define	XD_DOM_IO	0x04	/* IO domains. */
+
+#define	XD_DOM_ALL	(XD_DOM_ZERO | XD_DOM_GUEST)
+
+static i_xd_cfg_t xdci[] = {
+	{ XEN_CONSOLE, NULL, NULL, NULL, "xencons", NULL,
+	    "console", IPL_CONS, XD_DOM_ALL, },
+
+	{ XEN_VNET, "vif", "device/vif", "backend/vif", "xnf", "xnb",
+	    "network", IPL_VIF, XD_DOM_ALL, },
+
+	{ XEN_VBLK, "vbd", "device/vbd", "backend/vbd", "xdf", "xdb",
+	    "block", IPL_VBD, XD_DOM_ALL, },
+
+	{ XEN_XENBUS, NULL, NULL, NULL, "xenbus", NULL,
+	    NULL, 0, XD_DOM_ALL, },
+
+	{ XEN_DOMCAPS, NULL, NULL, NULL, "domcaps", NULL,
+	    NULL, 0, XD_DOM_ALL, },
+
+	{ XEN_BALLOON, NULL, NULL, NULL, "balloon", NULL,
+	    NULL, 0, XD_DOM_ALL, },
+
+	{ XEN_EVTCHN, NULL, NULL, NULL, "evtchn", NULL,
+	    NULL, 0, XD_DOM_ZERO, },
+
+	{ XEN_PRIVCMD, NULL, NULL, NULL, "privcmd", NULL,
+	    NULL, 0, XD_DOM_ZERO, },
+};
+#define	NXDC	(sizeof (xdci) / sizeof (xdci[0]))
+
+static void i_xvdi_enum_fe(dev_info_t *, i_xd_cfg_t *);
+static void i_xvdi_enum_be(dev_info_t *, i_xd_cfg_t *);
+static void i_xvdi_enum_worker(dev_info_t *, i_xd_cfg_t *, char *);
+
+/*
+ * Xen device channel device access and DMA attributes
+ */
+static ddi_device_acc_attr_t xendev_dc_accattr = {
+	DDI_DEVICE_ATTR_V0, DDI_NEVERSWAP_ACC, DDI_STRICTORDER_ACC
+};
+
+static ddi_dma_attr_t xendev_dc_dmaattr = {
+	DMA_ATTR_V0,		/* version of this structure */
+	0,			/* lowest usable address */
+	0xffffffffffffffffULL,	/* highest usable address */
+	0x7fffffff,		/* maximum DMAable byte count */
+	MMU_PAGESIZE,		/* alignment in bytes */
+	0x7ff,			/* bitmap of burst sizes */
+	1,			/* minimum transfer */
+	0xffffffffU,		/* maximum transfer */
+	0xffffffffffffffffULL,	/* maximum segment length */
+	1,			/* maximum number of segments */
+	1,			/* granularity */
+	0,			/* flags (reserved) */
+};
+
+static dev_info_t *xendev_dip = NULL;
+
+#define	XVDI_DBG_STATE	0x01
+#define	XVDI_DBG_PROBE	0x02
+
+#ifdef DEBUG
+static int i_xvdi_debug = 0;
+
+#define	XVDI_DPRINTF(flag, format, ...)			\
+{							\
+	if (i_xvdi_debug & (flag))			\
+		prom_printf((format), __VA_ARGS__);	\
+}
+#else
+#define	XVDI_DPRINTF(flag, format, ...)
+#endif /* DEBUG */
+
+static i_xd_cfg_t *
+i_xvdi_devclass2cfg(xendev_devclass_t devclass)
+{
+	i_xd_cfg_t *xdcp;
+	int i;
+
+	for (i = 0, xdcp = xdci; i < NXDC; i++, xdcp++)
+		if (xdcp->devclass == devclass)
+			return (xdcp);
+
+	return (NULL);
+}
+
+int
+xvdi_init_dev(dev_info_t *dip)
+{
+	xendev_devclass_t devcls;
+	int vdevnum;
+	domid_t domid;
+	struct xendev_ppd *pdp;
+	i_xd_cfg_t *xdcp;
+	boolean_t backend;
+	char xsnamebuf[TYPICALMAXPATHLEN];
+	char *xsname;
+
+	devcls = ddi_prop_get_int(DDI_DEV_T_ANY, dip,
+	    DDI_PROP_DONTPASS, "devclass", XEN_INVAL);
+	vdevnum = ddi_prop_get_int(DDI_DEV_T_ANY, dip,
+	    DDI_PROP_DONTPASS, "vdev", -1);
+	domid = (domid_t)ddi_prop_get_int(DDI_DEV_T_ANY, dip,
+	    DDI_PROP_DONTPASS, "domain", DOMID_SELF);
+
+	backend = (domid != DOMID_SELF);
+	xdcp = i_xvdi_devclass2cfg(devcls);
+	if (xdcp->device_type != NULL)
+		(void) ndi_prop_update_string(DDI_DEV_T_NONE, dip,
+		    "device_type", xdcp->device_type);
+
+	pdp = kmem_zalloc(sizeof (*pdp), KM_SLEEP);
+	pdp->xd_domain = domid;
+	pdp->xd_vdevnum = vdevnum;
+	pdp->xd_devclass = devcls;
+	pdp->xd_evtchn = INVALID_EVTCHN;
+	mutex_init(&pdp->xd_lk, NULL, MUTEX_DRIVER, NULL);
+	ddi_set_parent_data(dip, pdp);
+
+	/*
+	 * devices that do not need to interact with xenstore
+	 */
+	if (vdevnum == -1) {
+		(void) ndi_prop_update_string(DDI_DEV_T_NONE, dip,
+		    "unit-address", "0");
+		if (devcls == XEN_CONSOLE)
+			(void) ndi_prop_update_string(DDI_DEV_T_NONE, dip,
+			    "pm-hardware-state", "needs-suspend-resume");
+		return (DDI_SUCCESS);
+	}
+
+	/*
+	 * PV devices that need to probe xenstore
+	 */
+
+	(void) ndi_prop_update_string(DDI_DEV_T_NONE, dip,
+	    "pm-hardware-state", "needs-suspend-resume");
+
+	xsname = xsnamebuf;
+	if (!backend)
+		(void) snprintf(xsnamebuf, sizeof (xsnamebuf),
+		    "%s/%d", xdcp->xs_path_fe, vdevnum);
+	else
+		(void) snprintf(xsnamebuf, sizeof (xsnamebuf),
+		    "%s/%d/%d", xdcp->xs_path_be, domid, vdevnum);
+
+	pdp->xd_xsdev.nodename = i_ddi_strdup(xsname, KM_SLEEP);
+	pdp->xd_xsdev.devicetype = xdcp->xsdev;
+	pdp->xd_xsdev.frontend = (backend ? 0 : 1);
+	pdp->xd_xsdev.data = dip;
+	pdp->xd_xsdev.otherend_id = (backend ? domid : -1);
+	if (i_xvdi_add_watches(dip) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "xvdi_init_dev: "
+		    "cannot add watches for %s", xsname);
+		xvdi_uninit_dev(dip);
+		return (DDI_FAILURE);
+	}
+
+	/*
+	 * frontend device will use "unit-addr" as
+	 * the bus address, which will be set here
+	 */
+	if (!backend) {
+		void *prop_str;
+		unsigned int prop_len, addr;
+
+		switch (devcls) {
+		case XEN_VNET:
+			if (xenbus_read(XBT_NULL, xsname, "mac", &prop_str,
+			    &prop_len) == 0) {
+				(void) ndi_prop_update_string(DDI_DEV_T_NONE,
+				    dip, "mac", prop_str);
+				kmem_free(prop_str, prop_len);
+			}
+			prop_str = NULL;
+			if (xenbus_scanf(XBT_NULL, xsname, "handle", "%u",
+			    &addr) == 0) {
+				char unitaddr[9]; /* hold 32-bit hex */
+
+				(void) snprintf(unitaddr, 9, "%x", addr);
+				(void) ndi_prop_update_string(DDI_DEV_T_NONE,
+				    dip, "unit-address", unitaddr);
+			}
+			break;
+		case XEN_VBLK:
+			if (xenbus_read(XBT_NULL, pdp->xd_xsdev.otherend,
+			    "dev", &prop_str, &prop_len) == 0) {
+				(void) ndi_prop_update_string(DDI_DEV_T_NONE,
+				    dip, "unit-address", prop_str);
+				kmem_free(prop_str, prop_len);
+			}
+			break;
+		default:
+			break;
+		}
+	}
+
+	return (DDI_SUCCESS);
+}
+
+void
+xvdi_uninit_dev(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	if (pdp != NULL) {
+		/* Remove any registered callbacks. */
+		xvdi_remove_event_handler(dip, NULL);
+
+		/* Remove any registered watches. */
+		i_xvdi_rem_watches(dip);
+
+		if (pdp->xd_xsdev.nodename != NULL)
+			kmem_free((char *)(pdp->xd_xsdev.nodename),
+			    strlen(pdp->xd_xsdev.nodename) + 1);
+
+		ddi_set_parent_data(dip, NULL);
+
+		mutex_destroy(&pdp->xd_lk);
+		kmem_free(pdp, sizeof (*pdp));
+	}
+}
+
+/*
+ * Bind the event channel for this device instance.
+ * Currently we only support one evtchn per device instance.
+ */
+int
+xvdi_bind_evtchn(dev_info_t *dip, evtchn_port_t evtchn)
+{
+	struct xendev_ppd *pdp;
+	domid_t oeid;
+	int r;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_evtchn == INVALID_EVTCHN);
+
+	mutex_enter(&pdp->xd_lk);
+	if (pdp->xd_devclass == XEN_CONSOLE) {
+		if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+			pdp->xd_evtchn = xen_info->console.domU.evtchn;
+		} else {
+			pdp->xd_evtchn = INVALID_EVTCHN;
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_SUCCESS);
+		}
+	} else {
+		oeid = pdp->xd_xsdev.otherend_id;
+		if (oeid == (domid_t)-1) {
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_FAILURE);
+		}
+
+		if ((r = xen_bind_interdomain(oeid, evtchn, &pdp->xd_evtchn))) {
+			xvdi_dev_error(dip, r, "bind event channel");
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_FAILURE);
+		}
+	}
+	pdp->xd_ispec.intrspec_vec = ec_bind_evtchn_to_irq(pdp->xd_evtchn);
+	mutex_exit(&pdp->xd_lk);
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Allocate an event channel for this device instance.
+ * Currently we only support one evtchn per device instance.
+ */
+int
+xvdi_alloc_evtchn(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp;
+	domid_t oeid;
+	int rv;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_evtchn == INVALID_EVTCHN);
+
+	mutex_enter(&pdp->xd_lk);
+	if (pdp->xd_devclass == XEN_CONSOLE) {
+		if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+			pdp->xd_evtchn = xen_info->console.domU.evtchn;
+		} else {
+			pdp->xd_evtchn = INVALID_EVTCHN;
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_SUCCESS);
+		}
+	} else {
+		oeid = pdp->xd_xsdev.otherend_id;
+		if (oeid == (domid_t)-1) {
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_FAILURE);
+		}
+
+		if ((rv = xen_alloc_unbound_evtchn(oeid, &pdp->xd_evtchn))) {
+			xvdi_dev_error(dip, rv, "bind event channel");
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_FAILURE);
+		}
+	}
+	pdp->xd_ispec.intrspec_vec = ec_bind_evtchn_to_irq(pdp->xd_evtchn);
+	mutex_exit(&pdp->xd_lk);
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Unbind the event channel for this device instance.
+ * Currently we only support one evtchn per device instance.
+ */
+void
+xvdi_free_evtchn(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+
+	mutex_enter(&pdp->xd_lk);
+	if (pdp->xd_evtchn != INVALID_EVTCHN) {
+		ec_unbind_irq(pdp->xd_ispec.intrspec_vec);
+		pdp->xd_evtchn = INVALID_EVTCHN;
+		pdp->xd_ispec.intrspec_vec = 0;
+	}
+	mutex_exit(&pdp->xd_lk);
+}
+
+/*
+ * Map an inter-domain communication ring for a virtual device.
+ * This is used by backend drivers.
+ */
+int
+xvdi_map_ring(dev_info_t *dip, size_t nentry, size_t entrysize,
+    grant_ref_t gref, xendev_ring_t **ringpp)
+{
+	domid_t oeid;
+	gnttab_map_grant_ref_t mapop;
+	gnttab_unmap_grant_ref_t unmapop;
+	caddr_t ringva;
+	ddi_acc_hdl_t *ap;
+	ddi_acc_impl_t *iap;
+	xendev_ring_t *ring;
+	int err;
+	char errstr[] = "mapping in ring buffer";
+
+	ring = kmem_zalloc(sizeof (xendev_ring_t), KM_SLEEP);
+	oeid = xvdi_get_oeid(dip);
+
+	/* alloc va in backend dom for ring buffer */
+	ringva = vmem_xalloc(heap_arena, PAGESIZE, PAGESIZE,
+	    0, 0, 0, 0, VM_SLEEP);
+
+	/* map in ring page */
+	hat_prepare_mapping(kas.a_hat, ringva);
+	mapop.host_addr = (uint64_t)(uintptr_t)ringva;
+	mapop.flags = GNTMAP_host_map;
+	mapop.ref = gref;
+	mapop.dom = oeid;
+	err = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &mapop, 1);
+	if (err) {
+		xvdi_fatal_error(dip, err, errstr);
+		goto errout1;
+	}
+
+	if (mapop.status != 0) {
+		xvdi_fatal_error(dip, err, errstr);
+		goto errout2;
+	}
+	ring->xr_vaddr = ringva;
+	ring->xr_grant_hdl = mapop.handle;
+	ring->xr_gref = gref;
+
+	/*
+	 * init an acc handle and associate it w/ this ring
+	 * this is only for backend drivers. we get the memory by calling
+	 * vmem_xalloc(), instead of calling any ddi function, so we have
+	 * to init an acc handle by ourselves
+	 */
+	ring->xr_acc_hdl = impl_acc_hdl_alloc(KM_SLEEP, NULL);
+	ap = impl_acc_hdl_get(ring->xr_acc_hdl);
+	ap->ah_vers = VERS_ACCHDL;
+	ap->ah_dip = dip;
+	ap->ah_xfermodes = DDI_DMA_CONSISTENT;
+	ap->ah_acc = xendev_dc_accattr;
+	iap = (ddi_acc_impl_t *)ap->ah_platform_private;
+	iap->ahi_acc_attr |= DDI_ACCATTR_CPU_VADDR;
+	impl_acc_hdl_init(ap);
+	ap->ah_offset = 0;
+	ap->ah_len = (off_t)PAGESIZE;
+	ap->ah_addr = ring->xr_vaddr;
+
+	/* init backend ring */
+	xvdi_ring_init_back_ring(ring, nentry, entrysize);
+
+	*ringpp = ring;
+
+	return (DDI_SUCCESS);
+
+errout2:
+	/* unmap ring page */
+	unmapop.host_addr = (uint64_t)(uintptr_t)ringva;
+	unmapop.handle = ring->xr_grant_hdl;
+	unmapop.dev_bus_addr = NULL;
+	(void) HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref, &unmapop, 1);
+	hat_release_mapping(kas.a_hat, ringva);
+errout1:
+	vmem_xfree(heap_arena, ringva, PAGESIZE);
+	kmem_free(ring, sizeof (xendev_ring_t));
+	return (DDI_FAILURE);
+}
+
+/*
+ * Unmap a ring for a virtual device.
+ * This is used by backend drivers.
+ */
+void
+xvdi_unmap_ring(xendev_ring_t *ring)
+{
+	gnttab_unmap_grant_ref_t unmapop;
+
+	ASSERT((ring != NULL) && (ring->xr_vaddr != NULL));
+
+	impl_acc_hdl_free(ring->xr_acc_hdl);
+	unmapop.host_addr = (uint64_t)(uintptr_t)ring->xr_vaddr;
+	unmapop.handle = ring->xr_grant_hdl;
+	unmapop.dev_bus_addr = NULL;
+	(void) HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref, &unmapop, 1);
+	hat_release_mapping(kas.a_hat, ring->xr_vaddr);
+	vmem_xfree(heap_arena, ring->xr_vaddr, PAGESIZE);
+	kmem_free(ring, sizeof (xendev_ring_t));
+}
+
+/*
+ * Re-initialise an inter-domain communications ring for the backend domain.
+ * ring will be re-initialized after re-grant succeed
+ * ring will be freed if fails to re-grant access to backend domain
+ * so, don't keep useful data in the ring
+ * used only in frontend driver
+ */
+static void
+xvdi_reinit_ring(dev_info_t *dip, grant_ref_t *gref, xendev_ring_t *ringp)
+{
+	paddr_t rpaddr;
+	maddr_t rmaddr;
+
+	ASSERT((ringp != NULL) && (ringp->xr_paddr != 0));
+	rpaddr = ringp->xr_paddr;
+
+	rmaddr = DOMAIN_IS_INITDOMAIN(xen_info) ? rpaddr : pa_to_ma(rpaddr);
+	gnttab_grant_foreign_access_ref(ringp->xr_gref, xvdi_get_oeid(dip),
+	    rmaddr >> PAGESHIFT, 0);
+	*gref = ringp->xr_gref;
+
+	/* init frontend ring */
+	xvdi_ring_init_sring(ringp);
+	xvdi_ring_init_front_ring(ringp, ringp->xr_sring.fr.nr_ents,
+	    ringp->xr_entry_size);
+}
+
+/*
+ * allocate Xen inter-domain communications ring for Xen virtual devices
+ * used only in frontend driver
+ * if *ringpp is not NULL, we'll simply re-init it
+ */
+int
+xvdi_alloc_ring(dev_info_t *dip, size_t nentry, size_t entrysize,
+    grant_ref_t *gref, xendev_ring_t **ringpp)
+{
+	size_t len;
+	xendev_ring_t *ring;
+	ddi_dma_cookie_t dma_cookie;
+	uint_t ncookies;
+	grant_ref_t ring_gref;
+	domid_t oeid;
+	maddr_t rmaddr;
+
+	if (*ringpp) {
+		xvdi_reinit_ring(dip, gref, *ringpp);
+		return (DDI_SUCCESS);
+	}
+
+	*ringpp = ring = kmem_zalloc(sizeof (xendev_ring_t), KM_SLEEP);
+	oeid = xvdi_get_oeid(dip);
+
+	/*
+	 * Allocate page for this ring buffer
+	 */
+	if (ddi_dma_alloc_handle(dip, &xendev_dc_dmaattr, DDI_DMA_SLEEP,
+	    0, &ring->xr_dma_hdl) != DDI_SUCCESS)
+		goto err;
+
+	if (ddi_dma_mem_alloc(ring->xr_dma_hdl, PAGESIZE,
+	    &xendev_dc_accattr, DDI_DMA_CONSISTENT, DDI_DMA_SLEEP, 0,
+	    &ring->xr_vaddr, &len, &ring->xr_acc_hdl) != DDI_SUCCESS) {
+		ddi_dma_free_handle(&ring->xr_dma_hdl);
+		goto err;
+	}
+
+	if (ddi_dma_addr_bind_handle(ring->xr_dma_hdl, NULL,
+	    ring->xr_vaddr, len, DDI_DMA_RDWR | DDI_DMA_CONSISTENT,
+	    DDI_DMA_SLEEP, 0, &dma_cookie, &ncookies) != DDI_DMA_MAPPED) {
+		ddi_dma_mem_free(&ring->xr_acc_hdl);
+		ring->xr_vaddr = NULL;
+		ddi_dma_free_handle(&ring->xr_dma_hdl);
+		goto err;
+	}
+	ASSERT(ncookies == 1);
+	ring->xr_paddr = dma_cookie.dmac_laddress;
+	rmaddr = DOMAIN_IS_INITDOMAIN(xen_info) ? ring->xr_paddr :
+	    pa_to_ma(ring->xr_paddr);
+
+	if ((ring_gref = gnttab_grant_foreign_access(oeid,
+	    rmaddr >> PAGESHIFT, 0)) == (grant_ref_t)-1) {
+		(void) ddi_dma_unbind_handle(ring->xr_dma_hdl);
+		ddi_dma_mem_free(&ring->xr_acc_hdl);
+		ring->xr_vaddr = NULL;
+		ddi_dma_free_handle(&ring->xr_dma_hdl);
+		goto err;
+	}
+	*gref = ring->xr_gref = ring_gref;
+
+	/* init frontend ring */
+	xvdi_ring_init_sring(ring);
+	xvdi_ring_init_front_ring(ring, nentry, entrysize);
+
+	return (DDI_SUCCESS);
+
+err:
+	kmem_free(ring, sizeof (xendev_ring_t));
+	return (DDI_FAILURE);
+}
+
+/*
+ * Release ring buffers allocated for Xen devices
+ * used for frontend driver
+ */
+void
+xvdi_free_ring(xendev_ring_t *ring)
+{
+	ASSERT((ring != NULL) && (ring->xr_vaddr != NULL));
+
+	(void) gnttab_end_foreign_access_ref(ring->xr_gref, 0);
+	(void) ddi_dma_unbind_handle(ring->xr_dma_hdl);
+	ddi_dma_mem_free(&ring->xr_acc_hdl);
+	ddi_dma_free_handle(&ring->xr_dma_hdl);
+	kmem_free(ring, sizeof (xendev_ring_t));
+}
+
+dev_info_t *
+xvdi_create_dev(dev_info_t *parent, xendev_devclass_t devclass,
+    domid_t dom, int vdev)
+{
+	dev_info_t *dip;
+	boolean_t backend;
+	i_xd_cfg_t *xdcp;
+	char xsnamebuf[TYPICALMAXPATHLEN];
+	char *type, *node = NULL, *xsname = NULL;
+	unsigned int tlen;
+
+	ASSERT(DEVI_BUSY_OWNED(parent));
+
+	backend = (dom != DOMID_SELF);
+	xdcp = i_xvdi_devclass2cfg(devclass);
+	ASSERT(xdcp != NULL);
+
+	if (vdev != -1) {
+		if (!backend) {
+			(void) snprintf(xsnamebuf, sizeof (xsnamebuf),
+			    "%s/%d", xdcp->xs_path_fe, vdev);
+			xsname = xsnamebuf;
+			node = xdcp->node_fe;
+		} else {
+			(void) snprintf(xsnamebuf, sizeof (xsnamebuf),
+			    "%s/%d/%d", xdcp->xs_path_be, dom, vdev);
+			xsname = xsnamebuf;
+			node = xdcp->node_be;
+		}
+	} else {
+		node = xdcp->node_fe;
+	}
+
+	/* Must have a driver to use. */
+	if (node == NULL)
+		return (NULL);
+
+	/*
+	 * We need to check the state of this device before we go
+	 * further, otherwise we'll end up with a dead loop if
+	 * anything goes wrong.
+	 */
+	if ((xsname != NULL) &&
+	    (xenbus_read_driver_state(xsname) >= XenbusStateClosing))
+		return (NULL);
+
+	ndi_devi_alloc_sleep(parent, node, DEVI_SID_NODEID, &dip);
+
+	/*
+	 * Driver binding uses the compatible property _before_ the
+	 * node name, so we set the node name to the 'model' of the
+	 * device (i.e. 'xnb' or 'xdb') and, if 'type' is present,
+	 * encode both the model and the type in a compatible property
+	 * (i.e. 'xnb,netfront' or 'xnb,SUNW_mac').  This allows a
+	 * driver binding based on the <model,type> pair _before_ a
+	 * binding based on the node name.
+	 */
+	if ((xsname != NULL) &&
+	    (xenbus_read(XBT_NULL, xsname, "type", (void *)&type, &tlen)
+	    == 0)) {
+		size_t clen;
+		char *c[1];
+
+		clen = strlen(node) + strlen(type) + 2;
+		c[0] = kmem_alloc(clen, KM_SLEEP);
+		(void) snprintf(c[0], clen, "%s,%s", node, type);
+
+		(void) ndi_prop_update_string_array(DDI_DEV_T_NONE,
+		    dip, "compatible", (char **)c, 1);
+
+		kmem_free(c[0], clen);
+		kmem_free(type, tlen);
+	}
+
+	(void) ndi_prop_update_int(DDI_DEV_T_NONE, dip, "devclass", devclass);
+	(void) ndi_prop_update_int(DDI_DEV_T_NONE, dip, "domain", dom);
+	(void) ndi_prop_update_int(DDI_DEV_T_NONE, dip, "vdev", vdev);
+
+	if (i_ddi_devi_attached(parent))
+		/*
+		 * Cleanup happens in xendev_removechild when the
+		 * other end closes or a driver fails to attach.
+		 */
+		(void) ndi_devi_online(dip, 0);
+	else
+		(void) ndi_devi_bind_driver(dip, 0);
+
+	return (dip);
+}
+
+/*
+ * xendev_enum_class()
+ */
+void
+xendev_enum_class(dev_info_t *parent, xendev_devclass_t devclass)
+{
+	i_xd_cfg_t *xdcp;
+
+	xdcp = i_xvdi_devclass2cfg(devclass);
+	ASSERT(xdcp != NULL);
+
+	if (xdcp->xsdev == NULL) {
+		int circ;
+
+		/*
+		 * Don't need to probe this kind of device from the
+		 * store, just create one if it doesn't exist.
+		 */
+
+		ndi_devi_enter(parent, &circ);
+		if (xvdi_find_dev(parent, devclass, DOMID_SELF, -1)
+		    == NULL)
+			(void) xvdi_create_dev(parent, devclass,
+			    DOMID_SELF, -1);
+		ndi_devi_exit(parent, circ);
+	} else {
+		/*
+		 * Probe this kind of device from the store, both
+		 * frontend and backend.
+		 */
+
+		i_xvdi_enum_fe(parent, xdcp);
+		i_xvdi_enum_be(parent, xdcp);
+	}
+}
+
+/*
+ * xendev_enum_all()
+ */
+void
+xendev_enum_all(dev_info_t *parent, boolean_t store_unavailable)
+{
+	int i;
+	i_xd_cfg_t *xdcp;
+	boolean_t dom0 = DOMAIN_IS_INITDOMAIN(xen_info);
+	boolean_t domU = !dom0;
+
+	for (i = 0, xdcp = xdci; i < NXDC; i++, xdcp++) {
+
+		if (dom0 && !(xdcp->flags & XD_DOM_ZERO))
+			continue;
+
+		if (domU && !(xdcp->flags & XD_DOM_GUEST))
+			continue;
+
+		/*
+		 * Dom0 relies on watchpoints to create non-soft
+		 * devices - don't attempt to iterate over the store.
+		 */
+		if (dom0 && (xdcp->xsdev != NULL))
+			continue;
+
+		/*
+		 * If the store is not yet available, don't attempt to
+		 * iterate.
+		 */
+		if (store_unavailable && (xdcp->xsdev != NULL))
+			continue;
+
+		xendev_enum_class(parent, xdcp->devclass);
+	}
+}
+
+xendev_devclass_t
+xendev_nodename_to_devclass(char *nodename)
+{
+	int i;
+	i_xd_cfg_t *xdcp;
+
+	/*
+	 * This relies on the convention that variants of a base
+	 * driver share the same prefix and that there are no drivers
+	 * which share a common prefix with the name of any other base
+	 * drivers.
+	 *
+	 * So for a base driver 'xnb' (which is the name listed in
+	 * xdci) the variants all begin with the string 'xnb' (in fact
+	 * they are 'xnbe', 'xnbo' and 'xnbu') and there are no other
+	 * base drivers which have the prefix 'xnb'.
+	 */
+	ASSERT(nodename != NULL);
+	for (i = 0, xdcp = xdci; i < NXDC; i++, xdcp++) {
+		if (((xdcp->node_fe != NULL) &&
+		    (strncmp(nodename, xdcp->node_fe,
+		    strlen(xdcp->node_fe)) == 0)) ||
+		    ((xdcp->node_be != NULL) &&
+		    (strncmp(nodename, xdcp->node_be,
+		    strlen(xdcp->node_be)) == 0)))
+
+			return (xdcp->devclass);
+	}
+	return (XEN_INVAL);
+}
+
+int
+xendev_devclass_ipl(xendev_devclass_t devclass)
+{
+	i_xd_cfg_t *xdcp;
+
+	xdcp = i_xvdi_devclass2cfg(devclass);
+	ASSERT(xdcp != NULL);
+
+	return (xdcp->xd_ipl);
+}
+
+/*
+ * Determine if a devinfo instance exists of a particular device
+ * class, domain and xenstore virtual device number.
+ */
+dev_info_t *
+xvdi_find_dev(dev_info_t *parent, xendev_devclass_t devclass,
+    domid_t dom, int vdev)
+{
+	dev_info_t *dip;
+
+	ASSERT(DEVI_BUSY_OWNED(parent));
+
+	switch (devclass) {
+	case XEN_CONSOLE:
+	case XEN_XENBUS:
+	case XEN_DOMCAPS:
+	case XEN_BALLOON:
+	case XEN_EVTCHN:
+	case XEN_PRIVCMD:
+		/* Console and soft devices have no vdev. */
+		vdev = -1;
+		break;
+	default:
+		break;
+	}
+
+	for (dip = ddi_get_child(parent); dip != NULL;
+	    dip = ddi_get_next_sibling(dip)) {
+		int *vdevnump, *domidp, *devclsp, vdevnum;
+		uint_t ndomid, nvdevnum, ndevcls;
+		xendev_devclass_t devcls;
+		domid_t domid;
+		struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+		if (pdp == NULL) {
+			if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,
+			    DDI_PROP_DONTPASS, "domain", &domidp, &ndomid) !=
+			    DDI_PROP_SUCCESS)
+				continue;
+			ASSERT(ndomid == 1);
+			domid = (domid_t)*domidp;
+			ddi_prop_free(domidp);
+
+			if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,
+			    DDI_PROP_DONTPASS, "vdev", &vdevnump, &nvdevnum) !=
+			    DDI_PROP_SUCCESS)
+				continue;
+			ASSERT(nvdevnum == 1);
+			vdevnum = *vdevnump;
+			ddi_prop_free(vdevnump);
+
+			if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,
+			    DDI_PROP_DONTPASS, "devclass", &devclsp,
+			    &ndevcls) != DDI_PROP_SUCCESS)
+				continue;
+			ASSERT(ndevcls == 1);
+			devcls = (xendev_devclass_t)*devclsp;
+			ddi_prop_free(devclsp);
+		} else {
+			domid = pdp->xd_domain;
+			vdevnum = pdp->xd_vdevnum;
+			devcls = pdp->xd_devclass;
+		}
+
+		if ((domid == dom) && (vdevnum == vdev) && (devcls == devclass))
+			return (dip);
+	}
+	return (NULL);
+}
+
+int
+xvdi_get_evtchn(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	return (pdp->xd_evtchn);
+}
+
+int
+xvdi_get_vdevnum(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	return (pdp->xd_vdevnum);
+}
+
+char *
+xvdi_get_xsname(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	return ((char *)(pdp->xd_xsdev.nodename));
+}
+
+char *
+xvdi_get_oename(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	if (pdp->xd_devclass == XEN_CONSOLE)
+		return (NULL);
+	return ((char *)(pdp->xd_xsdev.otherend));
+}
+
+struct xenbus_device *
+xvdi_get_xsd(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	return (&pdp->xd_xsdev);
+}
+
+domid_t
+xvdi_get_oeid(dev_info_t *xdip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(xdip);
+
+	ASSERT(pdp != NULL);
+	if (pdp->xd_devclass == XEN_CONSOLE)
+		return ((domid_t)-1);
+	return ((domid_t)(pdp->xd_xsdev.otherend_id));
+}
+
+void
+xvdi_dev_error(dev_info_t *dip, int errno, char *errstr)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	xenbus_dev_error(&pdp->xd_xsdev, errno, errstr);
+}
+
+void
+xvdi_fatal_error(dev_info_t *dip, int errno, char *errstr)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	xenbus_dev_fatal(&pdp->xd_xsdev, errno, errstr);
+}
+
+static void
+i_xvdi_oestate_handler(void *arg)
+{
+	dev_info_t *dip = arg;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+	XenbusState oestate = pdp->xd_xsdev.otherend_state;
+	ddi_eventcookie_t evc;
+
+	mutex_enter(&pdp->xd_lk);
+
+	if (pdp->xd_oe_ehid != NULL) {
+		/* send notification to driver */
+		if (ddi_get_eventcookie(dip, XS_OE_STATE,
+		    &evc) == DDI_SUCCESS) {
+			mutex_exit(&pdp->xd_lk);
+			(void) ndi_post_event(dip, dip, evc, &oestate);
+			mutex_enter(&pdp->xd_lk);
+		}
+	} else {
+		/*
+		 * take default action, if driver hasn't registered its
+		 * event handler yet
+		 */
+		if (oestate == XenbusStateClosing) {
+			(void) xvdi_switch_state(dip, XBT_NULL,
+			    XenbusStateClosed);
+		} else if (oestate == XenbusStateClosed) {
+			(void) xvdi_switch_state(dip, XBT_NULL,
+			    XenbusStateClosed);
+			(void) xvdi_post_event(dip, XEN_HP_REMOVE);
+		}
+	}
+
+	mutex_exit(&pdp->xd_lk);
+
+	/*
+	 * We'll try to remove the devinfo node of this device if the
+	 * other end has closed.
+	 */
+	if (oestate == XenbusStateClosed)
+		(void) ddi_taskq_dispatch(DEVI(ddi_get_parent(dip))->devi_taskq,
+		    xendev_offline_device, dip, DDI_SLEEP);
+}
+
+static void
+i_xvdi_hpstate_handler(void *arg)
+{
+	dev_info_t *dip = (dev_info_t *)arg;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+	ddi_eventcookie_t evc;
+	char *hp_status;
+	unsigned int hpl;
+
+	mutex_enter(&pdp->xd_lk);
+	if ((ddi_get_eventcookie(dip, XS_HP_STATE, &evc) == DDI_SUCCESS) &&
+	    (xenbus_read(XBT_NULL, pdp->xd_hp_watch.node, "",
+	    (void *)&hp_status, &hpl) == 0)) {
+
+		xendev_hotplug_state_t new_state = Unrecognized;
+
+		if (strcmp(hp_status, "connected") == 0)
+			new_state = Connected;
+
+		mutex_exit(&pdp->xd_lk);
+
+		(void) ndi_post_event(dip, dip, evc, &new_state);
+		kmem_free(hp_status, hpl);
+		return;
+	}
+	mutex_exit(&pdp->xd_lk);
+}
+
+void
+xvdi_notify_oe(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp->xd_evtchn != INVALID_EVTCHN);
+	ec_notify_via_evtchn(pdp->xd_evtchn);
+}
+
+static void
+i_xvdi_bepath_cb(struct xenbus_watch *w, const char **vec, unsigned int len)
+{
+	dev_info_t *dip = (dev_info_t *)w->dev;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+	char *be = NULL;
+	unsigned int bel;
+
+	ASSERT(len > XS_WATCH_PATH);
+	ASSERT(vec[XS_WATCH_PATH] != NULL);
+
+	/*
+	 * If the backend is not the same as that we already stored,
+	 * re-set our watch for its' state.
+	 */
+	if ((xenbus_read(XBT_NULL, "", vec[XS_WATCH_PATH], (void *)be, &bel)
+	    == 0) && (strcmp(be, pdp->xd_xsdev.otherend) != 0))
+		(void) i_xvdi_add_watch_oestate(dip);
+
+	if (be != NULL) {
+		ASSERT(bel > 0);
+		kmem_free(be, bel);
+	}
+}
+
+static int
+i_xvdi_add_watch_oestate(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_xsdev.nodename != NULL);
+	ASSERT(mutex_owned(&pdp->xd_lk));
+
+	/*
+	 * Create taskq for delivering other end state change event to
+	 * this device later.
+	 *
+	 * Set nthreads to 1 to make sure that events can be delivered
+	 * in order.
+	 *
+	 * Note: It is _not_ guaranteed that driver can see every
+	 * xenstore change under the path that it is watching. If two
+	 * changes happen consecutively in a very short amount of
+	 * time, it is likely that the driver will see only the last
+	 * one.
+	 */
+	if (pdp->xd_oe_taskq == NULL)
+		if ((pdp->xd_oe_taskq = ddi_taskq_create(dip,
+		    "xendev_oe_taskq", 1, TASKQ_DEFAULTPRI, 0)) == NULL)
+			return (DDI_FAILURE);
+
+	/*
+	 * Watch for changes to the XenbusState of otherend.
+	 */
+	pdp->xd_xsdev.otherend_state = XenbusStateUnknown;
+	pdp->xd_xsdev.otherend_changed = i_xvdi_oestate_cb;
+
+	if (talk_to_otherend(&pdp->xd_xsdev) != 0) {
+		i_xvdi_rem_watch_oestate(dip);
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static void
+i_xvdi_rem_watch_oestate(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp;
+	struct xenbus_device *dev;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+	ASSERT(mutex_owned(&pdp->xd_lk));
+
+	dev = &pdp->xd_xsdev;
+
+	/* Unwatch for changes to XenbusState of otherend */
+	if (dev->otherend_watch.node != NULL) {
+		mutex_exit(&pdp->xd_lk);
+		unregister_xenbus_watch(&dev->otherend_watch);
+		mutex_enter(&pdp->xd_lk);
+	}
+
+	/* make sure no event handler is running */
+	if (pdp->xd_oe_taskq != NULL) {
+		mutex_exit(&pdp->xd_lk);
+		ddi_taskq_destroy(pdp->xd_oe_taskq);
+		mutex_enter(&pdp->xd_lk);
+		pdp->xd_oe_taskq = NULL;
+	}
+
+	/* clean up */
+	dev->otherend_state = XenbusStateUnknown;
+	dev->otherend_id = (domid_t)-1;
+	if (dev->otherend_watch.node != NULL)
+		kmem_free((void *)dev->otherend_watch.node,
+		    strlen(dev->otherend_watch.node) + 1);
+	dev->otherend_watch.node = NULL;
+	if (dev->otherend != NULL)
+		kmem_free((void *)dev->otherend, strlen(dev->otherend) + 1);
+	dev->otherend = NULL;
+}
+
+static int
+i_xvdi_add_watch_hpstate(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_xsdev.frontend == 0);
+	ASSERT(mutex_owned(&pdp->xd_lk));
+
+	/*
+	 * Create taskq for delivering hotplug status change event to
+	 * this device later.
+	 *
+	 * Set nthreads to 1 to make sure that events can be delivered
+	 * in order.
+	 *
+	 * Note: It is _not_ guaranteed that driver can see every
+	 * hotplug status change under the path that it is
+	 * watching. If two changes happen consecutively in a very
+	 * short amount of time, it is likely that the driver only
+	 * sees the last one.
+	 */
+	if (pdp->xd_hp_taskq == NULL)
+		if ((pdp->xd_hp_taskq = ddi_taskq_create(dip,
+		    "xendev_hp_taskq", 1, TASKQ_DEFAULTPRI, 0)) == NULL)
+			return (DDI_FAILURE);
+
+	if (pdp->xd_hp_watch.node == NULL) {
+		size_t len;
+		char *path;
+
+		ASSERT(pdp->xd_xsdev.nodename != NULL);
+
+		len = strlen(pdp->xd_xsdev.nodename) +
+		    strlen("/hotplug-status") + 1;
+		path = kmem_alloc(len, KM_SLEEP);
+		(void) snprintf(path, len, "%s/hotplug-status",
+		    pdp->xd_xsdev.nodename);
+
+		pdp->xd_hp_watch.node = path;
+		pdp->xd_hp_watch.callback = i_xvdi_hpstate_cb;
+		pdp->xd_hp_watch.dev = (struct xenbus_device *)dip; /* yuck! */
+		if (register_xenbus_watch(&pdp->xd_hp_watch) != 0) {
+			i_xvdi_rem_watch_hpstate(dip);
+			return (DDI_FAILURE);
+		}
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static void
+i_xvdi_rem_watch_hpstate(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp;
+	pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_xsdev.frontend == 0);
+	ASSERT(mutex_owned(&pdp->xd_lk));
+
+	/* Unwatch for changes to "hotplug-status" node for backend device. */
+	if (pdp->xd_hp_watch.node != NULL) {
+		mutex_exit(&pdp->xd_lk);
+		unregister_xenbus_watch(&pdp->xd_hp_watch);
+		mutex_enter(&pdp->xd_lk);
+	}
+
+	/* Make sure no event handler is running. */
+	if (pdp->xd_hp_taskq != NULL) {
+		mutex_exit(&pdp->xd_lk);
+		ddi_taskq_destroy(pdp->xd_hp_taskq);
+		mutex_enter(&pdp->xd_lk);
+		pdp->xd_hp_taskq = NULL;
+	}
+
+	/* Clean up. */
+	if (pdp->xd_hp_watch.node != NULL) {
+		kmem_free((void *)pdp->xd_hp_watch.node,
+		    strlen(pdp->xd_hp_watch.node) + 1);
+		pdp->xd_hp_watch.node = NULL;
+	}
+}
+
+static int
+i_xvdi_add_watches(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+
+	mutex_enter(&pdp->xd_lk);
+
+	if (i_xvdi_add_watch_oestate(dip) != DDI_SUCCESS) {
+		mutex_exit(&pdp->xd_lk);
+		return (DDI_FAILURE);
+	}
+
+	if (pdp->xd_xsdev.frontend == 1) {
+		/*
+		 * Frontend devices must watch for the backend path
+		 * changing.
+		 */
+		if (i_xvdi_add_watch_bepath(dip) != DDI_SUCCESS)
+			goto unwatch_and_fail;
+	} else {
+		/*
+		 * Backend devices must watch for hotplug events.
+		 */
+		if (i_xvdi_add_watch_hpstate(dip) != DDI_SUCCESS)
+			goto unwatch_and_fail;
+	}
+
+	mutex_exit(&pdp->xd_lk);
+
+	return (DDI_SUCCESS);
+
+unwatch_and_fail:
+	i_xvdi_rem_watch_oestate(dip);
+	mutex_exit(&pdp->xd_lk);
+
+	return (DDI_FAILURE);
+}
+
+static void
+i_xvdi_rem_watches(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+
+	mutex_enter(&pdp->xd_lk);
+
+	i_xvdi_rem_watch_oestate(dip);
+
+	if (pdp->xd_xsdev.frontend == 1)
+		i_xvdi_rem_watch_bepath(dip);
+	else
+		i_xvdi_rem_watch_hpstate(dip);
+
+	mutex_exit(&pdp->xd_lk);
+}
+
+static int
+i_xvdi_add_watch_bepath(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_xsdev.frontend == 1);
+
+	/*
+	 * Frontend devices need to watch for the backend path changing.
+	 */
+	if (pdp->xd_bepath_watch.node == NULL) {
+		size_t len;
+		char *path;
+
+		ASSERT(pdp->xd_xsdev.nodename != NULL);
+
+		len = strlen(pdp->xd_xsdev.nodename) + strlen("/backend") + 1;
+		path = kmem_alloc(len, KM_SLEEP);
+		(void) snprintf(path, len, "%s/backend",
+		    pdp->xd_xsdev.nodename);
+
+		pdp->xd_bepath_watch.node = path;
+		pdp->xd_bepath_watch.callback = i_xvdi_bepath_cb;
+		pdp->xd_bepath_watch.dev = (struct xenbus_device *)dip;
+		if (register_xenbus_watch(&pdp->xd_bepath_watch) != 0) {
+			kmem_free(path, len);
+			pdp->xd_bepath_watch.node = NULL;
+			return (DDI_FAILURE);
+		}
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static void
+i_xvdi_rem_watch_bepath(dev_info_t *dip)
+{
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	ASSERT(pdp != NULL);
+	ASSERT(pdp->xd_xsdev.frontend == 1);
+	ASSERT(mutex_owned(&pdp->xd_lk));
+
+	if (pdp->xd_bepath_watch.node != NULL) {
+		mutex_exit(&pdp->xd_lk);
+		unregister_xenbus_watch(&pdp->xd_bepath_watch);
+		mutex_enter(&pdp->xd_lk);
+
+		kmem_free((void *)(pdp->xd_bepath_watch.node),
+		    strlen(pdp->xd_bepath_watch.node) + 1);
+		pdp->xd_bepath_watch.node = NULL;
+	}
+}
+
+int
+xvdi_switch_state(dev_info_t *dip, xenbus_transaction_t xbt,
+    XenbusState newState)
+{
+	int rv;
+	struct xendev_ppd *pdp;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+
+	XVDI_DPRINTF(XVDI_DBG_STATE,
+	    "xvdi_switch_state: dip 0x%p moves to %d",
+	    (void *)dip, newState);
+
+	rv = xenbus_switch_state(&pdp->xd_xsdev, xbt, newState);
+	if (rv > 0)
+		cmn_err(CE_WARN, "xvdi_switch_state: change state failed");
+
+	return (rv);
+}
+
+/*
+ * Notify hotplug script running in userland
+ */
+int
+xvdi_post_event(dev_info_t *dip, xendev_hotplug_cmd_t hpc)
+{
+	struct xendev_ppd *pdp;
+	nvlist_t *attr_list = NULL;
+	i_xd_cfg_t *xdcp;
+	sysevent_id_t eid;
+	int err;
+	char devname[256]; /* XXPV dme: ? */
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+
+	xdcp = i_xvdi_devclass2cfg(pdp->xd_devclass);
+	ASSERT(xdcp != NULL);
+
+	(void) snprintf(devname, sizeof (devname) - 1, "%s%d",
+	    ddi_driver_name(dip),  ddi_get_instance(dip));
+
+	err = nvlist_alloc(&attr_list, NV_UNIQUE_NAME, KM_NOSLEEP);
+	if (err != DDI_SUCCESS)
+		goto failure;
+
+	err = nvlist_add_int32(attr_list, "domain", pdp->xd_domain);
+	if (err != DDI_SUCCESS)
+		goto failure;
+	err = nvlist_add_int32(attr_list, "vdev", pdp->xd_vdevnum);
+	if (err != DDI_SUCCESS)
+		goto failure;
+	err = nvlist_add_string(attr_list, "devclass", xdcp->xsdev);
+	if (err != DDI_SUCCESS)
+		goto failure;
+	err = nvlist_add_string(attr_list, "device", devname);
+	if (err != DDI_SUCCESS)
+		goto failure;
+	err = nvlist_add_string(attr_list, "fob",
+	    ((pdp->xd_xsdev.frontend == 1) ? "frontend" : "backend"));
+	if (err != DDI_SUCCESS)
+		goto failure;
+
+	switch (hpc) {
+	case XEN_HP_ADD:
+		err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
+		    "add", attr_list, &eid, DDI_NOSLEEP);
+		break;
+	case XEN_HP_REMOVE:
+		err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
+		    "remove", attr_list, &eid, DDI_NOSLEEP);
+		break;
+	default:
+		err = DDI_FAILURE;
+		goto failure;
+	}
+
+failure:
+	if (attr_list != NULL)
+		nvlist_free(attr_list);
+
+	return (err);
+}
+
+/* ARGSUSED */
+static void
+i_xvdi_probe_path_cb(struct xenbus_watch *w, const char **vec,
+    unsigned int len)
+{
+	char *path;
+
+	if (xendev_dip == NULL)
+		xendev_dip = ddi_find_devinfo("xpvd", -1, 0);
+
+	path = i_ddi_strdup((char *)vec[XS_WATCH_PATH], KM_SLEEP);
+
+	(void) ddi_taskq_dispatch(DEVI(xendev_dip)->devi_taskq,
+	    i_xvdi_probe_path_handler, (void *)path, DDI_SLEEP);
+}
+
+static void
+i_xvdi_watch_device(char *path)
+{
+	struct xenbus_watch *w;
+
+	ASSERT(path != NULL);
+
+	w = kmem_zalloc(sizeof (*w), KM_SLEEP);
+	w->node = path;
+	w->callback = &i_xvdi_probe_path_cb;
+	w->dev = NULL;
+
+	if (register_xenbus_watch(w) != 0) {
+		cmn_err(CE_WARN, "i_xvdi_watch_device: "
+		    "cannot set watch on %s", path);
+		kmem_free(w, sizeof (*w));
+		return;
+	}
+}
+
+void
+xvdi_watch_devices(int newstate)
+{
+	int devclass;
+
+	/*
+	 * Watch for devices being created in the store.
+	 */
+	if (newstate == XENSTORE_DOWN)
+		return;
+	for (devclass = 0; devclass < NXDC; devclass++) {
+		if (xdci[devclass].xs_path_fe != NULL)
+			i_xvdi_watch_device(xdci[devclass].xs_path_fe);
+		if (xdci[devclass].xs_path_be != NULL)
+			i_xvdi_watch_device(xdci[devclass].xs_path_be);
+	}
+}
+
+/*
+ * Iterate over the store looking for backend devices to create.
+ */
+static void
+i_xvdi_enum_be(dev_info_t *parent, i_xd_cfg_t *xdcp)
+{
+	char **domains;
+	unsigned int ndomains;
+	int ldomains, i;
+
+	if ((domains = xenbus_directory(XBT_NULL, xdcp->xs_path_be, "",
+	    &ndomains)) == NULL)
+		return;
+
+	for (i = 0, ldomains = 0; i < ndomains; i++) {
+		ldomains += strlen(domains[i]) + 1 + sizeof (char *);
+
+		i_xvdi_enum_worker(parent, xdcp, domains[i]);
+	}
+	kmem_free(domains, ldomains);
+}
+
+/*
+ * Iterate over the store looking for frontend devices to create.
+ */
+static void
+i_xvdi_enum_fe(dev_info_t *parent, i_xd_cfg_t *xdcp)
+{
+	i_xvdi_enum_worker(parent, xdcp, NULL);
+}
+
+static void
+i_xvdi_enum_worker(dev_info_t *parent, i_xd_cfg_t *xdcp,
+    char *domain)
+{
+	char *path, *domain_path, *ep;
+	char **devices;
+	unsigned int ndevices;
+	int ldevices, j, circ;
+	domid_t dom;
+
+	if (domain == NULL) {
+		dom = DOMID_SELF;
+		path = xdcp->xs_path_fe;
+		domain_path = "";
+	} else {
+		(void) ddi_strtol(domain, &ep, 0, (long *)&dom);
+		path = xdcp->xs_path_be;
+		domain_path = domain;
+	}
+
+	if ((devices = xenbus_directory(XBT_NULL, path, domain_path,
+	    &ndevices)) == NULL)
+		return;
+
+	for (j = 0, ldevices = 0; j < ndevices; j++) {
+		int vdev;
+
+		ldevices += strlen(devices[j]) + 1 + sizeof (char *);
+		(void) ddi_strtol(devices[j], &ep, 0, (long *)&vdev);
+
+		ndi_devi_enter(parent, &circ);
+
+		if (xvdi_find_dev(parent, xdcp->devclass, dom, vdev)
+		    == NULL)
+			(void) xvdi_create_dev(parent, xdcp->devclass,
+			    dom, vdev);
+
+		ndi_devi_exit(parent, circ);
+	}
+	kmem_free(devices, ldevices);
+}
+
+/*
+ * Leaf drivers should call this in their detach() routine during suspend.
+ */
+void
+xvdi_suspend(dev_info_t *dip)
+{
+	i_xvdi_rem_watches(dip);
+}
+
+/*
+ * Leaf drivers should call this in their attach() routine during resume.
+ */
+int
+xvdi_resume(dev_info_t *dip)
+{
+	return (i_xvdi_add_watches(dip));
+}
+
+/*
+ * Add event handler for the leaf driver
+ * to handle event triggered by the change in xenstore
+ */
+int
+xvdi_add_event_handler(dev_info_t *dip, char *name,
+    void (*evthandler)(dev_info_t *, ddi_eventcookie_t, void *, void *))
+{
+	ddi_eventcookie_t ecv;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+	ddi_callback_id_t *cbid;
+
+	ASSERT(pdp != NULL);
+
+	mutex_enter(&pdp->xd_lk);
+
+	if (strcmp(name, XS_OE_STATE) == 0) {
+		ASSERT(pdp->xd_xsdev.otherend != NULL);
+
+		cbid = &pdp->xd_oe_ehid;
+	} else if (strcmp(name, XS_HP_STATE) == 0) {
+		if (pdp->xd_xsdev.frontend == 1) {
+			mutex_exit(&pdp->xd_lk);
+			return (DDI_FAILURE);
+		}
+
+		ASSERT(pdp->xd_hp_watch.node != NULL);
+
+		cbid = &pdp->xd_hp_ehid;
+	} else {
+		/* Unsupported watch. */
+		mutex_exit(&pdp->xd_lk);
+		return (DDI_FAILURE);
+	}
+
+	/*
+	 * No event handler provided, take default action to handle
+	 * event.
+	 */
+	if (evthandler == NULL) {
+		mutex_exit(&pdp->xd_lk);
+		return (DDI_SUCCESS);
+	}
+
+	ASSERT(*cbid == NULL);
+
+	if (ddi_get_eventcookie(dip, name, &ecv) != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "failed to find %s cookie for %s@%s",
+		    name, ddi_get_name(dip), ddi_get_name_addr(dip));
+		mutex_exit(&pdp->xd_lk);
+		return (DDI_FAILURE);
+	}
+	if (ddi_add_event_handler(dip, ecv, evthandler, NULL, cbid)
+	    != DDI_SUCCESS) {
+		cmn_err(CE_WARN, "failed to add %s event handler for %s@%s",
+		    name, ddi_get_name(dip), ddi_get_name_addr(dip));
+		*cbid = NULL;
+		mutex_exit(&pdp->xd_lk);
+		return (DDI_FAILURE);
+	}
+
+	mutex_exit(&pdp->xd_lk);
+
+	return (DDI_SUCCESS);
+}
+
+/*
+ * Remove event handler for the leaf driver and unwatch xenstore
+ * so, driver will not be notified when xenstore entry changed later
+ */
+void
+xvdi_remove_event_handler(dev_info_t *dip, char *name)
+{
+	struct xendev_ppd *pdp;
+	boolean_t rem_oe = B_FALSE, rem_hp = B_FALSE;
+	ddi_callback_id_t oeid = NULL, hpid = NULL;
+
+	pdp = ddi_get_parent_data(dip);
+	ASSERT(pdp != NULL);
+
+	if (name == NULL) {
+		rem_oe = B_TRUE;
+		rem_hp = B_TRUE;
+	} else if (strcmp(name, XS_OE_STATE) == 0) {
+		rem_oe = B_TRUE;
+	} else if (strcmp(name, XS_HP_STATE) == 0) {
+		rem_hp = B_TRUE;
+	} else {
+		cmn_err(CE_WARN, "event %s not supported, cannot remove", name);
+		return;
+	}
+
+	mutex_enter(&pdp->xd_lk);
+
+	if (rem_oe && (pdp->xd_oe_ehid != NULL)) {
+		oeid = pdp->xd_oe_ehid;
+		pdp->xd_oe_ehid = NULL;
+	}
+
+	if (rem_hp && (pdp->xd_hp_ehid != NULL)) {
+		hpid = pdp->xd_hp_ehid;
+		pdp->xd_hp_ehid = NULL;
+	}
+
+	mutex_exit(&pdp->xd_lk);
+
+	if (oeid != NULL)
+		(void) ddi_remove_event_handler(oeid);
+	if (hpid != NULL)
+		(void) ddi_remove_event_handler(hpid);
+}
+
+
+/*
+ * common ring interfaces
+ */
+
+#define	FRONT_RING(_ringp)	(&(_ringp)->xr_sring.fr)
+#define	BACK_RING(_ringp)	(&(_ringp)->xr_sring.br)
+#define	GET_RING_SIZE(_ringp)	RING_SIZE(FRONT_RING(ringp))
+#define	GET_RING_ENTRY_FE(_ringp, _idx)		\
+	(FRONT_RING(_ringp)->sring->ring +	\
+	(_ringp)->xr_entry_size * ((_idx) & (GET_RING_SIZE(_ringp) - 1)))
+#define	GET_RING_ENTRY_BE(_ringp, _idx)		\
+	(BACK_RING(_ringp)->sring->ring +	\
+	(_ringp)->xr_entry_size * ((_idx) & (GET_RING_SIZE(_ringp) - 1)))
+
+unsigned int
+xvdi_ring_avail_slots(xendev_ring_t *ringp)
+{
+	comif_ring_fe_t *frp;
+	comif_ring_be_t *brp;
+
+	if (ringp->xr_frontend) {
+		frp = FRONT_RING(ringp);
+		return (GET_RING_SIZE(ringp) -
+		    (frp->req_prod_pvt - frp->rsp_cons));
+	} else {
+		brp = BACK_RING(ringp);
+		return (GET_RING_SIZE(ringp) -
+		    (brp->rsp_prod_pvt - brp->req_cons));
+	}
+}
+
+int
+xvdi_ring_has_unconsumed_requests(xendev_ring_t *ringp)
+{
+	comif_ring_be_t *brp;
+
+	ASSERT(!ringp->xr_frontend);
+	brp = BACK_RING(ringp);
+	return ((brp->req_cons !=
+	    ddi_get32(ringp->xr_acc_hdl, &brp->sring->req_prod)) &&
+	    ((brp->req_cons - brp->rsp_prod_pvt) != RING_SIZE(brp)));
+}
+
+int
+xvdi_ring_has_incomp_request(xendev_ring_t *ringp)
+{
+	comif_ring_fe_t *frp;
+
+	ASSERT(ringp->xr_frontend);
+	frp = FRONT_RING(ringp);
+	return (frp->req_prod_pvt !=
+	    ddi_get32(ringp->xr_acc_hdl, &frp->sring->rsp_prod));
+}
+
+int
+xvdi_ring_has_unconsumed_responses(xendev_ring_t *ringp)
+{
+	comif_ring_fe_t *frp;
+
+	ASSERT(ringp->xr_frontend);
+	frp = FRONT_RING(ringp);
+	return (frp->rsp_cons !=
+	    ddi_get32(ringp->xr_acc_hdl, &frp->sring->rsp_prod));
+}
+
+/* NOTE: req_event will be increased as needed */
+void *
+xvdi_ring_get_request(xendev_ring_t *ringp)
+{
+	comif_ring_fe_t *frp;
+	comif_ring_be_t *brp;
+
+	if (ringp->xr_frontend) {
+		/* for frontend ring */
+		frp = FRONT_RING(ringp);
+		if (!RING_FULL(frp))
+			return (GET_RING_ENTRY_FE(ringp, frp->req_prod_pvt++));
+		else
+			return (NULL);
+	} else {
+		/* for backend ring */
+		brp = BACK_RING(ringp);
+		/* RING_FINAL_CHECK_FOR_REQUESTS() */
+		if (xvdi_ring_has_unconsumed_requests(ringp))
+			return (GET_RING_ENTRY_BE(ringp, brp->req_cons++));
+		else {
+			ddi_put32(ringp->xr_acc_hdl, &brp->sring->req_event,
+			    brp->req_cons + 1);
+			membar_enter();
+			if (xvdi_ring_has_unconsumed_requests(ringp))
+				return (GET_RING_ENTRY_BE(ringp,
+				    brp->req_cons++));
+			else
+				return (NULL);
+		}
+	}
+}
+
+int
+xvdi_ring_push_request(xendev_ring_t *ringp)
+{
+	RING_IDX old, new, reqevt;
+	comif_ring_fe_t *frp;
+
+	/* only frontend should be able to push request */
+	ASSERT(ringp->xr_frontend);
+
+	/* RING_PUSH_REQUEST_AND_CHECK_NOTIFY() */
+	frp = FRONT_RING(ringp);
+	old = ddi_get32(ringp->xr_acc_hdl, &frp->sring->req_prod);
+	new = frp->req_prod_pvt;
+	ddi_put32(ringp->xr_acc_hdl, &frp->sring->req_prod, new);
+	membar_enter();
+	reqevt = ddi_get32(ringp->xr_acc_hdl, &frp->sring->req_event);
+	return ((RING_IDX)(new - reqevt) < (RING_IDX)(new - old));
+}
+
+/* NOTE: rsp_event will be increased as needed */
+void *
+xvdi_ring_get_response(xendev_ring_t *ringp)
+{
+	comif_ring_fe_t *frp;
+	comif_ring_be_t *brp;
+
+	if (!ringp->xr_frontend) {
+		/* for backend ring */
+		brp = BACK_RING(ringp);
+		return (GET_RING_ENTRY_BE(ringp, brp->rsp_prod_pvt++));
+	} else {
+		/* for frontend ring */
+		frp = FRONT_RING(ringp);
+		/* RING_FINAL_CHECK_FOR_RESPONSES() */
+		if (xvdi_ring_has_unconsumed_responses(ringp))
+			return (GET_RING_ENTRY_FE(ringp, frp->rsp_cons++));
+		else {
+			ddi_put32(ringp->xr_acc_hdl, &frp->sring->rsp_event,
+			    frp->rsp_cons + 1);
+			membar_enter();
+			if (xvdi_ring_has_unconsumed_responses(ringp))
+				return (GET_RING_ENTRY_FE(ringp,
+				    frp->rsp_cons++));
+			else
+				return (NULL);
+		}
+	}
+}
+
+int
+xvdi_ring_push_response(xendev_ring_t *ringp)
+{
+	RING_IDX old, new, rspevt;
+	comif_ring_be_t *brp;
+
+	/* only backend should be able to push response */
+	ASSERT(!ringp->xr_frontend);
+
+	/* RING_PUSH_RESPONSE_AND_CHECK_NOTIFY() */
+	brp = BACK_RING(ringp);
+	old = ddi_get32(ringp->xr_acc_hdl, &brp->sring->rsp_prod);
+	new = brp->rsp_prod_pvt;
+	ddi_put32(ringp->xr_acc_hdl, &brp->sring->rsp_prod, new);
+	membar_enter();
+	rspevt = ddi_get32(ringp->xr_acc_hdl, &brp->sring->rsp_event);
+	return ((RING_IDX)(new - rspevt) < (RING_IDX)(new - old));
+}
+
+static void
+xvdi_ring_init_sring(xendev_ring_t *ringp)
+{
+	ddi_acc_handle_t acchdl;
+	comif_sring_t *xsrp;
+	int i;
+
+	xsrp = (comif_sring_t *)ringp->xr_vaddr;
+	acchdl = ringp->xr_acc_hdl;
+
+	/* shared ring initialization */
+	ddi_put32(acchdl, &xsrp->req_prod, 0);
+	ddi_put32(acchdl, &xsrp->rsp_prod, 0);
+	ddi_put32(acchdl, &xsrp->req_event, 1);
+	ddi_put32(acchdl, &xsrp->rsp_event, 1);
+	for (i = 0; i < sizeof (xsrp->pad); i++)
+		ddi_put8(acchdl, xsrp->pad + i, 0);
+}
+
+static void
+xvdi_ring_init_front_ring(xendev_ring_t *ringp, size_t nentry, size_t entrysize)
+{
+	comif_ring_fe_t *xfrp;
+
+	xfrp = &ringp->xr_sring.fr;
+	xfrp->req_prod_pvt = 0;
+	xfrp->rsp_cons = 0;
+	xfrp->nr_ents = nentry;
+	xfrp->sring = (comif_sring_t *)ringp->xr_vaddr;
+
+	ringp->xr_frontend = 1;
+	ringp->xr_entry_size = entrysize;
+}
+
+static void
+xvdi_ring_init_back_ring(xendev_ring_t *ringp, size_t nentry, size_t entrysize)
+{
+	comif_ring_be_t *xbrp;
+
+	xbrp = &ringp->xr_sring.br;
+	xbrp->rsp_prod_pvt = 0;
+	xbrp->req_cons = 0;
+	xbrp->nr_ents = nentry;
+	xbrp->sring = (comif_sring_t *)ringp->xr_vaddr;
+
+	ringp->xr_frontend = 0;
+	ringp->xr_entry_size = entrysize;
+}
+
+static void
+xendev_offline_device(void *arg)
+{
+	dev_info_t *dip = (dev_info_t *)arg;
+	char devname[MAXNAMELEN] = {0};
+
+	/*
+	 * This is currently the only chance to delete a devinfo node, which
+	 * is _not_ always successful.
+	 */
+	(void) ddi_deviname(dip, devname);
+	(void) devfs_clean(ddi_get_parent(dip), devname + 1, DV_CLEAN_FORCE);
+	(void) ndi_devi_offline(dip, NDI_DEVI_REMOVE);
+}
+
+static void
+i_xvdi_oestate_cb(struct xenbus_device *dev, XenbusState oestate)
+{
+	dev_info_t *dip = (dev_info_t *)dev->data;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	/*
+	 * Don't trigger two consecutive ndi_devi_offline on the same
+	 * dip.
+	 */
+	if ((oestate == XenbusStateClosed) &&
+	    (dev->otherend_state == XenbusStateClosed))
+		return;
+
+	dev->otherend_state = oestate;
+	(void) ddi_taskq_dispatch(pdp->xd_oe_taskq,
+	    i_xvdi_oestate_handler, (void *)dip, DDI_SLEEP);
+}
+
+/*ARGSUSED*/
+static void
+i_xvdi_hpstate_cb(struct xenbus_watch *w, const char **vec,
+    unsigned int len)
+{
+	dev_info_t *dip = (dev_info_t *)w->dev;
+	struct xendev_ppd *pdp = ddi_get_parent_data(dip);
+
+	(void) ddi_taskq_dispatch(pdp->xd_hp_taskq,
+	    i_xvdi_hpstate_handler, (void *)dip, DDI_SLEEP);
+}
+
+static void
+i_xvdi_probe_path_handler(void *arg)
+{
+	dev_info_t *parent;
+	char *path = arg, *p = NULL;
+	int i, vdev, circ;
+	i_xd_cfg_t *xdcp;
+	boolean_t frontend;
+	domid_t dom;
+
+	for (i = 0, xdcp = &xdci[0]; i < NXDC; i++, xdcp++) {
+
+		if ((xdcp->xs_path_fe != NULL) &&
+		    (strncmp(path, xdcp->xs_path_fe, strlen(xdcp->xs_path_fe))
+		    == 0)) {
+
+			frontend = B_TRUE;
+			p = path + strlen(xdcp->xs_path_fe);
+			break;
+		}
+
+		if ((xdcp->xs_path_be != NULL) &&
+		    (strncmp(path, xdcp->xs_path_be, strlen(xdcp->xs_path_be))
+		    == 0)) {
+
+			frontend = B_FALSE;
+			p = path + strlen(xdcp->xs_path_be);
+			break;
+		}
+
+	}
+
+	if (p == NULL) {
+		cmn_err(CE_WARN, "i_xvdi_probe_path_handler: "
+		    "unexpected path prefix in %s", path);
+		goto done;
+	}
+
+	if (frontend) {
+		dom = DOMID_SELF;
+		if (sscanf(p, "/%d/", &vdev) != 1) {
+			XVDI_DPRINTF(XVDI_DBG_PROBE,
+			    "i_xvdi_probe_path_handler: "
+			    "cannot parse frontend path %s",
+			    path);
+			goto done;
+		}
+	} else {
+		if (sscanf(p, "/%d/%d/", &dom, &vdev) != 2) {
+			XVDI_DPRINTF(XVDI_DBG_PROBE,
+			    "i_xvdi_probe_path_handler: "
+			    "cannot parse backend path %s",
+			    path);
+			goto done;
+		}
+	}
+
+	parent = xendev_dip;
+	ASSERT(parent != NULL);
+
+	ndi_devi_enter(parent, &circ);
+
+	if (xvdi_find_dev(parent, xdcp->devclass, dom, vdev) == NULL) {
+		XVDI_DPRINTF(XVDI_DBG_PROBE,
+		    "i_xvdi_probe_path_handler: create for %s", path);
+		(void) xvdi_create_dev(parent, xdcp->devclass, dom, vdev);
+	} else {
+		XVDI_DPRINTF(XVDI_DBG_PROBE,
+		    "i_xvdi_probe_path_handler: %s already exists", path);
+	}
+
+	ndi_devi_exit(parent, circ);
+
+done:
+	kmem_free(path, strlen(path) + 1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/COPYING	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,38 @@
+XEN NOTICE
+==========
+
+This copyright applies to all files within this subdirectory and its
+subdirectories:
+  include/public/*.h
+  include/public/hvm/*.h
+  include/public/io/*.h
+
+The intention is that these files can be freely copied into the source
+tree of an operating system when porting that OS to run on Xen. Doing
+so does *not* cause the OS to become subject to the terms of the GPL.
+
+All other files in the Xen source distribution are covered by version
+2 of the GNU General Public License except where explicitly stated
+otherwise within individual source files.
+
+ -- Keir Fraser (on behalf of the Xen team)
+
+=====================================================================
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
+DEALINGS IN THE SOFTWARE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/README.DO_NOT_EDIT	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,36 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident "@(#)prototype.Makefile 1.15    06/02/08 SMI"
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+These files should not be edited in ON. They are copies from a specific
+build of the xen consolidation which can be found in:
+  xen.hg/xen/include/public
+
+Any changes to these files should be done in the xen consolidation.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/acm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,205 @@
+/*
+ * acm.h: Xen access control module interface defintions
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Reiner Sailer <sailer@watson.ibm.com>
+ * Copyright (c) 2005, International Business Machines Corporation.
+ */
+
+#ifndef _XEN_PUBLIC_ACM_H
+#define _XEN_PUBLIC_ACM_H
+
+#include "xen.h"
+
+/* if ACM_DEBUG defined, all hooks should
+ * print a short trace message (comment it out
+ * when not in testing mode )
+ */
+/* #define ACM_DEBUG */
+
+#ifdef ACM_DEBUG
+#  define printkd(fmt, args...) printk(fmt,## args)
+#else
+#  define printkd(fmt, args...)
+#endif
+
+/* default ssid reference value if not supplied */
+#define ACM_DEFAULT_SSID  0x0
+#define ACM_DEFAULT_LOCAL_SSID  0x0
+
+/* Internal ACM ERROR types */
+#define ACM_OK     0
+#define ACM_UNDEF   -1
+#define ACM_INIT_SSID_ERROR  -2
+#define ACM_INIT_SOID_ERROR  -3
+#define ACM_ERROR          -4
+
+/* External ACCESS DECISIONS */
+#define ACM_ACCESS_PERMITTED        0
+#define ACM_ACCESS_DENIED           -111
+#define ACM_NULL_POINTER_ERROR      -200
+
+/* primary policy in lower 4 bits */
+#define ACM_NULL_POLICY 0
+#define ACM_CHINESE_WALL_POLICY 1
+#define ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY 2
+#define ACM_POLICY_UNDEFINED 15
+
+/* combinations have secondary policy component in higher 4bit */
+#define ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY \
+    ((ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY << 4) | ACM_CHINESE_WALL_POLICY)
+
+/* policy: */
+#define ACM_POLICY_NAME(X) \
+ ((X) == (ACM_NULL_POLICY)) ? "NULL" :                        \
+    ((X) == (ACM_CHINESE_WALL_POLICY)) ? "CHINESE WALL" :        \
+    ((X) == (ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY)) ? "SIMPLE TYPE ENFORCEMENT" : \
+    ((X) == (ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY)) ? "CHINESE WALL AND SIMPLE TYPE ENFORCEMENT" : \
+     "UNDEFINED"
+
+/* the following policy versions must be increased
+ * whenever the interpretation of the related
+ * policy's data structure changes
+ */
+#define ACM_POLICY_VERSION 2
+#define ACM_CHWALL_VERSION 1
+#define ACM_STE_VERSION  1
+
+/* defines a ssid reference used by xen */
+typedef uint32_t ssidref_t;
+
+/* hooks that are known to domains */
+#define ACMHOOK_none    0
+#define ACMHOOK_sharing 1
+
+/* -------security policy relevant type definitions-------- */
+
+/* type identifier; compares to "equal" or "not equal" */
+typedef uint16_t domaintype_t;
+
+/* CHINESE WALL POLICY DATA STRUCTURES
+ *
+ * current accumulated conflict type set:
+ * When a domain is started and has a type that is in
+ * a conflict set, the conflicting types are incremented in
+ * the aggregate set. When a domain is destroyed, the 
+ * conflicting types to its type are decremented.
+ * If a domain has multiple types, this procedure works over
+ * all those types.
+ *
+ * conflict_aggregate_set[i] holds the number of
+ *   running domains that have a conflict with type i.
+ *
+ * running_types[i] holds the number of running domains
+ *        that include type i in their ssidref-referenced type set
+ *
+ * conflict_sets[i][j] is "0" if type j has no conflict
+ *    with type i and is "1" otherwise.
+ */
+/* high-16 = version, low-16 = check magic */
+#define ACM_MAGIC  0x0001debc
+
+/* each offset in bytes from start of the struct they
+ * are part of */
+
+/* each buffer consists of all policy information for
+ * the respective policy given in the policy code
+ *
+ * acm_policy_buffer, acm_chwall_policy_buffer,
+ * and acm_ste_policy_buffer need to stay 32-bit aligned
+ * because we create binary policies also with external
+ * tools that assume packed representations (e.g. the java tool)
+ */
+struct acm_policy_buffer {
+    uint32_t policy_version; /* ACM_POLICY_VERSION */
+    uint32_t magic;
+    uint32_t len;
+    uint32_t policy_reference_offset;
+    uint32_t primary_policy_code;
+    uint32_t primary_buffer_offset;
+    uint32_t secondary_policy_code;
+    uint32_t secondary_buffer_offset;
+};
+
+struct acm_policy_reference_buffer {
+    uint32_t len;
+};
+
+struct acm_chwall_policy_buffer {
+    uint32_t policy_version; /* ACM_CHWALL_VERSION */
+    uint32_t policy_code;
+    uint32_t chwall_max_types;
+    uint32_t chwall_max_ssidrefs;
+    uint32_t chwall_max_conflictsets;
+    uint32_t chwall_ssid_offset;
+    uint32_t chwall_conflict_sets_offset;
+    uint32_t chwall_running_types_offset;
+    uint32_t chwall_conflict_aggregate_offset;
+};
+
+struct acm_ste_policy_buffer {
+    uint32_t policy_version; /* ACM_STE_VERSION */
+    uint32_t policy_code;
+    uint32_t ste_max_types;
+    uint32_t ste_max_ssidrefs;
+    uint32_t ste_ssid_offset;
+};
+
+struct acm_stats_buffer {
+    uint32_t magic;
+    uint32_t len;
+    uint32_t primary_policy_code;
+    uint32_t primary_stats_offset;
+    uint32_t secondary_policy_code;
+    uint32_t secondary_stats_offset;
+};
+
+struct acm_ste_stats_buffer {
+    uint32_t ec_eval_count;
+    uint32_t gt_eval_count;
+    uint32_t ec_denied_count;
+    uint32_t gt_denied_count;
+    uint32_t ec_cachehit_count;
+    uint32_t gt_cachehit_count;
+};
+
+struct acm_ssid_buffer {
+    uint32_t len;
+    ssidref_t ssidref;
+    uint32_t policy_reference_offset;
+    uint32_t primary_policy_code;
+    uint32_t primary_max_types;
+    uint32_t primary_types_offset;
+    uint32_t secondary_policy_code;
+    uint32_t secondary_max_types;
+    uint32_t secondary_types_offset;
+};
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/acm_ops.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,120 @@
+/*
+ * acm_ops.h: Xen access control module hypervisor commands
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Reiner Sailer <sailer@watson.ibm.com>
+ * Copyright (c) 2005,2006 International Business Machines Corporation.
+ */
+
+#ifndef __XEN_PUBLIC_ACM_OPS_H__
+#define __XEN_PUBLIC_ACM_OPS_H__
+
+#include "xen.h"
+#include "acm.h"
+
+/*
+ * Make sure you increment the interface version whenever you modify this file!
+ * This makes sure that old versions of acm tools will stop working in a
+ * well-defined way (rather than crashing the machine, for instance).
+ */
+#define ACM_INTERFACE_VERSION   0xAAAA0008
+
+/************************************************************************/
+
+/*
+ * Prototype for this hypercall is:
+ *  int acm_op(int cmd, void *args)
+ * @cmd  == ACMOP_??? (access control module operation).
+ * @args == Operation-specific extra arguments (NULL if none).
+ */
+
+
+#define ACMOP_setpolicy         1
+struct acm_setpolicy {
+    /* IN */
+    uint32_t interface_version;
+    XEN_GUEST_HANDLE(void) pushcache;
+    uint32_t pushcache_size;
+};
+
+
+#define ACMOP_getpolicy         2
+struct acm_getpolicy {
+    /* IN */
+    uint32_t interface_version;
+    XEN_GUEST_HANDLE(void) pullcache;
+    uint32_t pullcache_size;
+};
+
+
+#define ACMOP_dumpstats         3
+struct acm_dumpstats {
+    /* IN */
+    uint32_t interface_version;
+    XEN_GUEST_HANDLE(void) pullcache;
+    uint32_t pullcache_size;
+};
+
+
+#define ACMOP_getssid           4
+#define ACM_GETBY_ssidref  1
+#define ACM_GETBY_domainid 2
+struct acm_getssid {
+    /* IN */
+    uint32_t interface_version;
+    uint32_t get_ssid_by; /* ACM_GETBY_* */
+    union {
+        domaintype_t domainid;
+        ssidref_t    ssidref;
+    } id;
+    XEN_GUEST_HANDLE(void) ssidbuf;
+    uint32_t ssidbuf_size;
+};
+
+#define ACMOP_getdecision      5
+struct acm_getdecision {
+    /* IN */
+    uint32_t interface_version;
+    uint32_t get_decision_by1; /* ACM_GETBY_* */
+    uint32_t get_decision_by2; /* ACM_GETBY_* */
+    union {
+        domaintype_t domainid;
+        ssidref_t    ssidref;
+    } id1;
+    union {
+        domaintype_t domainid;
+        ssidref_t    ssidref;
+    } id2;
+    uint32_t hook;
+    /* OUT */
+    uint32_t acm_decision;
+};
+
+#endif /* __XEN_PUBLIC_ACM_OPS_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,232 @@
+/******************************************************************************
+ * xen-x86_32.h
+ * 
+ * Guest OS interface to x86 32-bit Xen.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2004-2006, K A Fraser
+ */
+
+#ifndef __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__
+#define __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__
+
+/*
+ * Hypercall interface:
+ *  Input:  %ebx, %ecx, %edx, %esi, %edi (arguments 1-5)
+ *  Output: %eax
+ * Access is via hypercall page (set up by guest loader or via a Xen MSR):
+ *  call hypercall_page + hypercall-number * 32
+ * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
+ */
+
+/*
+ * XXPV HACK, we don't support the hypercall page yet.
+ * #if __XEN_INTERFACE_VERSION__ < 0x00030203
+ */
+/*
+ * Legacy hypercall interface:
+ * As above, except the entry sequence to the hypervisor is:
+ *  mov $hypercall-number*32,%eax ; int $0x82
+ */
+#if !defined(_ASM)
+#define TRAP_INSTR "int $0x82"
+#else
+#define TRAP_INSTR int $0x82
+#endif
+/*
+ * XXPV HACK, we don't support the hypercall page yet.
+ * #endif
+ */
+
+/*
+ * These flat segments are in the Xen-private section of every GDT. Since these
+ * are also present in the initial GDT, many OSes will be able to avoid
+ * installing their own GDT.
+ */
+#define FLAT_RING1_CS 0xe019    /* GDT index 259 */
+#define FLAT_RING1_DS 0xe021    /* GDT index 260 */
+#define FLAT_RING1_SS 0xe021    /* GDT index 260 */
+#define FLAT_RING3_CS 0xe02b    /* GDT index 261 */
+#define FLAT_RING3_DS 0xe033    /* GDT index 262 */
+#define FLAT_RING3_SS 0xe033    /* GDT index 262 */
+
+#define FLAT_KERNEL_CS FLAT_RING1_CS
+#define FLAT_KERNEL_DS FLAT_RING1_DS
+#define FLAT_KERNEL_SS FLAT_RING1_SS
+#define FLAT_USER_CS    FLAT_RING3_CS
+#define FLAT_USER_DS    FLAT_RING3_DS
+#define FLAT_USER_SS    FLAT_RING3_SS
+
+#define __HYPERVISOR_VIRT_START_PAE    0xF5800000
+#define __MACH2PHYS_VIRT_START_PAE     0xF5800000
+#define __MACH2PHYS_VIRT_END_PAE       0xF6800000
+#define HYPERVISOR_VIRT_START_PAE      \
+    mk_unsigned_long(__HYPERVISOR_VIRT_START_PAE)
+#define MACH2PHYS_VIRT_START_PAE       \
+    mk_unsigned_long(__MACH2PHYS_VIRT_START_PAE)
+#define MACH2PHYS_VIRT_END_PAE         \
+    mk_unsigned_long(__MACH2PHYS_VIRT_END_PAE)
+
+#define __HYPERVISOR_VIRT_START_NONPAE 0xFC000000
+#define __MACH2PHYS_VIRT_START_NONPAE  0xFC000000
+#define __MACH2PHYS_VIRT_END_NONPAE    0xFC400000
+#define HYPERVISOR_VIRT_START_NONPAE   \
+    mk_unsigned_long(__HYPERVISOR_VIRT_START_NONPAE)
+#define MACH2PHYS_VIRT_START_NONPAE    \
+    mk_unsigned_long(__MACH2PHYS_VIRT_START_NONPAE)
+#define MACH2PHYS_VIRT_END_NONPAE      \
+    mk_unsigned_long(__MACH2PHYS_VIRT_END_NONPAE)
+
+#ifdef CONFIG_X86_PAE
+#define __HYPERVISOR_VIRT_START __HYPERVISOR_VIRT_START_PAE
+#define __MACH2PHYS_VIRT_START  __MACH2PHYS_VIRT_START_PAE
+#define __MACH2PHYS_VIRT_END    __MACH2PHYS_VIRT_END_PAE
+#else
+#define __HYPERVISOR_VIRT_START __HYPERVISOR_VIRT_START_NONPAE
+#define __MACH2PHYS_VIRT_START  __MACH2PHYS_VIRT_START_NONPAE
+#define __MACH2PHYS_VIRT_END    __MACH2PHYS_VIRT_END_NONPAE
+#endif
+
+#ifndef HYPERVISOR_VIRT_START
+#define HYPERVISOR_VIRT_START mk_unsigned_long(__HYPERVISOR_VIRT_START)
+#endif
+
+#define MACH2PHYS_VIRT_START  mk_unsigned_long(__MACH2PHYS_VIRT_START)
+#define MACH2PHYS_VIRT_END    mk_unsigned_long(__MACH2PHYS_VIRT_END)
+#define MACH2PHYS_NR_ENTRIES  ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>2)
+#ifndef machine_to_phys_mapping
+#define machine_to_phys_mapping ((unsigned long *)MACH2PHYS_VIRT_START)
+#endif
+
+#ifndef __ASSEMBLY__
+
+struct cpu_user_regs {
+    uint32_t ebx;
+    uint32_t ecx;
+    uint32_t edx;
+    uint32_t esi;
+    uint32_t edi;
+    uint32_t ebp;
+    uint32_t eax;
+    uint16_t error_code;    /* private */
+    uint16_t entry_vector;  /* private */
+    uint32_t eip;
+    uint16_t cs;
+    uint8_t  saved_upcall_mask;
+    uint8_t  _pad0;
+    uint32_t eflags;        /* eflags.IF == !saved_upcall_mask */
+    uint32_t esp;
+    uint16_t ss, _pad1;
+    uint16_t es, _pad2;
+    uint16_t ds, _pad3;
+    uint16_t fs, _pad4;
+    uint16_t gs, _pad5;
+};
+typedef struct cpu_user_regs cpu_user_regs_t;
+DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t);
+
+/*
+ * Page-directory addresses above 4GB do not fit into architectural %cr3.
+ * When accessing %cr3, or equivalent field in vcpu_guest_context, guests
+ * must use the following accessor macros to pack/unpack valid MFNs.
+ */
+#define xen_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20))
+#define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20))
+
+struct arch_vcpu_info {
+    unsigned long cr2;
+    unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */
+};
+typedef struct arch_vcpu_info arch_vcpu_info_t;
+
+struct xen_callback {
+    unsigned long cs;
+    unsigned long eip;
+};
+typedef struct xen_callback xen_callback_t;
+
+/*
+ * Structure used to capture the register state at panic time.  This struct
+ * is built to mimic a similar structure in Solaris.  If there is interest
+ * in making this panic implementation an official part of Xen, this should
+ * be made more platform-neutral.
+ */
+struct panic_regs {
+	unsigned long pad1;
+	unsigned long pad2;
+
+	unsigned long gs;
+	unsigned long fs;
+	unsigned long es;
+	unsigned long ds;
+	unsigned long edi;
+	unsigned long esi;
+	unsigned long ebp;
+	unsigned long esp;
+	unsigned long ebx;
+	unsigned long edx;
+	unsigned long ecx;
+	unsigned long eax;
+	unsigned long pad3;
+	unsigned long pad4;
+	unsigned long eip;
+	unsigned long cs;
+	unsigned long efl;
+	unsigned long pad5;
+	unsigned long ss;
+};
+
+#endif /* !__ASSEMBLY__ */
+
+/* Offsets of each field in the xen_panic_regs structure.  */
+#define PANIC_REG_PAD1		0
+#define PANIC_REG_PAD2		4
+#define PANIC_REG_GS		8
+#define PANIC_REG_FS		12
+#define PANIC_REG_ES		16
+#define PANIC_REG_DS		20
+#define PANIC_REG_EDI		24
+#define PANIC_REG_ESI		28
+#define PANIC_REG_EBP		32
+#define PANIC_REG_ESP		36
+#define PANIC_REG_EBX		40
+#define PANIC_REG_EDX		44
+#define PANIC_REG_ECX		48
+#define PANIC_REG_EAX		52
+#define PANIC_REG_PAD3		56
+#define PANIC_REG_PAD4		60
+#define PANIC_REG_EIP		64
+#define PANIC_REG_CS		68
+#define PANIC_REG_EFL		72
+#define PANIC_REG_PAD5		76
+#define PANIC_REG_SS		80
+#define PANIC_REG_STRUCT_SIZE	84
+
+#endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,290 @@
+/******************************************************************************
+ * xen-x86_64.h
+ * 
+ * Guest OS interface to x86 64-bit Xen.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2004-2006, K A Fraser
+ */
+
+#ifndef __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__
+#define __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__
+
+/*
+ * Hypercall interface:
+ *  Input:  %rdi, %rsi, %rdx, %r10, %r8 (arguments 1-5)
+ *  Output: %rax
+ * Access is via hypercall page (set up by guest loader or via a Xen MSR):
+ *  call hypercall_page + hypercall-number * 32
+ * Clobbered: argument registers (e.g., 2-arg hypercall clobbers %rdi,%rsi)
+ */
+
+/*
+ * XXPV HACK, we don't support the hypercall page yet.
+ * #if __XEN_INTERFACE_VERSION__ < 0x00030203
+ */
+/*
+ * Legacy hypercall interface:
+ * As above, except the entry sequence to the hypervisor is:
+ *  mov $hypercall-number*32,%eax ; syscall
+ * Clobbered: %rcx, %r11, argument registers (as above)
+ */
+#if !defined(_ASM)
+#define TRAP_INSTR "syscall"
+#else
+#define TRAP_INSTR syscall
+#endif
+/*
+ * XXPV HACK, we don't support the hypercall page yet.
+ * #endif
+ */
+
+/*
+ * 64-bit segment selectors
+ * These flat segments are in the Xen-private section of every GDT. Since these
+ * are also present in the initial GDT, many OSes will be able to avoid
+ * installing their own GDT.
+ */
+
+#define FLAT_RING3_CS32 0xe023  /* GDT index 260 */
+#define FLAT_RING3_CS64 0xe033  /* GDT index 261 */
+#define FLAT_RING3_DS32 0xe02b  /* GDT index 262 */
+#define FLAT_RING3_DS64 0x0000  /* NULL selector */
+#define FLAT_RING3_SS32 0xe02b  /* GDT index 262 */
+#define FLAT_RING3_SS64 0xe02b  /* GDT index 262 */
+
+#define FLAT_KERNEL_DS64 FLAT_RING3_DS64
+#define FLAT_KERNEL_DS32 FLAT_RING3_DS32
+#define FLAT_KERNEL_DS   FLAT_KERNEL_DS64
+#define FLAT_KERNEL_CS64 FLAT_RING3_CS64
+#define FLAT_KERNEL_CS32 FLAT_RING3_CS32
+#define FLAT_KERNEL_CS   FLAT_KERNEL_CS64
+#define FLAT_KERNEL_SS64 FLAT_RING3_SS64
+#define FLAT_KERNEL_SS32 FLAT_RING3_SS32
+#define FLAT_KERNEL_SS   FLAT_KERNEL_SS64
+
+#define FLAT_USER_DS64 FLAT_RING3_DS64
+#define FLAT_USER_DS32 FLAT_RING3_DS32
+#define FLAT_USER_DS   FLAT_USER_DS64
+#define FLAT_USER_CS64 FLAT_RING3_CS64
+#define FLAT_USER_CS32 FLAT_RING3_CS32
+#define FLAT_USER_CS   FLAT_USER_CS64
+#define FLAT_USER_SS64 FLAT_RING3_SS64
+#define FLAT_USER_SS32 FLAT_RING3_SS32
+#define FLAT_USER_SS   FLAT_USER_SS64
+
+#define __HYPERVISOR_VIRT_START 0xFFFF800000000000
+#define __HYPERVISOR_VIRT_END   0xFFFF880000000000
+#define __MACH2PHYS_VIRT_START  0xFFFF800000000000
+#define __MACH2PHYS_VIRT_END    0xFFFF804000000000
+
+#ifndef HYPERVISOR_VIRT_START
+#define HYPERVISOR_VIRT_START mk_unsigned_long(__HYPERVISOR_VIRT_START)
+#define HYPERVISOR_VIRT_END   mk_unsigned_long(__HYPERVISOR_VIRT_END)
+#endif
+
+#define MACH2PHYS_VIRT_START  mk_unsigned_long(__MACH2PHYS_VIRT_START)
+#define MACH2PHYS_VIRT_END    mk_unsigned_long(__MACH2PHYS_VIRT_END)
+#define MACH2PHYS_NR_ENTRIES  ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>3)
+#ifndef machine_to_phys_mapping
+#define machine_to_phys_mapping ((unsigned long *)HYPERVISOR_VIRT_START)
+#endif
+
+#ifndef __ASSEMBLY__
+
+/*
+ * int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base)
+ *  @which == SEGBASE_*  ;  @base == 64-bit base address
+ * Returns 0 on success.
+ */
+#define SEGBASE_FS          0
+#define SEGBASE_GS_USER     1
+#define SEGBASE_GS_KERNEL   2
+#define SEGBASE_GS_USER_SEL 3 /* Set user %gs specified in base[15:0] */
+
+/*
+ * int HYPERVISOR_iret(void)
+ * All arguments are on the kernel stack, in the following format.
+ * Never returns if successful. Current kernel context is lost.
+ * The saved CS is mapped as follows:
+ *   RING0 -> RING3 kernel mode.
+ *   RING1 -> RING3 kernel mode.
+ *   RING2 -> RING3 kernel mode.
+ *   RING3 -> RING3 user mode.
+ * However RING0 indicates that the guest kernel should return to iteself
+ * directly with
+ *      orb   $3,1*8(%rsp)
+ *      iretq
+ * If flags contains VGCF_in_syscall:
+ *   Restore RAX, RIP, RFLAGS, RSP.
+ *   Discard R11, RCX, CS, SS.
+ * Otherwise:
+ *   Restore RAX, R11, RCX, CS:RIP, RFLAGS, SS:RSP.
+ * All other registers are saved on hypercall entry and restored to user.
+ */
+/* Guest exited in SYSCALL context? Return to guest with SYSRET? */
+#define _VGCF_in_syscall 8
+#define VGCF_in_syscall  (1<<_VGCF_in_syscall)
+#define VGCF_IN_SYSCALL  VGCF_in_syscall
+struct iret_context {
+    /* Top of stack (%rsp at point of hypercall). */
+    uint64_t rax, r11, rcx, flags, rip, cs, rflags, rsp, ss;
+    /* Bottom of iret stack frame. */
+};
+
+#ifdef __GNUC__
+/* Anonymous union includes both 32- and 64-bit names (e.g., eax/rax). */
+#define __DECL_REG(name) union { uint64_t r ## name, e ## name; }
+#else
+/* Non-gcc sources must always use the proper 64-bit name (e.g., rax). */
+#define __DECL_REG(name) uint64_t r ## name
+#endif
+
+struct cpu_user_regs {
+    uint64_t r15;
+    uint64_t r14;
+    uint64_t r13;
+    uint64_t r12;
+    __DECL_REG(bp);
+    __DECL_REG(bx);
+    uint64_t r11;
+    uint64_t r10;
+    uint64_t r9;
+    uint64_t r8;
+    __DECL_REG(ax);
+    __DECL_REG(cx);
+    __DECL_REG(dx);
+    __DECL_REG(si);
+    __DECL_REG(di);
+    uint32_t error_code;    /* private */
+    uint32_t entry_vector;  /* private */
+    __DECL_REG(ip);
+    uint16_t cs, _pad0[1];
+    uint8_t  saved_upcall_mask;
+    uint8_t  _pad1[3];
+    __DECL_REG(flags);      /* rflags.IF == !saved_upcall_mask */
+    __DECL_REG(sp);
+    uint16_t ss, _pad2[3];
+    uint16_t es, _pad3[3];
+    uint16_t ds, _pad4[3];
+    uint16_t fs, _pad5[3]; /* Non-zero => takes precedence over fs_base.     */
+    uint16_t gs, _pad6[3]; /* Non-zero => takes precedence over gs_base_usr. */
+};
+typedef struct cpu_user_regs cpu_user_regs_t;
+DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t);
+
+#undef __DECL_REG
+
+#define xen_pfn_to_cr3(pfn) ((unsigned long)(pfn) << 12)
+#define xen_cr3_to_pfn(cr3) ((unsigned long)(cr3) >> 12)
+
+struct arch_vcpu_info {
+    unsigned long cr2;
+    unsigned long pad; /* sizeof(vcpu_info_t) == 64 */
+};
+typedef struct arch_vcpu_info arch_vcpu_info_t;
+
+typedef unsigned long xen_callback_t;
+
+/*
+ * Structure used to capture the register state at panic time.  This struct
+ * is built to mimic a similar structure in Solaris.  If there is interest
+ * in making this panic implementation an official part of Xen, this should
+ * be made more platform-neutral.
+ */
+struct panic_regs {
+	unsigned long pad1;
+	unsigned long pad2;
+	unsigned long rdi;
+	unsigned long rsi;
+	unsigned long rdx;
+	unsigned long rcx;
+	unsigned long r8;
+	unsigned long r9;
+	unsigned long rax;
+	unsigned long rbx;
+	unsigned long rbp;
+	unsigned long r10;
+	unsigned long r11;
+	unsigned long r12;
+	unsigned long r13;
+	unsigned long r14;
+	unsigned long r15;
+	unsigned long pad3;
+	unsigned long pad4;
+	unsigned long ds;
+	unsigned long es;
+	unsigned long fs;
+	unsigned long gs;
+	unsigned long pad5;
+	unsigned long pad6;
+	unsigned long rip;
+	unsigned long cs;
+	unsigned long rfl;
+	unsigned long rsp;
+	unsigned long ss;
+};
+
+#endif /* !__ASSEMBLY__ */
+
+/* Offsets of each field in the xen_panic_regs structure.  */
+#define PANIC_REG_PAD1		0
+#define PANIC_REG_PAD2		8
+#define PANIC_REG_RDI		16
+#define PANIC_REG_RSI		24
+#define PANIC_REG_RDX		32
+#define PANIC_REG_RCX		40
+#define PANIC_REG_R8		48
+#define PANIC_REG_R9		56
+#define PANIC_REG_RAX		64
+#define PANIC_REG_RBX		72
+#define PANIC_REG_RBP		80
+#define PANIC_REG_R10		88
+#define PANIC_REG_R11		96
+#define PANIC_REG_R12		104
+#define PANIC_REG_R13		112
+#define PANIC_REG_R14		120
+#define PANIC_REG_R15		128
+#define PANIC_REG_PAD3		136
+#define PANIC_REG_PAD4		144
+#define PANIC_REG_DS		152
+#define PANIC_REG_ES		160
+#define PANIC_REG_FS		168
+#define PANIC_REG_GS		176
+#define PANIC_REG_PAD5		184
+#define PANIC_REG_PAD6		192
+#define PANIC_REG_RIP		200
+#define PANIC_REG_CS		208
+#define PANIC_REG_RFL		216
+#define PANIC_REG_RSP		224
+#define PANIC_REG_SS		232
+#define PANIC_REG_STRUCT_SIZE	240
+
+#endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/arch-x86/xen.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,216 @@
+/******************************************************************************
+ * arch-x86/xen.h
+ * 
+ * Guest OS interface to x86 Xen.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2004-2006, K A Fraser
+ */
+
+#ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__
+#define __XEN_PUBLIC_ARCH_X86_XEN_H__
+
+/* Structural guest handles introduced in 0x00030201. */
+#if __XEN_INTERFACE_VERSION__ >= 0x00030201
+#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+    typedef struct { type *p; } __guest_handle_ ## name
+#else
+#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+    typedef type * __guest_handle_ ## name
+#endif
+
+#define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+#define XEN_GUEST_HANDLE(name)          __guest_handle_ ## name
+#define set_xen_guest_handle(hnd, val)  do { (hnd).p = val; } while (0)
+/*
+ * XXPV - we need get in privcmd
+ * #ifdef __XEN_TOOLS__
+ */
+#define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+/*
+ * #endif
+ */
+
+#ifndef __ASSEMBLY__
+/* Guest handles for primitive C types. */
+__DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char);
+__DEFINE_XEN_GUEST_HANDLE(uint,  unsigned int);
+__DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
+DEFINE_XEN_GUEST_HANDLE(char);
+DEFINE_XEN_GUEST_HANDLE(int);
+DEFINE_XEN_GUEST_HANDLE(long);
+DEFINE_XEN_GUEST_HANDLE(void);
+
+typedef unsigned long xen_pfn_t;
+DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
+#endif
+
+#if defined(__i386__)
+#include "xen-x86_32.h"
+#elif defined(__x86_64__)
+#include "xen-x86_64.h"
+#endif
+
+/*
+ * SEGMENT DESCRIPTOR TABLES
+ */
+/*
+ * A number of GDT entries are reserved by Xen. These are not situated at the
+ * start of the GDT because some stupid OSes export hard-coded selector values
+ * in their ABI. These hard-coded values are always near the start of the GDT,
+ * so Xen places itself out of the way, at the far end of the GDT.
+ */
+#define FIRST_RESERVED_GDT_PAGE  14
+#define FIRST_RESERVED_GDT_BYTE  (FIRST_RESERVED_GDT_PAGE * 4096)
+#define FIRST_RESERVED_GDT_ENTRY (FIRST_RESERVED_GDT_BYTE / 8)
+
+/* Maximum number of virtual CPUs in multi-processor guests. */
+#define MAX_VIRT_CPUS 32
+
+#ifndef __ASSEMBLY__
+
+typedef unsigned long xen_ulong_t;
+
+/*
+ * Send an array of these to HYPERVISOR_set_trap_table().
+ * The privilege level specifies which modes may enter a trap via a software
+ * interrupt. On x86/64, since rings 1 and 2 are unavailable, we allocate
+ * privilege levels as follows:
+ *  Level == 0: Noone may enter
+ *  Level == 1: Kernel may enter
+ *  Level == 2: Kernel may enter
+ *  Level == 3: Everyone may enter
+ */
+#define TI_GET_DPL(_ti)      ((_ti)->flags & 3)
+#define TI_GET_IF(_ti)       ((_ti)->flags & 4)
+#define TI_SET_DPL(_ti,_dpl) ((_ti)->flags |= (_dpl))
+#define TI_SET_IF(_ti,_if)   ((_ti)->flags |= ((!!(_if))<<2))
+struct trap_info {
+    uint8_t       vector;  /* exception vector                              */
+    uint8_t       flags;   /* 0-3: privilege level; 4: clear event enable?  */
+    uint16_t      cs;      /* code selector                                 */
+    unsigned long address; /* code offset                                   */
+};
+typedef struct trap_info trap_info_t;
+DEFINE_XEN_GUEST_HANDLE(trap_info_t);
+
+typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */
+
+/*
+ * The following is all CPU context. Note that the fpu_ctxt block is filled 
+ * in by FXSAVE if the CPU has feature FXSR; otherwise FSAVE is used.
+ */
+struct vcpu_guest_context {
+    /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
+    struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
+#define VGCF_I387_VALID                (1<<0)
+#define VGCF_IN_KERNEL                 (1<<2)
+#define _VGCF_i387_valid               0
+#define VGCF_i387_valid                (1<<_VGCF_i387_valid)
+#define _VGCF_in_kernel                2
+#define VGCF_in_kernel                 (1<<_VGCF_in_kernel)
+#define _VGCF_failsafe_disables_events 3
+#define VGCF_failsafe_disables_events  (1<<_VGCF_failsafe_disables_events)
+#define _VGCF_syscall_disables_events  4
+#define VGCF_syscall_disables_events   (1<<_VGCF_syscall_disables_events)
+    unsigned long flags;                    /* VGCF_* flags                 */
+    struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+    struct trap_info trap_ctxt[256];        /* Virtual IDT                  */
+    unsigned long ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
+    unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
+    unsigned long kernel_ss, kernel_sp;     /* Virtual TSS (only SS1/SP1)   */
+    unsigned long ctrlreg[8];               /* CR0-CR7 (control registers)  */
+    unsigned long debugreg[8];              /* DB0-DB7 (debug registers)    */
+#ifdef __i386__
+    unsigned long event_callback_cs;        /* CS:EIP of event callback     */
+    unsigned long event_callback_eip;
+    unsigned long failsafe_callback_cs;     /* CS:EIP of failsafe callback  */
+    unsigned long failsafe_callback_eip;
+#else
+    unsigned long event_callback_eip;
+    unsigned long failsafe_callback_eip;
+    unsigned long syscall_callback_eip;
+#endif
+    unsigned long vm_assist;                /* VMASST_TYPE_* bitmap */
+#ifdef __x86_64__
+    /* Segment base addresses. */
+    uint64_t      fs_base;
+    uint64_t      gs_base_kernel;
+    uint64_t      gs_base_user;
+#endif
+};
+typedef struct vcpu_guest_context vcpu_guest_context_t;
+DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+
+struct arch_shared_info {
+    unsigned long max_pfn;                  /* max pfn that appears in table */
+    /* Frame containing list of mfns containing list of mfns containing p2m. */
+    xen_pfn_t     pfn_to_mfn_frame_list_list;
+    unsigned long nmi_reason;
+    uint64_t pad[32];
+};
+typedef struct arch_shared_info arch_shared_info_t;
+
+typedef struct panic_regs panic_regs_t;
+struct panic_info {
+	int		pi_version;	/* panic_info format version */
+	panic_regs_t	*pi_regs;	/* register state */
+	void		*pi_apic;	/* local APIC address */
+	char		*pi_panicstr;	/* panic message */
+	void		*pi_ram_start;	/* Start of all-RAM mapping region */
+	void		*pi_ram_end;	/* End of all-RAM mapping region */
+	void		*pi_stktop;	/* Top of current Xen stack */
+	struct domain	*pi_domain;	/* Panicking domain */
+	struct vcpu	*pi_vcpu;	/* Panicking vcpu */
+	int		pi_dom0cpu;	/* cpu number - if a dom0 panic */
+};
+
+struct panic_frame {
+	unsigned long	pf_fp;
+	unsigned long	pf_pc;
+};
+
+#define PANIC_INFO_VERSION	1
+
+#endif /* !__ASSEMBLY__ */
+
+/*
+ * Prefix forces emulation of some non-trapping instructions.
+ * Currently only CPUID.
+ */
+#ifdef __ASSEMBLY__
+#define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ;
+#define XEN_CPUID          XEN_EMULATE_PREFIX cpuid
+#else
+#define XEN_EMULATE_PREFIX ".byte 0x0f,0x0b,0x78,0x65,0x6e ; "
+#define XEN_CPUID          XEN_EMULATE_PREFIX "cpuid"
+#endif
+
+#endif /* __XEN_PUBLIC_ARCH_X86_XEN_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/callback.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,92 @@
+/******************************************************************************
+ * callback.h
+ *
+ * Register guest OS callbacks with Xen.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2006, Ian Campbell
+ */
+
+#ifndef __XEN_PUBLIC_CALLBACK_H__
+#define __XEN_PUBLIC_CALLBACK_H__
+
+#include "xen.h"
+
+/*
+ * Prototype for this hypercall is:
+ *   long callback_op(int cmd, void *extra_args)
+ * @cmd        == CALLBACKOP_??? (callback operation).
+ * @extra_args == Operation-specific extra arguments (NULL if none).
+ */
+
+#define CALLBACKTYPE_event                 0
+#define CALLBACKTYPE_failsafe              1
+#define CALLBACKTYPE_syscall               2 /* x86_64 only */
+/*
+ * sysenter is only available on x86_32 with the
+ * supervisor_mode_kernel option enabled.
+ */
+#define CALLBACKTYPE_sysenter              3
+#define CALLBACKTYPE_nmi                   4
+
+/*
+ * Disable event deliver during callback? This flag is ignored for event and
+ * NMI callbacks: event delivery is unconditionally disabled.
+ */
+#define _CALLBACKF_mask_events             0
+#define CALLBACKF_mask_events              (1U << _CALLBACKF_mask_events)
+
+/*
+ * Register a callback.
+ */
+#define CALLBACKOP_register                0
+struct callback_register {
+    uint16_t type;
+    uint16_t flags;
+    xen_callback_t address;
+};
+typedef struct callback_register callback_register_t;
+DEFINE_XEN_GUEST_HANDLE(callback_register_t);
+
+/*
+ * Unregister a callback.
+ *
+ * Not all callbacks can be unregistered. -EINVAL will be returned if
+ * you attempt to unregister such a callback.
+ */
+#define CALLBACKOP_unregister              1
+struct callback_unregister {
+    uint16_t type;
+    uint16_t _unused;
+};
+typedef struct callback_unregister callback_unregister_t;
+DEFINE_XEN_GUEST_HANDLE(callback_unregister_t);
+
+#endif /* __XEN_PUBLIC_CALLBACK_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/domctl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,445 @@
+/******************************************************************************
+ * domctl.h
+ * 
+ * Domain management operations. For use by node control stack.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2002-2003, B Dragovic
+ * Copyright (c) 2002-2006, K Fraser
+ */
+
+#ifndef __XEN_PUBLIC_DOMCTL_H__
+#define __XEN_PUBLIC_DOMCTL_H__
+
+/*
+ * XXPV - We need sysctl (physinfo) in the solaris kernel, which includes
+ * this file
+ */
+#if 0
+
+#if !defined(__XEN__) && !defined(__XEN_TOOLS__)
+#error "domctl operations are intended for use by node control tools only"
+#endif
+
+#endif /* XXPV */
+
+#include "xen.h"
+
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000004
+
+struct xenctl_cpumap {
+    XEN_GUEST_HANDLE(uint8_t) bitmap;
+    uint32_t nr_cpus;
+};
+
+/*
+ * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
+ * If it is specified as zero, an id is auto-allocated and returned.
+ */
+#define XEN_DOMCTL_createdomain       1
+struct xen_domctl_createdomain {
+    /* IN parameters */
+    uint32_t ssidref;
+    xen_domain_handle_t handle;
+ /* Is this an HVM guest (as opposed to a PV guest)? */
+#define _XEN_DOMCTL_CDF_hvm_guest 0
+#define XEN_DOMCTL_CDF_hvm_guest  (1U<<_XEN_DOMCTL_CDF_hvm_guest)
+    uint32_t flags;
+};
+typedef struct xen_domctl_createdomain xen_domctl_createdomain_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_createdomain_t);
+
+#define XEN_DOMCTL_destroydomain      2
+#define XEN_DOMCTL_pausedomain        3
+#define XEN_DOMCTL_unpausedomain      4
+
+#define XEN_DOMCTL_getdomaininfo      5
+struct xen_domctl_getdomaininfo {
+    /* OUT variables. */
+    domid_t  domain;              /* Also echoed in domctl.domain */
+ /* Domain is scheduled to die. */
+#define _XEN_DOMINF_dying     0
+#define XEN_DOMINF_dying      (1U<<_XEN_DOMINF_dying)
+ /* Domain is an HVM guest (as opposed to a PV guest). */
+#define _XEN_DOMINF_hvm_guest 1
+#define XEN_DOMINF_hvm_guest  (1U<<_XEN_DOMINF_hvm_guest)
+ /* The guest OS has shut down. */
+#define _XEN_DOMINF_shutdown  2
+#define XEN_DOMINF_shutdown   (1U<<_XEN_DOMINF_shutdown)
+ /* Currently paused by control software. */
+#define _XEN_DOMINF_paused    3
+#define XEN_DOMINF_paused     (1U<<_XEN_DOMINF_paused)
+ /* Currently blocked pending an event.     */
+#define _XEN_DOMINF_blocked   4
+#define XEN_DOMINF_blocked    (1U<<_XEN_DOMINF_blocked)
+ /* Domain is currently running.            */
+#define _XEN_DOMINF_running   5
+#define XEN_DOMINF_running    (1U<<_XEN_DOMINF_running)
+ /* CPU to which this domain is bound.      */
+#define XEN_DOMINF_cpumask      255
+#define XEN_DOMINF_cpushift       8
+ /* XEN_DOMINF_shutdown guest-supplied code.  */
+#define XEN_DOMINF_shutdownmask 255
+#define XEN_DOMINF_shutdownshift 16
+    uint32_t flags;              /* XEN_DOMINF_* */
+    uint64_t tot_pages;
+    uint64_t max_pages;
+    uint64_t shared_info_frame;  /* GMFN of shared_info struct */
+    uint64_t cpu_time;
+    uint32_t nr_online_vcpus;    /* Number of VCPUs currently online. */
+    uint32_t max_vcpu_id;        /* Maximum VCPUID in use by this domain. */
+    uint32_t ssidref;
+    xen_domain_handle_t handle;
+};
+typedef struct xen_domctl_getdomaininfo xen_domctl_getdomaininfo_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t);
+
+
+#define XEN_DOMCTL_getmemlist         6
+struct xen_domctl_getmemlist {
+    /* IN variables. */
+    /* Max entries to write to output buffer. */
+    uint64_t max_pfns;
+    /* Start index in guest's page list. */
+    uint64_t start_pfn;
+    XEN_GUEST_HANDLE(xen_pfn_t) buffer;
+    /* OUT variables. */
+    uint64_t num_pfns;
+};
+typedef struct xen_domctl_getmemlist xen_domctl_getmemlist_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getmemlist_t);
+
+
+#define XEN_DOMCTL_getpageframeinfo   7
+
+#define XEN_DOMCTL_PFINFO_LTAB_SHIFT 28
+#define XEN_DOMCTL_PFINFO_NOTAB   (0x0<<28)
+#define XEN_DOMCTL_PFINFO_L1TAB   (0x1<<28)
+#define XEN_DOMCTL_PFINFO_L2TAB   (0x2<<28)
+#define XEN_DOMCTL_PFINFO_L3TAB   (0x3<<28)
+#define XEN_DOMCTL_PFINFO_L4TAB   (0x4<<28)
+#define XEN_DOMCTL_PFINFO_LTABTYPE_MASK (0x7<<28)
+#define XEN_DOMCTL_PFINFO_LPINTAB (0x1<<31)
+#define XEN_DOMCTL_PFINFO_XTAB    (0xf<<28) /* invalid page */
+#define XEN_DOMCTL_PFINFO_LTAB_MASK (0xf<<28)
+
+struct xen_domctl_getpageframeinfo {
+    /* IN variables. */
+    uint64_t gmfn;        /* GMFN to query */
+    /* OUT variables. */
+    /* Is the page PINNED to a type? */
+    uint32_t type;         /* see above type defs */
+};
+typedef struct xen_domctl_getpageframeinfo xen_domctl_getpageframeinfo_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo_t);
+
+
+#define XEN_DOMCTL_getpageframeinfo2  8
+struct xen_domctl_getpageframeinfo2 {
+    /* IN variables. */
+    uint64_t num;
+    /* IN/OUT variables. */
+    XEN_GUEST_HANDLE(ulong) array;
+};
+typedef struct xen_domctl_getpageframeinfo2 xen_domctl_getpageframeinfo2_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo2_t);
+
+
+/*
+ * Control shadow pagetables operation
+ */
+#define XEN_DOMCTL_shadow_op         10
+
+/* Disable shadow mode. */
+#define XEN_DOMCTL_SHADOW_OP_OFF         0
+
+/* Enable shadow mode (mode contains ORed XEN_DOMCTL_SHADOW_ENABLE_* flags). */
+#define XEN_DOMCTL_SHADOW_OP_ENABLE      32
+
+/* Log-dirty bitmap operations. */
+ /* Return the bitmap and clean internal copy for next round. */
+#define XEN_DOMCTL_SHADOW_OP_CLEAN       11
+ /* Return the bitmap but do not modify internal copy. */
+#define XEN_DOMCTL_SHADOW_OP_PEEK        12
+
+/* Memory allocation accessors. */
+#define XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION   30
+#define XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION   31
+
+/* Legacy enable operations. */
+ /* Equiv. to ENABLE with no mode flags. */
+#define XEN_DOMCTL_SHADOW_OP_ENABLE_TEST       1
+ /* Equiv. to ENABLE with mode flag ENABLE_LOG_DIRTY. */
+#define XEN_DOMCTL_SHADOW_OP_ENABLE_LOGDIRTY   2
+ /* Equiv. to ENABLE with mode flags ENABLE_REFCOUNT and ENABLE_TRANSLATE. */
+#define XEN_DOMCTL_SHADOW_OP_ENABLE_TRANSLATE  3
+
+/* Mode flags for XEN_DOMCTL_SHADOW_OP_ENABLE. */
+ /*
+  * Shadow pagetables are refcounted: guest does not use explicit mmu
+  * operations nor write-protect its pagetables.
+  */
+#define XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT  (1 << 1)
+ /*
+  * Log pages in a bitmap as they are dirtied.
+  * Used for live relocation to determine which pages must be re-sent.
+  */
+#define XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY (1 << 2)
+ /*
+  * Automatically translate GPFNs into MFNs.
+  */
+#define XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE (1 << 3)
+ /*
+  * Xen does not steal virtual address space from the guest.
+  * Requires HVM support.
+  */
+#define XEN_DOMCTL_SHADOW_ENABLE_EXTERNAL  (1 << 4)
+
+struct xen_domctl_shadow_op_stats {
+    uint32_t fault_count;
+    uint32_t dirty_count;
+};
+typedef struct xen_domctl_shadow_op_stats xen_domctl_shadow_op_stats_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_shadow_op_stats_t);
+
+struct xen_domctl_shadow_op {
+    /* IN variables. */
+    uint32_t       op;       /* XEN_DOMCTL_SHADOW_OP_* */
+
+    /* OP_ENABLE */
+    uint32_t       mode;     /* XEN_DOMCTL_SHADOW_ENABLE_* */
+
+    /* OP_GET_ALLOCATION / OP_SET_ALLOCATION */
+    uint32_t       mb;       /* Shadow memory allocation in MB */
+
+    /* OP_PEEK / OP_CLEAN */
+    XEN_GUEST_HANDLE(ulong) dirty_bitmap;
+    uint64_t       pages;    /* Size of buffer. Updated with actual size. */
+    struct xen_domctl_shadow_op_stats stats;
+};
+typedef struct xen_domctl_shadow_op xen_domctl_shadow_op_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_shadow_op_t);
+
+
+#define XEN_DOMCTL_max_mem           11
+struct xen_domctl_max_mem {
+    /* IN variables. */
+    uint64_t max_memkb;
+};
+typedef struct xen_domctl_max_mem xen_domctl_max_mem_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_mem_t);
+
+
+#define XEN_DOMCTL_setvcpucontext    12
+#define XEN_DOMCTL_getvcpucontext    13
+struct xen_domctl_vcpucontext {
+    uint32_t              vcpu;                  /* IN */
+    XEN_GUEST_HANDLE(vcpu_guest_context_t) ctxt; /* IN/OUT */
+};
+typedef struct xen_domctl_vcpucontext xen_domctl_vcpucontext_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpucontext_t);
+
+
+#define XEN_DOMCTL_getvcpuinfo       14
+struct xen_domctl_getvcpuinfo {
+    /* IN variables. */
+    uint32_t vcpu;
+    /* OUT variables. */
+    uint8_t  online;                  /* currently online (not hotplugged)? */
+    uint8_t  blocked;                 /* blocked waiting for an event? */
+    uint8_t  running;                 /* currently scheduled on its CPU? */
+    uint64_t cpu_time;                /* total cpu time consumed (ns) */
+    uint32_t cpu;                     /* current mapping   */
+};
+typedef struct xen_domctl_getvcpuinfo xen_domctl_getvcpuinfo_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getvcpuinfo_t);
+
+
+/* Get/set which physical cpus a vcpu can execute on. */
+#define XEN_DOMCTL_setvcpuaffinity    9
+#define XEN_DOMCTL_getvcpuaffinity   25
+struct xen_domctl_vcpuaffinity {
+    uint32_t  vcpu;              /* IN */
+    struct xenctl_cpumap cpumap; /* IN/OUT */
+};
+typedef struct xen_domctl_vcpuaffinity xen_domctl_vcpuaffinity_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpuaffinity_t);
+
+
+#define XEN_DOMCTL_max_vcpus         15
+struct xen_domctl_max_vcpus {
+    uint32_t max;           /* maximum number of vcpus */
+};
+typedef struct xen_domctl_max_vcpus xen_domctl_max_vcpus_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_vcpus_t);
+
+
+#define XEN_DOMCTL_scheduler_op      16
+/* Scheduler types. */
+#define XEN_SCHEDULER_SEDF     4
+#define XEN_SCHEDULER_CREDIT   5
+/* Set or get info? */
+#define XEN_DOMCTL_SCHEDOP_putinfo 0
+#define XEN_DOMCTL_SCHEDOP_getinfo 1
+struct xen_domctl_scheduler_op {
+    uint32_t sched_id;  /* XEN_SCHEDULER_* */
+    uint32_t cmd;       /* XEN_DOMCTL_SCHEDOP_* */
+    union {
+        struct xen_domctl_sched_sedf {
+            uint64_t period;
+            uint64_t slice;
+            uint64_t latency;
+            uint32_t extratime;
+            uint32_t weight;
+        } sedf;
+        struct xen_domctl_sched_credit {
+            uint16_t weight;
+            uint16_t cap;
+        } credit;
+    } u;
+};
+typedef struct xen_domctl_scheduler_op xen_domctl_scheduler_op_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_scheduler_op_t);
+
+
+#define XEN_DOMCTL_setdomainhandle   17
+struct xen_domctl_setdomainhandle {
+    xen_domain_handle_t handle;
+};
+typedef struct xen_domctl_setdomainhandle xen_domctl_setdomainhandle_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_setdomainhandle_t);
+
+
+#define XEN_DOMCTL_setdebugging      18
+struct xen_domctl_setdebugging {
+    uint8_t enable;
+};
+typedef struct xen_domctl_setdebugging xen_domctl_setdebugging_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_setdebugging_t);
+
+
+#define XEN_DOMCTL_irq_permission    19
+struct xen_domctl_irq_permission {
+    uint8_t pirq;
+    uint8_t allow_access;    /* flag to specify enable/disable of IRQ access */
+};
+typedef struct xen_domctl_irq_permission xen_domctl_irq_permission_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_irq_permission_t);
+
+
+#define XEN_DOMCTL_iomem_permission  20
+struct xen_domctl_iomem_permission {
+    uint64_t first_mfn;       /* first page (physical page number) in range */
+    uint64_t nr_mfns;         /* number of pages in range (>0) */
+    uint8_t  allow_access;    /* allow (!0) or deny (0) access to range? */
+};
+typedef struct xen_domctl_iomem_permission xen_domctl_iomem_permission_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_iomem_permission_t);
+
+
+#define XEN_DOMCTL_ioport_permission 21
+struct xen_domctl_ioport_permission {
+    uint32_t first_port;              /* first port int range */
+    uint32_t nr_ports;                /* size of port range */
+    uint8_t  allow_access;            /* allow or deny access to range? */
+};
+typedef struct xen_domctl_ioport_permission xen_domctl_ioport_permission_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_ioport_permission_t);
+
+#define XEN_DOMCTL_hypercall_init    22
+struct xen_domctl_hypercall_init {
+    uint64_t  gmfn;            /* GMFN to be initialised */
+};
+typedef struct xen_domctl_hypercall_init xen_domctl_hypercall_init_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_hypercall_init_t);
+
+#define XEN_DOMCTL_arch_setup        23
+#define _XEN_DOMAINSETUP_hvm_guest 0
+#define XEN_DOMAINSETUP_hvm_guest  (1UL<<_XEN_DOMAINSETUP_hvm_guest)
+#define _XEN_DOMAINSETUP_query 1 /* Get parameters (for save)  */
+#define XEN_DOMAINSETUP_query  (1UL<<_XEN_DOMAINSETUP_query)
+typedef struct xen_domctl_arch_setup {
+    uint64_t flags;      /* XEN_DOMAINSETUP_* */
+#ifdef __ia64__
+    uint64_t bp;            /* mpaddr of boot param area */
+    uint64_t maxmem;        /* Highest memory address for MDT.  */
+    uint64_t xsi_va;        /* Xen shared_info area virtual address.  */
+    uint32_t hypercall_imm; /* Break imm for Xen hypercalls.  */
+#endif
+} xen_domctl_arch_setup_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_arch_setup_t);
+
+#define XEN_DOMCTL_settimeoffset     24
+struct xen_domctl_settimeoffset {
+    int32_t  time_offset_seconds; /* applied to domain wallclock time */
+};
+typedef struct xen_domctl_settimeoffset xen_domctl_settimeoffset_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_settimeoffset_t);
+
+#define XEN_DOMCTL_real_mode_area     26
+struct xen_domctl_real_mode_area {
+    uint32_t log; /* log2 of Real Mode Area size */
+};
+typedef struct xen_domctl_real_mode_area xen_domctl_real_mode_area_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_real_mode_area_t);
+
+struct xen_domctl {
+    uint32_t cmd;
+    uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
+    domid_t  domain;
+    union {
+        struct xen_domctl_createdomain      createdomain;
+        struct xen_domctl_getdomaininfo     getdomaininfo;
+        struct xen_domctl_getmemlist        getmemlist;
+        struct xen_domctl_getpageframeinfo  getpageframeinfo;
+        struct xen_domctl_getpageframeinfo2 getpageframeinfo2;
+        struct xen_domctl_vcpuaffinity      vcpuaffinity;
+        struct xen_domctl_shadow_op         shadow_op;
+        struct xen_domctl_max_mem           max_mem;
+        struct xen_domctl_vcpucontext       vcpucontext;
+        struct xen_domctl_getvcpuinfo       getvcpuinfo;
+        struct xen_domctl_max_vcpus         max_vcpus;
+        struct xen_domctl_scheduler_op      scheduler_op;
+        struct xen_domctl_setdomainhandle   setdomainhandle;
+        struct xen_domctl_setdebugging      setdebugging;
+        struct xen_domctl_irq_permission    irq_permission;
+        struct xen_domctl_iomem_permission  iomem_permission;
+        struct xen_domctl_ioport_permission ioport_permission;
+        struct xen_domctl_hypercall_init    hypercall_init;
+        struct xen_domctl_arch_setup        arch_setup;
+        struct xen_domctl_settimeoffset     settimeoffset;
+        struct xen_domctl_real_mode_area    real_mode_area;
+        uint8_t                             pad[128];
+    } u;
+};
+typedef struct xen_domctl xen_domctl_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_t);
+
+#endif /* __XEN_PUBLIC_DOMCTL_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/elfnote.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,179 @@
+/******************************************************************************
+ * elfnote.h
+ *
+ * Definitions used for the Xen ELF notes.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2006, Ian Campbell, XenSource Ltd.
+ */
+
+#ifndef __XEN_PUBLIC_ELFNOTE_H__
+#define __XEN_PUBLIC_ELFNOTE_H__
+
+/*
+ * The notes should live in a SHT_NOTE segment and have "Xen" in the
+ * name field.
+ *
+ * Numeric types are either 4 or 8 bytes depending on the content of
+ * the desc field.
+ *
+ * LEGACY indicated the fields in the legacy __xen_guest string which
+ * this a note type replaces.
+ */
+
+/*
+ * NAME=VALUE pair (string).
+ *
+ * LEGACY: FEATURES and PAE
+ */
+#define XEN_ELFNOTE_INFO           0
+
+/*
+ * The virtual address of the entry point (numeric).
+ *
+ * LEGACY: VIRT_ENTRY
+ */
+#define XEN_ELFNOTE_ENTRY          1
+
+/* The virtual address of the hypercall transfer page (numeric).
+ *
+ * LEGACY: HYPERCALL_PAGE. (n.b. legacy value is a physical page
+ * number not a virtual address)
+ */
+#define XEN_ELFNOTE_HYPERCALL_PAGE 2
+
+/* The virtual address where the kernel image should be mapped (numeric).
+ *
+ * Defaults to 0.
+ *
+ * LEGACY: VIRT_BASE
+ */
+#define XEN_ELFNOTE_VIRT_BASE      3
+
+/*
+ * The offset of the ELF paddr field from the acutal required
+ * psuedo-physical address (numeric).
+ *
+ * This is used to maintain backwards compatibility with older kernels
+ * which wrote __PAGE_OFFSET into that field. This field defaults to 0
+ * if not present.
+ *
+ * LEGACY: ELF_PADDR_OFFSET. (n.b. legacy default is VIRT_BASE)
+ */
+#define XEN_ELFNOTE_PADDR_OFFSET   4
+
+/*
+ * The version of Xen that we work with (string).
+ *
+ * LEGACY: XEN_VER
+ */
+#define XEN_ELFNOTE_XEN_VERSION    5
+
+/*
+ * The name of the guest operating system (string).
+ *
+ * LEGACY: GUEST_OS
+ */
+#define XEN_ELFNOTE_GUEST_OS       6
+
+/*
+ * The version of the guest operating system (string).
+ *
+ * LEGACY: GUEST_VER
+ */
+#define XEN_ELFNOTE_GUEST_VERSION  7
+
+/*
+ * The loader type (string).
+ *
+ * LEGACY: LOADER
+ */
+#define XEN_ELFNOTE_LOADER         8
+
+/*
+ * The kernel supports PAE (x86/32 only, string = "yes" or "no").
+ *
+ * LEGACY: PAE (n.b. The legacy interface included a provision to
+ * indicate 'extended-cr3' support allowing L3 page tables to be
+ * placed above 4G. It is assumed that any kernel new enough to use
+ * these ELF notes will include this and therefore "yes" here is
+ * equivalent to "yes[entended-cr3]" in the __xen_guest interface.
+ */
+#define XEN_ELFNOTE_PAE_MODE       9
+
+/*
+ * The features supported/required by this kernel (string).
+ *
+ * The string must consist of a list of feature names (as given in
+ * features.h, without the "XENFEAT_" prefix) separated by '|'
+ * characters. If a feature is required for the kernel to function
+ * then the feature name must be preceded by a '!' character.
+ *
+ * LEGACY: FEATURES
+ */
+#define XEN_ELFNOTE_FEATURES      10
+
+/*
+ * The kernel requires the symbol table to be loaded (string = "yes" or "no")
+ * LEGACY: BSD_SYMTAB (n.b. The legacy treated the presence or absence
+ * of this string as a boolean flag rather than requiring "yes" or
+ * "no".
+ */
+#define XEN_ELFNOTE_BSD_SYMTAB    11
+
+/*
+ * The lowest address the hypervisor hole can begin at (numeric).
+ *
+ * This must not be set higher than HYPERVISOR_VIRT_START. Its presence
+ * also indicates to the hypervisor that the kernel can deal with the
+ * hole starting at a higher address.
+ */
+#define XEN_ELFNOTE_HV_START_LOW  12
+
+/*
+ * System information exported through crash notes.
+ *
+ * The kexec / kdump code will create one XEN_ELFNOTE_CRASH_INFO 
+ * note in case of a system crash. This note will contain various
+ * information about the system, see xen/include/xen/elfcore.h.
+ */
+#define XEN_ELFNOTE_CRASH_INFO 0x1000001
+
+/*
+ * System registers exported through crash notes.
+ *
+ * The kexec / kdump code will create one XEN_ELFNOTE_CRASH_REGS 
+ * note per cpu in case of a system crash. This note is architecture
+ * specific and will contain registers not saved in the "CORE" note.
+ * See xen/include/xen/elfcore.h for more information.
+ */
+#define XEN_ELFNOTE_CRASH_REGS 0x1000002
+
+#endif /* __XEN_PUBLIC_ELFNOTE_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/event_channel.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,251 @@
+/******************************************************************************
+ * event_channel.h
+ * 
+ * Event channels between domains.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2003-2004, K A Fraser.
+ */
+
+#ifndef __XEN_PUBLIC_EVENT_CHANNEL_H__
+#define __XEN_PUBLIC_EVENT_CHANNEL_H__
+
+/*
+ * Prototype for this hypercall is:
+ *  int event_channel_op(int cmd, void *args)
+ * @cmd  == EVTCHNOP_??? (event-channel operation).
+ * @args == Operation-specific extra arguments (NULL if none).
+ */
+
+typedef uint32_t evtchn_port_t;
+DEFINE_XEN_GUEST_HANDLE(evtchn_port_t);
+
+/*
+ * EVTCHNOP_alloc_unbound: Allocate a port in domain <dom> and mark as
+ * accepting interdomain bindings from domain <remote_dom>. A fresh port
+ * is allocated in <dom> and returned as <port>.
+ * NOTES:
+ *  1. If the caller is unprivileged then <dom> must be DOMID_SELF.
+ *  2. <rdom> may be DOMID_SELF, allowing loopback connections.
+ */
+#define EVTCHNOP_alloc_unbound    6
+struct evtchn_alloc_unbound {
+    /* IN parameters */
+    domid_t dom, remote_dom;
+    /* OUT parameters */
+    evtchn_port_t port;
+};
+typedef struct evtchn_alloc_unbound evtchn_alloc_unbound_t;
+
+/*
+ * EVTCHNOP_bind_interdomain: Construct an interdomain event channel between
+ * the calling domain and <remote_dom>. <remote_dom,remote_port> must identify
+ * a port that is unbound and marked as accepting bindings from the calling
+ * domain. A fresh port is allocated in the calling domain and returned as
+ * <local_port>.
+ * NOTES:
+ *  2. <remote_dom> may be DOMID_SELF, allowing loopback connections.
+ */
+#define EVTCHNOP_bind_interdomain 0
+struct evtchn_bind_interdomain {
+    /* IN parameters. */
+    domid_t remote_dom;
+    evtchn_port_t remote_port;
+    /* OUT parameters. */
+    evtchn_port_t local_port;
+};
+typedef struct evtchn_bind_interdomain evtchn_bind_interdomain_t;
+
+/*
+ * EVTCHNOP_bind_virq: Bind a local event channel to VIRQ <irq> on specified
+ * vcpu.
+ * NOTES:
+ *  1. Virtual IRQs are classified as per-vcpu or global. See the VIRQ list
+ *     in xen.h for the classification of each VIRQ.
+ *  2. Global VIRQs must be allocated on VCPU0 but can subsequently be
+ *     re-bound via EVTCHNOP_bind_vcpu.
+ *  3. Per-vcpu VIRQs may be bound to at most one event channel per vcpu.
+ *     The allocated event channel is bound to the specified vcpu and the
+ *     binding cannot be changed.
+ */
+#define EVTCHNOP_bind_virq        1
+struct evtchn_bind_virq {
+    /* IN parameters. */
+    uint32_t virq;
+    uint32_t vcpu;
+    /* OUT parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_bind_virq evtchn_bind_virq_t;
+
+/*
+ * EVTCHNOP_bind_pirq: Bind a local event channel to PIRQ <irq>.
+ * NOTES:
+ *  1. A physical IRQ may be bound to at most one event channel per domain.
+ *  2. Only a sufficiently-privileged domain may bind to a physical IRQ.
+ */
+#define EVTCHNOP_bind_pirq        2
+struct evtchn_bind_pirq {
+    /* IN parameters. */
+    uint32_t pirq;
+#define BIND_PIRQ__WILL_SHARE 1
+    uint32_t flags; /* BIND_PIRQ__* */
+    /* OUT parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_bind_pirq evtchn_bind_pirq_t;
+
+/*
+ * EVTCHNOP_bind_ipi: Bind a local event channel to receive events.
+ * NOTES:
+ *  1. The allocated event channel is bound to the specified vcpu. The binding
+ *     may not be changed.
+ */
+#define EVTCHNOP_bind_ipi         7
+struct evtchn_bind_ipi {
+    uint32_t vcpu;
+    /* OUT parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_bind_ipi evtchn_bind_ipi_t;
+
+/*
+ * EVTCHNOP_close: Close a local event channel <port>. If the channel is
+ * interdomain then the remote end is placed in the unbound state
+ * (EVTCHNSTAT_unbound), awaiting a new connection.
+ */
+#define EVTCHNOP_close            3
+struct evtchn_close {
+    /* IN parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_close evtchn_close_t;
+
+/*
+ * EVTCHNOP_send: Send an event to the remote end of the channel whose local
+ * endpoint is <port>.
+ */
+#define EVTCHNOP_send             4
+struct evtchn_send {
+    /* IN parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_send evtchn_send_t;
+
+/*
+ * EVTCHNOP_status: Get the current status of the communication channel which
+ * has an endpoint at <dom, port>.
+ * NOTES:
+ *  1. <dom> may be specified as DOMID_SELF.
+ *  2. Only a sufficiently-privileged domain may obtain the status of an event
+ *     channel for which <dom> is not DOMID_SELF.
+ */
+#define EVTCHNOP_status           5
+struct evtchn_status {
+    /* IN parameters */
+    domid_t  dom;
+    evtchn_port_t port;
+    /* OUT parameters */
+#define EVTCHNSTAT_closed       0  /* Channel is not in use.                 */
+#define EVTCHNSTAT_unbound      1  /* Channel is waiting interdom connection.*/
+#define EVTCHNSTAT_interdomain  2  /* Channel is connected to remote domain. */
+#define EVTCHNSTAT_pirq         3  /* Channel is bound to a phys IRQ line.   */
+#define EVTCHNSTAT_virq         4  /* Channel is bound to a virtual IRQ line */
+#define EVTCHNSTAT_ipi          5  /* Channel is bound to a virtual IPI line */
+    uint32_t status;
+    uint32_t vcpu;                 /* VCPU to which this channel is bound.   */
+    union {
+        struct {
+            domid_t dom;
+        } unbound; /* EVTCHNSTAT_unbound */
+        struct {
+            domid_t dom;
+            evtchn_port_t port;
+        } interdomain; /* EVTCHNSTAT_interdomain */
+        uint32_t pirq;      /* EVTCHNSTAT_pirq        */
+        uint32_t virq;      /* EVTCHNSTAT_virq        */
+    } u;
+};
+typedef struct evtchn_status evtchn_status_t;
+
+/*
+ * EVTCHNOP_bind_vcpu: Specify which vcpu a channel should notify when an
+ * event is pending.
+ * NOTES:
+ *  1. IPI-bound channels always notify the vcpu specified at bind time.
+ *     This binding cannot be changed.
+ *  2. Per-VCPU VIRQ channels always notify the vcpu specified at bind time.
+ *     This binding cannot be changed.
+ *  3. All other channels notify vcpu0 by default. This default is set when
+ *     the channel is allocated (a port that is freed and subsequently reused
+ *     has its binding reset to vcpu0).
+ */
+#define EVTCHNOP_bind_vcpu        8
+struct evtchn_bind_vcpu {
+    /* IN parameters. */
+    evtchn_port_t port;
+    uint32_t vcpu;
+};
+typedef struct evtchn_bind_vcpu evtchn_bind_vcpu_t;
+
+/*
+ * EVTCHNOP_unmask: Unmask the specified local event-channel port and deliver
+ * a notification to the appropriate VCPU if an event is pending.
+ */
+#define EVTCHNOP_unmask           9
+struct evtchn_unmask {
+    /* IN parameters. */
+    evtchn_port_t port;
+};
+typedef struct evtchn_unmask evtchn_unmask_t;
+
+/*
+ * Argument to event_channel_op_compat() hypercall. Superceded by new
+ * event_channel_op() hypercall since 0x00030202.
+ */
+struct evtchn_op {
+    uint32_t cmd; /* EVTCHNOP_* */
+    union {
+        struct evtchn_alloc_unbound    alloc_unbound;
+        struct evtchn_bind_interdomain bind_interdomain;
+        struct evtchn_bind_virq        bind_virq;
+        struct evtchn_bind_pirq        bind_pirq;
+        struct evtchn_bind_ipi         bind_ipi;
+        struct evtchn_close            close;
+        struct evtchn_send             send;
+        struct evtchn_status           status;
+        struct evtchn_bind_vcpu        bind_vcpu;
+        struct evtchn_unmask           unmask;
+    } u;
+};
+typedef struct evtchn_op evtchn_op_t;
+DEFINE_XEN_GUEST_HANDLE(evtchn_op_t);
+
+#endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/features.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,71 @@
+/******************************************************************************
+ * features.h
+ * 
+ * Feature flags, reported by XENVER_get_features.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2006, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_FEATURES_H__
+#define __XEN_PUBLIC_FEATURES_H__
+
+/*
+ * If set, the guest does not need to write-protect its pagetables, and can
+ * update them via direct writes.
+ */
+#define XENFEAT_writable_page_tables       0
+
+/*
+ * If set, the guest does not need to write-protect its segment descriptor
+ * tables, and can update them via direct writes.
+ */
+#define XENFEAT_writable_descriptor_tables 1
+
+/*
+ * If set, translation between the guest's 'pseudo-physical' address space
+ * and the host's machine address space are handled by the hypervisor. In this
+ * mode the guest does not need to perform phys-to/from-machine translations
+ * when performing page table operations.
+ */
+#define XENFEAT_auto_translated_physmap    2
+
+/* If set, the guest is running in supervisor mode (e.g., x86 ring 0). */
+#define XENFEAT_supervisor_mode_kernel     3
+
+/*
+ * If set, the guest does not need to allocate x86 PAE page directories
+ * below 4GB. This flag is usually implied by auto_translated_physmap.
+ */
+#define XENFEAT_pae_pgdir_above_4gb        4
+
+#define XENFEAT_NR_SUBMAPS 1
+
+#endif /* __XEN_PUBLIC_FEATURES_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/grant_table.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,380 @@
+/******************************************************************************
+ * grant_table.h
+ * 
+ * Interface for granting foreign access to page frames, and receiving
+ * page-ownership transfers.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2004, K A Fraser
+ */
+
+#ifndef __XEN_PUBLIC_GRANT_TABLE_H__
+#define __XEN_PUBLIC_GRANT_TABLE_H__
+
+
+/***********************************
+ * GRANT TABLE REPRESENTATION
+ */
+
+/* Some rough guidelines on accessing and updating grant-table entries
+ * in a concurrency-safe manner. For more information, Linux contains a
+ * reference implementation for guest OSes (arch/xen/kernel/grant_table.c).
+ * 
+ * NB. WMB is a no-op on current-generation x86 processors. However, a
+ *     compiler barrier will still be required.
+ * 
+ * Introducing a valid entry into the grant table:
+ *  1. Write ent->domid.
+ *  2. Write ent->frame:
+ *      GTF_permit_access:   Frame to which access is permitted.
+ *      GTF_accept_transfer: Pseudo-phys frame slot being filled by new
+ *                           frame, or zero if none.
+ *  3. Write memory barrier (WMB).
+ *  4. Write ent->flags, inc. valid type.
+ * 
+ * Invalidating an unused GTF_permit_access entry:
+ *  1. flags = ent->flags.
+ *  2. Observe that !(flags & (GTF_reading|GTF_writing)).
+ *  3. Check result of SMP-safe CMPXCHG(&ent->flags, flags, 0).
+ *  NB. No need for WMB as reuse of entry is control-dependent on success of
+ *      step 3, and all architectures guarantee ordering of ctrl-dep writes.
+ *
+ * Invalidating an in-use GTF_permit_access entry:
+ *  This cannot be done directly. Request assistance from the domain controller
+ *  which can set a timeout on the use of a grant entry and take necessary
+ *  action. (NB. This is not yet implemented!).
+ * 
+ * Invalidating an unused GTF_accept_transfer entry:
+ *  1. flags = ent->flags.
+ *  2. Observe that !(flags & GTF_transfer_committed). [*]
+ *  3. Check result of SMP-safe CMPXCHG(&ent->flags, flags, 0).
+ *  NB. No need for WMB as reuse of entry is control-dependent on success of
+ *      step 3, and all architectures guarantee ordering of ctrl-dep writes.
+ *  [*] If GTF_transfer_committed is set then the grant entry is 'committed'.
+ *      The guest must /not/ modify the grant entry until the address of the
+ *      transferred frame is written. It is safe for the guest to spin waiting
+ *      for this to occur (detect by observing GTF_transfer_completed in
+ *      ent->flags).
+ *
+ * Invalidating a committed GTF_accept_transfer entry:
+ *  1. Wait for (ent->flags & GTF_transfer_completed).
+ *
+ * Changing a GTF_permit_access from writable to read-only:
+ *  Use SMP-safe CMPXCHG to set GTF_readonly, while checking !GTF_writing.
+ * 
+ * Changing a GTF_permit_access from read-only to writable:
+ *  Use SMP-safe bit-setting instruction.
+ */
+
+/*
+ * A grant table comprises a packed array of grant entries in one or more
+ * page frames shared between Xen and a guest.
+ * [XEN]: This field is written by Xen and read by the sharing guest.
+ * [GST]: This field is written by the guest and read by Xen.
+ */
+struct grant_entry {
+    /* GTF_xxx: various type and flag information.  [XEN,GST] */
+    uint16_t flags;
+    /* The domain being granted foreign privileges. [GST] */
+    domid_t  domid;
+    /*
+     * GTF_permit_access: Frame that @domid is allowed to map and access. [GST]
+     * GTF_accept_transfer: Frame whose ownership transferred by @domid. [XEN]
+     */
+    uint32_t frame;
+};
+typedef struct grant_entry grant_entry_t;
+
+/*
+ * Type of grant entry.
+ *  GTF_invalid: This grant entry grants no privileges.
+ *  GTF_permit_access: Allow @domid to map/access @frame.
+ *  GTF_accept_transfer: Allow @domid to transfer ownership of one page frame
+ *                       to this guest. Xen writes the page number to @frame.
+ */
+#define GTF_invalid         (0U<<0)
+#define GTF_permit_access   (1U<<0)
+#define GTF_accept_transfer (2U<<0)
+#define GTF_type_mask       (3U<<0)
+
+/*
+ * Subflags for GTF_permit_access.
+ *  GTF_readonly: Restrict @domid to read-only mappings and accesses. [GST]
+ *  GTF_reading: Grant entry is currently mapped for reading by @domid. [XEN]
+ *  GTF_writing: Grant entry is currently mapped for writing by @domid. [XEN]
+ */
+#define _GTF_readonly       (2)
+#define GTF_readonly        (1U<<_GTF_readonly)
+#define _GTF_reading        (3)
+#define GTF_reading         (1U<<_GTF_reading)
+#define _GTF_writing        (4)
+#define GTF_writing         (1U<<_GTF_writing)
+
+/*
+ * Subflags for GTF_accept_transfer:
+ *  GTF_transfer_committed: Xen sets this flag to indicate that it is committed
+ *      to transferring ownership of a page frame. When a guest sees this flag
+ *      it must /not/ modify the grant entry until GTF_transfer_completed is
+ *      set by Xen.
+ *  GTF_transfer_completed: It is safe for the guest to spin-wait on this flag
+ *      after reading GTF_transfer_committed. Xen will always write the frame
+ *      address, followed by ORing this flag, in a timely manner.
+ */
+#define _GTF_transfer_committed (2)
+#define GTF_transfer_committed  (1U<<_GTF_transfer_committed)
+#define _GTF_transfer_completed (3)
+#define GTF_transfer_completed  (1U<<_GTF_transfer_completed)
+
+
+/***********************************
+ * GRANT TABLE QUERIES AND USES
+ */
+
+/*
+ * Reference to a grant entry in a specified domain's grant table.
+ */
+typedef uint32_t grant_ref_t;
+
+/*
+ * Handle to track a mapping created via a grant reference.
+ */
+typedef uint32_t grant_handle_t;
+
+/*
+ * GNTTABOP_map_grant_ref: Map the grant entry (<dom>,<ref>) for access
+ * by devices and/or host CPUs. If successful, <handle> is a tracking number
+ * that must be presented later to destroy the mapping(s). On error, <handle>
+ * is a negative status code.
+ * NOTES:
+ *  1. If GNTMAP_device_map is specified then <dev_bus_addr> is the address
+ *     via which I/O devices may access the granted frame.
+ *  2. If GNTMAP_host_map is specified then a mapping will be added at
+ *     either a host virtual address in the current address space, or at
+ *     a PTE at the specified machine address.  The type of mapping to
+ *     perform is selected through the GNTMAP_contains_pte flag, and the 
+ *     address is specified in <host_addr>.
+ *  3. Mappings should only be destroyed via GNTTABOP_unmap_grant_ref. If a
+ *     host mapping is destroyed by other means then it is *NOT* guaranteed
+ *     to be accounted to the correct grant reference!
+ */
+#define GNTTABOP_map_grant_ref        0
+struct gnttab_map_grant_ref {
+    /* IN parameters. */
+    uint64_t host_addr;
+    uint32_t flags;               /* GNTMAP_* */
+    grant_ref_t ref;
+    domid_t  dom;
+    /* OUT parameters. */
+    int16_t  status;              /* GNTST_* */
+    grant_handle_t handle;
+    uint64_t dev_bus_addr;
+};
+typedef struct gnttab_map_grant_ref gnttab_map_grant_ref_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_map_grant_ref_t);
+
+/*
+ * GNTTABOP_unmap_grant_ref: Destroy one or more grant-reference mappings
+ * tracked by <handle>. If <host_addr> or <dev_bus_addr> is zero, that
+ * field is ignored. If non-zero, they must refer to a device/host mapping
+ * that is tracked by <handle>
+ * NOTES:
+ *  1. The call may fail in an undefined manner if either mapping is not
+ *     tracked by <handle>.
+ *  3. After executing a batch of unmaps, it is guaranteed that no stale
+ *     mappings will remain in the device or host TLBs.
+ */
+#define GNTTABOP_unmap_grant_ref      1
+struct gnttab_unmap_grant_ref {
+    /* IN parameters. */
+    uint64_t host_addr;
+    uint64_t dev_bus_addr;
+    grant_handle_t handle;
+    /* OUT parameters. */
+    int16_t  status;              /* GNTST_* */
+};
+typedef struct gnttab_unmap_grant_ref gnttab_unmap_grant_ref_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t);
+
+/*
+ * GNTTABOP_setup_table: Set up a grant table for <dom> comprising at least
+ * <nr_frames> pages. The frame addresses are written to the <frame_list>.
+ * Only <nr_frames> addresses are written, even if the table is larger.
+ * NOTES:
+ *  1. <dom> may be specified as DOMID_SELF.
+ *  2. Only a sufficiently-privileged domain may specify <dom> != DOMID_SELF.
+ *  3. Xen may not support more than a single grant-table page per domain.
+ */
+#define GNTTABOP_setup_table          2
+struct gnttab_setup_table {
+    /* IN parameters. */
+    domid_t  dom;
+    uint32_t nr_frames;
+    /* OUT parameters. */
+    int16_t  status;              /* GNTST_* */
+    XEN_GUEST_HANDLE(ulong) frame_list;
+};
+typedef struct gnttab_setup_table gnttab_setup_table_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_setup_table_t);
+
+/*
+ * GNTTABOP_dump_table: Dump the contents of the grant table to the
+ * xen console. Debugging use only.
+ */
+#define GNTTABOP_dump_table           3
+struct gnttab_dump_table {
+    /* IN parameters. */
+    domid_t dom;
+    /* OUT parameters. */
+    int16_t status;               /* GNTST_* */
+};
+typedef struct gnttab_dump_table gnttab_dump_table_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_dump_table_t);
+
+/*
+ * GNTTABOP_transfer_grant_ref: Transfer <frame> to a foreign domain. The
+ * foreign domain has previously registered its interest in the transfer via
+ * <domid, ref>.
+ * 
+ * Note that, even if the transfer fails, the specified page no longer belongs
+ * to the calling domain *unless* the error is GNTST_bad_page.
+ */
+#define GNTTABOP_transfer                4
+struct gnttab_transfer {
+    /* IN parameters. */
+    xen_pfn_t     mfn;
+    domid_t       domid;
+    grant_ref_t   ref;
+    /* OUT parameters. */
+    int16_t       status;
+};
+typedef struct gnttab_transfer gnttab_transfer_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_transfer_t);
+
+
+/*
+ * GNTTABOP_copy: Hypervisor based copy
+ * source and destinations can be eithers MFNs or, for foreign domains,
+ * grant references. the foreign domain has to grant read/write access
+ * in its grant table.
+ *
+ * The flags specify what type source and destinations are (either MFN
+ * or grant reference).
+ *
+ * Note that this can also be used to copy data between two domains
+ * via a third party if the source and destination domains had previously
+ * grant appropriate access to their pages to the third party.
+ *
+ * source_offset specifies an offset in the source frame, dest_offset
+ * the offset in the target frame and  len specifies the number of
+ * bytes to be copied.
+ */
+
+#define _GNTCOPY_source_gref      (0)
+#define GNTCOPY_source_gref       (1<<_GNTCOPY_source_gref)
+#define _GNTCOPY_dest_gref        (1)
+#define GNTCOPY_dest_gref         (1<<_GNTCOPY_dest_gref)
+
+#define GNTTABOP_copy                 5
+typedef struct gnttab_copy {
+    /* IN parameters. */
+    struct {
+        union {
+            grant_ref_t ref;
+            xen_pfn_t   gmfn;
+        } u;
+        domid_t  domid;
+        uint16_t offset;
+    } source, dest;
+    uint16_t      len;
+    uint16_t      flags;          /* GNTCOPY_* */
+    /* OUT parameters. */
+    int16_t       status;
+} gnttab_copy_t;
+DEFINE_XEN_GUEST_HANDLE(gnttab_copy_t);
+
+
+/*
+ * Bitfield values for update_pin_status.flags.
+ */
+ /* Map the grant entry for access by I/O devices. */
+#define _GNTMAP_device_map      (0)
+#define GNTMAP_device_map       (1<<_GNTMAP_device_map)
+ /* Map the grant entry for access by host CPUs. */
+#define _GNTMAP_host_map        (1)
+#define GNTMAP_host_map         (1<<_GNTMAP_host_map)
+ /* Accesses to the granted frame will be restricted to read-only access. */
+#define _GNTMAP_readonly        (2)
+#define GNTMAP_readonly         (1<<_GNTMAP_readonly)
+ /*
+  * GNTMAP_host_map subflag:
+  *  0 => The host mapping is usable only by the guest OS.
+  *  1 => The host mapping is usable by guest OS + current application.
+  */
+#define _GNTMAP_application_map (3)
+#define GNTMAP_application_map  (1<<_GNTMAP_application_map)
+
+ /*
+  * GNTMAP_contains_pte subflag:
+  *  0 => This map request contains a host virtual address.
+  *  1 => This map request contains the machine addess of the PTE to update.
+  */
+#define _GNTMAP_contains_pte    (4)
+#define GNTMAP_contains_pte     (1<<_GNTMAP_contains_pte)
+
+/*
+ * Values for error status returns. All errors are -ve.
+ */
+#define GNTST_okay             (0)  /* Normal return.                        */
+#define GNTST_general_error    (-1) /* General undefined error.              */
+#define GNTST_bad_domain       (-2) /* Unrecognsed domain id.                */
+#define GNTST_bad_gntref       (-3) /* Unrecognised or inappropriate gntref. */
+#define GNTST_bad_handle       (-4) /* Unrecognised or inappropriate handle. */
+#define GNTST_bad_virt_addr    (-5) /* Inappropriate virtual address to map. */
+#define GNTST_bad_dev_addr     (-6) /* Inappropriate device address to unmap.*/
+#define GNTST_no_device_space  (-7) /* Out of space in I/O MMU.              */
+#define GNTST_permission_denied (-8) /* Not enough privilege for operation.  */
+#define GNTST_bad_page         (-9) /* Specified page was invalid for op.    */
+#define GNTST_bad_copy_arg    (-10) /* copy arguments cross page boundary */
+
+#define GNTTABOP_error_msgs {                   \
+    "okay",                                     \
+    "undefined error",                          \
+    "unrecognised domain id",                   \
+    "invalid grant reference",                  \
+    "invalid mapping handle",                   \
+    "invalid virtual address",                  \
+    "invalid device address",                   \
+    "no spare translation slot in the I/O MMU", \
+    "permission denied",                        \
+    "bad page",                                 \
+    "copy arguments cross page boundary"        \
+}
+
+#endif /* __XEN_PUBLIC_GRANT_TABLE_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/hvm/hvm_op.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,53 @@
+#ifndef __XEN_PUBLIC_HVM_HVM_OP_H__
+#define __XEN_PUBLIC_HVM_HVM_OP_H__
+
+/* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */
+#define HVMOP_set_param           0
+#define HVMOP_get_param           1
+struct xen_hvm_param {
+    domid_t  domid;    /* IN */
+    uint32_t index;    /* IN */
+    uint64_t value;    /* IN/OUT */
+};
+typedef struct xen_hvm_param xen_hvm_param_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_param_t);
+
+/* Set the logical level of one of a domain's PCI INTx wires. */
+#define HVMOP_set_pci_intx_level  2
+struct xen_hvm_set_pci_intx_level {
+    /* Domain to be updated. */
+    domid_t  domid;
+    /* PCI INTx identification in PCI topology (domain:bus:device:intx). */
+    uint8_t  domain, bus, device, intx;
+    /* Assertion level (0 = unasserted, 1 = asserted). */
+    uint8_t  level;
+};
+typedef struct xen_hvm_set_pci_intx_level xen_hvm_set_pci_intx_level_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t);
+
+/* Set the logical level of one of a domain's ISA IRQ wires. */
+#define HVMOP_set_isa_irq_level   3
+struct xen_hvm_set_isa_irq_level {
+    /* Domain to be updated. */
+    domid_t  domid;
+    /* ISA device identification, by ISA IRQ (0-15). */
+    uint8_t  isa_irq;
+    /* Assertion level (0 = unasserted, 1 = asserted). */
+    uint8_t  level;
+};
+typedef struct xen_hvm_set_isa_irq_level xen_hvm_set_isa_irq_level_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t);
+
+#define HVMOP_set_pci_link_route  4
+struct xen_hvm_set_pci_link_route {
+    /* Domain to be updated. */
+    domid_t  domid;
+    /* PCI link identifier (0-3). */
+    uint8_t  link;
+    /* ISA IRQ (1-15), or 0 (disable link). */
+    uint8_t  isa_irq;
+};
+typedef struct xen_hvm_set_pci_link_route xen_hvm_set_pci_link_route_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t);
+
+#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/hvm/params.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,36 @@
+
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef __XEN_PUBLIC_HVM_PARAMS_H__
+#define __XEN_PUBLIC_HVM_PARAMS_H__
+
+#include "hvm_op.h"
+
+/* Parameter space for HVMOP_{set,get}_param. */
+#define HVM_PARAM_CALLBACK_IRQ 0
+#define HVM_PARAM_STORE_PFN    1
+#define HVM_PARAM_STORE_EVTCHN 2
+#define HVM_PARAM_PAE_ENABLED  4
+#define HVM_PARAM_IOREQ_PFN    5
+#define HVM_PARAM_BUFIOREQ_PFN 6
+#define HVM_NR_PARAMS          7
+
+#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/blkif.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,128 @@
+/******************************************************************************
+ * blkif.h
+ * 
+ * Unified block-device I/O interface for Xen guest OSes.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2003-2004, Keir Fraser
+ */
+
+#ifndef __XEN_PUBLIC_IO_BLKIF_H__
+#define __XEN_PUBLIC_IO_BLKIF_H__
+
+#include "ring.h"
+#include "../grant_table.h"
+
+/*
+ * Front->back notifications: When enqueuing a new request, sending a
+ * notification can be made conditional on req_event (i.e., the generic
+ * hold-off mechanism provided by the ring macros). Backends must set
+ * req_event appropriately (e.g., using RING_FINAL_CHECK_FOR_REQUESTS()).
+ * 
+ * Back->front notifications: When enqueuing a new response, sending a
+ * notification can be made conditional on rsp_event (i.e., the generic
+ * hold-off mechanism provided by the ring macros). Frontends must set
+ * rsp_event appropriately (e.g., using RING_FINAL_CHECK_FOR_RESPONSES()).
+ */
+
+#ifndef blkif_vdev_t
+#define blkif_vdev_t   uint16_t
+#endif
+#define blkif_sector_t uint64_t
+
+/*
+ * REQUEST CODES.
+ */
+#define BLKIF_OP_READ              0
+#define BLKIF_OP_WRITE             1
+/*
+ * Recognised only if "feature-barrier" is present in backend xenbus info.
+ * The "feature_barrier" node contains a boolean indicating whether barrier
+ * requests or disk cache flush requests are likely to succeed or fail.
+ * Either way, a barrier request or a disk cache flush request
+ * may fail at any time with BLKIF_RSP_EOPNOTSUPP if it is unsupported by
+ * the underlying block-device hardware. The boolean simply indicates whether
+ * or not it is worthwhile for the frontend to attempt barrier/flush requests.
+ * If a backend does not recognise BLKIF_OP_WRITE_BARRIER, it should *not*
+ * create the "feature-barrier" node!
+ */
+#define BLKIF_OP_WRITE_BARRIER     2
+#define BLKIF_OP_FLUSH_DISKCACHE   3
+
+/*
+ * Maximum scatter/gather segments per request.
+ * This is carefully chosen so that sizeof(blkif_ring_t) <= PAGE_SIZE.
+ * NB. This could be 12 if the ring indexes weren't stored in the same page.
+ */
+#define BLKIF_MAX_SEGMENTS_PER_REQUEST 11
+
+struct blkif_request {
+    uint8_t        operation;    /* BLKIF_OP_???                         */
+    uint8_t        nr_segments;  /* number of segments                   */
+    blkif_vdev_t   handle;       /* only for read/write requests         */
+    uint64_t       id;           /* private guest value, echoed in resp  */
+    blkif_sector_t sector_number;/* start sector idx on disk (r/w only)  */
+    struct blkif_request_segment {
+        grant_ref_t gref;        /* reference to I/O buffer frame        */
+        /* @first_sect: first sector in frame to transfer (inclusive).   */
+        /* @last_sect: last sector in frame to transfer (inclusive).     */
+        uint8_t     first_sect, last_sect;
+    } seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+};
+typedef struct blkif_request blkif_request_t;
+
+struct blkif_response {
+    uint64_t        id;              /* copied from request */
+    uint8_t         operation;       /* copied from request */
+    int16_t         status;          /* BLKIF_RSP_???       */
+};
+typedef struct blkif_response blkif_response_t;
+
+/*
+ * STATUS RETURN CODES.
+ */
+ /* Operation not supported (only happens on barrier writes). */
+#define BLKIF_RSP_EOPNOTSUPP  -2
+ /* Operation failed for some unspecified reason (-EIO). */
+#define BLKIF_RSP_ERROR       -1
+ /* Operation completed successfully. */
+#define BLKIF_RSP_OKAY         0
+
+/*
+ * Generate blkif ring structures and types.
+ */
+
+DEFINE_RING_TYPES(blkif, struct blkif_request, struct blkif_response);
+
+#define VDISK_CDROM        0x1
+#define VDISK_REMOVABLE    0x2
+#define VDISK_READONLY     0x4
+
+#endif /* __XEN_PUBLIC_IO_BLKIF_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/console.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,51 @@
+/******************************************************************************
+ * console.h
+ * 
+ * Console I/O interface for Xen guest OSes.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Keir Fraser
+ */
+
+#ifndef __XEN_PUBLIC_IO_CONSOLE_H__
+#define __XEN_PUBLIC_IO_CONSOLE_H__
+
+typedef uint32_t XENCONS_RING_IDX;
+
+#define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1))
+
+struct xencons_interface {
+    char in[1024];
+    char out[2048];
+    XENCONS_RING_IDX in_cons, in_prod;
+    XENCONS_RING_IDX out_cons, out_prod;
+};
+
+#endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/netif.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,184 @@
+/******************************************************************************
+ * netif.h
+ * 
+ * Unified network-device I/O interface for Xen guest OSes.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2003-2004, Keir Fraser
+ */
+
+#ifndef __XEN_PUBLIC_IO_NETIF_H__
+#define __XEN_PUBLIC_IO_NETIF_H__
+
+#include "ring.h"
+#include "../grant_table.h"
+
+/*
+ * Notifications after enqueuing any type of message should be conditional on
+ * the appropriate req_event or rsp_event field in the shared ring.
+ * If the client sends notification for rx requests then it should specify
+ * feature 'feature-rx-notify' via xenbus. Otherwise the backend will assume
+ * that it cannot safely queue packets (as it may not be kicked to send them).
+ */
+
+/*
+ * This is the 'wire' format for packets:
+ *  Request 1: netif_tx_request -- NETTXF_* (any flags)
+ * [Request 2: netif_tx_extra]  (only if request 1 has NETTXF_extra_info)
+ * [Request 3: netif_tx_extra]  (only if request 2 has XEN_NETIF_EXTRA_MORE)
+ *  Request 4: netif_tx_request -- NETTXF_more_data
+ *  Request 5: netif_tx_request -- NETTXF_more_data
+ *  ...
+ *  Request N: netif_tx_request -- 0
+ */
+
+/* Protocol checksum field is blank in the packet (hardware offload)? */
+#define _NETTXF_csum_blank     (0)
+#define  NETTXF_csum_blank     (1U<<_NETTXF_csum_blank)
+
+/* Packet data has been validated against protocol checksum. */
+#define _NETTXF_data_validated (1)
+#define  NETTXF_data_validated (1U<<_NETTXF_data_validated)
+
+/* Packet continues in the next request descriptor. */
+#define _NETTXF_more_data      (2)
+#define  NETTXF_more_data      (1U<<_NETTXF_more_data)
+
+/* Packet to be followed by extra descriptor(s). */
+#define _NETTXF_extra_info     (3)
+#define  NETTXF_extra_info     (1U<<_NETTXF_extra_info)
+
+struct netif_tx_request {
+    grant_ref_t gref;      /* Reference to buffer page */
+    uint16_t offset;       /* Offset within buffer page */
+    uint16_t flags;        /* NETTXF_* */
+    uint16_t id;           /* Echoed in response message. */
+    uint16_t size;         /* Packet size in bytes.       */
+};
+typedef struct netif_tx_request netif_tx_request_t;
+
+/* Types of netif_extra_info descriptors. */
+#define XEN_NETIF_EXTRA_TYPE_NONE  (0)  /* Never used - invalid */
+#define XEN_NETIF_EXTRA_TYPE_GSO   (1)  /* u.gso */
+#define XEN_NETIF_EXTRA_TYPE_MAX   (2)
+
+/* netif_extra_info flags. */
+#define _XEN_NETIF_EXTRA_FLAG_MORE (0)
+#define XEN_NETIF_EXTRA_FLAG_MORE  (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)
+
+/* GSO types - only TCPv4 currently supported. */
+#define XEN_NETIF_GSO_TYPE_TCPV4        (1)
+
+/*
+ * This structure needs to fit within both netif_tx_request and
+ * netif_rx_response for compatibility.
+ */
+struct netif_extra_info {
+    uint8_t type;  /* XEN_NETIF_EXTRA_TYPE_* */
+    uint8_t flags; /* XEN_NETIF_EXTRA_FLAG_* */
+
+    union {
+        struct {
+            /*
+             * Maximum payload size of each segment. For example, for TCP this
+             * is just the path MSS.
+             */
+            uint16_t size;
+
+            /*
+             * GSO type. This determines the protocol of the packet and any
+             * extra features required to segment the packet properly.
+             */
+            uint8_t type; /* XEN_NETIF_GSO_TYPE_* */
+
+            /* Future expansion. */
+            uint8_t pad;
+
+            /*
+             * GSO features. This specifies any extra GSO features required
+             * to process this packet, such as ECN support for TCPv4.
+             */
+            uint16_t features; /* XEN_NETIF_GSO_FEAT_* */
+        } gso;
+
+        uint16_t pad[3];
+    } u;
+};
+
+struct netif_tx_response {
+    uint16_t id;
+    int16_t  status;       /* NETIF_RSP_* */
+};
+typedef struct netif_tx_response netif_tx_response_t;
+
+struct netif_rx_request {
+    uint16_t    id;        /* Echoed in response message.        */
+    grant_ref_t gref;      /* Reference to incoming granted frame */
+};
+typedef struct netif_rx_request netif_rx_request_t;
+
+/* Packet data has been validated against protocol checksum. */
+#define _NETRXF_data_validated (0)
+#define  NETRXF_data_validated (1U<<_NETRXF_data_validated)
+
+/* Protocol checksum field is blank in the packet (hardware offload)? */
+#define _NETRXF_csum_blank     (1)
+#define  NETRXF_csum_blank     (1U<<_NETRXF_csum_blank)
+
+/* Packet continues in the next request descriptor. */
+#define _NETRXF_more_data      (2)
+#define  NETRXF_more_data      (1U<<_NETRXF_more_data)
+
+/* Packet to be followed by extra descriptor(s). */
+#define _NETRXF_extra_info     (3)
+#define  NETRXF_extra_info     (1U<<_NETRXF_extra_info)
+
+struct netif_rx_response {
+    uint16_t id;
+    uint16_t offset;       /* Offset in page of start of received packet  */
+    uint16_t flags;        /* NETRXF_* */
+    int16_t  status;       /* -ve: BLKIF_RSP_* ; +ve: Rx'ed pkt size. */
+};
+typedef struct netif_rx_response netif_rx_response_t;
+
+/*
+ * Generate netif ring structures and types.
+ */
+
+DEFINE_RING_TYPES(netif_tx, struct netif_tx_request, struct netif_tx_response);
+DEFINE_RING_TYPES(netif_rx, struct netif_rx_request, struct netif_rx_response);
+
+#define NETIF_RSP_DROPPED         -2
+#define NETIF_RSP_ERROR           -1
+#define NETIF_RSP_OKAY             0
+/* No response: used for auxiliary requests (e.g., netif_tx_extra). */
+#define NETIF_RSP_NULL             1
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/ring.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,305 @@
+/******************************************************************************
+ * ring.h
+ * 
+ * Shared producer-consumer ring macros.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Tim Deegan and Andrew Warfield November 2004.
+ */
+
+#ifndef __XEN_PUBLIC_IO_RING_H__
+#define __XEN_PUBLIC_IO_RING_H__
+
+typedef unsigned int RING_IDX;
+
+/* Round a 32-bit unsigned constant down to the nearest power of two. */
+#define __RD2(_x)  (((_x) & 0x00000002) ? 0x2                  : ((_x) & 0x1))
+#define __RD4(_x)  (((_x) & 0x0000000c) ? __RD2((_x)>>2)<<2    : __RD2(_x))
+#define __RD8(_x)  (((_x) & 0x000000f0) ? __RD4((_x)>>4)<<4    : __RD4(_x))
+#define __RD16(_x) (((_x) & 0x0000ff00) ? __RD8((_x)>>8)<<8    : __RD8(_x))
+#define __RD32(_x) (((_x) & 0xffff0000) ? __RD16((_x)>>16)<<16 : __RD16(_x))
+
+/*
+ * Calculate size of a shared ring, given the total available space for the
+ * ring and indexes (_sz), and the name tag of the request/response structure.
+ * A ring contains as many entries as will fit, rounded down to the nearest 
+ * power of two (so we can mask with (size-1) to loop around).
+ */
+#define __RING_SIZE(_s, _sz) \
+    (__RD32(((_sz) - (long)(_s)->ring + (long)(_s)) / sizeof((_s)->ring[0])))
+
+/* Solaris equivalents */
+#ifdef _SOLARIS
+#define	wmb	membar_producer
+#define	mb	membar_enter
+#endif
+
+/*
+ * Macros to make the correct C datatypes for a new kind of ring.
+ * 
+ * To make a new ring datatype, you need to have two message structures,
+ * let's say request_t, and response_t already defined.
+ *
+ * In a header where you want the ring datatype declared, you then do:
+ *
+ *     DEFINE_RING_TYPES(mytag, request_t, response_t);
+ *
+ * These expand out to give you a set of types, as you can see below.
+ * The most important of these are:
+ * 
+ *     mytag_sring_t      - The shared ring.
+ *     mytag_front_ring_t - The 'front' half of the ring.
+ *     mytag_back_ring_t  - The 'back' half of the ring.
+ *
+ * To initialize a ring in your code you need to know the location and size
+ * of the shared memory area (PAGE_SIZE, for instance). To initialise
+ * the front half:
+ *
+ *     mytag_front_ring_t front_ring;
+ *     SHARED_RING_INIT((mytag_sring_t *)shared_page);
+ *     FRONT_RING_INIT(&front_ring, (mytag_sring_t *)shared_page, PAGE_SIZE);
+ *
+ * Initializing the back follows similarly (note that only the front
+ * initializes the shared ring):
+ *
+ *     mytag_back_ring_t back_ring;
+ *     BACK_RING_INIT(&back_ring, (mytag_sring_t *)shared_page, PAGE_SIZE);
+ */
+
+#define DEFINE_RING_TYPES(__name, __req_t, __rsp_t)                     \
+                                                                        \
+/* Shared ring entry */                                                 \
+union __name##_sring_entry {                                            \
+    __req_t req;                                                        \
+    __rsp_t rsp;                                                        \
+};                                                                      \
+                                                                        \
+/* Shared ring page */                                                  \
+struct __name##_sring {                                                 \
+    RING_IDX req_prod, req_event;                                       \
+    RING_IDX rsp_prod, rsp_event;                                       \
+    uint8_t  pad[48];                                                   \
+    union __name##_sring_entry ring[1]; /* variable-length */           \
+};                                                                      \
+                                                                        \
+/* "Front" end's private variables */                                   \
+struct __name##_front_ring {                                            \
+    RING_IDX req_prod_pvt;                                              \
+    RING_IDX rsp_cons;                                                  \
+    unsigned int nr_ents;                                               \
+    struct __name##_sring *sring;                                       \
+};                                                                      \
+                                                                        \
+/* "Back" end's private variables */                                    \
+struct __name##_back_ring {                                             \
+    RING_IDX rsp_prod_pvt;                                              \
+    RING_IDX req_cons;                                                  \
+    unsigned int nr_ents;                                               \
+    struct __name##_sring *sring;                                       \
+};                                                                      \
+                                                                        \
+/* Syntactic sugar */                                                   \
+typedef struct __name##_sring __name##_sring_t;                         \
+typedef struct __name##_front_ring __name##_front_ring_t;               \
+typedef struct __name##_back_ring __name##_back_ring_t
+
+/*
+ * Macros for manipulating rings.
+ * 
+ * FRONT_RING_whatever works on the "front end" of a ring: here 
+ * requests are pushed on to the ring and responses taken off it.
+ * 
+ * BACK_RING_whatever works on the "back end" of a ring: here 
+ * requests are taken off the ring and responses put on.
+ * 
+ * N.B. these macros do NO INTERLOCKS OR FLOW CONTROL. 
+ * This is OK in 1-for-1 request-response situations where the 
+ * requestor (front end) never has more than RING_SIZE()-1
+ * outstanding requests.
+ */
+
+/* Initialising empty rings */
+#define SHARED_RING_INIT(_s) do {                                       \
+    (_s)->req_prod  = (_s)->rsp_prod  = 0;                              \
+    (_s)->req_event = (_s)->rsp_event = 1;                              \
+    (void)memset((_s)->pad, 0, sizeof((_s)->pad));                      \
+} while(0)
+
+#define FRONT_RING_INIT(_r, _s, __size) do {                            \
+    (_r)->req_prod_pvt = 0;                                             \
+    (_r)->rsp_cons = 0;                                                 \
+    (_r)->nr_ents = __RING_SIZE(_s, __size);                            \
+    (_r)->sring = (_s);                                                 \
+} while (0)
+
+#define BACK_RING_INIT(_r, _s, __size) do {                             \
+    (_r)->rsp_prod_pvt = 0;                                             \
+    (_r)->req_cons = 0;                                                 \
+    (_r)->nr_ents = __RING_SIZE(_s, __size);                            \
+    (_r)->sring = (_s);                                                 \
+} while (0)
+
+/* Initialize to existing shared indexes -- for recovery */
+#define FRONT_RING_ATTACH(_r, _s, __size) do {                          \
+    (_r)->sring = (_s);                                                 \
+    (_r)->req_prod_pvt = (_s)->req_prod;                                \
+    (_r)->rsp_cons = (_s)->rsp_prod;                                    \
+    (_r)->nr_ents = __RING_SIZE(_s, __size);                            \
+} while (0)
+
+#define BACK_RING_ATTACH(_r, _s, __size) do {                           \
+    (_r)->sring = (_s);                                                 \
+    (_r)->rsp_prod_pvt = (_s)->rsp_prod;                                \
+    (_r)->req_cons = (_s)->req_prod;                                    \
+    (_r)->nr_ents = __RING_SIZE(_s, __size);                            \
+} while (0)
+
+/* How big is this ring? */
+#define RING_SIZE(_r)                                                   \
+    ((_r)->nr_ents)
+
+/* Number of free requests (for use on front side only). */
+#define RING_FREE_REQUESTS(_r)                                          \
+    (RING_SIZE(_r) - ((_r)->req_prod_pvt - (_r)->rsp_cons))
+
+/* Test if there is an empty slot available on the front ring.
+ * (This is only meaningful from the front. )
+ */
+#define RING_FULL(_r)                                                   \
+    (RING_FREE_REQUESTS(_r) == 0)
+
+/* Test if there are outstanding messages to be processed on a ring. */
+#define RING_HAS_UNCONSUMED_RESPONSES(_r)                               \
+    ((_r)->sring->rsp_prod - (_r)->rsp_cons)
+
+#ifdef __GNUC__
+#define RING_HAS_UNCONSUMED_REQUESTS(_r) ({                             \
+    unsigned int req = (_r)->sring->req_prod - (_r)->req_cons;          \
+    unsigned int rsp = RING_SIZE(_r) -                                  \
+        ((_r)->req_cons - (_r)->rsp_prod_pvt);                          \
+    req < rsp ? req : rsp;                                              \
+})
+#else
+/* Same as above, but without the nice GCC ({ ... }) syntax. */
+#define RING_HAS_UNCONSUMED_REQUESTS(_r)                                \
+    ((((_r)->sring->req_prod - (_r)->req_cons) <                        \
+      (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt))) ?        \
+     ((_r)->sring->req_prod - (_r)->req_cons) :                         \
+     (RING_SIZE(_r) - ((_r)->req_cons - (_r)->rsp_prod_pvt)))
+#endif
+
+/* Direct access to individual ring elements, by index. */
+#define RING_GET_REQUEST(_r, _idx)                                      \
+    (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].req))
+
+#define RING_GET_RESPONSE(_r, _idx)                                     \
+    (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].rsp))
+
+/* Loop termination condition: Would the specified index overflow the ring? */
+#define RING_REQUEST_CONS_OVERFLOW(_r, _cons)                           \
+    (((_cons) - (_r)->rsp_prod_pvt) >= RING_SIZE(_r))
+
+#define RING_PUSH_REQUESTS(_r) do {                                     \
+    wmb(); /* back sees requests /before/ updated producer index */     \
+    (_r)->sring->req_prod = (_r)->req_prod_pvt;                         \
+} while (0)
+
+#define RING_PUSH_RESPONSES(_r) do {                                    \
+    wmb(); /* front sees responses /before/ updated producer index */   \
+    (_r)->sring->rsp_prod = (_r)->rsp_prod_pvt;                         \
+} while (0)
+
+/*
+ * Notification hold-off (req_event and rsp_event):
+ * 
+ * When queueing requests or responses on a shared ring, it may not always be
+ * necessary to notify the remote end. For example, if requests are in flight
+ * in a backend, the front may be able to queue further requests without
+ * notifying the back (if the back checks for new requests when it queues
+ * responses).
+ * 
+ * When enqueuing requests or responses:
+ * 
+ *  Use RING_PUSH_{REQUESTS,RESPONSES}_AND_CHECK_NOTIFY(). The second argument
+ *  is a boolean return value. True indicates that the receiver requires an
+ *  asynchronous notification.
+ * 
+ * After dequeuing requests or responses (before sleeping the connection):
+ * 
+ *  Use RING_FINAL_CHECK_FOR_REQUESTS() or RING_FINAL_CHECK_FOR_RESPONSES().
+ *  The second argument is a boolean return value. True indicates that there
+ *  are pending messages on the ring (i.e., the connection should not be put
+ *  to sleep).
+ * 
+ *  These macros will set the req_event/rsp_event field to trigger a
+ *  notification on the very next message that is enqueued. If you want to
+ *  create batches of work (i.e., only receive a notification after several
+ *  messages have been enqueued) then you will need to create a customised
+ *  version of the FINAL_CHECK macro in your own code, which sets the event
+ *  field appropriately.
+ */
+
+#define RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(_r, _notify) do {           \
+    RING_IDX __old = (_r)->sring->req_prod;                             \
+    RING_IDX __new = (_r)->req_prod_pvt;                                \
+    wmb(); /* back sees requests /before/ updated producer index */     \
+    (_r)->sring->req_prod = __new;                                      \
+    mb(); /* back sees new requests /before/ we check req_event */      \
+    (_notify) = ((RING_IDX)(__new - (_r)->sring->req_event) <           \
+                 (RING_IDX)(__new - __old));                            \
+} while (0)
+
+#define RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(_r, _notify) do {          \
+    RING_IDX __old = (_r)->sring->rsp_prod;                             \
+    RING_IDX __new = (_r)->rsp_prod_pvt;                                \
+    wmb(); /* front sees responses /before/ updated producer index */   \
+    (_r)->sring->rsp_prod = __new;                                      \
+    mb(); /* front sees new responses /before/ we check rsp_event */    \
+    (_notify) = ((RING_IDX)(__new - (_r)->sring->rsp_event) <           \
+                 (RING_IDX)(__new - __old));                            \
+} while (0)
+
+#define RING_FINAL_CHECK_FOR_REQUESTS(_r, _work_to_do) do {             \
+    (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r);                   \
+    if (_work_to_do) break;                                             \
+    (_r)->sring->req_event = (_r)->req_cons + 1;                        \
+    mb();                                                               \
+    (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r);                   \
+} while (0)
+
+#define RING_FINAL_CHECK_FOR_RESPONSES(_r, _work_to_do) do {            \
+    (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r);                  \
+    if (_work_to_do) break;                                             \
+    (_r)->sring->rsp_event = (_r)->rsp_cons + 1;                        \
+    mb();                                                               \
+    (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r);                  \
+} while (0)
+
+#endif /* __XEN_PUBLIC_IO_RING_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/xenbus.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * xenbus.h
+ *
+ * Xenbus protocol details.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (C) 2005 XenSource Ltd.
+ */
+
+#ifndef _XEN_PUBLIC_IO_XENBUS_H
+#define _XEN_PUBLIC_IO_XENBUS_H
+
+/*
+ * The state of either end of the Xenbus, i.e. the current communication
+ * status of initialisation across the bus.  States here imply nothing about
+ * the state of the connection between the driver and the kernel's device
+ * layers.
+ */
+enum xenbus_state {
+    XenbusStateUnknown       = 0,
+
+    XenbusStateInitialising  = 1,
+
+    /*
+     * InitWait: Finished early initialisation but waiting for information
+     * from the peer or hotplug scripts.
+     */
+    XenbusStateInitWait      = 2,
+
+    /*
+     * Initialised: Waiting for a connection from the peer.
+     */
+    XenbusStateInitialised   = 3,
+
+    XenbusStateConnected     = 4,
+
+    /*
+     * Closing: The device is being closed due to an error or an unplug event.
+     */
+    XenbusStateClosing       = 5,
+
+    XenbusStateClosed        = 6
+};
+typedef enum xenbus_state XenbusState;
+
+#endif /* _XEN_PUBLIC_IO_XENBUS_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/io/xs_wire.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,136 @@
+/*
+ * Details of the "wire" protocol between Xen Store Daemon and client
+ * library or guest kernel.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (C) 2005 Rusty Russell IBM Corporation
+ */
+
+#ifndef _XS_WIRE_H
+#define _XS_WIRE_H
+
+enum xsd_sockmsg_type
+{
+    XS_DEBUG,
+    XS_DIRECTORY,
+    XS_READ,
+    XS_GET_PERMS,
+    XS_WATCH,
+    XS_UNWATCH,
+    XS_TRANSACTION_START,
+    XS_TRANSACTION_END,
+    XS_INTRODUCE,
+    XS_RELEASE,
+    XS_GET_DOMAIN_PATH,
+    XS_WRITE,
+    XS_MKDIR,
+    XS_RM,
+    XS_SET_PERMS,
+    XS_WATCH_EVENT,
+    XS_ERROR,
+    XS_IS_DOMAIN_INTRODUCED
+};
+
+#define XS_WRITE_NONE "NONE"
+#define XS_WRITE_CREATE "CREATE"
+#define XS_WRITE_CREATE_EXCL "CREATE|EXCL"
+
+/* We hand errors as strings, for portability. */
+struct xsd_errors
+{
+    int errnum;
+    const char *errstring;
+};
+#define XSD_ERROR(x) { x, #x }
+#if !defined(__GNUC__)
+/* LINTED: static unused */
+static struct xsd_errors xsd_errors[] = {
+    XSD_ERROR(EINVAL),
+    XSD_ERROR(EACCES),
+    XSD_ERROR(EEXIST),
+    XSD_ERROR(EISDIR),
+    XSD_ERROR(ENOENT),
+    XSD_ERROR(ENOMEM),
+    XSD_ERROR(ENOSPC),
+    XSD_ERROR(EIO),
+    XSD_ERROR(ENOTEMPTY),
+    XSD_ERROR(ENOSYS),
+    XSD_ERROR(EROFS),
+    XSD_ERROR(EBUSY),
+    XSD_ERROR(EAGAIN),
+    XSD_ERROR(EISCONN)
+};
+#else
+static struct xsd_errors xsd_errors[] __attribute__((unused)) = {
+    XSD_ERROR(EINVAL),
+    XSD_ERROR(EACCES),
+    XSD_ERROR(EEXIST),
+    XSD_ERROR(EISDIR),
+    XSD_ERROR(ENOENT),
+    XSD_ERROR(ENOMEM),
+    XSD_ERROR(ENOSPC),
+    XSD_ERROR(EIO),
+    XSD_ERROR(ENOTEMPTY),
+    XSD_ERROR(ENOSYS),
+    XSD_ERROR(EROFS),
+    XSD_ERROR(EBUSY),
+    XSD_ERROR(EAGAIN),
+    XSD_ERROR(EISCONN)
+};
+#endif
+
+struct xsd_sockmsg
+{
+    uint32_t type;  /* XS_??? */
+    uint32_t req_id;/* Request identifier, echoed in daemon's response.  */
+    uint32_t tx_id; /* Transaction id (0 if not related to a transaction). */
+    uint32_t len;   /* Length of data following this. */
+
+    /* Generally followed by nul-terminated string(s). */
+};
+
+enum xs_watch_type
+{
+    XS_WATCH_PATH = 0,
+    XS_WATCH_TOKEN
+};
+
+/* Inter-domain shared memory communications. */
+#define XENSTORE_RING_SIZE 1024
+typedef uint32_t XENSTORE_RING_IDX;
+#define MASK_XENSTORE_IDX(idx) ((idx) & (XENSTORE_RING_SIZE-1))
+struct xenstore_domain_interface {
+    char req[XENSTORE_RING_SIZE]; /* Requests to xenstore daemon. */
+    char rsp[XENSTORE_RING_SIZE]; /* Replies and async watch events. */
+    XENSTORE_RING_IDX req_cons, req_prod;
+    XENSTORE_RING_IDX rsp_cons, rsp_prod;
+};
+
+#endif /* _XS_WIRE_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/memory.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,276 @@
+/******************************************************************************
+ * memory.h
+ * 
+ * Memory reservation and information.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_MEMORY_H__
+#define __XEN_PUBLIC_MEMORY_H__
+
+/*
+ * Increase or decrease the specified domain's memory reservation. Returns the
+ * number of extents successfully allocated or freed.
+ * arg == addr of struct xen_memory_reservation.
+ */
+#define XENMEM_increase_reservation 0
+#define XENMEM_decrease_reservation 1
+#define XENMEM_populate_physmap     6
+struct xen_memory_reservation {
+
+    /*
+     * XENMEM_increase_reservation:
+     *   OUT: MFN (*not* GMFN) bases of extents that were allocated
+     * XENMEM_decrease_reservation:
+     *   IN:  GMFN bases of extents to free
+     * XENMEM_populate_physmap:
+     *   IN:  GPFN bases of extents to populate with memory
+     *   OUT: GMFN bases of extents that were allocated
+     *   (NB. This command also updates the mach_to_phys translation table)
+     */
+    XEN_GUEST_HANDLE(xen_pfn_t) extent_start;
+
+    /* Number of extents, and size/alignment of each (2^extent_order pages). */
+    xen_ulong_t    nr_extents;
+    unsigned int   extent_order;
+
+    /*
+     * Maximum # bits addressable by the user of the allocated region (e.g., 
+     * I/O devices often have a 32-bit limitation even in 64-bit systems). If 
+     * zero then the user has no addressing restriction.
+     * This field is not used by XENMEM_decrease_reservation.
+     */
+    unsigned int   address_bits;
+
+    /*
+     * Domain whose reservation is being changed.
+     * Unprivileged domains can specify only DOMID_SELF.
+     */
+    domid_t        domid;
+};
+typedef struct xen_memory_reservation xen_memory_reservation_t;
+DEFINE_XEN_GUEST_HANDLE(xen_memory_reservation_t);
+
+/*
+ * An atomic exchange of memory pages. If return code is zero then
+ * @out.extent_list provides GMFNs of the newly-allocated memory.
+ * Returns zero on complete success, otherwise a negative error code.
+ * On complete success then always @nr_exchanged == @in.nr_extents.
+ * On partial success @nr_exchanged indicates how much work was done.
+ */
+#define XENMEM_exchange             11
+struct xen_memory_exchange {
+    /*
+     * [IN] Details of memory extents to be exchanged (GMFN bases).
+     * Note that @in.address_bits is ignored and unused.
+     */
+    struct xen_memory_reservation in;
+
+    /*
+     * [IN/OUT] Details of new memory extents.
+     * We require that:
+     *  1. @in.domid == @out.domid
+     *  2. @in.nr_extents  << @in.extent_order == 
+     *     @out.nr_extents << @out.extent_order
+     *  3. @in.extent_start and @out.extent_start lists must not overlap
+     *  4. @out.extent_start lists GPFN bases to be populated
+     *  5. @out.extent_start is overwritten with allocated GMFN bases
+     */
+    struct xen_memory_reservation out;
+
+    /*
+     * [OUT] Number of input extents that were successfully exchanged:
+     *  1. The first @nr_exchanged input extents were successfully
+     *     deallocated.
+     *  2. The corresponding first entries in the output extent list correctly
+     *     indicate the GMFNs that were successfully exchanged.
+     *  3. All other input and output extents are untouched.
+     *  4. If not all input exents are exchanged then the return code of this
+     *     command will be non-zero.
+     *  5. THIS FIELD MUST BE INITIALISED TO ZERO BY THE CALLER!
+     */
+    xen_ulong_t nr_exchanged;
+};
+typedef struct xen_memory_exchange xen_memory_exchange_t;
+DEFINE_XEN_GUEST_HANDLE(xen_memory_exchange_t);
+
+/*
+ * Returns the maximum machine frame number of mapped RAM in this system.
+ * This command always succeeds (it never returns an error code).
+ * arg == NULL.
+ */
+#define XENMEM_maximum_ram_page     2
+
+/*
+ * Returns the current or maximum memory reservation, in pages, of the
+ * specified domain (may be DOMID_SELF). Returns -ve errcode on failure.
+ * arg == addr of domid_t.
+ */
+#define XENMEM_current_reservation  3
+#define XENMEM_maximum_reservation  4
+
+/*
+ * Returns a list of MFN bases of 2MB extents comprising the machine_to_phys
+ * mapping table. Architectures which do not have a m2p table do not implement
+ * this command.
+ * arg == addr of xen_machphys_mfn_list_t.
+ */
+#define XENMEM_machphys_mfn_list    5
+struct xen_machphys_mfn_list {
+    /*
+     * Size of the 'extent_start' array. Fewer entries will be filled if the
+     * machphys table is smaller than max_extents * 2MB.
+     */
+    unsigned int max_extents;
+
+    /*
+     * Pointer to buffer to fill with list of extent starts. If there are
+     * any large discontiguities in the machine address space, 2MB gaps in
+     * the machphys table will be represented by an MFN base of zero.
+     */
+    XEN_GUEST_HANDLE(xen_pfn_t) extent_start;
+
+    /*
+     * Number of extents written to the above array. This will be smaller
+     * than 'max_extents' if the machphys table is smaller than max_e * 2MB.
+     */
+    unsigned int nr_extents;
+};
+typedef struct xen_machphys_mfn_list xen_machphys_mfn_list_t;
+DEFINE_XEN_GUEST_HANDLE(xen_machphys_mfn_list_t);
+
+/*
+ * Returns the location in virtual address space of the machine_to_phys
+ * mapping table. Architectures which do not have a m2p table, or which do not
+ * map it by default into guest address space, do not implement this command.
+ * arg == addr of xen_machphys_mapping_t.
+ */
+#define XENMEM_machphys_mapping     12
+struct xen_machphys_mapping {
+    xen_ulong_t v_start, v_end; /* Start and end virtual addresses.   */
+    xen_ulong_t max_mfn;        /* Maximum MFN that can be looked up. */
+};
+typedef struct xen_machphys_mapping xen_machphys_mapping_t;
+DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
+
+/*
+ * Sets the GPFN at which a particular page appears in the specified guest's
+ * pseudophysical address space.
+ * arg == addr of xen_add_to_physmap_t.
+ */
+#define XENMEM_add_to_physmap      7
+struct xen_add_to_physmap {
+    /* Which domain to change the mapping for. */
+    domid_t domid;
+
+    /* Source mapping space. */
+#define XENMAPSPACE_shared_info 0 /* shared info page */
+#define XENMAPSPACE_grant_table 1 /* grant table page */
+    unsigned int space;
+
+    /* Index into source mapping space. */
+    xen_ulong_t idx;
+
+    /* GPFN where the source mapping page should appear. */
+    xen_pfn_t     gpfn;
+};
+typedef struct xen_add_to_physmap xen_add_to_physmap_t;
+DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
+
+/*
+ * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+ * code on failure. This call only works for auto-translated guests.
+ */
+#define XENMEM_translate_gpfn_list  8
+struct xen_translate_gpfn_list {
+    /* Which domain to translate for? */
+    domid_t domid;
+
+    /* Length of list. */
+    xen_ulong_t nr_gpfns;
+
+    /* List of GPFNs to translate. */
+    XEN_GUEST_HANDLE(xen_pfn_t) gpfn_list;
+
+    /*
+     * Output list to contain MFN translations. May be the same as the input
+     * list (in which case each input GPFN is overwritten with the output MFN).
+     */
+    XEN_GUEST_HANDLE(xen_pfn_t) mfn_list;
+};
+typedef struct xen_translate_gpfn_list xen_translate_gpfn_list_t;
+DEFINE_XEN_GUEST_HANDLE(xen_translate_gpfn_list_t);
+
+/*
+ * Returns the pseudo-physical memory map as it was when the domain
+ * was started (specified by XENMEM_set_memory_map).
+ * arg == addr of xen_memory_map_t.
+ */
+#define XENMEM_memory_map           9
+struct xen_memory_map {
+    /*
+     * On call the number of entries which can be stored in buffer. On
+     * return the number of entries which have been stored in
+     * buffer.
+     */
+    unsigned int nr_entries;
+
+    /*
+     * Entries in the buffer are in the same format as returned by the
+     * BIOS INT 0x15 EAX=0xE820 call.
+     */
+    XEN_GUEST_HANDLE(void) buffer;
+};
+typedef struct xen_memory_map xen_memory_map_t;
+DEFINE_XEN_GUEST_HANDLE(xen_memory_map_t);
+
+/*
+ * Returns the real physical memory map. Passes the same structure as
+ * XENMEM_memory_map.
+ * arg == addr of xen_memory_map_t.
+ */
+#define XENMEM_machine_memory_map   10
+
+/*
+ * Set the pseudo-physical memory map of a domain, as returned by
+ * XENMEM_memory_map.
+ * arg == addr of xen_foreign_memory_map_t.
+ */
+#define XENMEM_set_memory_map       13
+struct xen_foreign_memory_map {
+    domid_t domid;
+    struct xen_memory_map map;
+};
+typedef struct xen_foreign_memory_map xen_foreign_memory_map_t;
+DEFINE_XEN_GUEST_HANDLE(xen_foreign_memory_map_t);
+
+#endif /* __XEN_PUBLIC_MEMORY_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/nmi.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,78 @@
+/******************************************************************************
+ * nmi.h
+ * 
+ * NMI callback registration and reason codes.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_NMI_H__
+#define __XEN_PUBLIC_NMI_H__
+
+/*
+ * NMI reason codes:
+ * Currently these are x86-specific, stored in arch_shared_info.nmi_reason.
+ */
+ /* I/O-check error reported via ISA port 0x61, bit 6. */
+#define _XEN_NMIREASON_io_error     0
+#define XEN_NMIREASON_io_error      (1UL << _XEN_NMIREASON_io_error)
+ /* Parity error reported via ISA port 0x61, bit 7. */
+#define _XEN_NMIREASON_parity_error 1
+#define XEN_NMIREASON_parity_error  (1UL << _XEN_NMIREASON_parity_error)
+ /* Unknown hardware-generated NMI. */
+#define _XEN_NMIREASON_unknown      2
+#define XEN_NMIREASON_unknown       (1UL << _XEN_NMIREASON_unknown)
+
+/*
+ * long nmi_op(unsigned int cmd, void *arg)
+ * NB. All ops return zero on success, else a negative error code.
+ */
+
+/*
+ * Register NMI callback for this (calling) VCPU. Currently this only makes
+ * sense for domain 0, vcpu 0. All other callers will be returned EINVAL.
+ * arg == pointer to xennmi_callback structure.
+ */
+#define XENNMI_register_callback   0
+struct xennmi_callback {
+    unsigned long handler_address;
+    unsigned long pad;
+};
+typedef struct xennmi_callback xennmi_callback_t;
+DEFINE_XEN_GUEST_HANDLE(xennmi_callback_t);
+
+/*
+ * Deregister NMI callback for this (calling) VCPU.
+ * arg == NULL.
+ */
+#define XENNMI_unregister_callback 1
+
+#endif /* __XEN_PUBLIC_NMI_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/physdev.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,169 @@
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef __XEN_PUBLIC_PHYSDEV_H__
+#define __XEN_PUBLIC_PHYSDEV_H__
+
+/*
+ * Prototype for this hypercall is:
+ *  int physdev_op(int cmd, void *args)
+ * @cmd  == PHYSDEVOP_??? (physdev operation).
+ * @args == Operation-specific extra arguments (NULL if none).
+ */
+
+/*
+ * Notify end-of-interrupt (EOI) for the specified IRQ.
+ * @arg == pointer to physdev_eoi structure.
+ */
+#define PHYSDEVOP_eoi                   12
+struct physdev_eoi {
+    /* IN */
+    uint32_t irq;
+};
+typedef struct physdev_eoi physdev_eoi_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_eoi_t);
+
+/*
+ * Query the status of an IRQ line.
+ * @arg == pointer to physdev_irq_status_query structure.
+ */
+#define PHYSDEVOP_irq_status_query       5
+struct physdev_irq_status_query {
+    /* IN */
+    uint32_t irq;
+    /* OUT */
+    uint32_t flags; /* XENIRQSTAT_* */
+};
+typedef struct physdev_irq_status_query physdev_irq_status_query_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_irq_status_query_t);
+
+/* Need to call PHYSDEVOP_eoi when the IRQ has been serviced? */
+#define _XENIRQSTAT_needs_eoi   (0)
+#define  XENIRQSTAT_needs_eoi   (1U<<_XENIRQSTAT_needs_eoi)
+
+/* IRQ shared by multiple guests? */
+#define _XENIRQSTAT_shared      (1)
+#define  XENIRQSTAT_shared      (1U<<_XENIRQSTAT_shared)
+
+/*
+ * Set the current VCPU's I/O privilege level.
+ * @arg == pointer to physdev_set_iopl structure.
+ */
+#define PHYSDEVOP_set_iopl               6
+struct physdev_set_iopl {
+    /* IN */
+    uint32_t iopl;
+};
+typedef struct physdev_set_iopl physdev_set_iopl_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_set_iopl_t);
+
+/*
+ * Set the current VCPU's I/O-port permissions bitmap.
+ * @arg == pointer to physdev_set_iobitmap structure.
+ */
+#define PHYSDEVOP_set_iobitmap           7
+struct physdev_set_iobitmap {
+    /* IN */
+    XEN_GUEST_HANDLE_00030205(uint8_t) bitmap;
+    uint32_t nr_ports;
+};
+typedef struct physdev_set_iobitmap physdev_set_iobitmap_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_set_iobitmap_t);
+
+/*
+ * Read or write an IO-APIC register.
+ * @arg == pointer to physdev_apic structure.
+ */
+#define PHYSDEVOP_apic_read              8
+#define PHYSDEVOP_apic_write             9
+struct physdev_apic {
+    /* IN */
+    unsigned long apic_physbase;
+    uint32_t reg;
+    /* IN or OUT */
+    uint32_t value;
+};
+typedef struct physdev_apic physdev_apic_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_apic_t);
+
+/*
+ * Allocate or free a physical upcall vector for the specified IRQ line.
+ * @arg == pointer to physdev_irq structure.
+ */
+#define PHYSDEVOP_alloc_irq_vector      10
+#define PHYSDEVOP_free_irq_vector       11
+struct physdev_irq {
+    /* IN */
+    uint32_t irq;
+    /* IN or OUT */
+    uint32_t vector;
+};
+typedef struct physdev_irq physdev_irq_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_irq_t);
+
+/*
+ * Argument to physdev_op_compat() hypercall. Superceded by new physdev_op()
+ * hypercall since 0x00030202.
+ */
+struct physdev_op {
+    uint32_t cmd;
+    union {
+        struct physdev_irq_status_query      irq_status_query;
+        struct physdev_set_iopl              set_iopl;
+        struct physdev_set_iobitmap          set_iobitmap;
+        struct physdev_apic                  apic_op;
+        struct physdev_irq                   irq_op;
+    } u;
+};
+typedef struct physdev_op physdev_op_t;
+DEFINE_XEN_GUEST_HANDLE(physdev_op_t);
+
+/*
+ * Notify that some PIRQ-bound event channels have been unmasked.
+ * ** This command is obsolete since interface version 0x00030202 and is **
+ * ** unsupported by newer versions of Xen.                              **
+ */
+#define PHYSDEVOP_IRQ_UNMASK_NOTIFY      4
+
+/*
+ * These all-capitals physdev operation names are superceded by the new names
+ * (defined above) since interface version 0x00030202.
+ */
+#define PHYSDEVOP_IRQ_STATUS_QUERY       PHYSDEVOP_irq_status_query
+#define PHYSDEVOP_SET_IOPL               PHYSDEVOP_set_iopl
+#define PHYSDEVOP_SET_IOBITMAP           PHYSDEVOP_set_iobitmap
+#define PHYSDEVOP_APIC_READ              PHYSDEVOP_apic_read
+#define PHYSDEVOP_APIC_WRITE             PHYSDEVOP_apic_write
+#define PHYSDEVOP_ASSIGN_VECTOR          PHYSDEVOP_alloc_irq_vector
+#define PHYSDEVOP_FREE_VECTOR            PHYSDEVOP_free_irq_vector
+#define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY XENIRQSTAT_needs_eoi
+#define PHYSDEVOP_IRQ_SHARED             XENIRQSTAT_shared
+
+#endif /* __XEN_PUBLIC_PHYSDEV_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/platform.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,151 @@
+/******************************************************************************
+ * platform.h
+ * 
+ * Hardware platform operations. Intended for use by domain-0 kernel.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2002-2006, K Fraser
+ */
+
+#ifndef __XEN_PUBLIC_PLATFORM_H__
+#define __XEN_PUBLIC_PLATFORM_H__
+
+#include "xen.h"
+
+#define XENPF_INTERFACE_VERSION 0x03000001
+
+/*
+ * Set clock such that it would read <secs,nsecs> after 00:00:00 UTC,
+ * 1 January, 1970 if the current system time was <system_time>.
+ */
+#define XENPF_settime             17
+struct xenpf_settime {
+    /* IN variables. */
+    uint32_t secs;
+    uint32_t nsecs;
+    uint64_t system_time;
+};
+typedef struct xenpf_settime xenpf_settime_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_settime_t);
+
+/*
+ * Request memory range (@mfn, @mfn+@nr_mfns-1) to have type @type.
+ * On x86, @type is an architecture-defined MTRR memory type.
+ * On success, returns the MTRR that was used (@reg) and a handle that can
+ * be passed to XENPF_DEL_MEMTYPE to accurately tear down the new setting.
+ * (x86-specific).
+ */
+#define XENPF_add_memtype         31
+struct xenpf_add_memtype {
+    /* IN variables. */
+    xen_pfn_t mfn;
+    uint64_t nr_mfns;
+    uint32_t type;
+    /* OUT variables. */
+    uint32_t handle;
+    uint32_t reg;
+};
+typedef struct xenpf_add_memtype xenpf_add_memtype_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_add_memtype_t);
+
+/*
+ * Tear down an existing memory-range type. If @handle is remembered then it
+ * should be passed in to accurately tear down the correct setting (in case
+ * of overlapping memory regions with differing types). If it is not known
+ * then @handle should be set to zero. In all cases @reg must be set.
+ * (x86-specific).
+ */
+#define XENPF_del_memtype         32
+struct xenpf_del_memtype {
+    /* IN variables. */
+    uint32_t handle;
+    uint32_t reg;
+};
+typedef struct xenpf_del_memtype xenpf_del_memtype_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_del_memtype_t);
+
+/* Read current type of an MTRR (x86-specific). */
+#define XENPF_read_memtype        33
+struct xenpf_read_memtype {
+    /* IN variables. */
+    uint32_t reg;
+    /* OUT variables. */
+    xen_pfn_t mfn;
+    uint64_t nr_mfns;
+    uint32_t type;
+};
+typedef struct xenpf_read_memtype xenpf_read_memtype_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_read_memtype_t);
+
+#define XENPF_microcode_update    35
+struct xenpf_microcode_update {
+    /* IN variables. */
+    XEN_GUEST_HANDLE(void) data;      /* Pointer to microcode data */
+    uint32_t length;                  /* Length of microcode data. */
+};
+typedef struct xenpf_microcode_update xenpf_microcode_update_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_microcode_update_t);
+
+#define XENPF_platform_quirk      39
+#define QUIRK_NOIRQBALANCING      1 /* Do not restrict IO-APIC RTE targets */
+#define QUIRK_IOAPIC_BAD_REGSEL   2 /* IO-APIC REGSEL forgets its value    */
+#define QUIRK_IOAPIC_GOOD_REGSEL  3 /* IO-APIC REGSEL behaves properly     */
+struct xenpf_platform_quirk {
+    /* IN variables. */
+    uint32_t quirk_id;
+};
+typedef struct xenpf_platform_quirk xenpf_platform_quirk_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_platform_quirk_t);
+
+#define XENPF_panic_init          40
+struct xenpf_panic_init {
+    unsigned long panic_addr;
+};
+typedef struct xenpf_panic_init xenpf_panic_init_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_panic_init_t);
+
+struct xen_platform_op {
+    uint32_t cmd;
+    uint32_t interface_version; /* XENPF_INTERFACE_VERSION */
+    union {
+        struct xenpf_settime           settime;
+        struct xenpf_add_memtype       add_memtype;
+        struct xenpf_del_memtype       del_memtype;
+        struct xenpf_read_memtype      read_memtype;
+        struct xenpf_microcode_update  microcode;
+        struct xenpf_platform_quirk    platform_quirk;
+	struct xenpf_panic_init        panic_init;
+        uint8_t                        pad[128];
+    } u;
+};
+typedef struct xen_platform_op xen_platform_op_t;
+DEFINE_XEN_GUEST_HANDLE(xen_platform_op_t);
+
+#endif /* __XEN_PUBLIC_PLATFORM_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/sched.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,121 @@
+/******************************************************************************
+ * sched.h
+ * 
+ * Scheduler state interactions
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_SCHED_H__
+#define __XEN_PUBLIC_SCHED_H__
+
+#include "event_channel.h"
+
+/*
+ * The prototype for this hypercall is:
+ *  long sched_op(int cmd, void *arg)
+ * @cmd == SCHEDOP_??? (scheduler operation).
+ * @arg == Operation-specific extra argument(s), as described below.
+ * 
+ * Versions of Xen prior to 3.0.2 provided only the following legacy version
+ * of this hypercall, supporting only the commands yield, block and shutdown:
+ *  long sched_op(int cmd, unsigned long arg)
+ * @cmd == SCHEDOP_??? (scheduler operation).
+ * @arg == 0               (SCHEDOP_yield and SCHEDOP_block)
+ *      == SHUTDOWN_* code (SCHEDOP_shutdown)
+ * This legacy version is available to new guests as sched_op_compat().
+ */
+
+/*
+ * Voluntarily yield the CPU.
+ * @arg == NULL.
+ */
+#define SCHEDOP_yield       0
+
+/*
+ * Block execution of this VCPU until an event is received for processing.
+ * If called with event upcalls masked, this operation will atomically
+ * reenable event delivery and check for pending events before blocking the
+ * VCPU. This avoids a "wakeup waiting" race.
+ * @arg == NULL.
+ */
+#define SCHEDOP_block       1
+
+/*
+ * Halt execution of this domain (all VCPUs) and notify the system controller.
+ * @arg == pointer to sched_shutdown structure.
+ */
+#define SCHEDOP_shutdown    2
+struct sched_shutdown {
+    unsigned int reason; /* SHUTDOWN_* */
+};
+typedef struct sched_shutdown sched_shutdown_t;
+DEFINE_XEN_GUEST_HANDLE(sched_shutdown_t);
+
+/*
+ * Poll a set of event-channel ports. Return when one or more are pending. An
+ * optional timeout may be specified.
+ * @arg == pointer to sched_poll structure.
+ */
+#define SCHEDOP_poll        3
+struct sched_poll {
+    XEN_GUEST_HANDLE(evtchn_port_t) ports;
+    unsigned int nr_ports;
+    uint64_t timeout;
+};
+typedef struct sched_poll sched_poll_t;
+DEFINE_XEN_GUEST_HANDLE(sched_poll_t);
+
+/*
+ * Declare a shutdown for another domain. The main use of this function is
+ * in interpreting shutdown requests and reasons for fully-virtualized
+ * domains.  A para-virtualized domain may use SCHEDOP_shutdown directly.
+ * @arg == pointer to sched_remote_shutdown structure.
+ */
+#define SCHEDOP_remote_shutdown        4
+struct sched_remote_shutdown {
+    domid_t domain_id;         /* Remote domain ID */
+    unsigned int reason;       /* SHUTDOWN_xxx reason */
+};
+typedef struct sched_remote_shutdown sched_remote_shutdown_t;
+DEFINE_XEN_GUEST_HANDLE(sched_remote_shutdown_t);
+
+/*
+ * Reason codes for SCHEDOP_shutdown. These may be interpreted by control
+ * software to determine the appropriate action. For the most part, Xen does
+ * not care about the shutdown code.
+ */
+#define SHUTDOWN_poweroff   0  /* Domain exited normally. Clean up and kill. */
+#define SHUTDOWN_reboot     1  /* Clean up, kill, and then restart.          */
+#define SHUTDOWN_suspend    2  /* Clean up, save suspend info, kill.         */
+#define SHUTDOWN_crash      3  /* Tell controller we've crashed.             */
+
+#endif /* __XEN_PUBLIC_SCHED_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/sysctl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,176 @@
+/******************************************************************************
+ * sysctl.h
+ * 
+ * System management operations. For use by node control stack.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2002-2006, K Fraser
+ */
+
+#ifndef __XEN_PUBLIC_SYSCTL_H__
+#define __XEN_PUBLIC_SYSCTL_H__
+
+/*
+ * XXPV - We need sysctl (physinfo) in the solaris kernel.
+ */
+#if 0
+
+#if !defined(__XEN__) && !defined(__XEN_TOOLS__)
+#error "sysctl operations are intended for use by node control tools only"
+#endif
+
+#endif /* XXPV */
+
+#include "xen.h"
+#include "domctl.h"
+
+#define XEN_SYSCTL_INTERFACE_VERSION 0x00000002
+
+/*
+ * Read console content from Xen buffer ring.
+ */
+#define XEN_SYSCTL_readconsole       1
+struct xen_sysctl_readconsole {
+    /* IN variables. */
+    uint32_t clear;                /* Non-zero -> clear after reading. */
+    XEN_GUEST_HANDLE(char) buffer; /* Buffer start */
+    /* IN/OUT variables. */
+    uint32_t count;            /* In: Buffer size;  Out: Used buffer size  */
+};
+typedef struct xen_sysctl_readconsole xen_sysctl_readconsole_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_readconsole_t);
+
+/* Get trace buffers machine base address */
+#define XEN_SYSCTL_tbuf_op           2
+struct xen_sysctl_tbuf_op {
+    /* IN variables */
+#define XEN_SYSCTL_TBUFOP_get_info     0
+#define XEN_SYSCTL_TBUFOP_set_cpu_mask 1
+#define XEN_SYSCTL_TBUFOP_set_evt_mask 2
+#define XEN_SYSCTL_TBUFOP_set_size     3
+#define XEN_SYSCTL_TBUFOP_enable       4
+#define XEN_SYSCTL_TBUFOP_disable      5
+    uint32_t cmd;
+    /* IN/OUT variables */
+    struct xenctl_cpumap cpu_mask;
+    uint32_t             evt_mask;
+    /* OUT variables */
+    uint64_t buffer_mfn;
+    uint32_t size;
+};
+typedef struct xen_sysctl_tbuf_op xen_sysctl_tbuf_op_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_tbuf_op_t);
+
+/*
+ * Get physical information about the host machine
+ */
+#define XEN_SYSCTL_physinfo          3
+struct xen_sysctl_physinfo {
+    uint32_t threads_per_core;
+    uint32_t cores_per_socket;
+    uint32_t sockets_per_node;
+    uint32_t nr_nodes;
+    uint32_t cpu_khz;
+    uint64_t total_pages;
+    uint64_t free_pages;
+    uint64_t scrub_pages;
+    uint32_t hw_cap[8];
+};
+typedef struct xen_sysctl_physinfo xen_sysctl_physinfo_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_physinfo_t);
+
+/*
+ * Get the ID of the current scheduler.
+ */
+#define XEN_SYSCTL_sched_id          4
+struct xen_sysctl_sched_id {
+    /* OUT variable */
+    uint32_t sched_id;
+};
+typedef struct xen_sysctl_sched_id xen_sysctl_sched_id_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_sched_id_t);
+
+/* Interface for controlling Xen software performance counters. */
+#define XEN_SYSCTL_perfc_op          5
+/* Sub-operations: */
+#define XEN_SYSCTL_PERFCOP_reset 1   /* Reset all counters to zero. */
+#define XEN_SYSCTL_PERFCOP_query 2   /* Get perfctr information. */
+struct xen_sysctl_perfc_desc {
+    char         name[80];             /* name of perf counter */
+    uint32_t     nr_vals;              /* number of values for this counter */
+};
+typedef struct xen_sysctl_perfc_desc xen_sysctl_perfc_desc_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_desc_t);
+typedef uint32_t xen_sysctl_perfc_val_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_val_t);
+
+struct xen_sysctl_perfc_op {
+    /* IN variables. */
+    uint32_t       cmd;                /*  XEN_SYSCTL_PERFCOP_??? */
+    /* OUT variables. */
+    uint32_t       nr_counters;       /*  number of counters description  */
+    uint32_t       nr_vals;           /*  number of values  */
+    /* counter information (or NULL) */
+    XEN_GUEST_HANDLE(xen_sysctl_perfc_desc_t) desc;
+    /* counter values (or NULL) */
+    XEN_GUEST_HANDLE(xen_sysctl_perfc_val_t) val;
+};
+typedef struct xen_sysctl_perfc_op xen_sysctl_perfc_op_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_op_t);
+
+#define XEN_SYSCTL_getdomaininfolist 6
+struct xen_sysctl_getdomaininfolist {
+    /* IN variables. */
+    domid_t               first_domain;
+    uint32_t              max_domains;
+    XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t) buffer;
+    /* OUT variables. */
+    uint32_t              num_domains;
+};
+typedef struct xen_sysctl_getdomaininfolist xen_sysctl_getdomaininfolist_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_getdomaininfolist_t);
+
+struct xen_sysctl {
+    uint32_t cmd;
+    uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
+    union {
+        struct xen_sysctl_readconsole       readconsole;
+        struct xen_sysctl_tbuf_op           tbuf_op;
+        struct xen_sysctl_physinfo          physinfo;
+        struct xen_sysctl_sched_id          sched_id;
+        struct xen_sysctl_perfc_op          perfc_op;
+        struct xen_sysctl_getdomaininfolist getdomaininfolist;
+        uint8_t                             pad[128];
+    } u;
+};
+typedef struct xen_sysctl xen_sysctl_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_t);
+
+#endif /* __XEN_PUBLIC_SYSCTL_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/vcpu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,142 @@
+/******************************************************************************
+ * vcpu.h
+ * 
+ * VCPU initialisation, query, and hotplug.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_VCPU_H__
+#define __XEN_PUBLIC_VCPU_H__
+
+/*
+ * Prototype for this hypercall is:
+ *  int vcpu_op(int cmd, int vcpuid, void *extra_args)
+ * @cmd        == VCPUOP_??? (VCPU operation).
+ * @vcpuid     == VCPU to operate on.
+ * @extra_args == Operation-specific extra arguments (NULL if none).
+ */
+
+/*
+ * Initialise a VCPU. Each VCPU can be initialised only once. A 
+ * newly-initialised VCPU will not run until it is brought up by VCPUOP_up.
+ * 
+ * @extra_arg == pointer to vcpu_guest_context structure containing initial
+ *               state for the VCPU.
+ */
+#define VCPUOP_initialise           0
+
+/*
+ * Bring up a VCPU. This makes the VCPU runnable. This operation will fail
+ * if the VCPU has not been initialised (VCPUOP_initialise).
+ */
+#define VCPUOP_up                   1
+
+/*
+ * Bring down a VCPU (i.e., make it non-runnable).
+ * There are a few caveats that callers should observe:
+ *  1. This operation may return, and VCPU_is_up may return false, before the
+ *     VCPU stops running (i.e., the command is asynchronous). It is a good
+ *     idea to ensure that the VCPU has entered a non-critical loop before
+ *     bringing it down. Alternatively, this operation is guaranteed
+ *     synchronous if invoked by the VCPU itself.
+ *  2. After a VCPU is initialised, there is currently no way to drop all its
+ *     references to domain memory. Even a VCPU that is down still holds
+ *     memory references via its pagetable base pointer and GDT. It is good
+ *     practise to move a VCPU onto an 'idle' or default page table, LDT and
+ *     GDT before bringing it down.
+ */
+#define VCPUOP_down                 2
+
+/* Returns 1 if the given VCPU is up. */
+#define VCPUOP_is_up                3
+
+/*
+ * Return information about the state and running time of a VCPU.
+ * @extra_arg == pointer to vcpu_runstate_info structure.
+ */
+#define VCPUOP_get_runstate_info    4
+struct vcpu_runstate_info {
+    /* VCPU's current state (RUNSTATE_*). */
+    int      state;
+    /* When was current state entered (system time, ns)? */
+    uint64_t state_entry_time;
+    /*
+     * Time spent in each RUNSTATE_* (ns). The sum of these times is
+     * guaranteed not to drift from system time.
+     */
+    uint64_t time[4];
+};
+typedef struct vcpu_runstate_info vcpu_runstate_info_t;
+DEFINE_XEN_GUEST_HANDLE(vcpu_runstate_info_t);
+
+/* VCPU is currently running on a physical CPU. */
+#define RUNSTATE_running  0
+
+/* VCPU is runnable, but not currently scheduled on any physical CPU. */
+#define RUNSTATE_runnable 1
+
+/* VCPU is blocked (a.k.a. idle). It is therefore not runnable. */
+#define RUNSTATE_blocked  2
+
+/*
+ * VCPU is not runnable, but it is not blocked.
+ * This is a 'catch all' state for things like hotplug and pauses by the
+ * system administrator (or for critical sections in the hypervisor).
+ * RUNSTATE_blocked dominates this state (it is the preferred state).
+ */
+#define RUNSTATE_offline  3
+
+/*
+ * Register a shared memory area from which the guest may obtain its own
+ * runstate information without needing to execute a hypercall.
+ * Notes:
+ *  1. The registered address may be virtual or physical or guest handle,
+ *     depending on the platform. Virtual address or guest handle should be
+ *     registered on x86 systems.
+ *  2. Only one shared area may be registered per VCPU. The shared area is
+ *     updated by the hypervisor each time the VCPU is scheduled. Thus
+ *     runstate.state will always be RUNSTATE_running and
+ *     runstate.state_entry_time will indicate the system time at which the
+ *     VCPU was last scheduled to run.
+ * @extra_arg == pointer to vcpu_register_runstate_memory_area structure.
+ */
+#define VCPUOP_register_runstate_memory_area 5
+struct vcpu_register_runstate_memory_area {
+    union {
+        XEN_GUEST_HANDLE(vcpu_runstate_info_t) h;
+        struct vcpu_runstate_info *v;
+        uint64_t p;
+    } addr;
+};
+typedef struct vcpu_register_runstate_memory_area vcpu_register_runstate_memory_area_t;
+
+#endif /* __XEN_PUBLIC_VCPU_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/version.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,91 @@
+/******************************************************************************
+ * version.h
+ * 
+ * Xen version, type, and compile information.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com>
+ * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
+ */
+
+#ifndef __XEN_PUBLIC_VERSION_H__
+#define __XEN_PUBLIC_VERSION_H__
+
+/* NB. All ops return zero on success, except XENVER_{version,pagesize} */
+
+/* arg == NULL; returns major:minor (16:16). */
+#define XENVER_version      0
+
+/* arg == xen_extraversion_t. */
+#define XENVER_extraversion 1
+typedef char xen_extraversion_t[16];
+#define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))
+
+/* arg == xen_compile_info_t. */
+#define XENVER_compile_info 2
+struct xen_compile_info {
+    char compiler[64];
+    char compile_by[16];
+    char compile_domain[32];
+    char compile_date[32];
+};
+typedef struct xen_compile_info xen_compile_info_t;
+
+#define XENVER_capabilities 3
+typedef char xen_capabilities_info_t[1024];
+#define XEN_CAPABILITIES_INFO_LEN (sizeof(xen_capabilities_info_t))
+
+#define XENVER_changeset 4
+typedef char xen_changeset_info_t[64];
+#define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t))
+
+#define XENVER_platform_parameters 5
+struct xen_platform_parameters {
+    unsigned long virt_start;
+};
+typedef struct xen_platform_parameters xen_platform_parameters_t;
+
+#define XENVER_get_features 6
+struct xen_feature_info {
+    unsigned int submap_idx;    /* IN: which 32-bit submap to return */
+    uint32_t     submap;        /* OUT: 32-bit submap */
+};
+typedef struct xen_feature_info xen_feature_info_t;
+
+/* Declares the features reported by XENVER_get_features. */
+#include "features.h"
+
+/* arg == NULL; returns host memory page size. */
+#define XENVER_pagesize 7
+
+/* arg == xen_domain_handle_t. */
+#define XENVER_guest_handle 8
+
+#endif /* __XEN_PUBLIC_VERSION_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/xen-compat.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,51 @@
+/******************************************************************************
+ * xen-compat.h
+ * 
+ * Guest OS interface to Xen.  Compatibility layer.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2006, Christian Limpach
+ */
+
+#ifndef __XEN_PUBLIC_XEN_COMPAT_H__
+#define __XEN_PUBLIC_XEN_COMPAT_H__
+
+#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030205
+
+#if defined(__XEN__) || defined(__XEN_TOOLS__)
+/* Xen is built with matching headers and implements the latest interface. */
+#define __XEN_INTERFACE_VERSION__ __XEN_LATEST_INTERFACE_VERSION__
+#elif !defined(__XEN_INTERFACE_VERSION__)
+/* Guests which do not specify a version get the legacy interface. */
+#define __XEN_INTERFACE_VERSION__ 0x00000000
+#endif
+
+#if __XEN_INTERFACE_VERSION__ > __XEN_LATEST_INTERFACE_VERSION__
+#error "These header files do not support the requested interface version."
+#endif
+
+/* Fields defined as a Xen guest handle since 0x00030205. */
+#if __XEN_INTERFACE_VERSION__ >= 0x00030205
+#define XEN_GUEST_HANDLE_00030205(type) XEN_GUEST_HANDLE(type)
+#else
+#define XEN_GUEST_HANDLE_00030205(type) type *
+#endif
+
+#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/public/xen.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,615 @@
+/******************************************************************************
+ * xen.h
+ * 
+ * Guest OS interface to Xen.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright (c) 2004, K A Fraser
+ */
+
+#ifndef __XEN_PUBLIC_XEN_H__
+#define __XEN_PUBLIC_XEN_H__
+
+#include "xen-compat.h"
+
+#if defined(__i386) && !defined(__i386__)
+#define __i386__
+#endif
+
+#if defined(__amd64) && !defined(__x86_64__)
+#define __x86_64__
+#endif
+
+#if defined(_ASM) && !defined(__ASSEMBLY__)
+#define __ASSEMBLY__
+#endif
+
+#if defined(__i386__) || defined(__x86_64__)
+#include "arch-x86/xen.h"
+#elif defined(__ia64__)
+#include "arch-ia64.h"
+#elif defined(__powerpc__)
+#include "arch-powerpc.h"
+#else
+#error "Unsupported architecture"
+#endif
+
+/*
+ * HYPERCALLS
+ */
+
+#define __HYPERVISOR_set_trap_table        0
+#define __HYPERVISOR_mmu_update            1
+#define __HYPERVISOR_set_gdt               2
+#define __HYPERVISOR_stack_switch          3
+#define __HYPERVISOR_set_callbacks         4
+#define __HYPERVISOR_fpu_taskswitch        5
+#define __HYPERVISOR_sched_op_compat       6 /* compat since 0x00030101 */
+#define __HYPERVISOR_platform_op           7
+#define __HYPERVISOR_set_debugreg          8
+#define __HYPERVISOR_get_debugreg          9
+#define __HYPERVISOR_update_descriptor    10
+#define __HYPERVISOR_memory_op            12
+#define __HYPERVISOR_multicall            13
+#define __HYPERVISOR_update_va_mapping    14
+#define __HYPERVISOR_set_timer_op         15
+#define __HYPERVISOR_event_channel_op_compat 16 /* compat since 0x00030202 */
+#define __HYPERVISOR_xen_version          17
+#define __HYPERVISOR_console_io           18
+#define __HYPERVISOR_physdev_op_compat    19 /* compat since 0x00030202 */
+#define __HYPERVISOR_grant_table_op       20
+#define __HYPERVISOR_vm_assist            21
+#define __HYPERVISOR_update_va_mapping_otherdomain 22
+#define __HYPERVISOR_iret                 23 /* x86 only */
+#define __HYPERVISOR_vcpu_op              24
+#define __HYPERVISOR_set_segment_base     25 /* x86/64 only */
+#define __HYPERVISOR_mmuext_op            26
+#define __HYPERVISOR_acm_op               27
+#define __HYPERVISOR_nmi_op               28
+#define __HYPERVISOR_sched_op             29
+#define __HYPERVISOR_callback_op          30
+#define __HYPERVISOR_xenoprof_op          31
+#define __HYPERVISOR_event_channel_op     32
+#define __HYPERVISOR_physdev_op           33
+#define __HYPERVISOR_hvm_op               34
+#define __HYPERVISOR_sysctl               35
+#define __HYPERVISOR_domctl               36
+#define __HYPERVISOR_kexec_op             37
+
+/* Architecture-specific hypercall definitions. */
+#define __HYPERVISOR_arch_0               48
+#define __HYPERVISOR_arch_1               49
+#define __HYPERVISOR_arch_2               50
+#define __HYPERVISOR_arch_3               51
+#define __HYPERVISOR_arch_4               52
+#define __HYPERVISOR_arch_5               53
+#define __HYPERVISOR_arch_6               54
+#define __HYPERVISOR_arch_7               55
+
+/*
+ * HYPERCALL COMPATIBILITY.
+ */
+
+/* New sched_op hypercall introduced in 0x00030101. */
+#if __XEN_INTERFACE_VERSION__ < 0x00030101
+#undef __HYPERVISOR_sched_op
+#define __HYPERVISOR_sched_op __HYPERVISOR_sched_op_compat
+#endif
+
+/* New event-channel and physdev hypercalls introduced in 0x00030202. */
+#if __XEN_INTERFACE_VERSION__ < 0x00030202
+#undef __HYPERVISOR_event_channel_op
+#define __HYPERVISOR_event_channel_op __HYPERVISOR_event_channel_op_compat
+#undef __HYPERVISOR_physdev_op
+#define __HYPERVISOR_physdev_op __HYPERVISOR_physdev_op_compat
+#endif
+
+/* New platform_op hypercall introduced in 0x00030204. */
+#if __XEN_INTERFACE_VERSION__ < 0x00030204
+#define __HYPERVISOR_dom0_op __HYPERVISOR_platform_op
+#endif
+
+/* 
+ * VIRTUAL INTERRUPTS
+ * 
+ * Virtual interrupts that a guest OS may receive from Xen.
+ * 
+ * In the side comments, 'V.' denotes a per-VCPU VIRQ while 'G.' denotes a
+ * global VIRQ. The former can be bound once per VCPU and cannot be re-bound.
+ * The latter can be allocated only once per guest: they must initially be
+ * allocated to VCPU0 but can subsequently be re-bound.
+ */
+#define VIRQ_TIMER      0  /* V. Timebase update, and/or requested timeout.  */
+#define VIRQ_DEBUG      1  /* V. Request guest to dump debug info.           */
+#define VIRQ_CONSOLE    2  /* G. (DOM0) Bytes received on emergency console. */
+#define VIRQ_DOM_EXC    3  /* G. (DOM0) Exceptional event for some domain.   */
+#define VIRQ_TBUF       4  /* G. (DOM0) Trace buffer has records available.  */
+#define VIRQ_DEBUGGER   6  /* G. (DOM0) A domain has paused for debugging.   */
+#define VIRQ_XENOPROF   7  /* V. XenOprofile interrupt: new sample available */
+
+/* Architecture-specific VIRQ definitions. */
+#define VIRQ_ARCH_0    16
+#define VIRQ_ARCH_1    17
+#define VIRQ_ARCH_2    18
+#define VIRQ_ARCH_3    19
+#define VIRQ_ARCH_4    20
+#define VIRQ_ARCH_5    21
+#define VIRQ_ARCH_6    22
+#define VIRQ_ARCH_7    23
+
+#define NR_VIRQS       24
+
+/*
+ * MMU-UPDATE REQUESTS
+ * 
+ * HYPERVISOR_mmu_update() accepts a list of (ptr, val) pairs.
+ * A foreigndom (FD) can be specified (or DOMID_SELF for none).
+ * Where the FD has some effect, it is described below.
+ * ptr[1:0] specifies the appropriate MMU_* command.
+ * 
+ * ptr[1:0] == MMU_NORMAL_PT_UPDATE:
+ * Updates an entry in a page table. If updating an L1 table, and the new
+ * table entry is valid/present, the mapped frame must belong to the FD, if
+ * an FD has been specified. If attempting to map an I/O page then the
+ * caller assumes the privilege of the FD.
+ * FD == DOMID_IO: Permit /only/ I/O mappings, at the priv level of the caller.
+ * FD == DOMID_XEN: Map restricted areas of Xen's heap space.
+ * ptr[:2]  -- Machine address of the page-table entry to modify.
+ * val      -- Value to write.
+ * 
+ * ptr[1:0] == MMU_MACHPHYS_UPDATE:
+ * Updates an entry in the machine->pseudo-physical mapping table.
+ * ptr[:2]  -- Machine address within the frame whose mapping to modify.
+ *             The frame must belong to the FD, if one is specified.
+ * val      -- Value to write into the mapping entry.
+ */
+#define MMU_NORMAL_PT_UPDATE     0 /* checked '*ptr = val'. ptr is MA.       */
+#define MMU_MACHPHYS_UPDATE      1 /* ptr = MA of frame to modify entry for  */
+
+/*
+ * MMU EXTENDED OPERATIONS
+ * 
+ * HYPERVISOR_mmuext_op() accepts a list of mmuext_op structures.
+ * A foreigndom (FD) can be specified (or DOMID_SELF for none).
+ * Where the FD has some effect, it is described below.
+ * 
+ * cmd: MMUEXT_(UN)PIN_*_TABLE
+ * mfn: Machine frame number to be (un)pinned as a p.t. page.
+ *      The frame must belong to the FD, if one is specified.
+ * 
+ * cmd: MMUEXT_NEW_BASEPTR
+ * mfn: Machine frame number of new page-table base to install in MMU.
+ * 
+ * cmd: MMUEXT_NEW_USER_BASEPTR [x86/64 only]
+ * mfn: Machine frame number of new page-table base to install in MMU
+ *      when in user space.
+ * 
+ * cmd: MMUEXT_TLB_FLUSH_LOCAL
+ * No additional arguments. Flushes local TLB.
+ * 
+ * cmd: MMUEXT_INVLPG_LOCAL
+ * linear_addr: Linear address to be flushed from the local TLB.
+ * 
+ * cmd: MMUEXT_TLB_FLUSH_MULTI
+ * vcpumask: Pointer to bitmap of VCPUs to be flushed.
+ * 
+ * cmd: MMUEXT_INVLPG_MULTI
+ * linear_addr: Linear address to be flushed.
+ * vcpumask: Pointer to bitmap of VCPUs to be flushed.
+ * 
+ * cmd: MMUEXT_TLB_FLUSH_ALL
+ * No additional arguments. Flushes all VCPUs' TLBs.
+ * 
+ * cmd: MMUEXT_INVLPG_ALL
+ * linear_addr: Linear address to be flushed from all VCPUs' TLBs.
+ * 
+ * cmd: MMUEXT_FLUSH_CACHE
+ * No additional arguments. Writes back and flushes cache contents.
+ * 
+ * cmd: MMUEXT_SET_LDT
+ * linear_addr: Linear address of LDT base (NB. must be page-aligned).
+ * nr_ents: Number of entries in LDT.
+ */
+#define MMUEXT_PIN_L1_TABLE      0
+#define MMUEXT_PIN_L2_TABLE      1
+#define MMUEXT_PIN_L3_TABLE      2
+#define MMUEXT_PIN_L4_TABLE      3
+#define MMUEXT_UNPIN_TABLE       4
+#define MMUEXT_NEW_BASEPTR       5
+#define MMUEXT_TLB_FLUSH_LOCAL   6
+#define MMUEXT_INVLPG_LOCAL      7
+#define MMUEXT_TLB_FLUSH_MULTI   8
+#define MMUEXT_INVLPG_MULTI      9
+#define MMUEXT_TLB_FLUSH_ALL    10
+#define MMUEXT_INVLPG_ALL       11
+#define MMUEXT_FLUSH_CACHE      12
+#define MMUEXT_SET_LDT          13
+#define MMUEXT_NEW_USER_BASEPTR 15
+
+#ifndef __ASSEMBLY__
+struct mmuext_op {
+    unsigned int cmd;
+    union {
+        /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
+        xen_pfn_t     mfn;
+        /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
+        unsigned long linear_addr;
+    } arg1;
+    union {
+        /* SET_LDT */
+        unsigned int nr_ents;
+        /* TLB_FLUSH_MULTI, INVLPG_MULTI */
+        XEN_GUEST_HANDLE_00030205(void) vcpumask;
+    } arg2;
+};
+typedef struct mmuext_op mmuext_op_t;
+DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
+#endif
+
+/* These are passed as 'flags' to update_va_mapping. They can be ORed. */
+/* When specifying UVMF_MULTI, also OR in a pointer to a CPU bitmap.   */
+/* UVMF_LOCAL is merely UVMF_MULTI with a NULL bitmap pointer.         */
+#define UVMF_NONE               (0UL<<0) /* No flushing at all.   */
+#define UVMF_TLB_FLUSH          (1UL<<0) /* Flush entire TLB(s).  */
+#define UVMF_INVLPG             (2UL<<0) /* Flush only one entry. */
+#define UVMF_FLUSHTYPE_MASK     (3UL<<0)
+#define UVMF_MULTI              (0UL<<2) /* Flush subset of TLBs. */
+#define UVMF_LOCAL              (0UL<<2) /* Flush local TLB.      */
+#define UVMF_ALL                (1UL<<2) /* Flush all TLBs.       */
+
+/*
+ * Commands to HYPERVISOR_console_io().
+ */
+#define CONSOLEIO_write         0
+#define CONSOLEIO_read          1
+#define CONSOLEIO_get_device   32
+
+/*
+ * Commands to HYPERVISOR_vm_assist().
+ */
+#define VMASST_CMD_enable                0
+#define VMASST_CMD_disable               1
+
+/* x86/32 guests: simulate full 4GB segment limits. */
+#define VMASST_TYPE_4gb_segments         0
+
+/* x86/32 guests: trap (vector 15) whenever above vmassist is used. */
+#define VMASST_TYPE_4gb_segments_notify  1
+
+/*
+ * x86 guests: support writes to bottom-level PTEs.
+ * NB1. Page-directory entries cannot be written.
+ * NB2. Guest must continue to remove all writable mappings of PTEs.
+ */
+#define VMASST_TYPE_writable_pagetables  2
+
+/* x86/PAE guests: support PDPTs above 4GB. */
+#define VMASST_TYPE_pae_extended_cr3     3
+
+#define MAX_VMASST_TYPE                  3
+
+#ifndef __ASSEMBLY__
+
+typedef uint16_t domid_t;
+
+/* Domain ids >= DOMID_FIRST_RESERVED cannot be used for ordinary domains. */
+#define DOMID_FIRST_RESERVED (0x7FF0U)
+
+/* DOMID_SELF is used in certain contexts to refer to oneself. */
+#define DOMID_SELF (0x7FF0U)
+
+/*
+ * DOMID_IO is used to restrict page-table updates to mapping I/O memory.
+ * Although no Foreign Domain need be specified to map I/O pages, DOMID_IO
+ * is useful to ensure that no mappings to the OS's own heap are accidentally
+ * installed. (e.g., in Linux this could cause havoc as reference counts
+ * aren't adjusted on the I/O-mapping code path).
+ * This only makes sense in MMUEXT_SET_FOREIGNDOM, but in that context can
+ * be specified by any calling domain.
+ */
+#define DOMID_IO   (0x7FF1U)
+
+/*
+ * DOMID_XEN is used to allow privileged domains to map restricted parts of
+ * Xen's heap space (e.g., the machine_to_phys table).
+ * This only makes sense in MMUEXT_SET_FOREIGNDOM, and is only permitted if
+ * the caller is privileged.
+ */
+#define DOMID_XEN  (0x7FF2U)
+
+/*
+ * Send an array of these to HYPERVISOR_mmu_update().
+ * NB. The fields are natural pointer/address size for this architecture.
+ */
+struct mmu_update {
+    uint64_t ptr;       /* Machine address of PTE. */
+    uint64_t val;       /* New contents of PTE.    */
+};
+typedef struct mmu_update mmu_update_t;
+DEFINE_XEN_GUEST_HANDLE(mmu_update_t);
+
+/*
+ * Send an array of these to HYPERVISOR_multicall().
+ * NB. The fields are natural register size for this architecture.
+ */
+struct multicall_entry {
+    unsigned long op, result;
+    unsigned long args[6];
+};
+typedef struct multicall_entry multicall_entry_t;
+DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);
+
+/*
+ * Event channel endpoints per domain:
+ *  1024 if a long is 32 bits; 4096 if a long is 64 bits.
+ */
+#define NR_EVENT_CHANNELS (sizeof(unsigned long) * sizeof(unsigned long) * 64)
+
+struct vcpu_time_info {
+    /*
+     * Updates to the following values are preceded and followed by an
+     * increment of 'version'. The guest can therefore detect updates by
+     * looking for changes to 'version'. If the least-significant bit of
+     * the version number is set then an update is in progress and the guest
+     * must wait to read a consistent set of values.
+     * The correct way to interact with the version number is similar to
+     * Linux's seqlock: see the implementations of read_seqbegin/read_seqretry.
+     */
+    uint32_t version;
+    uint32_t pad0;
+    uint64_t tsc_timestamp;   /* TSC at last update of time vals.  */
+    uint64_t system_time;     /* Time, in nanosecs, since boot.    */
+    /*
+     * Current system time:
+     *   system_time +
+     *   ((((tsc - tsc_timestamp) << tsc_shift) * tsc_to_system_mul) >> 32)
+     * CPU frequency (Hz):
+     *   ((10^9 << 32) / tsc_to_system_mul) >> tsc_shift
+     */
+    uint32_t tsc_to_system_mul;
+    int8_t   tsc_shift;
+    int8_t   pad1[3];
+}; /* 32 bytes */
+typedef struct vcpu_time_info vcpu_time_info_t;
+
+struct vcpu_info {
+    /*
+     * 'evtchn_upcall_pending' is written non-zero by Xen to indicate
+     * a pending notification for a particular VCPU. It is then cleared 
+     * by the guest OS /before/ checking for pending work, thus avoiding
+     * a set-and-check race. Note that the mask is only accessed by Xen
+     * on the CPU that is currently hosting the VCPU. This means that the
+     * pending and mask flags can be updated by the guest without special
+     * synchronisation (i.e., no need for the x86 LOCK prefix).
+     * This may seem suboptimal because if the pending flag is set by
+     * a different CPU then an IPI may be scheduled even when the mask
+     * is set. However, note:
+     *  1. The task of 'interrupt holdoff' is covered by the per-event-
+     *     channel mask bits. A 'noisy' event that is continually being
+     *     triggered can be masked at source at this very precise
+     *     granularity.
+     *  2. The main purpose of the per-VCPU mask is therefore to restrict
+     *     reentrant execution: whether for concurrency control, or to
+     *     prevent unbounded stack usage. Whatever the purpose, we expect
+     *     that the mask will be asserted only for short periods at a time,
+     *     and so the likelihood of a 'spurious' IPI is suitably small.
+     * The mask is read before making an event upcall to the guest: a
+     * non-zero mask therefore guarantees that the VCPU will not receive
+     * an upcall activation. The mask is cleared when the VCPU requests
+     * to block: this avoids wakeup-waiting races.
+     */
+    uint8_t evtchn_upcall_pending;
+    uint8_t evtchn_upcall_mask;
+    unsigned long evtchn_pending_sel;
+    struct arch_vcpu_info arch;
+    struct vcpu_time_info time;
+}; /* 64 bytes (x86) */
+typedef struct vcpu_info vcpu_info_t;
+
+/*
+ * Xen/kernel shared data -- pointer provided in start_info.
+ *
+ * This structure is defined to be both smaller than a page, and the
+ * only data on the shared page, but may vary in actual size even within
+ * compatible Xen versions; guests should not rely on the size
+ * of this structure remaining constant.
+ */
+struct shared_info {
+    struct vcpu_info vcpu_info[MAX_VIRT_CPUS];
+
+    /*
+     * A domain can create "event channels" on which it can send and receive
+     * asynchronous event notifications. There are three classes of event that
+     * are delivered by this mechanism:
+     *  1. Bi-directional inter- and intra-domain connections. Domains must
+     *     arrange out-of-band to set up a connection (usually by allocating
+     *     an unbound 'listener' port and avertising that via a storage service
+     *     such as xenstore).
+     *  2. Physical interrupts. A domain with suitable hardware-access
+     *     privileges can bind an event-channel port to a physical interrupt
+     *     source.
+     *  3. Virtual interrupts ('events'). A domain can bind an event-channel
+     *     port to a virtual interrupt source, such as the virtual-timer
+     *     device or the emergency console.
+     * 
+     * Event channels are addressed by a "port index". Each channel is
+     * associated with two bits of information:
+     *  1. PENDING -- notifies the domain that there is a pending notification
+     *     to be processed. This bit is cleared by the guest.
+     *  2. MASK -- if this bit is clear then a 0->1 transition of PENDING
+     *     will cause an asynchronous upcall to be scheduled. This bit is only
+     *     updated by the guest. It is read-only within Xen. If a channel
+     *     becomes pending while the channel is masked then the 'edge' is lost
+     *     (i.e., when the channel is unmasked, the guest must manually handle
+     *     pending notifications as no upcall will be scheduled by Xen).
+     * 
+     * To expedite scanning of pending notifications, any 0->1 pending
+     * transition on an unmasked channel causes a corresponding bit in a
+     * per-vcpu selector word to be set. Each bit in the selector covers a
+     * 'C long' in the PENDING bitfield array.
+     */
+    unsigned long evtchn_pending[sizeof(unsigned long) * 8];
+    unsigned long evtchn_mask[sizeof(unsigned long) * 8];
+
+    /*
+     * Wallclock time: updated only by control software. Guests should base
+     * their gettimeofday() syscall on this wallclock-base value.
+     */
+    uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
+    uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
+    uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
+
+    struct arch_shared_info arch;
+
+};
+typedef struct shared_info shared_info_t;
+
+/*
+ * Start-of-day memory layout for the initial domain (DOM0):
+ *  1. The domain is started within contiguous virtual-memory region.
+ *  2. The contiguous region begins and ends on an aligned 4MB boundary.
+ *  3. The region start corresponds to the load address of the OS image.
+ *     If the load address is not 4MB aligned then the address is rounded down.
+ *  4. This the order of bootstrap elements in the initial virtual region:
+ *      a. relocated kernel image
+ *      b. initial ram disk              [mod_start, mod_len]
+ *      c. list of allocated page frames [mfn_list, nr_pages]
+ *      d. start_info_t structure        [register ESI (x86)]
+ *      e. bootstrap page tables         [pt_base, CR3 (x86)]
+ *      f. bootstrap stack               [register ESP (x86)]
+ *  5. Bootstrap elements are packed together, but each is 4kB-aligned.
+ *  6. The initial ram disk may be omitted.
+ *  7. The list of page frames forms a contiguous 'pseudo-physical' memory
+ *     layout for the domain. In particular, the bootstrap virtual-memory
+ *     region is a 1:1 mapping to the first section of the pseudo-physical map.
+ *  8. All bootstrap elements are mapped read-writable for the guest OS. The
+ *     only exception is the bootstrap page table, which is mapped read-only.
+ *  9. There is guaranteed to be at least 512kB padding after the final
+ *     bootstrap element. If necessary, the bootstrap virtual region is
+ *     extended by an extra 4MB to ensure this.
+ */
+
+#define MAX_GUEST_CMDLINE 1024
+struct start_info {
+    /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
+    char magic[32];             /* "xen-<version>-<platform>".            */
+    unsigned long nr_pages;     /* Total pages allocated to this domain.  */
+    unsigned long shared_info;  /* MACHINE address of shared info struct. */
+    uint32_t flags;             /* SIF_xxx flags.                         */
+    xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
+    uint32_t store_evtchn;      /* Event channel for store communication. */
+    union {
+        struct {
+            xen_pfn_t mfn;      /* MACHINE page number of console page.   */
+            uint32_t  evtchn;   /* Event channel for console page.        */
+        } domU;
+        struct {
+            uint32_t info_off;  /* Offset of console_info struct.         */
+            uint32_t info_size; /* Size of console_info struct from start.*/
+        } dom0;
+    } console;
+    /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME).     */
+    unsigned long pt_base;      /* VIRTUAL address of page directory.     */
+    unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames.       */
+    unsigned long mfn_list;     /* VIRTUAL address of page-frame list.    */
+    unsigned long mod_start;    /* VIRTUAL address of pre-loaded module.  */
+    unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     */
+    int8_t cmd_line[MAX_GUEST_CMDLINE];
+};
+typedef struct start_info start_info_t;
+
+/* New console union for dom0 introduced in 0x00030203. */
+#if __XEN_INTERFACE_VERSION__ < 0x00030203
+#define console_mfn    console.domU.mfn
+#define console_evtchn console.domU.evtchn
+#endif
+
+/* These flags are passed in the 'flags' field of start_info_t. */
+#define SIF_PRIVILEGED    (1<<0)  /* Is the domain privileged? */
+#define SIF_INITDOMAIN    (1<<1)  /* Is this the initial control domain? */
+
+#define XEN_CONSOLE_INVALID   -1
+#define XEN_CONSOLE_COM1       0
+#define XEN_CONSOLE_COM2       1
+#define XEN_CONSOLE_VGA        2
+
+typedef struct dom0_vga_console_info {
+    uint8_t video_type; /* DOM0_VGA_CONSOLE_??? */
+#define XEN_VGATYPE_TEXT_MODE_3 0x03
+#define XEN_VGATYPE_VESA_LFB    0x23
+
+    union {
+        struct {
+            /* Font height, in pixels. */
+            uint16_t font_height;
+            /* Cursor location (column, row). */
+            uint16_t cursor_x, cursor_y;
+            /* Number of rows and columns (dimensions in characters). */
+            uint16_t rows, columns;
+        } text_mode_3;
+
+        struct {
+            /* Width and height, in pixels. */
+            uint16_t width, height;
+            /* Bytes per scan line. */
+            uint16_t bytes_per_line;
+            /* Bits per pixel. */
+            uint16_t bits_per_pixel;
+            /* LFB physical address, and size (in units of 64kB). */
+            uint32_t lfb_base;
+            uint32_t lfb_size;
+            /* RGB mask offsets and sizes, as defined by VBE 1.2+ */
+            uint8_t  red_pos, red_size;
+            uint8_t  green_pos, green_size;
+            uint8_t  blue_pos, blue_size;
+            uint8_t  rsvd_pos, rsvd_size;
+        } vesa_lfb;
+    } u;
+} dom0_vga_console_info_t;
+
+typedef uint8_t xen_domain_handle_t[16];
+
+/* Turn a plain number into a C unsigned long constant. */
+#define __mk_unsigned_long(x) x ## UL
+#define mk_unsigned_long(x) __mk_unsigned_long(x)
+
+DEFINE_XEN_GUEST_HANDLE(uint8_t);
+DEFINE_XEN_GUEST_HANDLE(uint16_t);
+DEFINE_XEN_GUEST_HANDLE(uint32_t);
+DEFINE_XEN_GUEST_HANDLE(uint64_t);
+
+#else /* __ASSEMBLY__ */
+
+/* In assembly code we cannot use C numeric constant suffixes. */
+#define mk_unsigned_long(x) x
+
+#endif /* !__ASSEMBLY__ */
+
+#endif /* __XEN_PUBLIC_XEN_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/README	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,36 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident "@(#)prototype.Makefile 1.15    06/02/08 SMI"
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+evtchn.h, privcmd.h, and xenbus.h should not be edited in ON. They are
+copies from a specific build of the xen consolidation which can be found in:
+  xen.hg/tools/libxc/xen/solaris
+
+Any changes to these files should be done in the xen consolidation.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/evtchn.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,101 @@
+/******************************************************************************
+ * evtchn.h
+ * 
+ * Interface to /dev/xen/evtchn.
+ * 
+ * Copyright (c) 2003-2005, K A Fraser
+ * 
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _XEN_SYS_EVTCHN_H
+#define _XEN_SYS_EVTCHN_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#define	_IOC_NONE	0
+#define	_IOC(flag, letter, inum, size)	((letter) << 8 | (inum))
+
+/*
+ * Bind a fresh port to VIRQ @virq.
+ * Return allocated port.
+ */
+#define IOCTL_EVTCHN_BIND_VIRQ				\
+	_IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
+struct ioctl_evtchn_bind_virq {
+	unsigned int virq;
+};
+
+/*
+ * Bind a fresh port to remote <@remote_domain, @remote_port>.
+ * Return allocated port.
+ */
+#define IOCTL_EVTCHN_BIND_INTERDOMAIN			\
+	_IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
+struct ioctl_evtchn_bind_interdomain {
+	unsigned int remote_domain, remote_port;
+};
+
+/*
+ * Allocate a fresh port for binding to @remote_domain.
+ * Return allocated port.
+ */
+#define IOCTL_EVTCHN_BIND_UNBOUND_PORT                  \
+        _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
+struct ioctl_evtchn_bind_unbound_port {
+        unsigned int remote_domain;
+};
+
+/*
+ * Unbind previously allocated @port.
+ */
+#define IOCTL_EVTCHN_UNBIND				\
+	_IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
+struct ioctl_evtchn_unbind {
+	unsigned int port;
+};
+
+/*
+ * Notify the given @port.
+ */
+#define IOCTL_EVTCHN_NOTIFY				\
+	_IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
+struct ioctl_evtchn_notify {
+	unsigned int port;
+};
+
+#endif /* _XEN_SYS_EVTCHN_H */
+
+/*
+ * Local variables:
+ *  c-file-style: "solaris"
+ *  indent-tabs-mode: t
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/privcmd.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2003-2005, K A Fraser
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_XEN_SYS_PRIVCMD_H
+#define	_XEN_SYS_PRIVCMD_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * WARNING:
+ *	These numbers and structure are built into the ON privcmd
+ *	driver, as well as the low-level tools and libraries in
+ *	the Xen consolidation.
+ */
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * ioctl numbers and corresponding data structures
+ */
+
+#define	__PRIVCMD_IOC			(('p'<<24)|('r'<<16)|('v'<<8))
+
+#define	IOCTL_PRIVCMD_HYPERCALL		(__PRIVCMD_IOC|0)
+#define	IOCTL_PRIVCMD_MMAP		(__PRIVCMD_IOC|1)
+#define	IOCTL_PRIVCMD_MMAPBATCH		(__PRIVCMD_IOC|2)
+
+typedef struct __privcmd_hypercall {
+	unsigned long op;
+	unsigned long arg[5];
+} privcmd_hypercall_t;
+
+typedef struct __privcmd_mmap_entry {
+	unsigned long va;
+	unsigned long mfn;
+	unsigned long npages;
+} privcmd_mmap_entry_t;
+
+typedef struct __privcmd_mmap {
+	int num;
+	domid_t dom;	/* target domain */
+	privcmd_mmap_entry_t *entry;
+} privcmd_mmap_t;
+
+typedef struct __privcmd_mmapbatch {
+	int num;	/* number of pages to populate */
+	domid_t dom;	/* target domain */
+	unsigned long addr;	  /* virtual address */
+	unsigned long *arr;	  /* array of mfns - top nibble set on err */
+} privcmd_mmapbatch_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XEN_SYS_PRIVCMD_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/xenbus.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+/*
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _XEN_SYS_XENBUS_H
+#define	_XEN_SYS_XENBUS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Return the xenstore event channel.
+ */
+#define	IOCTL_XENBUS_XENSTORE_EVTCHN ('X' << 8)
+
+/*
+ * Notify the kernel that the xenstore is up and running
+ */
+#define	IOCTL_XENBUS_NOTIFY_UP ('U' << 8)
+
+#endif /* _XEN_SYS_XENBUS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/xenbus_comms.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,64 @@
+/*
+ * Private include for xenbus communications.
+ *
+ * Copyright (C) 2005 Rusty Russell, IBM Corporation
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_XENBUS_COMMS_H
+#define	_SYS_XENBUS_COMMS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/sunddi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* xenbus interface interrupt */
+#define	IPL_XENBUS	0x01
+
+void xs_early_init(void);
+void xs_domu_init(void);
+void xs_dom0_init(void);
+void xb_suspend(void);
+void xb_init(void);
+void xb_setup_intr(void);
+
+/* Low level routines. */
+int xb_write(const void *data, unsigned len);
+int xb_read(void *data, unsigned len);
+
+ddi_umem_cookie_t xb_xenstore_cookie(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_XENBUS_COMMS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/xenbus_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,261 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ *
+ * xenbus.h (renamed to xenbus_impl.h)
+ *
+ * Talks to Xen Store to figure out what devices we have.
+ *
+ * Copyright (C) 2005 Rusty Russell, IBM Corporation
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _SYS_XENBUS_H
+#define	_SYS_XENBUS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/mutex.h>
+#include <sys/list.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+#define	XBT_NULL 0
+
+typedef uint32_t xenbus_transaction_t;
+
+/* Register callback to watch this node. */
+struct xenbus_watch
+{
+	list_t list;
+	const char *node;	/* path being watched */
+	void (*callback)(struct xenbus_watch *,
+			const char **vec,  unsigned int len);
+	struct xenbus_device *dev;
+};
+
+/*
+ * Call this function when xenstore is available, i.e. the daemon is
+ * connected to the xenbus device.
+ */
+struct xenbus_notify {
+	list_t list;
+	void (*notify_func) (int);
+};
+
+/* A xenbus device. */
+struct xenbus_device {
+	const char *devicetype;
+	const char *nodename;
+	const char *otherend;
+	int otherend_id;
+	int otherend_state;
+	struct xenbus_watch otherend_watch;
+	int has_error;
+	int frontend;
+	void (*otherend_changed)(struct xenbus_device *, XenbusState);
+	void *data;
+};
+
+
+extern char **xenbus_directory(xenbus_transaction_t t, const char *dir,
+	    const char *node, unsigned int *num);
+extern int xenbus_read(xenbus_transaction_t t, const char *dir,
+	    const char *node, void **rstr, unsigned int *len);
+extern int xenbus_write(xenbus_transaction_t t, const char *dir,
+	    const char *node, const char *string);
+extern int xenbus_mkdir(xenbus_transaction_t t, const char *dir,
+	    const char *node);
+extern int xenbus_exists(xenbus_transaction_t t, const char *dir,
+	    const char *node);
+extern int xenbus_rm(xenbus_transaction_t t, const char *dir,
+	    const char *node);
+extern int xenbus_transaction_start(xenbus_transaction_t *t);
+extern int xenbus_transaction_end(xenbus_transaction_t t, int abort);
+
+/* Single read and scanf: returns errno or num scanned if > 0. */
+extern int xenbus_scanf(xenbus_transaction_t t, const char *dir,
+	    const char *node, const char *fmt, ...);
+
+/* Single printf and write: returns errno or 0. */
+extern int xenbus_printf(xenbus_transaction_t t, const char *dir,
+	    const char *node, const char *fmt, ...);
+
+/*
+ * Generic read function: NULL-terminated triples of name,
+ * sprintf-style type string, and pointer. Returns 0 or errno.
+ */
+extern int xenbus_gather(xenbus_transaction_t t, const char *dir, ...);
+
+extern int register_xenbus_watch(struct xenbus_watch *watch);
+extern void unregister_xenbus_watch(struct xenbus_watch *watch);
+extern void reregister_xenbus_watches(void);
+
+/* Called from xen core code. */
+extern void xenbus_suspend(void);
+extern void xenbus_resume(void);
+
+#define	XENBUS_EXIST_ERR(err) ((err) == ENOENT || (err) == ERANGE)
+
+/*
+ * Register a watch on the given path, using the given xenbus_watch structure
+ * for storage, and the given callback function as the callback.  Return 0 on
+ * success, or errno on error.  On success, the given path will be saved as
+ * watch->node, and remains the caller's to free.  On error, watch->node will
+ * be NULL, the device will switch to XenbusStateClosing, and the error will
+ * be saved in the store.
+ */
+extern int xenbus_watch_path(struct xenbus_device *dev, const char *path,
+			struct xenbus_watch *watch,
+			void (*callback)(struct xenbus_watch *,
+			const char **, unsigned int));
+
+
+/*
+ * Register a watch on the given path/path2, using the given xenbus_watch
+ * structure for storage, and the given callback function as the callback.
+ * Return 0 on success, or errno on error.  On success, the watched path
+ * (path/path2) will be saved as watch->node, and becomes the caller's to
+ * kfree().  On error, watch->node will be NULL, so the caller has nothing to
+ * free, the device will switch to XenbusStateClosing, and the error will be
+ * saved in the store.
+ */
+extern int xenbus_watch_path2(struct xenbus_device *dev, const char *path,
+			const char *path2, struct xenbus_watch *watch,
+			void (*callback)(struct xenbus_watch *,
+			const char **, unsigned int));
+
+
+/*
+ * Advertise in the store a change of the given driver to the given new_state.
+ * Perform the change inside the given transaction xbt.  xbt may be NULL, in
+ * which case this is performed inside its own transaction.  Return 0 on
+ * success, or errno on error.  On error, the device will switch to
+ * XenbusStateClosing, and the error will be saved in the store.
+ */
+extern int xenbus_switch_state(struct xenbus_device *dev,
+			xenbus_transaction_t xbt,
+			XenbusState new_state);
+
+
+/*
+ * Grant access to the given ring_mfn to the peer of the given device.  Return
+ * 0 on success, or errno on error.  On error, the device will switch to
+ * XenbusStateClosing, and the error will be saved in the store.
+ */
+extern int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn);
+
+
+/*
+ * Allocate an event channel for the given xenbus_device, assigning the newly
+ * created local port to *port.  Return 0 on success, or errno on error.  On
+ * error, the device will switch to XenbusStateClosing, and the error will be
+ * saved in the store.
+ */
+extern int xenbus_alloc_evtchn(struct xenbus_device *dev, int *port);
+
+
+/*
+ * Return the state of the driver rooted at the given store path, or
+ * XenbusStateClosed if no state can be read.
+ */
+extern XenbusState xenbus_read_driver_state(const char *path);
+
+
+/*
+ * Report the given negative errno into the store, along with the given
+ * formatted message.
+ */
+extern void xenbus_dev_error(struct xenbus_device *dev, int err,
+	const char *fmt, ...);
+
+
+/*
+ * Equivalent to xenbus_dev_error(dev, err, fmt, args), followed by
+ * xenbus_switch_state(dev, NULL, XenbusStateClosing) to schedule an orderly
+ * closedown of this driver and its peer.
+ */
+extern void xenbus_dev_fatal(struct xenbus_device *dev,
+	int err, const char *fmt, ...);
+
+/* Clear any error. */
+extern void xenbus_dev_ok(struct xenbus_device *dev);
+
+/*
+ * Set up watches on other end of split device.
+ */
+extern int talk_to_otherend(struct xenbus_device *dev);
+
+#define	XENSTORE_DOWN	0	/* xenstore is down */
+#define	XENSTORE_UP	1	/* xenstore is up */
+
+/*
+ * Register a notify callback function.
+ */
+extern int xs_register_xenbus_callback(void (*callback)(int));
+
+/*
+ * Notify clients that xenstore is up
+ */
+extern void xs_notify_xenstore_up(void);
+
+/*
+ * Notify clients that xenstore is down
+ */
+extern void xs_notify_xenstore_down(void);
+
+struct xsd_sockmsg;
+
+extern int xenbus_dev_request_and_reply(struct xsd_sockmsg *, void **);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* _SYS_XENBUS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/common/xen/sys/xendev.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,212 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_XENDEV_H
+#define	_SYS_XENDEV_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/hypervisor.h>
+#include <sys/taskq.h>
+#include <xen/sys/xenbus_impl.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/*
+ * Xen device class codes
+ */
+typedef enum {
+	XEN_INVAL = -1,
+	XEN_CONSOLE = 0,
+	XEN_VNET,
+	XEN_VBLK,
+	XEN_XENBUS,
+	XEN_DOMCAPS,
+	XEN_BALLOON,
+	XEN_EVTCHN,
+	XEN_PRIVCMD,
+	XEN_LASTCLASS
+} xendev_devclass_t;
+
+/*
+ * Hotplug request sent to userland event handler.
+ */
+typedef enum {
+	XEN_HP_ADD,
+	XEN_HP_REMOVE
+} xendev_hotplug_cmd_t;
+
+/*
+ * Hotplug status.
+ *
+ * In fact, the Xen tools can write any arbitrary string into the
+ * hotplug-status node. We represent the known values here - anything
+ * else will be 'Unrecognized'.
+ */
+typedef enum {
+	Unrecognized,
+	Connected
+} xendev_hotplug_state_t;
+
+struct xendev_ppd {
+	int			xd_evtchn;
+	struct intrspec		xd_ispec;
+	xendev_devclass_t	xd_devclass;
+	domid_t			xd_domain;
+	int			xd_vdevnum;
+	struct xenbus_device	xd_xsdev;
+	struct xenbus_watch	xd_hp_watch;
+	struct xenbus_watch	xd_bepath_watch;
+	kmutex_t		xd_lk;
+	ddi_callback_id_t	xd_oe_ehid;
+	ddi_callback_id_t	xd_hp_ehid;
+	ddi_taskq_t		*xd_oe_taskq;
+	ddi_taskq_t		*xd_hp_taskq;
+};
+
+#define	XS_OE_STATE	"SUNW,xendev:otherend_state"
+#define	XS_HP_STATE	"SUNW,xendev:hotplug_state"
+
+void	xendev_enum_class(dev_info_t *, xendev_devclass_t);
+void	xendev_enum_all(dev_info_t *, boolean_t);
+xendev_devclass_t	xendev_nodename_to_devclass(char *);
+int	xendev_devclass_ipl(xendev_devclass_t);
+struct intrspec *xendev_get_ispec(dev_info_t *, uint_t);
+void	xvdi_suspend(dev_info_t *);
+int	xvdi_resume(dev_info_t *);
+int	xvdi_alloc_evtchn(dev_info_t *);
+int	xvdi_bind_evtchn(dev_info_t *, evtchn_port_t);
+void	xvdi_free_evtchn(dev_info_t *);
+int	xvdi_add_event_handler(dev_info_t *, char *,
+	void (*)(dev_info_t *, ddi_eventcookie_t, void *, void *));
+void	xvdi_remove_event_handler(dev_info_t *, char *);
+int	xvdi_get_evtchn(dev_info_t *);
+int	xvdi_get_vdevnum(dev_info_t *);
+char	*xvdi_get_xsname(dev_info_t *);
+char	*xvdi_get_oename(dev_info_t *);
+domid_t	xvdi_get_oeid(dev_info_t *);
+void	xvdi_dev_error(dev_info_t *, int, char *);
+void	xvdi_fatal_error(dev_info_t *, int, char *);
+void	xvdi_notify_oe(dev_info_t *);
+int	xvdi_post_event(dev_info_t *, xendev_hotplug_cmd_t);
+struct  xenbus_device *xvdi_get_xsd(dev_info_t *);
+int	xvdi_switch_state(dev_info_t *, xenbus_transaction_t, XenbusState);
+dev_info_t	*xvdi_create_dev(dev_info_t *, xendev_devclass_t,
+    domid_t, int);
+int	xvdi_init_dev(dev_info_t *);
+void	xvdi_uninit_dev(dev_info_t *);
+dev_info_t	*xvdi_find_dev(dev_info_t *, xendev_devclass_t, domid_t, int);
+
+/*
+ * common ring interfaces
+ */
+
+/*
+ * we need the pad between ring index
+ * and the real ring containing requests/responses,
+ * so that we can map comif_sring_t structure to
+ * any xxxif_sring_t structure defined via macros in ring.h
+ */
+#define	SRINGPAD		48
+
+typedef struct comif_sring {
+	RING_IDX req_prod, req_event;
+	RING_IDX rsp_prod, rsp_event;
+	uint8_t  pad[SRINGPAD];
+	/*
+	 * variable length
+	 * stores real request/response entries
+	 * entry size is fixed per ring
+	 */
+	char ring[1];
+} comif_sring_t;
+
+typedef struct comif_ring_fe {
+	/*
+	 * keep the member names as defined in ring.h
+	 * in order to make use of the pre-defined macros
+	 */
+	RING_IDX req_prod_pvt;
+	RING_IDX rsp_cons;
+	unsigned int nr_ents;
+	comif_sring_t *sring;
+} comif_ring_fe_t;
+
+typedef struct comif_ring_be {
+	/*
+	 * keep the member names as defined in ring.h
+	 * in order to make use of the pre-defined macros
+	 */
+	RING_IDX rsp_prod_pvt;
+	RING_IDX req_cons;
+	unsigned int nr_ents;
+	comif_sring_t  *sring;
+} comif_ring_be_t;
+
+typedef union comif_ring {
+	comif_ring_fe_t fr;
+	comif_ring_be_t br;
+} comif_ring_t;
+
+typedef struct xendev_req {
+	unsigned long next;
+	void *req;
+} xendev_req_t;
+
+typedef struct xendev_ring {
+	ddi_dma_handle_t xr_dma_hdl;
+	ddi_acc_handle_t xr_acc_hdl;
+	grant_handle_t xr_grant_hdl;
+	caddr_t xr_vaddr;
+	paddr_t xr_paddr;
+	grant_ref_t xr_gref;
+	int xr_entry_size;
+	int xr_frontend;
+	comif_ring_t xr_sring;
+} xendev_ring_t;
+
+int	xvdi_alloc_ring(dev_info_t *, size_t, size_t, grant_ref_t *,
+	xendev_ring_t **);
+void	xvdi_free_ring(xendev_ring_t *);
+int	xvdi_map_ring(dev_info_t *, size_t, size_t, grant_ref_t,
+	xendev_ring_t **);
+void	xvdi_unmap_ring(xendev_ring_t *);
+uint_t	xvdi_ring_avail_slots(xendev_ring_t *);
+int	xvdi_ring_has_unconsumed_requests(xendev_ring_t *);
+int	xvdi_ring_has_incomp_request(xendev_ring_t *);
+int	xvdi_ring_has_unconsumed_responses(xendev_ring_t *);
+void*	xvdi_ring_get_request(xendev_ring_t *);
+int	xvdi_ring_push_request(xendev_ring_t *);
+void*	xvdi_ring_get_response(xendev_ring_t *);
+int	xvdi_ring_push_response(xendev_ring_t *);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _SYS_XENDEV_H */
--- a/usr/src/uts/i86pc/Makefile.files	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/Makefile.files	Tue Sep 18 15:46:43 2007 -0700
@@ -56,7 +56,6 @@
 	hold_page.o		\
 	hrtimers.o		\
 	htable.o		\
-	i8254.o			\
 	i86_mmu.o		\
 	instr_size.o		\
 	intr.o			\
@@ -72,6 +71,7 @@
 	mem_config_stubs.o	\
 	memnode.o		\
 	microcode.o		\
+	microfind.o		\
 	mlsetup.o		\
 	mp_call.o		\
 	mp_implfuncs.o		\
@@ -143,9 +143,10 @@
 DBOOT_OBJS_64 += dboot_elfload.o
 
 DBOOT_OBJS +=			\
+	dboot_asm.o		\
 	dboot_grub.o		\
+	dboot_printf.o		\
 	dboot_startkern.o	\
-	dboot_printf.o		\
 	memcpy.o		\
 	memset.o		\
 	muldiv.o		\
@@ -175,7 +176,6 @@
 	mcamd_pcicfg.o
 
 CPUDRV_OBJS	+= cpudrv.o cpudrv_plat.o cpu_acpi.o speedstep.o
-CPUNEX_OBJS	+= cpunex.o
 PPM_OBJS	+= ppm_subr.o ppm.o ppm_plat.o
 
 ROOTNEX_OBJS += rootnex.o
--- a/usr/src/uts/i86pc/Makefile.i86pc.shared	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/Makefile.i86pc.shared	Tue Sep 18 15:46:43 2007 -0700
@@ -255,7 +255,6 @@
 DRV_KMODS	+= battery
 
 DRV_KMODS	+= cpudrv
-DRV_KMODS	+= cpunex
 DRV_KMODS	+= ppm
 
 $(CLOSED_BUILD)CLOSED_DRV_KMODS		+= memtest
--- a/usr/src/uts/i86pc/Makefile.rules	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/Makefile.rules	Tue Sep 18 15:46:43 2007 -0700
@@ -153,8 +153,8 @@
 DBOOT_LINTS_DIR	= $(DBOOT_OBJS_DIR)
 DBOOT_LINTFLAGS_i86pc	= $(LINTFLAGS_i386_32) $(LINTTAGS_i386_32)
 
-DBOOT_LINTFLAGS = $(DBOOT_LINTFLAGS_$(PLATFORM)) $(C99LMODE) $(CPPFLAGS) \
-	$(DBOOT_DEFS)
+DBOOT_LINTFLAGS = $(DBOOT_LINTFLAGS_$(PLATFORM)) $(LINTTAGS) $(C99LMODE) \
+	$(CPPFLAGS) $(DBOOT_DEFS)
 DBOOT_LOCAL_LINTFLAGS   = -c -dirout=$(DBOOT_LINTS_DIR) -I$(SRC)/common \
 	$(DBOOT_LINTFLAGS) $(DBOOT_LINTTAGS)
 
--- a/usr/src/uts/i86pc/boot/boot_console.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/boot/boot_console.c	Tue Sep 18 15:46:43 2007 -0700
@@ -29,22 +29,41 @@
 #include <sys/systm.h>
 #include <sys/archsystm.h>
 #include <sys/boot_console.h>
+#include <sys/panic.h>
 #include <sys/ctype.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif /* __xpv */
 
 #include "boot_serial.h"
 #include "boot_vga.h"
 
 #if defined(_BOOT)
+#include <dboot/dboot_asm.h>
 #include <dboot/dboot_xboot.h>
-#else
+#else /* _BOOT */
 #include <sys/bootconf.h>
+#if defined(__xpv)
+#include <sys/evtchn_impl.h>
+#endif /* __xpv */
 static char *usbser_buf;
 static char *usbser_cur;
-#endif
+#endif /* _BOOT */
+
+#if defined(__xpv)
+extern void bcons_init_xen(char *);
+extern void bcons_putchar_xen(int);
+extern int bcons_getchar_xen(void);
+extern int bcons_ischar_xen(void);
+#endif /* __xpv */
 
 static int cons_color = CONS_COLOR;
 int console = CONS_SCREEN_TEXT;
-/* or CONS_TTYA, CONS_TTYB */
+#if defined(__xpv)
+static int console_hypervisor_redirect = B_FALSE;
+static int console_hypervisor_device = CONS_INVALID;
+#endif /* __xpv */
+
 static int serial_ischar(void);
 static int serial_getchar(void);
 static void serial_putchar(int);
@@ -52,17 +71,23 @@
 
 static char *boot_line = NULL;
 
+#if !defined(_BOOT)
 /* Set if the console or mode are expressed in the boot line */
 static int console_set, console_mode_set;
+#endif
 
 /* Clear the screen and initialize VIDEO, XPOS and YPOS. */
-static void
+void
 clear_screen(void)
 {
 	/*
 	 * XXX should set vga mode so we don't depend on the
-	 * state left by the boot loader
+	 * state left by the boot loader.  Note that we have to
+	 * enable the cursor before clearing the screen since
+	 * the cursor position is dependant upon the cursor
+	 * skew, which is initialized by vga_cursor_display()
 	 */
+	vga_cursor_display();
 	vga_clear(cons_color);
 	vga_setpos(0, 0);
 }
@@ -113,6 +138,24 @@
 }
 
 /* serial port stuff */
+#if defined(__xpv) && defined(_BOOT)
+static int
+ec_probe_pirq(int pirq)
+{
+	evtchn_bind_pirq_t bind;
+	evtchn_close_t close;
+
+	bind.pirq = pirq;
+	bind.flags = 0;
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_pirq, &bind) != 0)
+		return (0);
+
+	close.port = bind.port;
+	(void) HYPERVISOR_event_channel_op(EVTCHNOP_close, &close);
+	return (1);
+}
+#endif /* __xpv && _BOOT */
+
 static int port;
 
 static void
@@ -161,6 +204,11 @@
 	/* disable interrupts */
 	outb(port + ICR, 0);
 
+#if !defined(_BOOT)
+	if (IN_XPV_PANIC())
+		return;
+#endif
+
 	/* adjust setting based on tty properties */
 	serial_adjust_prop();
 
@@ -345,8 +393,10 @@
 	propval = get_mode_value(propname);
 	if (propval == NULL)
 		propval = "9600,8,n,1,-";
+#if !defined(_BOOT)
 	else
 		console_mode_set = 1;
+#endif
 
 	/* property is of the form: "9600,8,n,1,-" */
 	p = propval;
@@ -456,6 +506,9 @@
 	{ "ttya", CONS_TTYA },
 	{ "ttyb", CONS_TTYB },
 	{ "text", CONS_SCREEN_TEXT },
+#if defined(__xpv)
+	{ "hypervisor", CONS_HYPERVISOR },
+#endif
 #if !defined(_BOOT)
 	{ "usb-serial", CONS_USBSER },
 #endif
@@ -472,6 +525,10 @@
 	boot_line = bootstr;
 	console = CONS_INVALID;
 
+#if defined(__xpv)
+	bcons_init_xen(bootstr);
+#endif /* __xpv */
+
 	cons_str = find_boot_line_prop("console");
 	if (cons_str == NULL)
 		cons_str = find_boot_line_prop("output-device");
@@ -496,14 +553,63 @@
 		}
 	}
 
+#if defined(__xpv)
+	/*
+	 * domU's always use the hypervisor regardless of what
+	 * the console variable may be set to.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		console = CONS_HYPERVISOR;
+		console_hypervisor_redirect = B_TRUE;
+	}
+#endif /* __xpv */
+
 	/*
 	 * If no console device specified, default to text.
 	 * Remember what was specified for second phase.
 	 */
 	if (console == CONS_INVALID)
 		console = CONS_SCREEN_TEXT;
+#if !defined(_BOOT)
 	else
 		console_set = 1;
+#endif
+
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		switch (HYPERVISOR_console_io(CONSOLEIO_get_device, 0, NULL)) {
+			case XEN_CONSOLE_COM1:
+				console_hypervisor_device = CONS_TTYA;
+				break;
+			case XEN_CONSOLE_COM2:
+				console_hypervisor_device = CONS_TTYB;
+				break;
+			case XEN_CONSOLE_VGA:
+				/*
+				 * Currently xen doesn't really support
+				 * keyboard/display console devices.
+				 * What this setting means is that
+				 * "vga=keep" has been enabled, which is
+				 * more of a xen debugging tool that a
+				 * true console mode.  Hence, we're going
+				 * to ignore this xen "console" setting.
+				 */
+				/*FALLTHROUGH*/
+			default:
+				console_hypervisor_device = CONS_INVALID;
+		}
+	}
+
+	/*
+	 * if the hypervisor is using the currently selected serial
+	 * port then default to using the hypervisor as the console
+	 * device.
+	 */
+	if (console == console_hypervisor_device) {
+		console = CONS_HYPERVISOR;
+		console_hypervisor_redirect = B_TRUE;
+	}
+#endif /* __xpv */
 
 	switch (console) {
 	case CONS_TTYA:
@@ -511,6 +617,9 @@
 		serial_init();
 		break;
 
+	case CONS_HYPERVISOR:
+		break;
+
 #if !defined(_BOOT)
 	case CONS_USBSER:
 		/*
@@ -522,14 +631,15 @@
 	case CONS_SCREEN_TEXT:
 	default:
 #if defined(_BOOT)
-		clear_screen();	/* clears the grub screen */
-#endif
+		clear_screen();	/* clears the grub or xen screen */
+#endif /* _BOOT */
 		kb_init();
 		break;
 	}
 	boot_line = NULL;
 }
 
+#if !defined(_BOOT)
 /*
  * 2nd part of console initialization.
  * In the kernel (ie. fakebop), this can be used only to switch to
@@ -540,7 +650,6 @@
 void
 bcons_init2(char *inputdev, char *outputdev, char *consoledev)
 {
-#if !defined(_BOOT)
 	int cons = CONS_INVALID;
 	char *devnames[] = { consoledev, outputdev, inputdev, NULL };
 	console_value_t *consolep;
@@ -570,10 +679,24 @@
 				break;
 		}
 
-		if (cons == CONS_INVALID)
+#if defined(__xpv)
+		/*
+		 * if the hypervisor is using the currently selected console
+		 * device then default to using the hypervisor as the console
+		 * device.
+		 */
+		if (cons == console_hypervisor_device) {
+			cons = CONS_HYPERVISOR;
+			console_hypervisor_redirect = B_TRUE;
+		}
+#endif /* __xpv */
+
+		if ((cons == CONS_INVALID) || (cons == console)) {
+			/*
+			 * we're sticking with whatever the current setting is
+			 */
 			return;
-		if (cons == console)
-			return;
+		}
 
 		console = cons;
 		if (cons == CONS_TTYA || cons == CONS_TTYB) {
@@ -582,6 +705,7 @@
 		}
 	}
 
+
 	/*
 	 * USB serial -- we just collect data into a buffer
 	 */
@@ -589,10 +713,36 @@
 		extern void *usbser_init(size_t);
 		usbser_buf = usbser_cur = usbser_init(MMU_PAGESIZE);
 	}
-#endif	/* _BOOT */
+}
+
+#if defined(__xpv)
+boolean_t
+bcons_hypervisor_redirect(void)
+{
+	return (console_hypervisor_redirect);
 }
 
-#if !defined(_BOOT)
+void
+bcons_device_change(int new_console)
+{
+	if (new_console < CONS_MIN || new_console > CONS_MAX)
+		return;
+
+	/*
+	 * If we are asked to switch the console to the hypervisor, that
+	 * really means to switch the console to whichever device the
+	 * hypervisor is/was using.
+	 */
+	if (new_console == CONS_HYPERVISOR)
+		new_console = console_hypervisor_device;
+
+	console = new_console;
+
+	if (new_console == CONS_TTYA || new_console == CONS_TTYB)
+		serial_init();
+}
+#endif /* __xpv */
+
 static void
 usbser_putchar(int c)
 {
@@ -663,6 +813,14 @@
 {
 	static int bhcharpos = 0;
 
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) ||
+	    console == CONS_HYPERVISOR) {
+		bcons_putchar_xen(c);
+		return;
+	}
+#endif /* __xpv */
+
 	if (c == '\t') {
 		do {
 			_doputchar(' ');
@@ -690,6 +848,12 @@
 int
 bcons_getchar(void)
 {
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) ||
+	    console == CONS_HYPERVISOR)
+		return (bcons_getchar_xen());
+#endif /* __xpv */
+
 	switch (console) {
 	case CONS_TTYA:
 	case CONS_TTYB:
@@ -704,6 +868,13 @@
 int
 bcons_ischar(void)
 {
+
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) ||
+	    console == CONS_HYPERVISOR)
+		return (bcons_ischar_xen());
+#endif /* __xpv */
+
 	switch (console) {
 	case CONS_TTYA:
 	case CONS_TTYB:
--- a/usr/src/uts/i86pc/boot/boot_keyboard.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/boot/boot_keyboard.c	Tue Sep 18 15:46:43 2007 -0700
@@ -37,8 +37,9 @@
 #include "boot_keyboard_table.h"
 
 #if defined(_BOOT)
+#include "dboot/dboot_asm.h"
 #include "dboot/dboot_xboot.h"
-#endif
+#endif /* _BOOT */
 
 /*
  * Definitions for BIOS keyboard state.  We use BIOS's variable to store
@@ -63,9 +64,29 @@
 #define	BIOS_CAPS_SHIFT		0x40
 #define	BIOS_INS_SHIFT		0x80
 
+#if defined(__xpv) && defined(_BOOT)
+
+/*
+ * Device memory addresses
+ *
+ * In dboot under the hypervisor we don't have any memory mappings
+ * for the first meg of low memory so we can't access devices there.
+ * Intead we've mapped the device memory that we need to access into
+ * a local variable within dboot so we can access the device memory
+ * there.
+ */
+extern unsigned short *kb_status;
+#define	kb_flag		((unsigned char *)&kb_status[BIOS_KB_FLAG])
+#define	kb_flag_1	((unsigned char *)&kb_status[BIOS_KB_FLAG_1])
+
+#else /* __xpv && _BOOT */
+
+/* Device memory addresses */
 #define	kb_flag		((unsigned char *)BIOS_KB_FLAG)
 #define	kb_flag_1	((unsigned char *)BIOS_KB_FLAG_1)
 
+#endif /* __xpv && _BOOT */
+
 /*
  * Keyboard controller registers
  */
@@ -449,56 +470,18 @@
 void
 kb_init(void)
 {
-	unsigned char pic_mask;
-	int retries;
-
 	/*
-	 * Write the command byte to turn off interrupts and
-	 * disable the auxiliary port.
-	 *
-	 * 0x80:  0 = Reserved, must be zero.
-	 * 0x40:  1 = Translate to XT codes.
-	 *		Solaris turns this off later, but we have a legacy
-	 *		of using XT codes.
-	 * 0x20:  1 = Disable aux (mouse) port.
-	 * 0x10:  0 = Enable main (keyboard) port.
-	 * 0x08:  0 = Reserved, must be zero.
-	 * 0x04:  1 = System flag, 1 means passed self-test.
-	 *		Caution:  setting this bit to zero causes some
-	 *		systems (HP Kayak XA) to fail to reboot without
-	 *		a hard reset.
-	 * 0x02:  0 = Disable aux interrupts.
-	 * 0x01:  0 = Disable aux interrupts.
+	 * Resist the urge to muck with the keyboard/mouse.  Just assume
+	 * that the bios, grub, and any optional hypervisor have left
+	 * the keyboard in a sane and usable state.  Messing with it now
+	 * could result it making it unusuable, which would break early
+	 * kmdb debugging support.  Note that we don't actually need to
+	 * disable interrupts for the keyboard/mouse since we're already
+	 * in protected mode and we're not compeating with the bios for
+	 * keyboard access.  Also, we don't need to disable the mouse
+	 * port since our polled input routine will just drop any mouse
+	 * data that it recieves.
 	 */
-
-	for (retries = 0;
-	    (inb(I8042_STAT) & I8042_STAT_INBF) != 0 && retries < 100000;
-	    retries++)
-		/* LOOP */;
-	outb(I8042_CMD, I8042_WCB);
-
-	for (retries = 0;
-	    (inb(I8042_STAT) & I8042_STAT_INBF) != 0 && retries < 100000;
-	    retries++)
-		/* LOOP */;
-	outb(I8042_DATA, 0x64);
-
-	/*
-	 * If we're running on a system with an emulated 8042 (with
-	 * USB and SMI emulation), the above command *might* not
-	 * have turned off keyboard interrupts.  If it didn't,
-	 * we will lose keystrokes to the BIOS int handler every
-	 * time someone hits a key while BIOS and STI are active..
-	 * that is, every time we're in bootconf.exe, for example.
-	 * Turn off ints at the PIC to prevent this from happening.
-	 *
-	 * Yes, this is yet another workaround for buggy BIOS
-	 * emulation.
-	 */
-
-	pic_mask = inb(MIMR_PORT);
-	outb(MIMR_PORT, pic_mask | MIMR_KB);
-
 	kb_update_leds();
 }
 
--- a/usr/src/uts/i86pc/boot/boot_keyboard.h	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _BOOT_KEYBOARD_H
-#define	_BOOT_KEYBOARD_H
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-/*
- * Interfaces to the simple keyboard driver.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int kb_ischar(void);
-char kb_getchar(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _BOOT_KEYBOARD_H */
--- a/usr/src/uts/i86pc/boot/boot_mmu.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/boot/boot_mmu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -33,6 +33,9 @@
 #include <sys/param.h>
 #include <sys/machparam.h>
 #include <sys/mach_mmu.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 #ifdef _BOOT
 #include <dboot/dboot_printf.h>
--- a/usr/src/uts/i86pc/boot/boot_vga.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/boot/boot_vga.c	Tue Sep 18 15:46:43 2007 -0700
@@ -36,17 +36,74 @@
 #include "boot_vga.h"
 
 #if defined(_BOOT)
+#include "../dboot/dboot_asm.h"
 #include "../dboot/dboot_xboot.h"
 #endif
 
 #define	VGA_COLOR_CRTC_INDEX	0x3d4
 #define	VGA_COLOR_CRTC_DATA	0x3d5
+
+#if defined(__xpv) && defined(_BOOT)
+
+/*
+ * Device memory address
+ *
+ * In dboot under the hypervisor we don't have any memory mappings
+ * for the first meg of low memory so we can't access devices there.
+ * Intead we've mapped the device memory that we need to access into
+ * a local variable within dboot so we can access the device memory
+ * there.
+ */
+extern unsigned short *video_fb;
+#define	VGA_SCREEN		((unsigned short *)video_fb)
+
+#else /* __xpv && _BOOT */
+
+/* Device memory address */
 #define	VGA_SCREEN		((unsigned short *)0xb8000)
 
+#endif /* __xpv && _BOOT */
+
+
 static void vga_set_crtc(int index, unsigned char val);
 static unsigned char vga_get_crtc(int index);
 
 void
+vga_cursor_display(void)
+{
+	unsigned char val, msl;
+
+	/*
+	 * Figure out the maximum scan line value.  We need this to set the
+	 * cursor size.
+	 */
+	msl = vga_get_crtc(VGA_CRTC_MAX_S_LN) & 0x1f;
+
+	/*
+	 * Enable the cursor and set it's size.  Preserve the upper two
+	 * bits of the control register.
+	 * - Bits 0-4 are the starting scan line of the cursor.
+	 *   Scanning is done from top-to-bottom.  The top-most scan
+	 *   line is 0 and the bottom most scan line is the maximum scan
+	 *   line value.
+	 * - Bit 5 is the cursor disable bit.
+	 */
+	val = vga_get_crtc(VGA_CRTC_CSSL);
+	vga_set_crtc(VGA_CRTC_CSSL, (val & 0xc) | ((msl - 2) & 0x1f));
+
+	/*
+	 * Continue setting the cursors size.
+	 * - Bits 0-4 are the ending scan line of the cursor.
+	 *   Scanning is done from top-to-bottom.  The top-most scan
+	 *   line is 0 and the bottom most scan line is the maximum scan
+	 *   line value.
+	 * - Bits 5-6 are the cursor skew.
+	 */
+	vga_set_crtc(VGA_CRTC_CESL, msl);
+}
+
+
+void
 vga_clear(int color)
 {
 	unsigned short val;
@@ -100,8 +157,7 @@
 {
 	int off;
 
-	off = (vga_get_crtc(VGA_CRTC_CLAH) << 8) +
-		vga_get_crtc(VGA_CRTC_CLAL);
+	off = (vga_get_crtc(VGA_CRTC_CLAH) << 8) + vga_get_crtc(VGA_CRTC_CLAL);
 	*row = off / VGA_TEXT_COLS;
 	*col = off % VGA_TEXT_COLS;
 }
@@ -113,7 +169,6 @@
 	outb(VGA_COLOR_CRTC_DATA, val);
 }
 
-
 static unsigned char
 vga_get_crtc(int index)
 {
--- a/usr/src/uts/i86pc/boot/boot_vga.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/boot/boot_vga.h	Tue Sep 18 15:46:43 2007 -0700
@@ -48,6 +48,7 @@
 extern void vga_clear(int);
 extern void vga_scroll(int);
 extern void vga_drawc(int, int);
+extern void vga_cursor_display(void);
 
 #ifdef __cplusplus
 }
--- a/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c	Tue Sep 18 15:46:43 2007 -0700
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -60,6 +60,12 @@
 	return (0);
 }
 
+static void *
+gcpu_null(void)
+{
+	return (NULL);
+}
+
 /*ARGSUSED*/
 static int
 gcpu_init(cpu_t *cpu, void **datap)
@@ -92,7 +98,7 @@
 	(int (*)())gcpu_notsup,	/* cmi_mca_inject */
 	gcpu_nop,		/* cmi_mca_poke */
 	(void (*)())gcpu_nop,			/* cmi_mc_register */
-	(const cmi_mc_ops_t *(*)())gcpu_nop	/* cmi_mc_getops */
+	(const cmi_mc_ops_t *(*)())gcpu_null	/* cmi_mc_getops */
 };
 
 static struct modlcpu modlcpu = {
--- a/usr/src/uts/i86pc/cpunex/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-#	This makefile drives the production of the CPU nexus driver
-#	in i86pc systems
-#
-
-#
-#	Path to the base of the uts directory tree (usually /usr/src/uts).
-#
-UTSBASE		= ../..
-
-#
-#	Define the module and object file sets.
-#
-MODULE		= cpunex
-OBJECTS		= $(CPUNEX_OBJS:%=$(OBJS_DIR)/%)
-LINTS		= $(CPUNEX_OBJS:%.o=$(LINTS_DIR)/%.ln)
-ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
-
-#
-#	Include common rules.
-#
-include $(UTSBASE)/i86pc/Makefile.i86pc
-
-#
-#	Define targets
-#
-ALL_TARGET	= $(BINARY)
-LINT_TARGET	= $(MODULE).lint
-INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
-
-#
-#	Default build targets.
-#
-.KEEP_STATE:
-
-def:		$(DEF_DEPS)
-
-all:		$(ALL_DEPS)
-
-clean:		$(CLEAN_DEPS)
-
-clobber:	$(CLOBBER_DEPS)
-
-lint:		$(LINT_DEPS)
-
-modlintlib:	$(MODLINTLIB_DEPS)
-
-clean.lint:	$(CLEAN_LINT_DEPS)
-
-install:	$(INSTALL_DEPS)
-
-#
-#	Include common targets.
-#
-include $(UTSBASE)/i86pc/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86pc/dboot/dboot_asm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_DBOOT_ASM_H
+#define	_DBOOT_ASM_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+extern uint32_t get_cpuid_edx(uint32_t *eax);
+extern void outb(int port, uint8_t value);
+extern uint8_t inb(int port);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _DBOOT_ASM_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86pc/dboot/dboot_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,133 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/asm_linkage.h>
+#include <sys/asm_misc.h>
+
+#if defined(__lint)
+
+#include "dboot_asm.h"
+
+/* ARGSUSED */
+uint32_t
+get_cpuid_edx(uint32_t *eax)
+{ return (0); }
+
+/* ARGSUSED */
+void
+outb(int port, uint8_t value)
+{}
+
+/* ARGSUSED */
+uint8_t
+inb(int port)
+{ return (0); }
+
+#else /* __lint */
+
+#if defined(__amd64)
+
+	/*
+	 * do a cpuid instruction, returning the eax/edx values
+	 *
+	 * uint32_t get_cpuid_edx(uint32_t *eax)
+	 */
+	ENTRY_NP(get_cpuid_edx)
+	pushq	%rbx
+	movl	(%rdi), %eax
+	cpuid
+	movl	%eax, (%rdi)
+	movl	%edx, %eax
+	popq	%rbx
+	ret
+	SET_SIZE(get_cpuid_edx)
+
+	/*
+	 * void outb(int port, uint8_t value)
+	 */
+	ENTRY(outb)
+	movw	%di, %dx
+	movb	%sil, %al
+	outb	(%dx)
+	ret
+	SET_SIZE(outb)
+
+	/*
+	 * uint8_t inb(int port)
+	 */
+	ENTRY(inb)
+	xorl	%eax, %eax
+	movw	%di, %dx
+	inb	(%dx)
+	ret
+	SET_SIZE(inb)
+
+#elif defined(__i386)
+
+	.code32
+
+	/*
+	 * do a cpuid instruction, returning the eax/edx values
+	 *
+	 * uint32_t get_cpuid_edx(uint32_t *eax)
+	 */
+	ENTRY_NP(get_cpuid_edx)
+	movl	4(%esp), %ecx
+	movl	(%ecx), %eax
+	pushl	%ebx
+	cpuid
+	popl	%ebx
+	movl	4(%esp), %ecx
+	movl	%eax, (%ecx)
+	movl	%edx, %eax
+	ret
+	SET_SIZE(get_cpuid_edx)
+
+	/*
+	 * void outb(int port, uint8_t value)
+	 */
+	ENTRY_NP(outb)
+	movl	4(%esp), %edx
+	movl	8(%esp), %eax
+	outb	(%dx)
+	ret
+	SET_SIZE(outb)
+
+	/*
+	 * uint8_t inb(int port)
+	 */
+	ENTRY_NP(inb)
+	movl	4(%esp), %edx
+	inb	(%dx)
+	andl	$0xff, %eax
+	ret
+	SET_SIZE(inb)
+
+#endif	/* __i386 */
+
+#endif /* __lint */
--- a/usr/src/uts/i86pc/dboot/dboot_elfload.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/dboot/dboot_elfload.c	Tue Sep 18 15:46:43 2007 -0700
@@ -50,18 +50,18 @@
 
 	ident = PGETBYTES(0);
 	if (ident == NULL)
-		dboot_panic("Cannot read kernel ELF header\n");
+		dboot_panic("Cannot read kernel ELF header");
 
 	if (ident[EI_MAG0] != ELFMAG0 || ident[EI_MAG1] != ELFMAG1 ||
 	    ident[EI_MAG2] != ELFMAG2 || ident[EI_MAG3] != ELFMAG3)
-		dboot_panic("not an ELF file!\n");
+		dboot_panic("not an ELF file!");
 
 	if (ident[EI_CLASS] == ELFCLASS32)
 		hdr = PGETBYTES(0);
 	else if (ident[EI_CLASS] == ELFCLASS64)
 		hdr = PGETBYTES(0);
 	else
-		dboot_panic("Unknown ELF class\n");
+		dboot_panic("Unknown ELF class");
 
 	return (hdr);
 }
@@ -86,20 +86,20 @@
 
 	eh = getehdr();
 	if (eh == NULL)
-		dboot_panic("getehdr() failed\n");
+		dboot_panic("getehdr() failed");
 
 	if (eh->e_type != ET_EXEC)
-		dboot_panic("not ET_EXEC, e_type = 0x%x\n", eh->e_type);
+		dboot_panic("not ET_EXEC, e_type = 0x%x", eh->e_type);
 
 	if (eh->e_phnum == 0 || eh->e_phoff == 0)
-		dboot_panic("no program headers\n");
+		dboot_panic("no program headers");
 
 	/*
 	 * Get the program headers.
 	 */
 	allphdrs = PGETBYTES(eh->e_phoff);
 	if (allphdrs == NULL)
-		dboot_panic("Failed to get program headers e_phnum = %d\n",
+		dboot_panic("Failed to get program headers e_phnum = %d",
 		    eh->e_phnum);
 
 	/*
@@ -149,7 +149,7 @@
 		 * copy the data to kernel area
 		 */
 		if (phdr->p_paddr != FOUR_MEG && phdr->p_paddr != 2 * FOUR_MEG)
-			dboot_panic("Bad paddr for kernel nucleus segment\n");
+			dboot_panic("Bad paddr for kernel nucleus segment");
 		src = (uintptr_t)PGETBYTES(phdr->p_offset);
 		dst = ktext_phys + phdr->p_paddr - FOUR_MEG;
 		if (prom_debug)
--- a/usr/src/uts/i86pc/dboot/dboot_grub.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/dboot/dboot_grub.s	Tue Sep 18 15:46:43 2007 -0700
@@ -162,10 +162,12 @@
 #endif
 
 	/*
-	 * enable paging
+	 * enable paging, write protection, alignment masking, but disable
+	 * the cache disable and write through only bits.
 	 */
 	movl	%cr0, %eax
-	orl	$CR0_PG, %eax
+	orl	$_CONST(CR0_PG | CR0_WP | CR0_AM), %eax
+	andl	$_BITNOT(CR0_NW | CR0_CD), %eax
 	movl	%eax, %cr0
 	jmp	paging_on
 paging_on:
@@ -206,26 +208,6 @@
 	.code32
 
 	/*
-	 * uint8_t inb(int port)
-	 */
-	ENTRY_NP(inb)
-	movl	4(%esp), %edx
-	inb	(%dx)
-	andl	$0xff, %eax
-	ret
-	SET_SIZE(inb)
-
-	/*
-	 * void outb(int port, uint8_t value)
-	 */
-	ENTRY_NP(outb)
-	movl	4(%esp), %edx
-	movl	8(%esp), %eax
-	outb	(%dx)
-	ret
-	SET_SIZE(outb)
-
-	/*
 	 * if reset fails halt the system
 	 */
 	ENTRY_NP(dboot_halt)
@@ -242,21 +224,6 @@
 	SET_SIZE(reload_cr3)
 
 	/*
-	 * do a cpuid instruction, returning the eax/edx values
-	 */
-	ENTRY_NP(get_cpuid_edx)
-	movl	4(%esp), %ecx
-	movl	(%ecx), %eax
-	pushl	%ebx
-	cpuid
-	popl	%ebx
-	movl	4(%esp), %ecx
-	movl	%eax, (%ecx)
-	movl	%edx, %eax
-	ret
-	SET_SIZE(get_cpuid_edx)
-
-	/*
 	 * Detect if we can do cpuid, see if we can change bit 21 of eflags.
 	 * Note we don't do the bizarre tests for Cyrix CPUs in ml/locore.s.
 	 * If you're on such a CPU, you're stuck with non-PAE 32 bit kernels.
--- a/usr/src/uts/i86pc/dboot/dboot_printf.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/dboot/dboot_printf.c	Tue Sep 18 15:46:43 2007 -0700
@@ -30,13 +30,15 @@
 #include <sys/param.h>
 #include <sys/machparam.h>
 #include <sys/archsystm.h>
-
 #include <sys/boot_console.h>
-
+#include <sys/varargs.h>
+#include "dboot_asm.h"
 #include "dboot_printf.h"
+#include "dboot_xboot.h"
 
-#include "dboot_xboot.h"
-#include <sys/varargs.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 /*
  * This file provides simple output formatting via dboot_printf()
@@ -61,7 +63,6 @@
 		dboot_printf("Press any key to reboot\n");
 		(void) bcons_getchar();
 	}
-
 	outb(0x64, 0xfe);	/* this resets the system, see pc_reset() */
 	dboot_halt();		/* just in case */
 }
--- a/usr/src/uts/i86pc/dboot/dboot_startkern.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/dboot/dboot_startkern.c	Tue Sep 18 15:46:43 2007 -0700
@@ -31,48 +31,59 @@
 #include <sys/x86_archext.h>
 #include <sys/systm.h>
 #include <sys/mach_mmu.h>
+#include <sys/multiboot.h>
 
-#include <sys/multiboot.h>
+#if defined(__xpv)
+
+#include <sys/hypervisor.h>
+uintptr_t xen_virt_start;
+pfn_t *mfn_to_pfn_mapping;
+
+#else /* !__xpv */
 
 extern multiboot_header_t mb_header;
 extern int have_cpuid(void);
-extern uint32_t get_cpuid_edx(uint32_t *eax);
+
+#endif /* !__xpv */
 
 #include <sys/inttypes.h>
 #include <sys/bootinfo.h>
 #include <sys/mach_mmu.h>
 #include <sys/boot_console.h>
 
+#include "dboot_asm.h"
 #include "dboot_printf.h"
 #include "dboot_xboot.h"
 #include "dboot_elfload.h"
 
 /*
  * This file contains code that runs to transition us from either a multiboot
- * compliant loader (32 bit non-paging) or Xen domain loader to regular kernel
- * execution. Its task is to setup the kernel memory image and page tables.
+ * compliant loader (32 bit non-paging) or a XPV domain loader to
+ * regular kernel execution. Its task is to setup the kernel memory image
+ * and page tables.
  *
  * The code executes as:
  *	- 32 bits under GRUB (for 32 or 64 bit Solaris)
- * 	- 32 bit program for Xen 32 bit
- *	- 64 bit program for Xen 64 bit (at least that's my assumption for now)
+ * 	- a 32 bit program for the 32-bit PV hypervisor
+ *	- a 64 bit program for the 64-bit PV hypervisor (at least for now)
  *
- * Under Xen, we must create mappings for any memory beyond the initial
- * start of day allocation (such as the kernel itself).
+ * Under the PV hypervisor, we must create mappings for any memory beyond the
+ * initial start of day allocation (such as the kernel itself).
  *
- * When not under Xen, the mapping between maddr_t and paddr_t is 1:1.
+ * When on the metal, the mapping between maddr_t and paddr_t is 1:1.
  * Since we are running in real mode, so all such memory is accessible.
  */
 
 /*
  * Standard bits used in PTE (page level) and PTP (internal levels)
  */
-x86pte_t ptp_bits = PT_VALID | PT_REF | PT_USER | PT_WRITABLE | PT_USER;
-x86pte_t pte_bits = PT_VALID | PT_REF | PT_MOD | PT_NOCONSIST | PT_WRITABLE;
+x86pte_t ptp_bits = PT_VALID | PT_REF | PT_WRITABLE | PT_USER;
+x86pte_t pte_bits = PT_VALID | PT_REF | PT_WRITABLE | PT_MOD | PT_NOCONSIST;
 
 /*
  * This is the target addresses (physical) where the kernel text and data
- * nucleus pages will be unpacked. On Xen this is actually a virtual address.
+ * nucleus pages will be unpacked. On the hypervisor this is actually a
+ * virtual address.
  */
 paddr_t ktext_phys;
 uint32_t ksize = 2 * FOUR_MEG;	/* kernel nucleus is 8Meg */
@@ -89,8 +100,27 @@
  */
 static paddr_t next_avail_addr = 0;
 
+#if defined(__xpv)
+/*
+ * Additional information needed for hypervisor memory allocation.
+ * Only memory up to scratch_end is mapped by page tables.
+ * mfn_base is the start of the hypervisor virtual image. It's ONE_GIG, so
+ * to derive a pfn from a pointer, you subtract mfn_base.
+ */
+
+static paddr_t scratch_end = 0;	/* we can't write all of mem here */
+static paddr_t mfn_base;		/* addr corresponding to mfn_list[0] */
+start_info_t *xen_info;
+
+#else	/* __xpv */
+
+/*
+ * If on the metal, then we have a multiboot loader.
+ */
 multiboot_info_t *mb_info;
 
+#endif	/* __xpv */
+
 /*
  * This contains information passed to the kernel
  */
@@ -100,7 +130,7 @@
 /*
  * Page table and memory stuff.
  */
-static uint64_t max_mem;			/* maximum memory address */
+static paddr_t max_mem;			/* maximum memory address */
 
 /*
  * Information about processor MMU
@@ -137,13 +167,14 @@
 uint_t map_debug = 0;
 
 /*
- * The Xen/Grub specific code builds the initial memlists. This code does
- * sort/merge/link for final use.
+ * Either hypervisor-specific or grub-specific code builds the initial
+ * memlists. This code does the sort/merge/link for final use.
  */
 static void
 sort_physinstall(void)
 {
 	int i;
+#if !defined(__xpv)
 	int j;
 	struct boot_memlist tmp;
 
@@ -185,6 +216,7 @@
 		DBG(memlists_used);
 		--i;	/* after merging we need to reexamine, so do this */
 	}
+#endif	/* __xpv */
 
 	if (prom_debug) {
 		dboot_printf("\nFinal memlists:\n");
@@ -208,6 +240,69 @@
 	DBG(bi->bi_phys_install);
 }
 
+#if defined(__xpv)
+
+/*
+ * halt on the hypervisor after a delay to drain console output
+ */
+void
+dboot_halt(void)
+{
+	uint_t i = 10000;
+
+	while (--i)
+		HYPERVISOR_yield();
+	HYPERVISOR_shutdown(SHUTDOWN_poweroff);
+}
+
+/*
+ * From a machine address, find the corresponding pseudo-physical address.
+ * Pseudo-physical address are contiguous and run from mfn_base in each VM.
+ * Machine addresses are the real underlying hardware addresses.
+ * These are needed for page table entries. Note that this routine is
+ * poorly protected. A bad value of "ma" will cause a page fault.
+ */
+paddr_t
+ma_to_pa(maddr_t ma)
+{
+	ulong_t pgoff = ma & MMU_PAGEOFFSET;
+	ulong_t pfn = mfn_to_pfn_mapping[mmu_btop(ma)];
+	paddr_t pa;
+
+	if (pfn >= xen_info->nr_pages)
+		return (-(paddr_t)1);
+	pa = mfn_base + mmu_ptob((paddr_t)pfn) + pgoff;
+#ifdef DEBUG
+	if (ma != pa_to_ma(pa))
+		dboot_printf("ma_to_pa(%" PRIx64 ") got %" PRIx64 ", "
+		    "pa_to_ma() says %" PRIx64 "\n", ma, pa, pa_to_ma(pa));
+#endif
+	return (pa);
+}
+
+/*
+ * From a pseudo-physical address, find the corresponding machine address.
+ */
+maddr_t
+pa_to_ma(paddr_t pa)
+{
+	pfn_t pfn;
+	ulong_t mfn;
+
+	pfn = mmu_btop(pa - mfn_base);
+	if (pa < mfn_base || pfn >= xen_info->nr_pages)
+		dboot_panic("pa_to_ma(): illegal address 0x%lx", (ulong_t)pa);
+	mfn = ((ulong_t *)xen_info->mfn_list)[pfn];
+#ifdef DEBUG
+	if (mfn_to_pfn_mapping[mfn] != pfn)
+		dboot_printf("pa_to_ma(pfn=%lx) got %lx ma_to_pa() says %lx\n",
+		    pfn, mfn, mfn_to_pfn_mapping[mfn]);
+#endif
+	return (mfn_to_ma(mfn) | (pa & MMU_PAGEOFFSET));
+}
+
+#endif	/* __xpv */
+
 x86pte_t
 get_pteval(paddr_t table, uint_t index)
 {
@@ -220,6 +315,16 @@
 void
 set_pteval(paddr_t table, uint_t index, uint_t level, x86pte_t pteval)
 {
+#ifdef __xpv
+	mmu_update_t t;
+	maddr_t mtable = pa_to_ma(table);
+	int retcnt;
+
+	t.ptr = (mtable + index * pte_size) | MMU_NORMAL_PT_UPDATE;
+	t.val = pteval;
+	if (HYPERVISOR_mmu_update(&t, 1, &retcnt, DOMID_SELF) || retcnt != 1)
+		dboot_panic("HYPERVISOR_mmu_update() failed");
+#else /* __xpv */
 	uintptr_t tab_addr = (uintptr_t)table;
 
 	if (pae_support)
@@ -228,6 +333,7 @@
 		((x86pte32_t *)tab_addr)[index] = (x86pte32_t)pteval;
 	if (level == top_level && level == 2)
 		reload_cr3();
+#endif /* __xpv */
 }
 
 paddr_t
@@ -240,6 +346,13 @@
 	else
 		*pteval = pa_to_ma((uintptr_t)new_table) | ptp_bits;
 
+#ifdef __xpv
+	/* Remove write permission to the new page table. */
+	if (HYPERVISOR_update_va_mapping(new_table,
+	    *pteval & ~(x86pte_t)PT_WRITABLE, UVMF_INVLPG | UVMF_LOCAL))
+		dboot_panic("HYP_update_va_mapping error");
+#endif
+
 	if (map_debug)
 		dboot_printf("new page table lvl=%d paddr=0x%lx ptp=0x%"
 		    PRIx64 "\n", level, (ulong_t)new_table, *pteval);
@@ -252,111 +365,38 @@
 	return ((x86pte_t *)(uintptr_t)(table + index * pte_size));
 }
 
-#if 0	/* useful if debugging */
+#if !defined(__xpv)
+#define	maddr_t paddr_t
+#endif /* !__xpv */
+
 /*
- * dump out the contents of page tables...
+ * Add a mapping for the machine page at the given virtual address.
  */
 static void
-dump_tables(void)
-{
-	uint_t save_index[4];	/* for recursion */
-	char *save_table[4];	/* for recursion */
-	uint_t	l;
-	uint64_t va;
-	uint64_t pgsize;
-	int index;
-	int i;
-	x86pte_t pteval;
-	char *table;
-	static char *tablist = "\t\t\t";
-	char *tabs = tablist + 3 - top_level;
-	uint_t pa, pa1;
-
-	dboot_printf("Finished pagetables:\n");
-	table = (char *)top_page_table;
-	l = top_level;
-	va = 0;
-	for (index = 0; index < ptes_per_table; ++index) {
-		pgsize = 1ull << shift_amt[l];
-		if (pae_support)
-			pteval = ((x86pte_t *)table)[index];
-		else
-			pteval = ((x86pte32_t *)table)[index];
-		if (pteval == 0)
-			goto next_entry;
-
-		dboot_printf("%s %lx[0x%x] = %" PRIx64 ", va=%" PRIx64,
-		    tabs + l, table, index, (uint64_t)pteval, va);
-		pa = ma_to_pa(pteval & MMU_PAGEMASK);
-		dboot_printf(" physaddr=%" PRIx64 "\n", pa);
-
-		/*
-		 * Don't try to walk hypervisor private pagetables
-		 */
-		if ((l > 1 || (l == 1 && (pteval & PT_PAGESIZE) == 0))) {
-			save_table[l] = table;
-			save_index[l] = index;
-			--l;
-			index = -1;
-			table = (char *)(uintptr_t)
-			    ma_to_pa(pteval & MMU_PAGEMASK);
-			goto recursion;
-		}
-
-		/*
-		 * shorten dump for consecutive mappings
-		 */
-		for (i = 1; index + i < ptes_per_table; ++i) {
-			if (pae_support)
-				pteval = ((x86pte_t *)table)[index + i];
-			else
-				pteval = ((x86pte32_t *)table)[index + i];
-			if (pteval == 0)
-				break;
-			pa1 = ma_to_pa(pteval & MMU_PAGEMASK);
-			if (pa1 != pa + i * pgsize)
-				break;
-		}
-		if (i > 2) {
-			dboot_printf("%s...\n", tabs + l);
-			va += pgsize * (i - 2);
-			index += i - 2;
-		}
-next_entry:
-		va += pgsize;
-		if (l == 3 && index == 256)	/* VA hole */
-			va = 0xffff800000000000ull;
-recursion:
-		;
-	}
-	if (l < top_level) {
-		++l;
-		index = save_index[l];
-		table = save_table[l];
-		goto recursion;
-	}
-}
-#endif
-
-/*
- * Add a mapping for the physical page at the given virtual address.
- */
-static void
-map_pa_at_va(paddr_t pa, native_ptr_t va, uint_t level)
+map_ma_at_va(maddr_t ma, native_ptr_t va, uint_t level)
 {
 	x86pte_t *ptep;
 	x86pte_t pteval;
 
-	pteval = pa_to_ma(pa) | pte_bits;
+	pteval = ma | pte_bits;
 	if (level > 0)
 		pteval |= PT_PAGESIZE;
 	if (va >= target_kernel_text && pge_support)
 		pteval |= PT_GLOBAL;
 
-	if (map_debug && pa != va)
-		dboot_printf("mapping pa=0x%" PRIx64 " va=0x%" PRIx64
+	if (map_debug && ma != va)
+		dboot_printf("mapping ma=0x%" PRIx64 " va=0x%" PRIx64
 		    " pte=0x%" PRIx64 " l=%d\n",
-		    (uint64_t)pa, (uint64_t)va, pteval, level);
+		    (uint64_t)ma, (uint64_t)va, pteval, level);
+
+#if defined(__xpv)
+	/*
+	 * see if we can avoid find_pte() on the hypervisor
+	 */
+	if (HYPERVISOR_update_va_mapping(va, pteval,
+	    UVMF_INVLPG | UVMF_LOCAL) == 0)
+		return;
+#endif
 
 	/*
 	 * Find the pte that will map this address. This creates any
@@ -365,28 +405,33 @@
 	ptep = find_pte(va, NULL, level, 0);
 
 	/*
-	 * On Xen we must use hypervisor calls to modify the PTE, since
-	 * paging is active. On real hardware we just write to the pagetables
-	 * which aren't in use yet.
+	 * When paravirtualized, we must use hypervisor calls to modify the
+	 * PTE, since paging is active. On real hardware we just write to
+	 * the pagetables which aren't in use yet.
 	 */
+#if defined(__xpv)
+	ptep = ptep;	/* shut lint up */
+	if (HYPERVISOR_update_va_mapping(va, pteval, UVMF_INVLPG | UVMF_LOCAL))
+		dboot_panic("mmu_update failed-map_pa_at_va va=0x%" PRIx64
+		    " l=%d ma=0x%" PRIx64 ", pte=0x%" PRIx64 "",
+		    (uint64_t)va, level, (uint64_t)ma, pteval);
+#else
 	if (va < 1024 * 1024)
 		pteval |= PT_NOCACHE;		/* for video RAM */
 	if (pae_support)
 		*ptep = pteval;
 	else
 		*((x86pte32_t *)ptep) = (x86pte32_t)pteval;
+#endif
 }
 
 /*
- * During memory allocation, find the highest address not used yet.
+ * Add a mapping for the physical page at the given virtual address.
  */
 static void
-check_higher(paddr_t a)
+map_pa_at_va(paddr_t pa, native_ptr_t va, uint_t level)
 {
-	if (a < next_avail_addr)
-		return;
-	next_avail_addr = RNDUP(a + 1, MMU_PAGESIZE);
-	DBG(next_avail_addr);
+	map_ma_at_va(pa_to_ma(pa), va, level);
 }
 
 /*
@@ -444,6 +489,187 @@
 }
 
 /*
+ * Xen strips the size field out of the mb_memory_map_t, see struct e820entry
+ * definition in Xen source.
+ */
+#ifdef __xpv
+typedef struct {
+	uint32_t	base_addr_low;
+	uint32_t	base_addr_high;
+	uint32_t	length_low;
+	uint32_t	length_high;
+	uint32_t	type;
+} mmap_t;
+#else
+typedef mb_memory_map_t mmap_t;
+#endif
+
+static void
+build_pcimemlists(mmap_t *mem, int num)
+{
+	mmap_t *mmap;
+	uint64_t page_offset = MMU_PAGEOFFSET;	/* needs to be 64 bits */
+	uint64_t start;
+	uint64_t end;
+	int i;
+
+	/*
+	 * initialize
+	 */
+	pcimemlists[0].addr = pci_lo_limit;
+	pcimemlists[0].size = pci_hi_limit - pci_lo_limit;
+	pcimemlists_used = 1;
+
+	/*
+	 * Fill in PCI memlists.
+	 */
+	for (mmap = mem, i = 0; i < num; ++i, ++mmap) {
+		start = ((uint64_t)mmap->base_addr_high << 32) +
+		    mmap->base_addr_low;
+		end = start + ((uint64_t)mmap->length_high << 32) +
+		    mmap->length_low;
+
+		if (prom_debug)
+			dboot_printf("\ttype: %d %" PRIx64 "..%"
+			    PRIx64 "\n", mmap->type, start, end);
+
+		/*
+		 * page align start and end
+		 */
+		start = (start + page_offset) & ~page_offset;
+		end &= ~page_offset;
+		if (end <= start)
+			continue;
+
+		exclude_from_pci(start, end);
+	}
+
+	/*
+	 * Finish off the pcimemlist
+	 */
+	if (prom_debug) {
+		for (i = 0; i < pcimemlists_used; ++i) {
+			dboot_printf("pcimemlist entry 0x%" PRIx64 "..0x%"
+			    PRIx64 "\n", pcimemlists[i].addr,
+			    pcimemlists[i].addr + pcimemlists[i].size);
+		}
+	}
+	pcimemlists[0].next = 0;
+	pcimemlists[0].prev = 0;
+	for (i = 1; i < pcimemlists_used; ++i) {
+		pcimemlists[i].prev =
+		    (native_ptr_t)(uintptr_t)(pcimemlists + i - 1);
+		pcimemlists[i].next = 0;
+		pcimemlists[i - 1].next =
+		    (native_ptr_t)(uintptr_t)(pcimemlists + i);
+	}
+	bi->bi_pcimem = (native_ptr_t)pcimemlists;
+	DBG(bi->bi_pcimem);
+}
+
+#if defined(__xpv)
+/*
+ * Initialize memory allocator stuff from hypervisor-supplied start info.
+ *
+ * There is 512KB of scratch area after the boot stack page.
+ * We'll use that for everything except the kernel nucleus pages which are too
+ * big to fit there and are allocated last anyway.
+ */
+#define	MAXMAPS	100
+static mmap_t map_buffer[MAXMAPS];
+static void
+init_mem_alloc(void)
+{
+	int	local;	/* variables needed to find start region */
+	paddr_t	scratch_start;
+	xen_memory_map_t map;
+
+	DBG_MSG("Entered init_mem_alloc()\n");
+
+	/*
+	 * Free memory follows the stack. There's at least 512KB of scratch
+	 * space, rounded up to at least 2Mb alignment.  That should be enough
+	 * for the page tables we'll need to build.  The nucleus memory is
+	 * allocated last and will be outside the addressible range.  We'll
+	 * switch to new page tables before we unpack the kernel
+	 */
+	scratch_start = RNDUP((paddr_t)(uintptr_t)&local, MMU_PAGESIZE);
+	DBG(scratch_start);
+	scratch_end = RNDUP((paddr_t)scratch_start + 512 * 1024, TWO_MEG);
+	DBG(scratch_end);
+
+	/*
+	 * For paranoia, leave some space between hypervisor data and ours.
+	 * Use 500 instead of 512.
+	 */
+	next_avail_addr = scratch_end - 500 * 1024;
+	DBG(next_avail_addr);
+
+	/*
+	 * The domain builder gives us at most 1 module
+	 */
+	DBG(xen_info->mod_len);
+	if (xen_info->mod_len > 0) {
+		DBG(xen_info->mod_start);
+		modules[0].bm_addr = xen_info->mod_start;
+		modules[0].bm_size = xen_info->mod_len;
+		bi->bi_module_cnt = 1;
+		bi->bi_modules = (native_ptr_t)modules;
+	} else {
+		bi->bi_module_cnt = 0;
+		bi->bi_modules = NULL;
+	}
+	DBG(bi->bi_module_cnt);
+	DBG(bi->bi_modules);
+
+	DBG(xen_info->mfn_list);
+	DBG(xen_info->nr_pages);
+	max_mem = (paddr_t)xen_info->nr_pages << MMU_PAGESHIFT;
+	DBG(max_mem);
+
+	/*
+	 * Using pseudo-physical addresses, so only 1 memlist element
+	 */
+	memlists[0].addr = 0;
+	DBG(memlists[0].addr);
+	memlists[0].size = max_mem;
+	DBG(memlists[0].size);
+	memlists_used = 1;
+	DBG(memlists_used);
+
+	/*
+	 * finish building physinstall list
+	 */
+	sort_physinstall();
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		/*
+		 * build PCI Memory list
+		 */
+		map.nr_entries = MAXMAPS;
+		/*LINTED: constant in conditional context*/
+		set_xen_guest_handle(map.buffer, map_buffer);
+		if (HYPERVISOR_memory_op(XENMEM_machine_memory_map, &map) != 0)
+			dboot_panic("getting XENMEM_machine_memory_map failed");
+		build_pcimemlists(map_buffer, map.nr_entries);
+	}
+}
+
+#else	/* !__xpv */
+
+/*
+ * During memory allocation, find the highest address not used yet.
+ */
+static void
+check_higher(paddr_t a)
+{
+	if (a < next_avail_addr)
+		return;
+	next_avail_addr = RNDUP(a + 1, MMU_PAGESIZE);
+	DBG(next_avail_addr);
+}
+
+/*
  * Walk through the module information finding the last used address.
  * The first available address will become the top level page table.
  *
@@ -488,13 +714,6 @@
 	DBG(bi->bi_module_cnt);
 
 	/*
-	 * start out by assuming PCI can use all physical addresses
-	 */
-	pcimemlists[0].addr = pci_lo_limit;
-	pcimemlists[0].size = pci_hi_limit - pci_lo_limit;
-	pcimemlists_used = 1;
-
-	/*
 	 * Walk through the memory map from multiboot and build our memlist
 	 * structures. Note these will have native format pointers.
 	 */
@@ -502,6 +721,8 @@
 	DBG(mb_info->flags);
 	max_mem = 0;
 	if (mb_info->flags & 0x40) {
+		int cnt = 0;
+
 		DBG(mb_info->mmap_addr);
 		DBG(mb_info->mmap_length);
 		check_higher(mb_info->mmap_addr + mb_info->mmap_length);
@@ -510,7 +731,7 @@
 		    (uint32_t)mmap < mb_info->mmap_addr + mb_info->mmap_length;
 		    mmap = (mb_memory_map_t *)((uint32_t)mmap + mmap->size
 		    + sizeof (mmap->size))) {
-
+			++cnt;
 			start = ((uint64_t)mmap->base_addr_high << 32) +
 			    mmap->base_addr_low;
 			end = start + ((uint64_t)mmap->length_high << 32) +
@@ -528,8 +749,6 @@
 			if (end <= start)
 				continue;
 
-			exclude_from_pci(start, end);
-
 			/*
 			 * only type 1 is usable RAM
 			 */
@@ -545,6 +764,7 @@
 			if (memlists_used > MAX_MEMLIST)
 				dboot_panic("too many memlists");
 		}
+		build_pcimemlists((mb_memory_map_t *)mb_info->mmap_addr, cnt);
 	} else if (mb_info->flags & 0x01) {
 		DBG(mb_info->mem_lower);
 		memlists[memlists_used].addr = 0;
@@ -554,12 +774,19 @@
 		memlists[memlists_used].addr = 1024 * 1024;
 		memlists[memlists_used].size = mb_info->mem_upper * 1024;
 		++memlists_used;
-		exclude_from_pci(memlists[0].addr,
-		    memlists[0].addr + memlists[memlists_used].size);
-		exclude_from_pci(memlists[1].addr,
-		    memlists[1].addr + memlists[memlists_used].size);
+
+		/*
+		 * Old platform - assume I/O space at the end of memory.
+		 */
+		pcimemlists[0].addr =
+		    (mb_info->mem_upper * 1024) + (1024 * 1024);
+		pcimemlists[0].size = pci_hi_limit - pcimemlists[0].addr;
+		pcimemlists[0].next = 0;
+		pcimemlists[0].prev = 0;
+		bi->bi_pcimem = (native_ptr_t)pcimemlists;
+		DBG(bi->bi_pcimem);
 	} else {
-		dboot_panic("No memory info from boot loader!!!\n");
+		dboot_panic("No memory info from boot loader!!!");
 	}
 
 	check_higher(bi->bi_cmdline);
@@ -568,29 +795,8 @@
 	 * finish processing the physinstall list
 	 */
 	sort_physinstall();
-
-	/*
-	 * Finish off the pcimemlist
-	 */
-	if (prom_debug) {
-		for (i = 0; i < pcimemlists_used; ++i) {
-			dboot_printf("pcimemlist entry 0x%" PRIx64 "..0x%"
-				    PRIx64 "\n", pcimemlists[i].addr,
-				pcimemlists[i].addr + pcimemlists[i].size);
-		}
-	}
-	pcimemlists[0].next = 0;
-	pcimemlists[0].prev = 0;
-	for (i = 1; i < pcimemlists_used; ++i) {
-		pcimemlists[i].prev =
-		    (native_ptr_t)(uintptr_t)(pcimemlists + i - 1);
-		pcimemlists[i].next = 0;
-		pcimemlists[i - 1].next =
-		    (native_ptr_t)(uintptr_t)(pcimemlists + i);
-	}
-	bi->bi_pcimem = (native_ptr_t)pcimemlists;
-	DBG(bi->bi_pcimem);
 }
+#endif /* !__xpv */
 
 /*
  * Simple memory allocator, allocates aligned physical memory.
@@ -612,6 +818,8 @@
 	next_avail_addr = RNDUP(next_avail_addr, align);
 
 	/*
+	 * XXPV fixme joe
+	 *
 	 * a really large bootarchive that causes you to run out of memory
 	 * may cause this to blow up
 	 */
@@ -619,6 +827,9 @@
 	best = (uint64_t)-size;
 	for (i = 0; i < memlists_used; ++i) {
 		start = memlists[i].addr;
+#if defined(__xpv)
+		start += mfn_base;
+#endif
 		end = start + memlists[i].size;
 
 		/*
@@ -643,6 +854,12 @@
 	 */
 done:
 	next_avail_addr = best + size;
+#if defined(__xpv)
+	if (next_avail_addr > scratch_end)
+		dboot_panic("Out of mem next_avail: 0x%lx, scratch_end: "
+		    "0x%lx", (ulong_t)next_avail_addr,
+		    (ulong_t)scratch_end);
+#endif
 	(void) memset((void *)(uintptr_t)best, 0, size);
 	return ((void *)(uintptr_t)best);
 }
@@ -663,15 +880,21 @@
 	uint32_t psize;
 	uint32_t level;
 	uint32_t off;
+	uint64_t start;
+#if !defined(__xpv)
 	uint32_t i;
-	uint64_t start;
 	uint64_t end;
 	uint64_t next_mapping;
+#endif	/* __xpv */
 
 	/*
-	 * If we're not using Xen, we need to create the top level pagetable.
+	 * If we're on metal, we need to create the top level pagetable.
 	 */
+#if defined(__xpv)
+	top_page_table = (paddr_t)(uintptr_t)xen_info->pt_base;
+#else /* __xpv */
 	top_page_table = (paddr_t)(uintptr_t)mem_alloc(MMU_PAGESIZE);
+#endif /* __xpv */
 	DBG((uintptr_t)top_page_table);
 
 	/*
@@ -702,23 +925,45 @@
 	    (uintptr_t)find_pte(bi->bi_pt_window, NULL, 0, 0);
 	DBG(bi->bi_pte_to_pt_window);
 
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		/* If this is a domU we're done. */
+		DBG_MSG("\nPage tables constructed\n");
+		return;
+	}
+#endif /* __xpv */
+
 	/*
-	 * Under multiboot we need 1:1 mappings for all of low memory, which
-	 * includes our pagetables. The following code works because our
-	 * simple memory allocator only grows usage in an upwards direction.
+	 * We need 1:1 mappings for the lower 1M of memory to access
+	 * BIOS tables used by a couple of drivers during boot.
+	 *
+	 * The following code works because our simple memory allocator
+	 * only grows usage in an upwards direction.
 	 *
-	 * We map *all* possible addresses below 1 Meg, since things like
-	 * the video RAM are down there.
-	 *
+	 * Note that by this point in boot some mappings for low memory
+	 * may already exist because we've already accessed device in low
+	 * memory.  (Specifically the video frame buffer and keyboard
+	 * status ports.)  If we're booting on raw hardware then GRUB
+	 * created these mappings for us.  If we're booting under a
+	 * hypervisor then we went ahead and remapped these devices into
+	 * memory allocated within dboot itself.
+	 */
+	if (map_debug)
+		dboot_printf("1:1 map pa=0..1Meg\n");
+	for (start = 0; start < 1024 * 1024; start += MMU_PAGESIZE) {
+#if defined(__xpv)
+		map_ma_at_va(start, start, 0);
+#else /* __xpv */
+		map_pa_at_va(start, start, 0);
+#endif /* __xpv */
+	}
+
+#if !defined(__xpv)
+	/*
 	 * Skip memory between 1M and _start, this acts as a reserve
 	 * of memory usable for DMA.
 	 */
 	next_mapping = (uintptr_t)_start & MMU_PAGEMASK;
-	if (map_debug)
-		dboot_printf("1:1 map pa=0..1Meg\n");
-	for (start = 0; start < 1024 * 1024; start += MMU_PAGESIZE)
-		map_pa_at_va(start, start, 0);
-
 	for (i = 0; i < memlists_used; ++i) {
 		start = memlists[i].addr;
 		if (start < next_mapping)
@@ -734,6 +979,7 @@
 			start += MMU_PAGESIZE;
 		}
 	}
+#endif /* !__xpv */
 
 	DBG_MSG("\nPage tables constructed\n");
 }
@@ -758,13 +1004,33 @@
 {
 	char *cmdline;
 	uintptr_t addr;
+#if defined(__xpv)
+	physdev_set_iopl_t set_iopl;
+#endif /* __xpv */
 
 	/*
 	 * At this point we are executing in a 32 bit real mode.
 	 */
+#if defined(__xpv)
+	cmdline = (char *)xen_info->cmd_line;
+#else /* __xpv */
 	cmdline = (char *)mb_info->cmdline;
+#endif /* __xpv */
+
 	prom_debug = (strstr(cmdline, "prom_debug") != NULL);
 	map_debug = (strstr(cmdline, "map_debug") != NULL);
+
+#if defined(__xpv)
+	/*
+	 * For dom0, before we initialize the console subsystem we'll
+	 * need to enable io operations, so set I/O priveldge level to 1.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		set_iopl.iopl = 1;
+		(void) HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
+	}
+#endif /* __xpv */
+
 	bcons_init(cmdline);
 	DBG_MSG("\n\nSolaris prekernel set: ");
 	DBG_MSG(cmdline);
@@ -788,11 +1054,108 @@
 	 */
 #if defined(_BOOT_TARGET_amd64)
 	target_kernel_text = KERNEL_TEXT_amd64;
+#elif defined(__xpv)
+	target_kernel_text = KERNEL_TEXT_i386_xpv;
 #else
 	target_kernel_text = KERNEL_TEXT_i386;
 #endif
 	DBG(target_kernel_text);
 
+#if defined(__xpv)
+
+	/*
+	 * XXPV	Derive this stuff from CPUID / what the hypervisor has enabled
+	 */
+
+#if defined(_BOOT_TARGET_amd64)
+	/*
+	 * 64-bit hypervisor.
+	 */
+	amd64_support = 1;
+	pae_support = 1;
+
+#else	/* _BOOT_TARGET_amd64 */
+
+	/*
+	 * See if we are running on a PAE Hypervisor
+	 */
+	{
+		xen_capabilities_info_t caps;
+
+		if (HYPERVISOR_xen_version(XENVER_capabilities, &caps) != 0)
+			dboot_panic("HYPERVISOR_xen_version(caps) failed");
+		caps[sizeof (caps) - 1] = 0;
+		if (prom_debug)
+			dboot_printf("xen capabilities %s\n", caps);
+		if (strstr(caps, "x86_32p") != NULL)
+			pae_support = 1;
+	}
+
+#endif	/* _BOOT_TARGET_amd64 */
+	{
+		xen_platform_parameters_t p;
+
+		if (HYPERVISOR_xen_version(XENVER_platform_parameters, &p) != 0)
+			dboot_panic("HYPERVISOR_xen_version(parms) failed");
+		DBG(p.virt_start);
+		mfn_to_pfn_mapping = (pfn_t *)(xen_virt_start = p.virt_start);
+	}
+
+	/*
+	 * The hypervisor loads stuff starting at 1Gig
+	 */
+	mfn_base = ONE_GIG;
+	DBG(mfn_base);
+
+	/*
+	 * enable writable page table mode for the hypervisor
+	 */
+	if (HYPERVISOR_vm_assist(VMASST_CMD_enable,
+	    VMASST_TYPE_writable_pagetables) < 0)
+		dboot_panic("HYPERVISOR_vm_assist(writable_pagetables) failed");
+
+	/*
+	 * check for NX support
+	 */
+	if (pae_support) {
+		uint32_t eax = 0x80000000;
+		uint32_t edx = get_cpuid_edx(&eax);
+
+		if (eax >= 0x80000001) {
+			eax = 0x80000001;
+			edx = get_cpuid_edx(&eax);
+			if (edx & CPUID_AMD_EDX_NX)
+				NX_support = 1;
+		}
+	}
+
+#if !defined(_BOOT_TARGET_amd64)
+
+	/*
+	 * The 32-bit hypervisor uses segmentation to protect itself from
+	 * guests. This means when a guest attempts to install a flat 4GB
+	 * code or data descriptor the 32-bit hypervisor will protect itself
+	 * by silently shrinking the segment such that if the guest attempts
+	 * any access where the hypervisor lives a #gp fault is generated.
+	 * The problem is that some applications expect a full 4GB flat
+	 * segment for their current thread pointer and will use negative
+	 * offset segment wrap around to access data. TLS support in linux
+	 * brand is one example of this.
+	 *
+	 * The 32-bit hypervisor can catch the #gp fault in these cases
+	 * and emulate the access without passing the #gp fault to the guest
+	 * but only if VMASST_TYPE_4gb_segments is explicitly turned on.
+	 * Seems like this should have been the default.
+	 * Either way, we want the hypervisor -- and not Solaris -- to deal
+	 * to deal with emulating these accesses.
+	 */
+	if (HYPERVISOR_vm_assist(VMASST_CMD_enable,
+	    VMASST_TYPE_4gb_segments) < 0)
+		dboot_panic("HYPERVISOR_vm_assist(4gb_segments) failed");
+#endif	/* !_BOOT_TARGET_amd64 */
+
+#else	/* __xpv */
+
 	/*
 	 * use cpuid to enable MMU features
 	 */
@@ -821,25 +1184,42 @@
 	} else {
 		dboot_printf("cpuid not supported\n");
 	}
+#endif /* __xpv */
+
 
 #if defined(_BOOT_TARGET_amd64)
 	if (amd64_support == 0)
-		dboot_panic("long mode not supported, rebooting\n");
+		dboot_panic("long mode not supported, rebooting");
 	else if (pae_support == 0)
-		dboot_panic("long mode, but no PAE; rebooting\n");
+		dboot_panic("long mode, but no PAE; rebooting");
+#else
+	/*
+	 * Allow the command line to over-ride use of PAE for 32 bit.
+	 */
+	if (strstr(cmdline, "disablePAE=true") != NULL) {
+		pae_support = 0;
+		NX_support = 0;
+		amd64_support = 0;
+	}
 #endif
 
 	/*
-	 * initialize our memory allocator
+	 * initialize the simple memory allocator
 	 */
 	init_mem_alloc();
 
+#if !defined(__xpv) && !defined(_BOOT_TARGET_amd64)
+	/*
+	 * disable PAE on 32 bit h/w w/o NX and < 4Gig of memory
+	 */
+	if (max_mem < FOUR_GIG && NX_support == 0)
+		pae_support = 0;
+#endif
+
 	/*
 	 * configure mmu information
 	 */
-#if !defined(_BOOT_TARGET_amd64)
-	if (pae_support && (max_mem > FOUR_GIG || NX_support)) {
-#endif
+	if (pae_support) {
 		shift_amt = shift_amt_pae;
 		ptes_per_table = 512;
 		pte_size = 8;
@@ -849,7 +1229,6 @@
 #else
 		top_level = 2;
 #endif
-#if !defined(_BOOT_TARGET_amd64)
 	} else {
 		pae_support = 0;
 		NX_support = 0;
@@ -859,7 +1238,6 @@
 		lpagesize = FOUR_MEG;
 		top_level = 1;
 	}
-#endif
 
 	DBG(pge_support);
 	DBG(NX_support);
@@ -870,20 +1248,24 @@
 	DBG(ptes_per_table);
 	DBG(lpagesize);
 
+#if defined(__xpv)
+	ktext_phys = ONE_GIG;		/* from UNIX Mapfile */
+#else
 	ktext_phys = FOUR_MEG;		/* from UNIX Mapfile */
+#endif
 
-#if defined(_BOOT_TARGET_amd64)
+#if !defined(__xpv) && defined(_BOOT_TARGET_amd64)
 	/*
 	 * For grub, copy kernel bits from the ELF64 file to final place.
 	 */
 	DBG_MSG("\nAllocating nucleus pages.\n");
 	ktext_phys = (uintptr_t)do_mem_alloc(ksize, FOUR_MEG);
 	if (ktext_phys == 0)
-		dboot_panic("failed to allocate aligned kernel memory\n");
+		dboot_panic("failed to allocate aligned kernel memory");
 	if (dboot_elfload64(mb_header.load_addr) != 0)
-		dboot_panic("failed to parse kernel ELF image, rebooting\n");
+		dboot_panic("failed to parse kernel ELF image, rebooting");
+#endif
 
-#endif
 	DBG(ktext_phys);
 
 	/*
@@ -900,6 +1282,30 @@
 	bi->bi_use_pae = pae_support;
 	bi->bi_use_pge = pge_support;
 	bi->bi_use_nx = NX_support;
+
+#if defined(__xpv)
+
+	bi->bi_next_paddr = next_avail_addr - mfn_base;
+	DBG(bi->bi_next_paddr);
+	bi->bi_next_vaddr = (native_ptr_t)next_avail_addr;
+	DBG(bi->bi_next_vaddr);
+
+	/*
+	 * unmap unused pages in start area to make them available for DMA
+	 */
+	while (next_avail_addr < scratch_end) {
+		(void) HYPERVISOR_update_va_mapping(next_avail_addr,
+		    0, UVMF_INVLPG | UVMF_LOCAL);
+		next_avail_addr += MMU_PAGESIZE;
+	}
+
+	bi->bi_xen_start_info = (uintptr_t)xen_info;
+	DBG((uintptr_t)HYPERVISOR_shared_info);
+	bi->bi_shared_info = (native_ptr_t)HYPERVISOR_shared_info;
+	bi->bi_top_page_table = (uintptr_t)top_page_table - mfn_base;
+
+#else /* __xpv */
+
 	bi->bi_next_paddr = next_avail_addr;
 	DBG(bi->bi_next_paddr);
 	bi->bi_next_vaddr = (uintptr_t)next_avail_addr;
@@ -907,13 +1313,10 @@
 	bi->bi_mb_info = (uintptr_t)mb_info;
 	bi->bi_top_page_table = (uintptr_t)top_page_table;
 
+#endif /* __xpv */
+
 	bi->bi_kseg_size = FOUR_MEG;
 	DBG(bi->bi_kseg_size);
 
-#if 0		/* useful if debugging initial page tables */
-	if (prom_debug)
-		dump_tables();
-#endif
-
 	DBG_MSG("\n\n*** DBOOT DONE -- back to asm to jump to kernel\n\n");
 }
--- a/usr/src/uts/i86pc/dboot/dboot_xboot.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/dboot/dboot_xboot.h	Tue Sep 18 15:46:43 2007 -0700
@@ -67,12 +67,6 @@
 
 #define	RNDUP(x, y)	((x) + ((y) - 1ul) & ~((y) - 1ul))
 
-/*
- * this is gross too, but archsystm.h is under a #ifdef _KERNEL
- */
-extern uint8_t inb(int port);
-extern void outb(int port, uint8_t value);
-
 #endif /* _ASM */
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86pc/dboot/dboot_xen.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,128 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/asm_linkage.h>
+#include <sys/asm_misc.h>
+#include "dboot_xboot.h"
+
+#if defined(__lint)
+
+#else /* __lint */
+
+#if defined(__amd64)
+
+	ENTRY_NP(_start)
+	/*
+	 * At entry we are passed a (start_info_t *) in %rsi.
+	 */
+	movq	%rsi, xen_info(%rip)
+
+	/*
+	 * make sure we have sane processor state
+	 */
+	xorw	%ax, %ax
+	movw	%ax, %fs
+	movw	%ax, %gs
+	pushq	$0
+	popfq
+	pushq	$0
+
+	/*
+	 * go off and unpack the kernel bits, adjust page tables, etc.
+	 */
+	call	startup_kernel
+
+	/*
+	 * we can only setup a stack after startup_kernel().
+	 * Its in the lower part of memroy.
+	 */
+	leaq	stack_space(%rip), %rsp
+	addq	$STACK_SIZE, %rsp
+	andl	$0xfffffff0, %esp
+
+	pushq	$0x0			/* push a dead-end frame */
+	pushq	$0x0
+	movq	%rsp, %rbp
+
+	/*
+	 * when we get back, load the kernel entry point and jump to it
+	 * The address of the xboot_info is the kernel's only argument.
+	 */
+	movl	entry_addr_low, %esi
+	movq	$0xffffffff00000000,%rdx
+	orq	%rdx, %rsi		/* set upper bits of entry addr */
+
+        movl    bi, %edi
+	call	*%rsi
+	SET_SIZE(_start)
+
+#elif defined(__i386)
+
+	ENTRY_NP(_start)
+	/*
+	 * At entry we are passed a (start_info_t *) in %esi.
+	 */
+	movl	%esi, xen_info
+
+	/*
+	 * make sure we have sane processor state
+	 */
+	cld
+	xorw	%ax, %ax
+	movw	%ax, %fs
+	movw	%ax, %gs
+
+
+	/*
+	 * go off and unpack the kernel bits, adjust page tables, etc.
+	 */
+	call	startup_kernel
+
+	/*
+	 * we can only setup a stack after startup_kernel().
+	 */
+	movl	$stack_space, %esp	/* load my stack pointer */
+	addl	$STACK_SIZE, %esp
+
+	pushl	$0x0			/* push a dead-end frame */
+	pushl	$0x0
+	movl	%esp, %ebp
+
+	/*
+	 * when we get back, load the kernel entry point and jump to it
+	 * The address of the xboot_info is the kernel's only argument.
+	 */
+	movl	entry_addr_low, %esi
+	movl	bi, %eax
+	pushl	%eax
+	call	*%esi
+	SET_SIZE(_start)
+
+#endif	/* __i386 */
+
+#endif /* __lint */
--- a/usr/src/uts/i86pc/io/consplat.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/consplat.c	Tue Sep 18 15:46:43 2007 -0700
@@ -44,6 +44,10 @@
 #include <sys/promif.h>
 #include <sys/modctl.h>
 #include <sys/termios.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#include <sys/boot_console.h>
+#endif
 
 /* The names of currently supported graphics drivers on x86 */
 static char *
@@ -63,11 +67,14 @@
 	return (0);
 }
 
+#define	A_CNT(arr)	(sizeof (arr) / sizeof (arr[0]))
+
 #define	CONS_INVALID	-1
 #define	CONS_SCREEN	0
 #define	CONS_TTYA	1
 #define	CONS_TTYB	2
 #define	CONS_USBSER	3
+#define	CONS_HYPERVISOR	4
 
 static int
 console_type()
@@ -80,6 +87,13 @@
 	if (boot_console != CONS_INVALID)
 		return (boot_console);
 
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) || bcons_hypervisor_redirect()) {
+		boot_console = CONS_HYPERVISOR;
+		return (boot_console);
+	}
+#endif /* __xpv */
+
 	/*
 	 * console is defined by "console" property, with
 	 * fallback on the old "input-device" property.
@@ -90,11 +104,11 @@
 	    DDI_PROP_DONTPASS, "console", &cons) == DDI_SUCCESS) ||
 	    (ddi_prop_lookup_string(DDI_DEV_T_ANY, root,
 	    DDI_PROP_DONTPASS, "input-device", &cons) == DDI_SUCCESS)) {
-		if (strcmp(cons, "ttya") == 0)
+		if (strcmp(cons, "ttya") == 0) {
 			boot_console = CONS_TTYA;
-		else if (strcmp(cons, "ttyb") == 0)
+		} else if (strcmp(cons, "ttyb") == 0) {
 			boot_console = CONS_TTYB;
-		else if (strcmp(cons, "usb-serial") == 0) {
+		} else if (strcmp(cons, "usb-serial") == 0) {
 			(void) i_ddi_attach_hw_nodes("ehci");
 			(void) i_ddi_attach_hw_nodes("uhci");
 			(void) i_ddi_attach_hw_nodes("ohci");
@@ -104,6 +118,10 @@
 			 */
 			delay(drv_usectohz(2000000));
 			boot_console = CONS_USBSER;
+#if defined(__xpv)
+		} else if (strcmp(cons, "hypervisor") == 0) {
+			boot_console = CONS_HYPERVISOR;
+#endif /* __xpv */
 		}
 		ddi_prop_free(cons);
 	}
@@ -144,29 +162,48 @@
 	static char *fbpath = NULL;
 	static char fbpath_buf[MAXPATHLEN];
 	major_t major;
-	dev_info_t *dip;
+	dev_info_t *dip, *dip_pseudo = NULL;
 	int i;
 
-	for (i = 0; i < (sizeof (gfxdrv_name) / sizeof (char *)); i++) {
+	/* lookup the dip for the pseudo device */
+	(void) resolve_pathname("/pseudo", &dip_pseudo, NULL, NULL);
+
+	for (i = 0; i < A_CNT(gfxdrv_name); i++) {
 		/*
 		 * look for first instance of each driver
 		 */
-		major = ddi_name_to_major(gfxdrv_name[i]);
-		if (major != (major_t)-1) {
-			dip = devnamesp[major].dn_head;
-			if (dip &&
-			    i_ddi_attach_node_hierarchy(dip) == DDI_SUCCESS) {
-				(void) ddi_pathname(dip, fbpath_buf);
-				fbpath = fbpath_buf;
-			}
+		if ((major = ddi_name_to_major(gfxdrv_name[i])) == (major_t)-1)
+			continue;
+
+		if ((dip = devnamesp[major].dn_head) == NULL)
+			continue;
+
+		/*
+		 * We're looking for a real hardware device here so skip
+		 * any pseudo devices.  When could a framebuffer hardware
+		 * driver also have a pseudo node?  Well, some framebuffer
+		 * hardware drivers (nvidia) also create pseudo nodes for
+		 * administration purposes, and these nodes will exist
+		 * regardless of if the actual associated hardware
+		 * is present or not.
+		 */
+		if (ddi_get_parent(dip) == dip_pseudo)
+			continue;
+
+		if (i_ddi_attach_node_hierarchy(dip) == DDI_SUCCESS) {
+			(void) ddi_pathname(dip, fbpath_buf);
+			fbpath = fbpath_buf;
 		}
 
 		if (fbpath)
-			return (fbpath);
+			break;
 	}
 
+	if (dip_pseudo != NULL)
+		ddi_release_devi(dip_pseudo);
+
 	/* No screen found */
-	return (NULL);
+	return (fbpath);
 }
 
 char *
@@ -210,6 +247,10 @@
 plat_stdinpath(void)
 {
 	switch (console_type()) {
+#if defined(__xpv)
+	case CONS_HYPERVISOR:
+		return ("/xpvd/xencons@0");
+#endif /* __xpv */
 	case CONS_TTYA:
 		return ("/isa/asy@1,3f8:a");
 	case CONS_TTYB:
@@ -227,6 +268,10 @@
 plat_stdoutpath(void)
 {
 	switch (console_type()) {
+#if defined(__xpv)
+	case CONS_HYPERVISOR:
+		return ("/xpvd/xencons@0");
+#endif /* __xpv */
 	case CONS_TTYA:
 		return ("/isa/asy@1,3f8:a");
 	case CONS_TTYB:
@@ -259,21 +304,22 @@
 	*windowtop = 0;
 }
 
+/*ARGSUSED*/
 void
 plat_tem_get_prom_size(size_t *height, size_t *width)
 {
-	*height = 25;
-	*width = 80;
+	panic("unimplemented at line %d of %s", __LINE__, __FILE__);
 }
 
 void
 plat_tem_hide_prom_cursor(void)
 {
+	panic("unimplemented at line %d of %s", __LINE__, __FILE__);
 }
 
+/*ARGSUSED*/
 void
 plat_tem_get_prom_pos(uint32_t *row, uint32_t *col)
 {
-	*row = 0;
-	*col = 0;
+	panic("unimplemented at line %d of %s", __LINE__, __FILE__);
 }
--- a/usr/src/uts/i86pc/io/cpunex.c	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-/*
- * CPU nexus driver
- */
-
-#include	<sys/types.h>
-#include	<sys/param.h>
-#include	<sys/conf.h>
-#include	<sys/devops.h>
-#include	<sys/modctl.h>
-#include	<sys/cmn_err.h>
-#include	<sys/ddi.h>
-#include	<sys/sunddi.h>
-#include	<sys/sunndi.h>
-
-static int cpunex_attach(dev_info_t *, ddi_attach_cmd_t);
-static int cpunex_detach(dev_info_t *, ddi_detach_cmd_t);
-static int cpunex_bus_ctl(dev_info_t *, dev_info_t *, ddi_ctl_enum_t,
-    void *, void *);
-
-static struct bus_ops cpunex_bus_ops = {
-	BUSO_REV,
-	nullbusmap,
-	NULL,
-	NULL,
-	NULL,
-	i_ddi_map_fault,
-	ddi_no_dma_map,
-	ddi_no_dma_allochdl,
-	ddi_no_dma_freehdl,
-	ddi_no_dma_bindhdl,
-	ddi_no_dma_unbindhdl,
-	ddi_no_dma_flush,
-	ddi_no_dma_win,
-	ddi_no_dma_mctl,
-	cpunex_bus_ctl,
-	ddi_bus_prop_op,
-};
-
-static struct dev_ops cpunex_ops = {
-	DEVO_REV,
-	0,
-	ddi_no_info,
-	nulldev,
-	nulldev,
-	cpunex_attach,
-	cpunex_detach,
-	nodev,
-	NULL,
-	&cpunex_bus_ops,
-	NULL
-};
-
-static struct modldrv modldrv = {
-	&mod_driverops,
-	"cpu nexus driver v1.0",
-	&cpunex_ops
-};
-
-static struct modlinkage modlinkage = {
-	MODREV_1,
-	&modldrv,
-	NULL
-};
-
-/*
- * cpunex_bus_ctl()
- *    This routine implements nexus bus ctl operations. Of importance are
- *    DDI_CTLOPS_REPORTDEV, DDI_CTLOPS_INITCHILD, DDI_CTLOPS_UNINITCHILD
- *    and DDI_CTLOPS_POWER. For DDI_CTLOPS_INITCHILD, it tries to lookup
- *    reg property on the child node and builds and sets the name.
- */
-static int
-cpunex_bus_ctl(dev_info_t *dip, dev_info_t *rdip, ddi_ctl_enum_t op, void *arg,
-    void *result)
-{
-	switch (op) {
-		case DDI_CTLOPS_REPORTDEV: {
-			dev_info_t *pdip = ddi_get_parent(rdip);
-			cmn_err(CE_CONT, "?%s%d at %s%d",
-			    ddi_node_name(rdip), ddi_get_instance(rdip),
-			    ddi_node_name(pdip), ddi_get_instance(pdip));
-			return (DDI_SUCCESS);
-		}
-
-		case DDI_CTLOPS_INITCHILD: {
-			dev_info_t *cdip = (dev_info_t *)arg;
-			int i;
-			char caddr[MAXNAMELEN];
-
-			i = ddi_prop_get_int(DDI_DEV_T_ANY, cdip,
-			    DDI_PROP_DONTPASS, "reg", -1);
-
-			if (i == -1) {
-				cmn_err(CE_NOTE, "!%s(%d): \"reg\" property "
-				    "not found", ddi_node_name(cdip),
-				    ddi_get_instance(cdip));
-				return (DDI_NOT_WELL_FORMED);
-			}
-
-			(void) sprintf(caddr, "%d", i);
-			ddi_set_name_addr(cdip, caddr);
-
-			return (DDI_SUCCESS);
-		}
-
-		case DDI_CTLOPS_UNINITCHILD: {
-			ddi_prop_remove_all((dev_info_t *)arg);
-			ddi_set_name_addr((dev_info_t *)arg, NULL);
-			return (DDI_SUCCESS);
-		}
-
-		default: {
-			return (ddi_ctlops(dip, rdip, op, arg, result));
-		}
-	}
-}
-
-/*ARGSUSED*/
-static int
-cpunex_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_ATTACH:
-	case DDI_RESUME:
-		break;
-	default:
-		return (DDI_FAILURE);
-	}
-
-	return (DDI_SUCCESS);
-}
-
-/*ARGSUSED*/
-static int
-cpunex_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_DETACH:
-	case DDI_SUSPEND:
-		break;
-	default:
-		return (DDI_FAILURE);
-	}
-
-	return (DDI_SUCCESS);
-}
-
-int
-_init(void)
-{
-	int error;
-
-	error = mod_install(&modlinkage);
-	return (error);
-}
-
-int
-_fini(void)
-{
-	int error;
-
-	error = mod_remove(&modlinkage);
-	return (error);
-}
-
-int
-_info(struct modinfo *modinfop)
-{
-	return (mod_info(&modlinkage, modinfop));
-}
--- a/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c	Tue Sep 18 15:46:43 2007 -0700
@@ -48,8 +48,13 @@
 #include <sys/fs/snode.h>
 #include <sys/pci.h>
 #include <sys/vmsystm.h>
+#include <sys/int_fmtio.h>
 #include "gfx_private.h"
 
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
+
 /*
  * Create a dummy ddi_umem_cookie given to gfxp_devmap_umem_setup().
  */
@@ -123,7 +128,12 @@
 	pfn_t pfn;
 
 
+#ifdef __xpv
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	pfn = xen_assign_pfn(mmu_btop(maddr));
+#else
 	pfn = mmu_btop(maddr);
+#endif
 
 	dhp->dh_pfn = pfn;
 	dhp->dh_len = mmu_ptob(mmu_btopr(length));
--- a/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -74,6 +74,10 @@
 #include <sys/atomic.h>
 #include "gfx_private.h"
 
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
+
 /*
  * Create a kva mapping for a pa (start..start+size) with
  * the specified cache attributes (mode).
@@ -87,10 +91,20 @@
 	caddr_t cvaddr;
 	int hat_flags;
 	uint_t hat_attr;
+	pfn_t pfn;
 
 	if (size == 0)
 		return (0);
 
+#ifdef __xpv
+	/*
+	 * The hypervisor doesn't allow r/w mappings to some pages, such as
+	 * page tables, gdt, etc. Detect %cr3 to notify users of this interface.
+	 */
+	if (start == mmu_ptob(mmu_btop(getcr3())))
+		return (0);
+#endif
+
 	if (mode == GFXP_MEMORY_CACHED)
 		hat_attr = HAT_STORECACHING_OK;
 	else if (mode == GFXP_MEMORY_WRITECOMBINED)
@@ -104,8 +118,16 @@
 	cvaddr = vmem_alloc(heap_arena, ptob(npages), VM_NOSLEEP);
 	if (cvaddr == NULL)
 		return (NULL);
-	hat_devload(kas.a_hat, cvaddr, ptob(npages), base >> PAGESHIFT,
-			PROT_READ|PROT_WRITE|hat_attr, hat_flags);
+
+#ifdef __xpv
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	pfn = xen_assign_pfn(mmu_btop(base));
+#else
+	pfn = btop(base);
+#endif
+
+	hat_devload(kas.a_hat, cvaddr, ptob(npages), pfn,
+	    PROT_READ|PROT_WRITE|hat_attr, hat_flags);
 	return (cvaddr + pgoffset);
 }
 
@@ -136,7 +158,12 @@
 int
 gfxp_va2pa(struct as *as, caddr_t addr, uint64_t *pa)
 {
-	*pa = (uint64_t)(hat_getpfnum(as->a_hat, addr) << PAGESHIFT);
+#ifdef __xpv
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	*pa = pa_to_ma(pfn_to_pa(hat_getpfnum(as->a_hat, addr)));
+#else
+	*pa = pfn_to_pa(hat_getpfnum(as->a_hat, addr));
+#endif
 	return (0);
 }
 
@@ -222,5 +249,10 @@
 gfx_maddr_t
 gfxp_convert_addr(paddr_t paddr)
 {
+#ifdef __xpv
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	return (pfn_to_pa(xen_assign_pfn(btop(paddr))));
+#else
 	return ((gfx_maddr_t)paddr);
+#endif
 }
--- a/usr/src/uts/i86pc/io/hardclk.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/hardclk.c	Tue Sep 18 15:46:43 2007 -0700
@@ -46,10 +46,6 @@
  * Specifics are now in separate files and may be overridden by TOD
  * modules.
  */
-unsigned int microdata = 50;	/* loop count for 10 microsecond wait. */
-				/* MUST be initialized for those who */
-				/* insist on calling "tenmicrosec" before */
-				/* the clock has been initialized. */
 
 char *tod_module_name;		/* Settable in /etc/system */
 
--- a/usr/src/uts/i86pc/io/isa.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/isa.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -45,6 +45,11 @@
 #include <sys/sunddi.h>
 #include <sys/sunndi.h>
 #include <sys/acpi/acpi_enum.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#include <sys/evtchn_impl.h>
+#endif
+
 
 extern int isa_resource_setup(void);
 static char USED_RESOURCES[] = "used-resources";
@@ -198,6 +203,17 @@
 {
 	int rval;
 
+#if defined(__xpv)
+	/*
+	 * don't allow isa to attach in domU. this can happen if someone sets
+	 * the console wrong, etc. ISA devices assume the H/W is there and
+	 * will cause the domU to panic.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		return (DDI_FAILURE);
+	}
+#endif
+
 	if (cmd != DDI_ATTACH)
 		return (DDI_FAILURE);
 
@@ -338,7 +354,7 @@
 	if (ndi_dev_is_persistent_node(dip) == 0)
 		return (0);
 	if (ddi_getlongprop(DDI_DEV_T_ANY, dip, DDI_PROP_DONTPASS, "reg",
-		(caddr_t)&isa_regs, &proplen) != DDI_PROP_SUCCESS) {
+	    (caddr_t)&isa_regs, &proplen) != DDI_PROP_SUCCESS) {
 		return (0);
 	}
 	pnpisa = isa_regs[0].phys_hi & 0x80000000;
@@ -609,6 +625,15 @@
 
 	/* serial ports */
 	for (i = 0; i < 2; i++) {
+#if defined(__xpv)
+		/*
+		 * the hypervisor may be reserving the serial ports for console
+		 * and/or debug use.  Probe the irqs to see if they are
+		 * available.
+		 */
+		if (ec_probe_pirq(asy_intrs[i]) == 0)
+			continue; /* in use */
+#endif
 		ndi_devi_alloc_sleep(isa_dip, "asy",
 		    (pnode_t)DEVI_SID_NODEID, &xdip);
 		(void) ndi_prop_update_int_array(DDI_DEV_T_NONE, xdip,
@@ -665,7 +690,7 @@
 	 * the base I/O addresses of the first four serial ports.
 	 */
 	bios_data = (ushort_t *)psm_map_new((paddr_t)BIOS_DATA_AREA, size,
-		PSM_PROT_READ);
+	    PSM_PROT_READ);
 	for (i = 0; i < num_BIOS_serial; i++) {
 		if (bios_data[i] == 0) {
 			/* no COM[i]: port */
@@ -683,8 +708,8 @@
 
 			/* Match by addr */
 			ret = ddi_prop_lookup_int_array(DDI_DEV_T_ANY, xdip,
-				DDI_PROP_DONTPASS, "reg", (int **)&tmpregs,
-				(uint_t *)&tmpregs_len);
+			    DDI_PROP_DONTPASS, "reg", (int **)&tmpregs,
+			    (uint_t *)&tmpregs_len);
 			if (ret != DDI_PROP_SUCCESS) {
 				/* error */
 				continue;
@@ -692,12 +717,12 @@
 
 			if (tmpregs->regspec_addr == bios_data[i])
 				found = 1;
-
 			/*
 			 * Free the memory allocated by
 			 * ddi_prop_lookup_int_array().
 			 */
 			ddi_prop_free(tmpregs);
+
 		}
 
 		/* If not found, then add it */
@@ -717,6 +742,47 @@
 			(void) ndi_devi_bind_driver(xdip, 0);
 		}
 	}
+#if defined(__xpv)
+	/*
+	 * Check each serial port to see if it is in use by the hypervisor.
+	 * If it is in use, then remove the node from the device tree.
+	 */
+	i = 0;
+	for (xdip = ddi_get_child(isa_dip); xdip != NULL; ) {
+		int asy_intr;
+		dev_info_t *curdip;
+
+		curdip = xdip;
+		xdip = ddi_get_next_sibling(xdip);
+		if (strncmp(ddi_node_name(curdip), "asy", 3) != 0) {
+			/* skip non asy */
+			continue;
+		}
+		/*
+		 * Check if the hypervisor is using the serial port by probing
+		 * the irq and if it is using it remove the node
+		 * from the device tree
+		 */
+		asy_intr = ddi_prop_get_int(DDI_DEV_T_ANY, curdip,
+		    DDI_PROP_DONTPASS, "interrupts", -1);
+		if (asy_intr == -1) {
+			/* error */
+			continue;
+		}
+
+		if (ec_probe_pirq(asy_intr)) {
+			continue;
+		}
+		ret = ndi_devi_free(curdip);
+		if (ret != DDI_SUCCESS)
+			cmn_err(CE_WARN,
+			    "could not remove asy%d node", i);
+		else
+			cmn_err(CE_NOTE, "!asy%d unavailable, reserved"
+			    " to hypervisor", i);
+		i++;
+	}
+#endif	/* __xpv */
 
 	psm_unmap((caddr_t)bios_data, size);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86pc/io/microfind.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,215 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
+/*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
+/*	  All Rights Reserved  	*/
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/dl.h>
+#include <sys/param.h>
+#include <sys/pit.h>
+#include <sys/inline.h>
+#include <sys/machlock.h>
+#include <sys/avintr.h>
+#include <sys/smp_impldefs.h>
+#include <sys/archsystm.h>
+#include <sys/systm.h>
+#include <sys/machsystm.h>
+
+#define	PIT_COUNTDOWN	(PIT_READMODE | PIT_NDIVMODE)
+#define	MICROCOUNT	0x2000
+
+/*
+ * Loop count for 10 microsecond wait.  MUST be initialized for those who
+ * insist on calling "tenmicrosec" before the clock has been initialized.
+ */
+unsigned int microdata = 50;
+
+void
+microfind(void)
+{
+	uint64_t max, count = MICROCOUNT;
+
+	/*
+	 * The algorithm tries to guess a loop count for tenmicrosec such
+	 * that found will be 0xf000 PIT counts, but because it is only a
+	 * rough guess there is no guarantee that tenmicrosec will take
+	 * exactly 0xf000 PIT counts. min is set initially to 0xe000 and
+	 * represents the number of PIT counts that must elapse in
+	 * tenmicrosec for microfind to calculate the correct loop count for
+	 * tenmicrosec. The algorith will successively set count to better
+	 * approximations until the number of PIT counts elapsed are greater
+	 * than min. Ideally the first guess should be correct, but as cpu's
+	 * become faster MICROCOUNT may have to be increased to ensure
+	 * that the first guess for count is correct. There is no harm
+	 * leaving MICRCOUNT at 0x2000, the results will be correct, it just
+	 * may take longer to calculate the correct value for the loop
+	 * count used by tenmicrosec. In some cases min may be reset as the
+	 * algorithm progresses in order to facilitate faster cpu's.
+	 */
+	unsigned long found, min = 0xe000;
+	ulong_t s;
+	unsigned char status;
+
+	s = clear_int_flag();		/* disable interrupts */
+
+	/*CONSTCOND*/
+	while (1) {
+
+		/*
+		 * microdata is the loop count used in tenmicrosec. The first
+		 * time around microdata is set to 1 to make tenmicrosec
+		 * return quickly. The purpose of this while loop is to
+		 * warm the cache for the next time around when the number
+		 * of PIT counts are measured.
+		 */
+		microdata = 1;
+
+		/*CONSTCOND*/
+		while (1) {
+			/* Put counter 0 in mode 0 */
+			outb(PITCTL_PORT, PIT_LOADMODE);
+			/* output a count of -1 to counter 0 */
+			outb(PITCTR0_PORT, 0xff);
+			outb(PITCTR0_PORT, 0xff);
+			tenmicrosec();
+
+			/* READ BACK counter 0 to latch status and count */
+			outb(PITCTL_PORT, PIT_READBACK|PIT_READBACKC0);
+
+			/* Read status of counter 0 */
+			status = inb(PITCTR0_PORT);
+
+			/* Read the value left in the counter */
+			found = inb(PITCTR0_PORT) | (inb(PITCTR0_PORT) << 8);
+
+			if (microdata != 1)
+				break;
+
+			microdata = count;
+		}
+
+		/* verify that the counter began the count-down */
+		if (status & (1 << PITSTAT_NULLCNT)) {
+			/* microdata is too small */
+			count = count << 1;
+
+			/*
+			 * If the cpu is so fast that it cannot load the
+			 * counting element of the PIT with a very large
+			 * value for the loop used in tenmicrosec, then
+			 * the algorithm will not work for this cpu.
+			 * It is very unlikely there will ever be such
+			 * an x86.
+			 */
+			if (count > 0x100000000)
+				panic("microfind: cpu is too fast");
+
+			continue;
+		}
+
+		/* verify that the counter did not wrap around */
+		if (status & (1 << PITSTAT_OUTPUT)) {
+			/*
+			 * microdata is too large. Since there are counts
+			 * that would have been appropriate for the PIT
+			 * not to wrap on even a lowly AT, count will never
+			 * decrease to 1.
+			 */
+			count = count >> 1;
+			continue;
+		}
+
+		/* mode 0 is an n + 1 counter */
+		found = 0x10000 - found;
+		if (found > min)
+			break;
+
+		/* verify that the cpu is slow enough to count to 0xf000 */
+		count *= 0xf000;
+		max = 0x100000001 * found;
+
+		/*
+		 * It is possible that at some point cpu's will become
+		 * sufficiently fast such that the PIT will not be able to
+		 * count to 0xf000 within the maximum loop count used in
+		 * tenmicrosec. In that case the loop count in tenmicrosec
+		 * may be set to the maximum value because it is unlikely
+		 * that the cpu will be so fast that tenmicrosec with the
+		 * maximum loop count will take more than ten microseconds.
+		 * If the cpu is indeed too fast for the current
+		 * implementation of tenmicrosec, then there is code below
+		 * intended to catch that situation.
+		 */
+		if (count >= max) {
+			/* cpu is fast, just make it count as high it can */
+			count = 0x100000000;
+			min = 0;
+			continue;
+		}
+
+		/*
+		 * Count in the neighborhood of 0xf000 next time around
+		 * There is no risk of dividing by zero since found is in the
+		 * range of 0x1 to 0x1000.
+		 */
+		count = count / found;
+	}
+
+	/*
+	 * Formula for delaycount is :
+	 *  (loopcount * timer clock speed) / (counter ticks * 1000)
+	 *  Note also that 1000 is for figuring out milliseconds
+	 */
+	count *= PIT_HZ;
+	max = ((uint64_t)found) * 100000;
+	count = count / max;	/* max is never zero */
+
+	if (count >= 0x100000001)
+		/*
+		 * This cpu is too fast for the current implementation of
+		 * tenmicrosec. It is unlikely such a fast x86 will exist.
+		 */
+		panic("microfind: cpu is too fast");
+
+	if (count != 0)
+		microdata = count;
+	else
+		microdata = 1;
+
+	/* Restore timer channel 0 for BIOS use */
+
+	/* write mode to 3, square-wave */
+	outb(PITCTL_PORT, PIT_C0 | PIT_LOADMODE | PIT_SQUAREMODE);
+
+	/* write 16 bits of 0 for initial count */
+	outb(PITCTR0_PORT, 0);
+	outb(PITCTR0_PORT, 0);
+
+	restore_int_flag(s);		/* restore interrupt state */
+}
--- a/usr/src/uts/i86pc/io/mp_platform_common.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/mp_platform_common.c	Tue Sep 18 15:46:43 2007 -0700
@@ -79,7 +79,6 @@
 static int apic_find_free_irq(int start, int end);
 static void apic_mark_vector(uchar_t oldvector, uchar_t newvector);
 static void apic_xlate_vector_free_timeout_handler(void *arg);
-static void apic_reprogram_timeout_handler(void *arg);
 static int apic_check_stuck_interrupt(apic_irq_t *irq_ptr, int old_bind_cpu,
     int new_bind_cpu, int apicindex, int intin_no, int which_irq,
     struct ioapic_reprogram_data *drep);
@@ -91,8 +90,6 @@
 static int apic_setup_irq_table(dev_info_t *dip, int irqno,
     struct apic_io_intr *intrp, struct intrspec *ispec, iflag_t *intr_flagp,
     int type);
-static int apic_setup_sci_irq_table(int irqno, uchar_t ipl,
-    iflag_t *intr_flagp);
 static void apic_set_pwroff_method_from_mpcnfhdr(struct apic_mp_cnf_hdr *hdrp);
 static void apic_try_deferred_reprogram(int ipl, int vect);
 static void delete_defer_repro_ent(int which_irq);
@@ -239,7 +236,7 @@
 
 /*
  * apic_defer_reprogram_lock ensures that only one processor is handling
- * deferred interrupt programming at apic_intr_exit time.
+ * deferred interrupt programming at *_intr_exit time.
  */
 static	lock_t	apic_defer_reprogram_lock;
 
@@ -1333,7 +1330,7 @@
 	 * At the end of apic_picinit(), we will call setup_io_intr().
 	 */
 
-	if (!apic_flag)
+	if (!apic_picinit_called)
 		return (PSM_SUCCESS);
 
 	/*
@@ -1457,7 +1454,7 @@
 	if (irqptr->airq_mps_intr_index == RESERVE_INDEX)
 		return (PSM_SUCCESS);
 
-	if (!apic_flag) {
+	if (!apic_picinit_called) {
 		/*
 		 * Clear irq_struct. If two devices shared an intpt
 		 * line & 1 unloaded before picinit, we are hosed. But, then
@@ -2964,7 +2961,7 @@
 
 	if (--apic_reprogram_outstanding == 0) {
 
-		setlvlx = apic_intr_exit;
+		setlvlx = psm_intr_exit_fn();
 	}
 }
 
@@ -3019,7 +3016,7 @@
 	int reproirq, iflag;
 	struct ioapic_reprogram_data *drep;
 
-	apic_intr_exit(prev_ipl, irq);
+	(*psm_intr_exit_fn())(prev_ipl, irq);
 
 	if (!lock_try(&apic_defer_reprogram_lock)) {
 		return;
@@ -3031,7 +3028,7 @@
 	 * It's still possible for the last deferred reprogramming to clear
 	 * between the time we entered this function and the time we get to
 	 * the for loop below.  In that case, *setlvlx will have been set
-	 * back to apic_intr_exit and drep will be NULL. (There's no way to
+	 * back to *_intr_exit and drep will be NULL. (There's no way to
 	 * stop that from happening -- we would need to grab a lock before
 	 * calling *setlvlx, which is neither realistic nor prudent).
 	 */
@@ -3055,10 +3052,10 @@
 	/*
 	 * Either we found a deferred action to perform, or
 	 * we entered this function spuriously, after *setlvlx
-	 * was restored to point to apic_intr_enter.  Any other
+	 * was restored to point to *_intr_exit.  Any other
 	 * permutation is invalid.
 	 */
-	ASSERT(drep != NULL || *setlvlx == apic_intr_exit);
+	ASSERT(drep != NULL || *setlvlx == psm_intr_exit_fn());
 
 	/*
 	 * Though we can't really do anything about errors
--- a/usr/src/uts/i86pc/io/pci/pci_kstats.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/pci/pci_kstats.c	Tue Sep 18 15:46:43 2007 -0700
@@ -147,7 +147,7 @@
 	pci_ks_template.ihks_pil.value.ui64 = ih_p->ih_pri;
 	pci_ks_template.ihks_time.value.ui64 =
 	    ((ihdl_plat_t *)ih_p->ih_private)->ip_ticks;
-	tsc_scalehrtime((hrtime_t *)&pci_ks_template.ihks_time.value.ui64);
+	scalehrtime((hrtime_t *)&pci_ks_template.ihks_time.value.ui64);
 	pci_ks_template.ihks_cookie.value.ui64 = ih_p->ih_vector;
 	/* CPU won't be user bound at this point. */
 	pci_ks_template.ihks_cpu.value.ui64 = intrinfo.avgi_cpu_id;
--- a/usr/src/uts/i86pc/io/pci/pci_tools.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/pci/pci_tools.c	Tue Sep 18 15:46:43 2007 -0700
@@ -45,6 +45,10 @@
 #include <sys/x86_archext.h>
 #include <sys/cpuvar.h>
 
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
+
 #define	PCIEX_BDF_OFFSET_DELTA	4
 #define	PCIEX_REG_FUNC_SHIFT	(PCI_REG_FUNC_SHIFT + PCIEX_BDF_OFFSET_DELTA)
 #define	PCIEX_REG_DEV_SHIFT	(PCI_REG_DEV_SHIFT + PCIEX_BDF_OFFSET_DELTA)
@@ -836,7 +840,16 @@
 	if (pcitool_debug)
 		prom_printf("Got base virtual address:0x%p\n", virt_base);
 
+#ifdef __xpv
+	/*
+	 * We should only get here if we are dom0.
+	 * We're using a real device so we need to translate the MA to a PFN.
+	 */
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+	pfn = xen_assign_pfn(mmu_btop(page_base));
+#else
 	pfn = btop(page_base);
+#endif
 
 	/* Now map the allocated virtual space to the physical address. */
 	hat_devload(kas.a_hat, virt_base, mmu_ptob(*num_pages), pfn,
--- a/usr/src/uts/i86pc/io/pciex/inc.flg	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/pciex/inc.flg	Tue Sep 18 15:46:43 2007 -0700
@@ -56,6 +56,7 @@
 # to compile the drivers/modules
 find_files "s.*"	\
 	usr/src/uts/i86pc/npe			\
+	usr/src/uts/i86xpv/npe			\
 	usr/src/uts/intel/pci_autoconfig	\
 	usr/src/uts/intel/pcie_pci		\
 	usr/src/uts/intel/pciehpc		\
@@ -101,6 +102,11 @@
 echo_file  usr/src/uts/i86pc/Makefile.rules
 echo_file  usr/src/uts/i86pc/Makefile.i86pc
 echo_file  usr/src/uts/i86pc/Makefile.targ
+echo_file  usr/src/uts/i86xpv/Makefile
+echo_file  usr/src/uts/i86xpv/Makefile.files
+echo_file  usr/src/uts/i86xpv/Makefile.rules
+echo_file  usr/src/uts/i86xpv/Makefile.i86xpv
+echo_file  usr/src/uts/i86xpv/Makefile.targ
 echo_file  usr/src/uts/intel/Makefile
 echo_file  usr/src/uts/intel/Makefile.files
 echo_file  usr/src/uts/intel/Makefile.rules
--- a/usr/src/uts/i86pc/io/pcplusmp/apic.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/pcplusmp/apic.c	Tue Sep 18 15:46:43 2007 -0700
@@ -65,6 +65,7 @@
 #include <sys/note.h>
 #include <sys/pci_intr_lib.h>
 #include <sys/spl.h>
+#include <sys/clock.h>
 
 /*
  *	Local Function Prototypes
@@ -73,7 +74,7 @@
 static void apic_ret();
 static int get_apic_cmd1();
 static int get_apic_pri();
-static void apic_nmi_intr(caddr_t arg);
+static void apic_nmi_intr(caddr_t arg, struct regs *rp);
 
 /*
  *	standard MP entries
@@ -262,7 +263,7 @@
 apic_cpus_info_t	*apic_cpus;
 
 cpuset_t	apic_cpumask;
-uint_t	apic_flag;
+uint_t	apic_picinit_called;
 
 /* Flag to indicate that we need to shut down all processors */
 static uint_t	apic_shutdown_processors;
@@ -611,7 +612,7 @@
 	}
 
 	/* set a flag so we know we have run apic_picinit() */
-	apic_flag = 1;
+	apic_picinit_called = 1;
 	LOCK_INIT_CLEAR(&apic_gethrtime_lock);
 	LOCK_INIT_CLEAR(&apic_ioapic_lock);
 	LOCK_INIT_CLEAR(&apic_error_lock);
@@ -843,6 +844,12 @@
 	cpu_infop->aci_ISR_in_progress &= (2 << prev_ipl) - 1;
 }
 
+intr_exit_fn_t
+psm_intr_exit_fn(void)
+{
+	return (apic_intr_exit);
+}
+
 /*
  * Mask all interrupts below or equal to the given IPL
  */
@@ -1063,39 +1070,34 @@
 /* apic NMI handler */
 /*ARGSUSED*/
 static void
-apic_nmi_intr(caddr_t arg)
+apic_nmi_intr(caddr_t arg, struct regs *rp)
 {
 	if (apic_shutdown_processors) {
 		apic_disable_local_apic();
 		return;
 	}
 
-	if (lock_try(&apic_nmi_lock)) {
-		if (apic_kmdb_on_nmi) {
-			if (psm_debugger() == 0) {
-				cmn_err(CE_PANIC,
-				    "NMI detected, kmdb is not available.");
-			} else {
-				debug_enter("\nNMI detected, entering kmdb.\n");
-			}
-		} else {
-			if (apic_panic_on_nmi) {
-				/* Keep panic from entering kmdb. */
-				nopanicdebug = 1;
-				cmn_err(CE_PANIC, "pcplusmp: NMI received");
-			} else {
-				/*
-				 * prom_printf is the best shot we have
-				 * of something which is problem free from
-				 * high level/NMI type of interrupts
-				 */
-				prom_printf("pcplusmp: NMI received\n");
-				apic_error |= APIC_ERR_NMI;
-				apic_num_nmis++;
-			}
-		}
-		lock_clear(&apic_nmi_lock);
+	apic_error |= APIC_ERR_NMI;
+
+	if (!lock_try(&apic_nmi_lock))
+		return;
+	apic_num_nmis++;
+
+	if (apic_kmdb_on_nmi && psm_debugger()) {
+		debug_enter("NMI received: entering kmdb\n");
+	} else if (apic_panic_on_nmi) {
+		/* Keep panic from entering kmdb. */
+		nopanicdebug = 1;
+		panic("NMI received\n");
+	} else {
+		/*
+		 * prom_printf is the best shot we have of something which is
+		 * problem free from high level/NMI type of interrupts
+		 */
+		prom_printf("NMI received\n");
 	}
+
+	lock_clear(&apic_nmi_lock);
 }
 
 /*ARGSUSED*/
@@ -1111,6 +1113,25 @@
 	return (apic_delspl_common(irqno, ipl, min_ipl,  max_ipl));
 }
 
+/*
+ * Return HW interrupt number corresponding to the given IPL
+ */
+/*ARGSUSED*/
+static int
+apic_softlvl_to_irq(int ipl)
+{
+	/*
+	 * Do not use apic to trigger soft interrupt.
+	 * It will cause the system to hang when 2 hardware interrupts
+	 * at the same priority with the softint are already accepted
+	 * by the apic.  Cause the AV_PENDING bit will not be cleared
+	 * until one of the hardware interrupt is eoi'ed.  If we need
+	 * to send an ipi at this time, we will end up looping forever
+	 * to wait for the AV_PENDING bit to clear.
+	 */
+	return (PSM_SV_SOFTWARE);
+}
+
 static int
 apic_post_cpu_start()
 {
@@ -1289,7 +1310,6 @@
 static int
 apic_clkinit(int hertz)
 {
-
 	uint_t		apic_ticks = 0;
 	uint_t		pit_ticks;
 	int		ret;
@@ -1340,7 +1360,7 @@
 
 	if (hertz == 0) {
 		/* requested one_shot */
-		if (!apic_oneshot_enable)
+		if (!tsc_gethrtime_enable || !apic_oneshot_enable)
 			return (0);
 		apic_oneshot = 1;
 		ret = (int)APIC_TICKS_TO_NSECS(1);
--- a/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c	Tue Sep 18 15:46:43 2007 -0700
@@ -48,9 +48,6 @@
  *	Local Function Prototypes
  */
 apic_irq_t	*apic_find_irq(dev_info_t *, struct intrspec *, int);
-static int	apic_get_pending(apic_irq_t *, int);
-static void	apic_clear_mask(apic_irq_t *);
-static void	apic_set_mask(apic_irq_t *);
 
 /*
  * MSI support flag:
@@ -258,6 +255,8 @@
 }
 
 
+#if !defined(__xpv)
+
 /*
  * This function will return the pending bit of the irqp.
  * It either comes from the IRR register of the APIC or the RDT
@@ -359,6 +358,7 @@
 	intr_restore(iflag);
 }
 
+#endif	/* ! __xpv */
 
 void
 apic_free_vectors(dev_info_t *dip, int inum, int count, int pri, int type)
@@ -571,6 +571,8 @@
 	}
 }
 
+#if !defined(__xpv)
+
 static int
 apic_set_cpu(uint32_t vector, int cpu, int *result)
 {
@@ -747,7 +749,9 @@
 	return (PSM_SUCCESS);
 }
 
-static int
+#endif	/* !__xpv */
+
+int
 apic_get_vector_intr_info(int vecirq, apic_get_intr_t *intr_params_p)
 {
 	struct autovec *av_dev;
@@ -847,6 +851,8 @@
 }
 
 
+#if !defined(__xpv)
+
 /*
  * This function provides external interface to the nexus for all
  * functionalities related to the new DDI interrupt framework.
@@ -1038,3 +1044,4 @@
 	}
 	return (PSM_SUCCESS);
 }
+#endif	/* !__xpv */
--- a/usr/src/uts/i86pc/io/rootnex.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/rootnex.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -63,6 +63,13 @@
 #include <vm/hat_i86.h>
 #include <sys/ddifm.h>
 
+#ifdef __xpv
+#include <sys/bootinfo.h>
+#include <sys/hypervisor.h>
+#include <sys/bootconf.h>
+#include <vm/kboot_mmu.h>
+#endif
+
 /*
  * enable/disable extra checking of function parameters. Useful for debugging
  * drivers.
@@ -142,6 +149,14 @@
 };
 #define	NROOT_INTPROPS	(sizeof (rootnex_intprp) / sizeof (rootnex_intprop_t))
 
+#ifdef __xpv
+typedef maddr_t rootnex_addr_t;
+#define	ROOTNEX_PADDR_TO_RBASE(xinfo, pa)	\
+	(DOMAIN_IS_INITDOMAIN(xinfo) ? pa_to_ma(pa) : (pa))
+#else
+typedef paddr_t rootnex_addr_t;
+#endif
+
 
 static struct cb_ops rootnex_cb_ops = {
 	nodev,		/* open */
@@ -267,7 +282,6 @@
 extern int ddi_map_debug_flag;
 #define	ddi_map_debug	if (ddi_map_debug_flag) prom_printf
 #endif
-#define	ptob64(x)	(((uint64_t)(x)) << MMU_PAGESHIFT)
 extern void i86_pp_map(page_t *pp, caddr_t kaddr);
 extern void i86_va_map(caddr_t vaddr, struct as *asp, caddr_t kaddr);
 extern int (*psm_intr_ops)(dev_info_t *, ddi_intr_handle_impl_t *,
@@ -371,7 +385,6 @@
 	int fmcap;
 	int e;
 
-
 	switch (cmd) {
 	case DDI_ATTACH:
 		break;
@@ -779,12 +792,10 @@
 	rp = mp->map_obj.rp = &tmp_reg;		/* Use tmp_reg in request */
 
 #ifdef	DDI_MAP_DEBUG
-	cmn_err(CE_CONT,
-		"rootnex: <%s,%s> <0x%x, 0x%x, 0x%d>"
-		" offset %d len %d handle 0x%x\n",
-		ddi_get_name(dip), ddi_get_name(rdip),
-		rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
-		offset, len, mp->map_handlep);
+	cmn_err(CE_CONT, "rootnex: <%s,%s> <0x%x, 0x%x, 0x%d> offset %d len %d "
+	    "handle 0x%x\n", ddi_get_name(dip), ddi_get_name(rdip),
+	    rp->regspec_bustype, rp->regspec_addr, rp->regspec_size, offset,
+	    len, mp->map_handlep);
 #endif	/* DDI_MAP_DEBUG */
 
 	/*
@@ -819,12 +830,10 @@
 		rp->regspec_size = (uint_t)len;
 
 #ifdef	DDI_MAP_DEBUG
-	cmn_err(CE_CONT,
-		"             <%s,%s> <0x%x, 0x%x, 0x%d>"
-		" offset %d len %d handle 0x%x\n",
-		ddi_get_name(dip), ddi_get_name(rdip),
-		rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
-		offset, len, mp->map_handlep);
+	cmn_err(CE_CONT, "             <%s,%s> <0x%x, 0x%x, 0x%d> offset %d "
+	    "len %d handle 0x%x\n", ddi_get_name(dip), ddi_get_name(rdip),
+	    rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
+	    offset, len, mp->map_handlep);
 #endif	/* DDI_MAP_DEBUG */
 
 	/*
@@ -896,8 +905,7 @@
 	 * XXX	What about devices with their own segment drivers?
 	 */
 	if (seg->s_ops == &segdev_ops) {
-		struct segdev_data *sdp =
-			(struct segdev_data *)seg->s_data;
+		struct segdev_data *sdp = (struct segdev_data *)seg->s_data;
 
 		if (hat == NULL) {
 			/*
@@ -929,13 +937,14 @@
 static int
 rootnex_map_regspec(ddi_map_req_t *mp, caddr_t *vaddrp)
 {
-	ulong_t base;
+	rootnex_addr_t rbase;
 	void *cvaddr;
 	uint_t npages, pgoffset;
 	struct regspec *rp;
 	ddi_acc_hdl_t *hp;
 	ddi_acc_impl_t *ap;
 	uint_t	hat_acc_flags;
+	paddr_t pbase;
 
 	rp = mp->map_obj.rp;
 	hp = mp->map_handlep;
@@ -975,8 +984,8 @@
 
 		if (mp->map_flags & DDI_MF_DEVICE_MAPPING) {
 #ifdef  DDI_MAP_DEBUG
-			ddi_map_debug("rootnex_map_regspec: mmap() \
-to I/O space is not supported.\n");
+			ddi_map_debug("rootnex_map_regspec: mmap() "
+			    "to I/O space is not supported.\n");
 #endif  /* DDI_MAP_DEBUG */
 			return (DDI_ME_INVAL);
 		} else {
@@ -985,11 +994,21 @@
 			 */
 			*vaddrp =
 			    (rp->regspec_bustype > 1 && rp->regspec_addr == 0) ?
-				((caddr_t)(uintptr_t)rp->regspec_bustype) :
-				((caddr_t)(uintptr_t)rp->regspec_addr);
-
+			    ((caddr_t)(uintptr_t)rp->regspec_bustype) :
+			    ((caddr_t)(uintptr_t)rp->regspec_addr);
+#ifdef __xpv
+			if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+				hp->ah_pfn = xen_assign_pfn(
+				    mmu_btop((ulong_t)rp->regspec_addr &
+				    MMU_PAGEMASK));
+			} else {
+				hp->ah_pfn = mmu_btop(
+				    (ulong_t)rp->regspec_addr & MMU_PAGEMASK);
+			}
+#else
 			hp->ah_pfn = mmu_btop((ulong_t)rp->regspec_addr &
-			    (~MMU_PAGEOFFSET));
+			    MMU_PAGEMASK);
+#endif
 			hp->ah_pnum = mmu_btopr(rp->regspec_size +
 			    (ulong_t)rp->regspec_addr & MMU_PAGEOFFSET);
 		}
@@ -1036,8 +1055,21 @@
 		hat_acc_flags = HAT_STRICTORDER;
 	}
 
-	base = (ulong_t)rp->regspec_addr & (~MMU_PAGEOFFSET); /* base addr */
-	pgoffset = (ulong_t)rp->regspec_addr & MMU_PAGEOFFSET; /* offset */
+	rbase = (rootnex_addr_t)(rp->regspec_addr & MMU_PAGEMASK);
+#ifdef __xpv
+	/*
+	 * If we're dom0, we're using a real device so we need to translate
+	 * the MA to a PA.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		pbase = pfn_to_pa(xen_assign_pfn(mmu_btop(rbase)));
+	} else {
+		pbase = rbase;
+	}
+#else
+	pbase = rbase;
+#endif
+	pgoffset = (ulong_t)rp->regspec_addr & MMU_PAGEOFFSET;
 
 	if (rp->regspec_size == 0) {
 #ifdef  DDI_MAP_DEBUG
@@ -1047,14 +1079,14 @@
 	}
 
 	if (mp->map_flags & DDI_MF_DEVICE_MAPPING) {
-		*vaddrp = (caddr_t)mmu_btop(base);
+		/* extra cast to make gcc happy */
+		*vaddrp = (caddr_t)((uintptr_t)mmu_btop(pbase));
 	} else {
 		npages = mmu_btopr(rp->regspec_size + pgoffset);
 
 #ifdef	DDI_MAP_DEBUG
-		ddi_map_debug("rootnex_map_regspec: Mapping %d pages \
-physical %x ",
-		    npages, base);
+		ddi_map_debug("rootnex_map_regspec: Mapping %d pages "
+		    "physical %llx", npages, pbase);
 #endif	/* DDI_MAP_DEBUG */
 
 		cvaddr = device_arena_alloc(ptob(npages), VM_NOSLEEP);
@@ -1064,14 +1096,15 @@
 		/*
 		 * Now map in the pages we've allocated...
 		 */
-		hat_devload(kas.a_hat, cvaddr, mmu_ptob(npages), mmu_btop(base),
-		    mp->map_prot | hat_acc_flags, HAT_LOAD_LOCK);
+		hat_devload(kas.a_hat, cvaddr, mmu_ptob(npages),
+		    mmu_btop(pbase), mp->map_prot | hat_acc_flags,
+		    HAT_LOAD_LOCK);
 		*vaddrp = (caddr_t)cvaddr + pgoffset;
 
 		/* save away pfn and npages for FMA */
 		hp = mp->map_handlep;
 		if (hp) {
-			hp->ah_pfn = mmu_btop(base);
+			hp->ah_pfn = mmu_btop(pbase);
 			hp->ah_pnum = npages;
 		}
 	}
@@ -1146,10 +1179,11 @@
 static int
 rootnex_map_handle(ddi_map_req_t *mp)
 {
+	rootnex_addr_t rbase;
 	ddi_acc_hdl_t *hp;
-	ulong_t base;
 	uint_t pgoffset;
 	struct regspec *rp;
+	paddr_t pbase;
 
 	rp = mp->map_obj.rp;
 
@@ -1212,13 +1246,29 @@
 		return (DDI_FAILURE);
 	}
 
-	base = (ulong_t)rp->regspec_addr & (~MMU_PAGEOFFSET); /* base addr */
-	pgoffset = (ulong_t)rp->regspec_addr & MMU_PAGEOFFSET; /* offset */
+	rbase = (rootnex_addr_t)rp->regspec_addr &
+	    (~(rootnex_addr_t)MMU_PAGEOFFSET);
+	pgoffset = (ulong_t)rp->regspec_addr & MMU_PAGEOFFSET;
 
 	if (rp->regspec_size == 0)
 		return (DDI_ME_INVAL);
 
-	hp->ah_pfn = mmu_btop(base);
+#ifdef __xpv
+	/*
+	 * If we're dom0, we're using a real device so we need to translate
+	 * the MA to a PA.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		pbase = pfn_to_pa(xen_assign_pfn(mmu_btop(rbase))) |
+		    (rbase & MMU_PAGEOFFSET);
+	} else {
+		pbase = rbase;
+	}
+#else
+	pbase = rbase;
+#endif
+
+	hp->ah_pfn = mmu_btop(pbase);
 	hp->ah_pnum = mmu_btopr(rp->regspec_size + pgoffset);
 
 	return (DDI_SUCCESS);
@@ -2123,6 +2173,7 @@
     rootnex_sglinfo_t *sglinfo)
 {
 	ddi_dma_atyp_t buftype;
+	rootnex_addr_t raddr;
 	uint64_t last_page;
 	uint64_t offset;
 	uint64_t addrhi;
@@ -2159,7 +2210,7 @@
 		ASSERT(!PP_ISFREE(pp) && PAGE_LOCKED(pp));
 		offset =  dmar_object->dmao_obj.pp_obj.pp_offset &
 		    MMU_PAGEOFFSET;
-		paddr = ptob64(pp->p_pagenum) + offset;
+		paddr = pfn_to_pa(pp->p_pagenum) + offset;
 		psize = MIN(size, (MMU_PAGESIZE - offset));
 		pp = pp->p_next;
 		sglinfo->si_asp = NULL;
@@ -2180,7 +2231,7 @@
 		}
 
 		ASSERT(!PP_ISFREE(pplist[pcnt]));
-		paddr = ptob64(pplist[pcnt]->p_pagenum);
+		paddr = pfn_to_pa(pplist[pcnt]->p_pagenum);
 		paddr += offset;
 		psize = MIN(size, (MMU_PAGESIZE - offset));
 		pcnt++;
@@ -2199,18 +2250,28 @@
 			sglinfo->si_asp = &kas;
 		}
 
-		paddr = ptob64(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr));
+		paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr));
 		paddr += offset;
 		psize = MIN(size, (MMU_PAGESIZE - offset));
 		vaddr += psize;
 	}
 
+#ifdef __xpv
+	/*
+	 * If we're dom0, we're using a real device so we need to load
+	 * the cookies with MFNs instead of PFNs.
+	 */
+	raddr = ROOTNEX_PADDR_TO_RBASE(xen_info, paddr);
+#else
+	raddr = paddr;
+#endif
+
 	/*
 	 * Setup the first cookie with the physical address of the page and the
 	 * size of the page (which takes into account the initial offset into
 	 * the page.
 	 */
-	sgl[cnt].dmac_laddress = paddr;
+	sgl[cnt].dmac_laddress = raddr;
 	sgl[cnt].dmac_size = psize;
 	sgl[cnt].dmac_type = 0;
 
@@ -2230,7 +2291,7 @@
 	 * uses the copy buffer in case the copy buffer is not physically
 	 * contiguous.
 	 */
-	if ((paddr < addrlo) || ((paddr + psize) > addrhi)) {
+	if ((raddr < addrlo) || ((raddr + psize) > addrhi)) {
 		sglinfo->si_copybuf_req += MMU_PAGESIZE;
 		sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
 		if ((cnt + 1) < sglinfo->si_max_pages) {
@@ -2246,7 +2307,7 @@
 	 * page is physically contiguous. Keep decrementing size until we are
 	 * done with the buffer.
 	 */
-	last_page = paddr & MMU_PAGEMASK;
+	last_page = raddr & MMU_PAGEMASK;
 	size -= psize;
 
 	while (size > 0) {
@@ -2256,22 +2317,32 @@
 		if (buftype == DMA_OTYP_PAGES) {
 			/* get the paddr from the page_t */
 			ASSERT(!PP_ISFREE(pp) && PAGE_LOCKED(pp));
-			paddr = ptob64(pp->p_pagenum);
+			paddr = pfn_to_pa(pp->p_pagenum);
 			pp = pp->p_next;
 		} else if (pplist != NULL) {
 			/* index into the array of page_t's to get the paddr */
 			ASSERT(!PP_ISFREE(pplist[pcnt]));
-			paddr = ptob64(pplist[pcnt]->p_pagenum);
+			paddr = pfn_to_pa(pplist[pcnt]->p_pagenum);
 			pcnt++;
 		} else {
 			/* call into the VM to get the paddr */
-			paddr =  ptob64(hat_getpfnum(sglinfo->si_asp->a_hat,
+			paddr =  pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat,
 			    vaddr));
 			vaddr += psize;
 		}
 
+#ifdef __xpv
+		/*
+		 * If we're dom0, we're using a real device so we need to load
+		 * the cookies with MFNs instead of PFNs.
+		 */
+		raddr = ROOTNEX_PADDR_TO_RBASE(xen_info, paddr);
+#else
+		raddr = paddr;
+#endif
+
 		/* check to see if this page needs the copy buffer */
-		if ((paddr < addrlo) || ((paddr + psize) > addrhi)) {
+		if ((raddr < addrlo) || ((raddr + psize) > addrhi)) {
 			sglinfo->si_copybuf_req += MMU_PAGESIZE;
 
 			/*
@@ -2283,7 +2354,7 @@
 			if (sgl[cnt].dmac_size != 0) {
 				cnt++;
 			}
-			sgl[cnt].dmac_laddress = paddr;
+			sgl[cnt].dmac_laddress = raddr;
 			sgl[cnt].dmac_size = psize;
 #if defined(__amd64)
 			sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
@@ -2309,8 +2380,8 @@
 		 * puts us over the max cookie size, or the current sgl doesn't
 		 * have anything in it.
 		 */
-		} else if (((last_page + MMU_PAGESIZE) != paddr) ||
-		    !(paddr & sglinfo->si_segmask) ||
+		} else if (((last_page + MMU_PAGESIZE) != raddr) ||
+		    !(raddr & sglinfo->si_segmask) ||
 		    ((sgl[cnt].dmac_size + psize) > maxseg) ||
 		    (sgl[cnt].dmac_size == 0)) {
 			/*
@@ -2322,7 +2393,7 @@
 			}
 
 			/* save the cookie information */
-			sgl[cnt].dmac_laddress = paddr;
+			sgl[cnt].dmac_laddress = raddr;
 			sgl[cnt].dmac_size = psize;
 #if defined(__amd64)
 			sgl[cnt].dmac_type = 0;
@@ -2360,7 +2431,7 @@
 		 * next page is physically contiguous. Keep decrementing size
 		 * until we are done with the buffer.
 		 */
-		last_page = paddr;
+		last_page = raddr;
 		size -= psize;
 	}
 
@@ -2950,6 +3021,7 @@
 {
 	boolean_t copybuf_sz_power_2;
 	rootnex_sglinfo_t *sinfo;
+	paddr_t paddr;
 	uint_t pidx;
 	uint_t pcnt;
 	off_t poff;
@@ -2981,10 +3053,11 @@
 		 * get the offset into the page. For the 64-bit kernel, get the
 		 * pfn which we'll use with seg kpm.
 		 */
-		poff = cookie->_dmu._dmac_ll & MMU_PAGEOFFSET;
+		poff = cookie->dmac_laddress & MMU_PAGEOFFSET;
 #if defined(__amd64)
-		pfn = cookie->_dmu._dmac_ll >> MMU_PAGESHIFT;
-#endif
+		/* mfn_to_pfn() is a NOP on i86pc */
+		pfn = mfn_to_pfn(cookie->dmac_laddress >> MMU_PAGESHIFT);
+#endif /* __amd64 */
 
 		/* figure out if the copybuf size is a power of 2 */
 		if (dma->dp_copybuf_size & (dma->dp_copybuf_size - 1)) {
@@ -3022,9 +3095,19 @@
 		 * the physical address of the copy buffer page that we will
 		 * use.
 		 */
-		cookie->_dmu._dmac_ll = ptob64(hat_getpfnum(kas.a_hat,
+		paddr = pfn_to_pa(hat_getpfnum(kas.a_hat,
 		    dma->dp_pgmap[pidx].pm_cbaddr)) + poff;
 
+#ifdef __xpv
+		/*
+		 * If we're dom0, we're using a real device so we need to load
+		 * the cookies with MAs instead of PAs.
+		 */
+		cookie->dmac_laddress = ROOTNEX_PADDR_TO_RBASE(xen_info, paddr);
+#else
+		cookie->dmac_laddress = paddr;
+#endif
+
 		/* if we have a kernel VA, it's easy, just save that address */
 		if ((dmar_object->dmao_type != DMA_OTYP_PAGES) &&
 		    (sinfo->si_asp == &kas)) {
@@ -3245,7 +3328,7 @@
 	cookie--;
 	(*windowp)->wd_trim.tr_trim_last = B_TRUE;
 	(*windowp)->wd_trim.tr_last_cookie = cookie;
-	(*windowp)->wd_trim.tr_last_paddr = cookie->_dmu._dmac_ll;
+	(*windowp)->wd_trim.tr_last_paddr = cookie->dmac_laddress;
 	ASSERT(cookie->dmac_size > trim_sz);
 	(*windowp)->wd_trim.tr_last_size = cookie->dmac_size - trim_sz;
 	(*windowp)->wd_size -= trim_sz;
@@ -3268,7 +3351,7 @@
 	rootnex_init_win(hp, dma, *windowp, cookie, new_offset);
 	(*windowp)->wd_cookie_cnt++;
 	(*windowp)->wd_trim.tr_trim_first = B_TRUE;
-	(*windowp)->wd_trim.tr_first_paddr = cookie->_dmu._dmac_ll + coffset;
+	(*windowp)->wd_trim.tr_first_paddr = cookie->dmac_laddress + coffset;
 	(*windowp)->wd_trim.tr_first_size = trim_sz;
 	if (cookie->dmac_type & ROOTNEX_USES_COPYBUF) {
 		(*windowp)->wd_dosync = B_TRUE;
@@ -3296,7 +3379,7 @@
 		trim_sz = (*windowp)->wd_size - dma->dp_maxxfer;
 		(*windowp)->wd_trim.tr_trim_last = B_TRUE;
 		(*windowp)->wd_trim.tr_last_cookie = cookie;
-		(*windowp)->wd_trim.tr_last_paddr = cookie->_dmu._dmac_ll;
+		(*windowp)->wd_trim.tr_last_paddr = cookie->dmac_laddress;
 		(*windowp)->wd_trim.tr_last_size = cookie->dmac_size - trim_sz;
 		(*windowp)->wd_size -= trim_sz;
 		ASSERT((*windowp)->wd_size == dma->dp_maxxfer);
@@ -3310,7 +3393,7 @@
 		rootnex_init_win(hp, dma, *windowp, cookie, new_offset);
 		(*windowp)->wd_cookie_cnt++;
 		(*windowp)->wd_trim.tr_trim_first = B_TRUE;
-		(*windowp)->wd_trim.tr_first_paddr = cookie->_dmu._dmac_ll +
+		(*windowp)->wd_trim.tr_first_paddr = cookie->dmac_laddress +
 		    coffset;
 		(*windowp)->wd_trim.tr_first_size = trim_sz;
 	}
@@ -3332,6 +3415,7 @@
 	rootnex_sglinfo_t *sinfo;
 	off_t new_offset;
 	size_t trim_sz;
+	paddr_t paddr;
 	off_t coffset;
 	uint_t pidx;
 	off_t poff;
@@ -3422,7 +3506,7 @@
 	cookie--;
 	(*windowp)->wd_trim.tr_trim_last = B_TRUE;
 	(*windowp)->wd_trim.tr_last_cookie = cookie;
-	(*windowp)->wd_trim.tr_last_paddr = cookie->_dmu._dmac_ll;
+	(*windowp)->wd_trim.tr_last_paddr = cookie->dmac_laddress;
 	ASSERT(cookie->dmac_size > trim_sz);
 	(*windowp)->wd_trim.tr_last_size = cookie->dmac_size - trim_sz;
 	(*windowp)->wd_size -= trim_sz;
@@ -3473,7 +3557,7 @@
 	rootnex_init_win(hp, dma, *windowp, cookie, new_offset);
 	(*windowp)->wd_cookie_cnt++;
 	(*windowp)->wd_trim.tr_trim_first = B_TRUE;
-	(*windowp)->wd_trim.tr_first_paddr = cookie->_dmu._dmac_ll + coffset;
+	(*windowp)->wd_trim.tr_first_paddr = cookie->dmac_laddress + coffset;
 	(*windowp)->wd_trim.tr_first_size = trim_sz;
 
 	/*
@@ -3491,8 +3575,20 @@
 		(*windowp)->wd_trim.tr_first_pidx = pidx;
 		(*windowp)->wd_trim.tr_first_cbaddr = dma->dp_cbaddr;
 		poff = (*windowp)->wd_trim.tr_first_paddr & MMU_PAGEOFFSET;
-		(*windowp)->wd_trim.tr_first_paddr = ptob64(hat_getpfnum(
-		    kas.a_hat, dma->dp_cbaddr)) + poff;
+
+		paddr = pfn_to_pa(hat_getpfnum(kas.a_hat, dma->dp_cbaddr)) +
+		    poff;
+#ifdef __xpv
+		/*
+		 * If we're dom0, we're using a real device so we need to load
+		 * the cookies with MAs instead of PAs.
+		 */
+		(*windowp)->wd_trim.tr_first_paddr =
+		    ROOTNEX_PADDR_TO_RBASE(xen_info, paddr);
+#else
+		(*windowp)->wd_trim.tr_first_paddr = paddr;
+#endif
+
 #if !defined(__amd64)
 		(*windowp)->wd_trim.tr_first_kaddr = dma->dp_kva;
 #endif
@@ -3522,9 +3618,20 @@
 		 */
 		cookie++;
 		dma->dp_pgmap[pidx + 1].pm_cbaddr += MMU_PAGESIZE;
-		poff = cookie->_dmu._dmac_ll & MMU_PAGEOFFSET;
-		cookie->_dmu._dmac_ll = ptob64(hat_getpfnum(kas.a_hat,
+		poff = cookie->dmac_laddress & MMU_PAGEOFFSET;
+
+		paddr = pfn_to_pa(hat_getpfnum(kas.a_hat,
 		    dma->dp_pgmap[pidx + 1].pm_cbaddr)) + poff;
+#ifdef __xpv
+		/*
+		 * If we're dom0, we're using a real device so we need to load
+		 * the cookies with MAs instead of PAs.
+		 */
+		cookie->dmac_laddress = ROOTNEX_PADDR_TO_RBASE(xen_info, paddr);
+#else
+		cookie->dmac_laddress = paddr;
+#endif
+
 #if !defined(__amd64)
 		ASSERT(dma->dp_pgmap[pidx + 1].pm_mapped == B_FALSE);
 		dma->dp_pgmap[pidx + 1].pm_kaddr += MMU_PAGESIZE;
@@ -3588,7 +3695,7 @@
 		(*windowp)->wd_cookie_cnt++;
 		(*windowp)->wd_trim.tr_trim_last = B_TRUE;
 		(*windowp)->wd_trim.tr_last_cookie = cookie;
-		(*windowp)->wd_trim.tr_last_paddr = cookie->_dmu._dmac_ll;
+		(*windowp)->wd_trim.tr_last_paddr = cookie->dmac_laddress;
 		(*windowp)->wd_trim.tr_last_size = cookie->dmac_size - trim_sz;
 		(*windowp)->wd_size = dma->dp_maxxfer;
 
@@ -3613,7 +3720,7 @@
 	(*windowp)->wd_size = trim_sz;
 	if (trim_sz < dmac_size) {
 		(*windowp)->wd_trim.tr_trim_first = B_TRUE;
-		(*windowp)->wd_trim.tr_first_paddr = cookie->_dmu._dmac_ll +
+		(*windowp)->wd_trim.tr_first_paddr = cookie->dmac_laddress +
 		    coffset;
 		(*windowp)->wd_trim.tr_first_size = trim_sz;
 	}
@@ -3924,7 +4031,7 @@
 	/* if needed, adjust the first and/or last cookies for trim */
 	trim = &window->wd_trim;
 	if (trim->tr_trim_first) {
-		window->wd_first_cookie->_dmu._dmac_ll = trim->tr_first_paddr;
+		window->wd_first_cookie->dmac_laddress = trim->tr_first_paddr;
 		window->wd_first_cookie->dmac_size = trim->tr_first_size;
 #if !defined(__amd64)
 		window->wd_first_cookie->dmac_type =
@@ -3941,7 +4048,7 @@
 		}
 	}
 	if (trim->tr_trim_last) {
-		trim->tr_last_cookie->_dmu._dmac_ll = trim->tr_last_paddr;
+		trim->tr_last_cookie->dmac_laddress = trim->tr_last_paddr;
 		trim->tr_last_cookie->dmac_size = trim->tr_last_size;
 		if (trim->tr_last_copybuf_win) {
 			dma->dp_pgmap[trim->tr_last_pidx].pm_cbaddr =
--- a/usr/src/uts/i86pc/io/xsvc/xsvc.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/io/xsvc/xsvc.c	Tue Sep 18 15:46:43 2007 -0700
@@ -42,6 +42,9 @@
 #include <sys/sysmacros.h>
 #include <sys/ddidevmap.h>
 #include <sys/avl.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 #include <sys/xsvc.h>
 
@@ -828,9 +831,22 @@
 	}
 #endif
 
-	pfn = btop(off);
+#ifdef __xpv
+	/*
+	 * we won't allow guest OSes to devmap mfn/pfns. Maybe we'll relax
+	 * this some later when there is a good reason.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		return (-1);
+	}
 
+	/* we will always treat this as a foreign MFN */
+	pfn = xen_assign_pfn(btop(off));
+#else
+	pfn = btop(off);
+#endif
 	/* always work with whole pages */
+
 	off_align = P2ALIGN(off, PAGESIZE);
 	psize = P2ROUNDUP(off + len, PAGESIZE) - off_align;
 
@@ -866,7 +882,10 @@
 		}
 		*maplen = psize;
 
-	/* Is this is not memory, go through devmem_setup */
+	/*
+	 * If this is not memory (or a foreign MFN in i86xpv), go through
+	 * devmem_setup.
+	 */
 	} else {
 		if ((err = devmap_devmem_setup(dhp, state->xs_dip, NULL, 0,
 		    off_align, psize, PROT_ALL, 0, &xsvc_device_attr)) < 0) {
--- a/usr/src/uts/i86pc/ml/fast_trap_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/fast_trap_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -46,6 +45,8 @@
 #include <sys/traptrace.h>
 #include <sys/clock.h>
 #include <sys/panic.h>
+#include <sys/privregs.h>
+
 #include "assym.h"
 
 #endif	/* __lint */
@@ -104,7 +105,7 @@
 	movq	%rax, %rdx
 	shrq	$32, %rdx			/* high 32-bit in %edx */
 	FAST_INTR_POP
-	iretq
+	FAST_INTR_RETURN
 	SET_SIZE(get_hrtime)
 
 #elif defined(__i386)
@@ -114,7 +115,7 @@
 	FAST_INTR_PUSH
 	call	*gethrtimef
 	FAST_INTR_POP
-	iret
+	FAST_INTR_RETURN
 	SET_SIZE(get_hrtime)
 
 #endif	/* __i386 */
@@ -131,7 +132,7 @@
 	movl	CLONGSIZE(%rsp), %edx
 	addq	$TIMESPEC_SIZE, %rsp
 	FAST_INTR_POP
-	iretq
+	FAST_INTR_RETURN
 	SET_SIZE(get_hrestime)
 
 #elif defined(__i386)
@@ -146,7 +147,7 @@
 	movl	_CONST(4 + CLONGSIZE)(%esp), %edx
 	addl	$_CONST(4 + TIMESPEC_SIZE), %esp
 	FAST_INTR_POP
-	iret
+	FAST_INTR_RETURN
 	SET_SIZE(get_hrestime)
 
 #endif	/* __i386 */
@@ -168,8 +169,7 @@
 	movq	%rax, %rdx
 	shrq	$32, %rdx			/* high 32-bit in %rdx */
 	FAST_INTR_POP
-	iretq
-
+	FAST_INTR_RETURN
 	SET_SIZE(gethrvtime)
 
 #elif defined(__i386)
@@ -193,7 +193,7 @@
 	movl	4(%ecx), %edx
 	addl	$0x8, %esp
 	FAST_INTR_POP
-	iret
+	FAST_INTR_RETURN
 	SET_SIZE(gethrvtime)
 
 #endif	/* __i386 */
@@ -207,7 +207,7 @@
 	movl	LPL_LGRPID(%rcx), %edx
 	movl	%gs:CPU_ID, %eax
 	FAST_INTR_POP
-	iretq
+	FAST_INTR_RETURN
 	SET_SIZE(getlgrp)
 
 #elif defined(__i386)
@@ -219,7 +219,7 @@
 	movl	LPL_LGRPID(%ecx), %edx
 	movl	%gs:CPU_ID, %eax
 	FAST_INTR_POP
-	iret
+	FAST_INTR_RETURN
 	SET_SIZE(getlgrp)
 
 #endif	/* __i386 */
--- a/usr/src/uts/i86pc/ml/genassym.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/genassym.c	Tue Sep 18 15:46:43 2007 -0700
@@ -54,6 +54,10 @@
 #include <sys/sunddi.h>
 #include <sys/mach_mmu.h>
 
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+
 #undef	exit		/* unhide exit, see comment above */
 extern void exit(int);
 
@@ -177,5 +181,10 @@
 
 	printf("#define\tKPREEMPT_SYNC 0x%x\n", KPREEMPT_SYNC);
 
+#if defined(__xpv)
+	printf("#define\tSHUTDOWN_reboot 0x%x\n", SHUTDOWN_reboot);
+	printf("#define\tSCHEDOP_block 0x%x\n", SCHEDOP_block);
+	printf("#define\tVGCF_IN_SYSCALL 0x%x\n", VGCF_IN_KERNEL);
+#endif
 	return (0);
 }
--- a/usr/src/uts/i86pc/ml/ia32.il	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/ia32.il	Tue Sep 18 15:46:43 2007 -0700
@@ -153,17 +153,6 @@
 	.end
 
 /*
- * Read Time Stamp Counter
- * uint64_t tsc_read();
- *
- * usage:
- * uint64_t cycles = tsc_read();
- */
-	.inline	tsc_read, 0
-	rdtsc				/ %edx:%eax = RDTSC
-	.end
-
-/*
  * Call the halt instruction. This will put the CPU to sleep until
  * it is again awoken via an interrupt.
  * This function should be called with interrupts already disabled
--- a/usr/src/uts/i86pc/ml/interrupt.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/interrupt.s	Tue Sep 18 15:46:43 2007 -0700
@@ -57,37 +57,6 @@
 
 #endif	/* lint */
 
-#if defined(__i386)
-
-#if defined(__lint)
-
-void
-patch_tsc(void)
-{}
-
-#else	/* __lint */
-
-/*
- * To cope with processors that do not implement the rdtsc instruction,
- * we patch the kernel to use rdtsc if that feature is detected on the CPU.
- * On an unpatched kernel, all locations requiring rdtsc are nop's.
- *
- * This function patches the nop's to rdtsc.
- */
-	ENTRY_NP(patch_tsc)
-	movw	_rdtsc_insn, %cx
-	movw	%cx, _tsc_patch15
-	movw	%cx, _tsc_patch16
-	ret
-_rdtsc_insn:
-	rdtsc
-	SET_SIZE(patch_tsc)
-
-#endif	/* __lint */
-
-#endif	/* __i386 */
-
-
 #if defined(__lint)
 
 void
@@ -134,7 +103,8 @@
 
 	movq	%rsp, %rdi		/* pass struct regs pointer */
 	call	do_interrupt
-	jmp	_sys_rtt
+
+	jmp	_sys_rtt_ints_disabled
 	/*NOTREACHED*/
 
 	SET_SIZE(cmnint)
@@ -164,7 +134,9 @@
 	call	do_interrupt		/* interrupt service routine */
 	addl	$8, %esp		/* pop args off of stack */
 
-	jmp	_sys_rtt
+	jmp	_sys_rtt_ints_disabled
+	/*NOTREACHED*/
+
 	SET_SIZE(cmnint)
 	SET_SIZE(_interrupt)
 
@@ -213,6 +185,11 @@
 	pushq	$KDS_SEL	/* %ss */
 	pushq	%r11		/* %rsp */
 	pushf			/* rflags */
+#if defined(__xpv)
+	popq	%r11
+	EVENT_MASK_TO_IE(%rdi, %r11)
+	pushq	%r11
+#endif
 	pushq	$KCS_SEL	/* %cs */
 	leaq	fakesoftint_return(%rip), %r11
 	pushq	%r11		/* %rip */
@@ -228,6 +205,11 @@
 
 	ENTRY_NP(fakesoftint)
 	pushfl
+#if defined(__xpv)
+	popl	%eax
+	EVENT_MASK_TO_IE(%edx, %eax)
+	pushl	%eax
+#endif
 	pushl	%cs
 	pushl	$fakesoftint_return
 	pushl	$0
--- a/usr/src/uts/i86pc/ml/locore.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/locore.s	Tue Sep 18 15:46:43 2007 -0700
@@ -65,6 +65,10 @@
 #include <sys/pit.h>
 #include <sys/panic.h>
 
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+
 #include "assym.h"
 
 /*
@@ -216,6 +220,8 @@
 	/*
 	 * kobj_init() vectors us back to here with (note) a slightly different
 	 * set of arguments than _start is given (see lint prototypes above).
+	 *
+	 * XXX	Make this less vile, please.
 	 */
 	ENTRY_NP(_locore_start)
 
@@ -261,6 +267,7 @@
 	popq	%r11
 	movq	%r11, REGOFF_RFL(%rsp)
 
+#if !defined(__xpv)
 	/*
 	 * Enable write protect and alignment check faults.
 	 */
@@ -268,6 +275,7 @@
 	orq	$_CONST(CR0_WP|CR0_AM), %rax
 	andq	$_BITNOT(CR0_WT|CR0_CE), %rax
 	movq	%rax, %cr0
+#endif	/* __xpv */
 
 	/*
 	 * (We just assert this works by virtue of being here) 
@@ -317,8 +325,9 @@
 	/*
 	 * kobj_init() vectors us back to here with (note) a slightly different
 	 * set of arguments than _start is given (see lint prototypes above).
+	 *
+	 * XXX	Make this less vile, please.
 	 */
-
 	ENTRY_NP(_locore_start)
 
 	/*
@@ -349,6 +358,7 @@
 	pushal	
 	pushfl
 
+#if !defined(__xpv)
 	/*
 	 * Override bios settings and enable write protect and
 	 * alignment check faults.
@@ -1107,6 +1117,8 @@
 	popfl					/* Restore original FLAGS */
 	popal					/* Restore all registers */
 
+#endif	/* !__xpv */
+
 	/*
 	 *  mlsetup(%esp) gets called.
 	 */
@@ -1156,6 +1168,7 @@
 	ENTRY_NP2(cmntrap, _cmntrap)
 
 	INTR_PUSH
+
 	ALTENTRY(cmntrap_pushed)
 
 	movq	%rsp, %rbp
@@ -1330,6 +1343,7 @@
 	movl	%ecx, REGOFF_EIP(%ebp)
 	INTR_POP_KERNEL
 	IRET
+	/*NOTREACHED*/
 2:
 	pushl	$dtrace_badflags
 	call	panic
@@ -1366,9 +1380,11 @@
 cmninttrap()
 {}
 
+#if !defined(__xpv)
 void
 bop_trap_handler(void)
 {}
+#endif
 
 #else	/* __lint */
 
@@ -1394,6 +1410,7 @@
 	jmp	_sys_rtt
 	SET_SIZE(cmninttrap)
 
+#if !defined(__xpv)
 	/*
 	 * Handle traps early in boot. Just revectors into C quickly as
 	 * these are always fatal errors.
@@ -1402,6 +1419,7 @@
 	movq	%rsp, %rdi
 	call	bop_trap
 	SET_SIZE(bop_trap_handler)
+#endif
 
 #elif defined(__i386)
 
@@ -1426,6 +1444,7 @@
 	jmp	_sys_rtt
 	SET_SIZE(cmninttrap)
 
+#if !defined(__xpv)
 	/*
 	 * Handle traps early in boot. Just revectors into C quickly as
 	 * these are always fatal errors.
@@ -1435,6 +1454,7 @@
 	pushl	%eax
 	call	bop_trap
 	SET_SIZE(bop_trap_handler)
+#endif
 
 #endif	/* __i386 */
 
@@ -1464,7 +1484,12 @@
 	movq	%rsp, %rbp
 
 	movl	%gs:CPU_ID, %edx
+#if defined(__xpv)
+	movq	%gs:CPU_VCPU_INFO, %rsi
+	movq	VCPU_INFO_ARCH_CR2(%rsi), %rsi
+#else
 	movq	%cr2, %rsi
+#endif
 	movq	%rsp, %rdi
 
 	ENABLE_INTR_FLAGS
@@ -1487,7 +1512,12 @@
 	movl	%esp, %ebp
 
 	pushl	%gs:CPU_ID
+#if defined(__xpv)
+	movl	%gs:CPU_VCPU_INFO, %eax
+	movl	VCPU_INFO_ARCH_CR2(%eax), %eax
+#else
 	movl	%cr2, %eax
+#endif
 	pushl	%eax
 	pushl	%ebp
 
@@ -1597,6 +1627,7 @@
 	 */
 	ALTENTRY(_sys_rtt)
 	CLI(%rax)			/* disable interrupts */
+	ALTENTRY(_sys_rtt_ints_disabled)
 	movq	%rsp, %rdi		/* pass rp to sys_rtt_common */
 	call	sys_rtt_common		/* do common sys_rtt tasks */
 	testq	%rax, %rax		/* returning to userland? */
@@ -1614,15 +1645,26 @@
 	 */
 	ALTENTRY(sys_rtt_syscall32)
 	USER32_POP
+
+	/*
+	 * There can be no instructions between this label and IRET or
+	 * we could end up breaking linux brand support. See label usage
+	 * in lx_brand_int80_callback for an example.
+	 */
+	ALTENTRY(nopop_sys_rtt_syscall32)
 	IRET
 	/*NOTREACHED*/
+	SET_SIZE(nopop_sys_rtt_syscall32)
+
 	ALTENTRY(sys_rtt_syscall)
 	/*
 	 * Return to 64-bit userland
 	 */
 	USER_POP
+	ALTENTRY(nopop_sys_rtt_syscall)
 	IRET
 	/*NOTREACHED*/
+	SET_SIZE(nopop_sys_rtt_syscall)
 
 	/*
 	 * Return to supervisor
@@ -1636,10 +1678,14 @@
 	 */
 	INTR_POP
 	IRET
+	.globl	_sys_rtt_end
+_sys_rtt_end:
 	/*NOTREACHED*/
 	SET_SIZE(sr_sup)
+	SET_SIZE(_sys_rtt_end)
 	SET_SIZE(lwp_rtt)
 	SET_SIZE(lwp_rtt_initial)
+	SET_SIZE(_sys_rtt_ints_disabled)
 	SET_SIZE(_sys_rtt)
 	SET_SIZE(sys_rtt_syscall)
 	SET_SIZE(sys_rtt_syscall32)
@@ -1688,6 +1734,7 @@
 	 */
 	ALTENTRY(_sys_rtt)
 	CLI(%eax)			/* disable interrupts */
+	ALTENTRY(_sys_rtt_ints_disabled)
 	pushl	%esp			/* pass rp to sys_rtt_common */
 	call	sys_rtt_common
 	addl	$4, %esp		/* pop arg */
@@ -1699,7 +1746,18 @@
 	 */
 	ALTENTRY(sys_rtt_syscall)
 	INTR_POP_USER
+
+	/*
+	 * There can be no instructions between this label and IRET or
+	 * we could end up breaking linux brand support. See label usage
+	 * in lx_brand_int80_callback for an example.
+	 */
+	ALTENTRY(nopop_sys_rtt_syscall)
 	IRET
+	/*NOTREACHED*/
+	SET_SIZE(nopop_sys_rtt_syscall)
+
+	ALTENTRY(_sys_rtt_end)
 
 	/*
 	 * Return to supervisor
@@ -1711,10 +1769,13 @@
 	 */
 	INTR_POP_KERNEL
 	IRET
+	/*NOTREACHED*/
 
 	SET_SIZE(sr_sup)
+	SET_SIZE(_sys_rtt_end)
 	SET_SIZE(lwp_rtt)
 	SET_SIZE(lwp_rtt_initial)
+	SET_SIZE(_sys_rtt_ints_disabled)
 	SET_SIZE(_sys_rtt)
 	SET_SIZE(sys_rtt_syscall)
 
--- a/usr/src/uts/i86pc/ml/mach_offsets.in	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/mach_offsets.in	Tue Sep 18 15:46:43 2007 -0700
@@ -5,9 +5,8 @@
 \ CDDL HEADER START
 \
 \ The contents of this file are subject to the terms of the
-\ Common Development and Distribution License, Version 1.0 only
-\ (the "License").  You may not use this file except in compliance
-\ with the License.
+\ Common Development and Distribution License (the "License").
+\ You may not use this file except in compliance with the License.
 \
 \ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 \ or http://www.opensolaris.org/os/licensing.
@@ -35,6 +34,14 @@
 
 #define	SIZES	1
 
+#if defined(__xpv)
+\
+\ XXPV	This seems to need to be first to avoid a namespace collision
+\	with another header file in the list below.
+\
+#include <sys/hypervisor.h>
+#endif
+
 #include <sys/types.h>
 #include <sys/bootsvcs.h>
 #include <sys/systm.h>
@@ -132,3 +139,12 @@
 	pcb_gsdesc
 	pcb_fpu.fpu_regs	PCB_FPU_REGS
 	pcb_fpu.fpu_flags	PCB_FPU_FLAGS
+
+#if defined(__xpv)
+
+vcpu_info
+	evtchn_upcall_pending	VCPU_INFO_EVTCHN_UPCALL_PENDING
+	evtchn_upcall_mask	VCPU_INFO_EVTCHN_UPCALL_MASK
+	arch.cr2		VCPU_INFO_ARCH_CR2
+
+#endif	/* __xpv */
--- a/usr/src/uts/i86pc/ml/offsets.in	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/offsets.in	Tue Sep 18 15:46:43 2007 -0700
@@ -221,6 +221,9 @@
 	cpu_m.mcpu_softinfo	CPU_SOFTINFO
 	cpu_m.mcpu_pri		CPU_PRI
 	cpu_m.mcpu_pri_data	CPU_PRI_DATA
+#if defined(__xpv)
+	cpu_m.mcpu_vcpu_info	CPU_VCPU_INFO
+#endif
 
 machcpu
 	mcpu_pri_data	MCPU_PRI_DATA
--- a/usr/src/uts/i86pc/ml/syscall_asm_amd64.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/ml/syscall_asm_amd64.s	Tue Sep 18 15:46:43 2007 -0700
@@ -48,6 +48,11 @@
 #include <sys/clock.h>
 #include <sys/model.h>
 #include <sys/panic.h>
+
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+
 #include "assym.h"
 
 #endif	/* __lint */
@@ -138,7 +143,7 @@
  *
  */
 #define	BRAND_CALLBACK(callback_id)					    \
-	movq	%rsp, %gs:CPU_RTMP_RSP	/* save the stack pointer	*/ ;\
+	movq	%rsp, %gs:CPU_RTMP_RSP  /* save the stack pointer       */ ;\
 	movq	%r15, %gs:CPU_RTMP_R15	/* save %r15			*/ ;\
 	movq	%gs:CPU_THREAD, %r15	/* load the thread pointer	*/ ;\
 	movq	T_STACK(%r15), %rsp	/* switch to the kernel stack	*/ ;\
@@ -160,9 +165,9 @@
 	movq	%gs:CPU_RTMP_RSP, %r15	/* grab the user stack pointer	*/ ;\
 	pushq	(%r15)			/* push the return address	*/ ;\
 	movq	%gs:CPU_RTMP_R15, %r15	/* restore %r15			*/ ;\
-	swapgs								   ;\
+	SWAPGS				/* user gsbase                  */ ;\
 	call	*32(%rsp)		/* call callback		*/ ;\
-	swapgs								   ;\
+	SWAPGS				/* kernel gsbase                */ ;\
 1:	movq	%gs:CPU_RTMP_R15, %r15	/* restore %r15			*/ ;\
 	movq	%gs:CPU_RTMP_RSP, %rsp	/* restore the stack pointer	*/
 
@@ -240,13 +245,13 @@
 #if !defined(__lint)
 
 __lwptoregs_msg:
-	.string	"syscall_asm_amd64.s:%d lwptoregs(%p) [%p] != rp [%p]"
+	.string	"%M%:%d lwptoregs(%p) [%p] != rp [%p]"
 
 __codesel_msg:
-	.string	"syscall_asm_amd64.s:%d rp->r_cs [%ld] != %ld"
+	.string	"%M%:%d rp->r_cs [%ld] != %ld"
 
 __no_rupdate_msg:
-	.string	"syscall_asm_amd64.s:%d lwp %p, pcb_rupdate != 0"
+	.string	"%M%:%d lwp %p, pcb_rupdate != 0"
 
 #endif	/* !__lint */
 
@@ -354,14 +359,51 @@
 #else	/* __lint */
 
 	ENTRY_NP2(brand_sys_syscall,_allsyscalls)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
+	XPV_TRAP_POP
 	BRAND_CALLBACK(BRAND_CB_SYSCALL)
-	SWAPGS
+	SWAPGS				/* user gsbase */
+
+#if defined(__xpv)
+	/*
+	 * Note that swapgs is handled for us by the hypervisor. Here
+	 * it is empty.
+	 */
+	jmp	nopop_sys_syscall
+#endif
 	
 	ALTENTRY(sys_syscall)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
+#if defined(__xpv)
+	/*
+	 * Even though we got here by a syscall instruction from user land
+	 * the hypervisor constructs our stack the same way as is done
+	 * for interrupt gates. The only exception is that it pushes kernel
+	 * cs and ss instead of user cs and ss for some reason.  This is all
+	 * different from running native on the metal.
+	 *
+	 * Stack on entry:
+	 *      (0x0)rsp	rcx	(user rip)
+	 *      (0x8)rsp	r11	(user rflags)
+	 *      (0x10)rsp	user rip
+	 *      (0x18)rsp	kernel cs
+	 *      (0x20)rsp	user rflags 
+	 *      (0x28)rsp	user rsp
+	 *      (0x30)rsp	kernel ss
+	 */
+
+	XPV_TRAP_POP
+nopop_sys_syscall:
+	ASSERT_UPCALL_MASK_IS_SET
+
+	movq	%r15, %gs:CPU_RTMP_R15
+	movq	0x18(%rsp), %r15		/* save user stack */
+	movq	%r15, %gs:CPU_RTMP_RSP
+#else
+	movq	%r15, %gs:CPU_RTMP_R15
 	movq	%rsp, %gs:CPU_RTMP_RSP
-	movq	%r15, %gs:CPU_RTMP_R15
+#endif	/* __xpv */
+
 	movq	%gs:CPU_THREAD, %r15
 	movq	T_STACK(%r15), %rsp
 
@@ -522,9 +564,24 @@
 
 	movq	REGOFF_RIP(%rsp), %rcx	
 	movl	REGOFF_RFL(%rsp), %r11d
+
+#if defined(__xpv)
+	addq	$REGOFF_RIP, %rsp
+#else
 	movq	REGOFF_RSP(%rsp), %rsp
-	SWAPGS
-	sysretq
+#endif
+
+        /*
+         * There can be no instructions between the ALTENTRY below and
+	 * SYSRET or we could end up breaking brand support. See label usage
+         * in sn1_brand_syscall_callback for an example.
+         */
+	ASSERT_UPCALL_MASK_IS_SET
+	SWAPGS				/* user gsbase */
+        ALTENTRY(nopop_sys_syscall_sysretq)
+	SYSRETQ
+        /*NOTREACHED*/
+        SET_SIZE(nopop_sys_syscall_sysretq)
 
 _syscall_pre:
 	call	pre_syscall
@@ -571,12 +628,23 @@
 #else	/* __lint */
 
 	ENTRY_NP(brand_sys_syscall32)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
+	XPV_TRAP_POP
 	BRAND_CALLBACK(BRAND_CB_SYSCALL32)
-	SWAPGS
+	SWAPGS				/* user gsbase */
+
+#if defined(__xpv)
+	jmp	nopop_sys_syscall32
+#endif
 
 	ALTENTRY(sys_syscall32)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
+
+#if defined(__xpv)
+	XPV_TRAP_POP
+nopop_sys_syscall32:
+#endif
+
 	movl	%esp, %r10d
 	movq	%gs:CPU_THREAD, %r15
 	movq	T_STACK(%r15), %rsp
@@ -732,8 +800,12 @@
 	movl	REGOFF_RIP(%rsp), %ecx		/* %ecx -> %eip */
 	movl	REGOFF_RSP(%rsp), %esp
 
-	swapgs
-	sysretl
+	ASSERT_UPCALL_MASK_IS_SET
+	SWAPGS				/* user gsbase */
+        ALTENTRY(nopop_sys_syscall32_sysretl)
+	SYSRETL
+        SET_SIZE(nopop_sys_syscall32_sysretl)
+	/*NOTREACHED*/
 
 _full_syscall_postsys32:
 	STI
@@ -803,8 +875,7 @@
 #else	/* __lint */
 
 	ENTRY_NP(brand_sys_sysenter)
-	SWAPGS
-
+	SWAPGS				/* kernel gsbase */
 	ALTENTRY(_brand_sys_sysenter_post_swapgs)
 	BRAND_CALLBACK(BRAND_CB_SYSENTER)
 	/*
@@ -814,7 +885,7 @@
 	jmp	_sys_sysenter_post_swapgs
 
 	ALTENTRY(sys_sysenter)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
 
 	ALTENTRY(_sys_sysenter_post_swapgs)
 	movq	%gs:CPU_THREAD, %r15
@@ -1014,20 +1085,33 @@
 #else	/* __lint */
 
 	ENTRY_NP(brand_sys_int80)
-	swapgs
+	SWAPGS				/* kernel gsbase */
+	XPV_TRAP_POP
 	BRAND_CALLBACK(BRAND_CB_INT80)
-	swapgs
+	SWAPGS				/* user gsbase */
+#if defined(__xpv)
+	jmp	nopop_int80
+#endif
 
 	ENTRY_NP(sys_int80)
 	/*
 	 * We hit an int80, but this process isn't of a brand with an int80
 	 * handler.  Bad process!  Make it look as if the INT failed.
-	 * Modify %eip to point before the INT, push the expected error
-	 * code and fake a GP fault.
-	 * 
+	 * Modify %rip to point before the INT, push the expected error
+	 * code and fake a GP fault. Note on 64-bit hypervisor we need
+	 * to undo the XPV_TRAP_POP and push rcx and r11 back on the stack
+	 * because gptrap will pop them again with its own XPV_TRAP_POP.
 	 */
+#if defined(__xpv)
+	XPV_TRAP_POP
+nopop_int80:
+#endif
 	subq	$2, (%rsp)	/* int insn 2-bytes */
 	pushq	$_CONST(_MUL(T_INT80, GATE_DESC_SIZE) + 2)
+#if defined(__xpv)
+	push	%r11
+	push	%rcx
+#endif
 	jmp	gptrap			/ GP fault
 	SET_SIZE(sys_int80)
 	SET_SIZE(brand_sys_int80)
@@ -1049,12 +1133,23 @@
 #else	/* __lint */
 
 	ENTRY_NP(brand_sys_syscall_int)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
+	XPV_TRAP_POP
 	BRAND_CALLBACK(BRAND_CB_INT91)
-	swapgs
+	SWAPGS				/* user gsbase */
+
+#if defined(__xpv)
+	jmp	nopop_syscall_int
+#endif
 
 	ALTENTRY(sys_syscall_int)
-	swapgs
+	SWAPGS				/* kernel gsbase */
+
+#if defined(__xpv)
+	XPV_TRAP_POP
+nopop_syscall_int:
+#endif
+
 	movq	%gs:CPU_THREAD, %r15
 	movq	T_STACK(%r15), %rsp
 	movl	%eax, %eax
@@ -1095,7 +1190,7 @@
 #else	/* __lint */
 
 	ENTRY_NP(sys_lcall32)
-	SWAPGS
+	SWAPGS				/* kernel gsbase */
 	pushq	$0
 	pushq	%rbp
 	movq	%rsp, %rbp
--- a/usr/src/uts/i86pc/os/biosdisk.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/biosdisk.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -40,6 +39,9 @@
 #include <sys/sunndi.h>
 #include <sys/biosdisk.h>
 #include <sys/psw.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 
 
 /* hard code realmode memory address for now */
@@ -79,6 +81,11 @@
 	uchar_t	name[20];
 	dev_info_t	*devi;
 
+#if defined(__xpv)
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		return;
+#endif
+
 	if (dobiosdev == 0)
 		return;
 
@@ -200,7 +207,7 @@
 
 	if (((rp.eflags & PS_C) != 0) || rp.eax.byte.ah != 0) {
 		dprintf(("drive not present drivenum %x eflag %x ah %x\n",
-		drivenum, rp.eflags, rp.eax.byte.ah));
+		    drivenum, rp.eflags, rp.eax.byte.ah));
 		return (0);
 	}
 
--- a/usr/src/uts/i86pc/os/cpuid.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/cpuid.c	Tue Sep 18 15:46:43 2007 -0700
@@ -417,8 +417,68 @@
  * underlying platform restrictions mean the CPU can be marked
  * as less capable than its cpuid instruction would imply.
  */
-
+#if defined(__xpv)
+static void
+platform_cpuid_mangle(uint_t vendor, uint32_t eax, struct cpuid_regs *cp)
+{
+	switch (eax) {
+	case 1:
+		cp->cp_edx &=
+		    ~(CPUID_INTC_EDX_PSE |
+		    CPUID_INTC_EDX_VME | CPUID_INTC_EDX_DE |
+		    CPUID_INTC_EDX_MCA |	/* XXPV true on dom0? */
+		    CPUID_INTC_EDX_SEP | CPUID_INTC_EDX_MTRR |
+		    CPUID_INTC_EDX_PGE | CPUID_INTC_EDX_PAT |
+		    CPUID_AMD_EDX_SYSC | CPUID_INTC_EDX_SEP |
+		    CPUID_INTC_EDX_PSE36 | CPUID_INTC_EDX_HTT);
+		break;
+
+	case 0x80000001:
+		cp->cp_edx &=
+		    ~(CPUID_AMD_EDX_PSE |
+		    CPUID_INTC_EDX_VME | CPUID_INTC_EDX_DE |
+		    CPUID_AMD_EDX_MTRR | CPUID_AMD_EDX_PGE |
+		    CPUID_AMD_EDX_PAT | CPUID_AMD_EDX_PSE36 |
+		    CPUID_AMD_EDX_SYSC | CPUID_INTC_EDX_SEP |
+		    CPUID_AMD_EDX_TSCP);
+		cp->cp_ecx &= ~CPUID_AMD_ECX_CMP_LGCY;
+		break;
+	default:
+		break;
+	}
+
+	switch (vendor) {
+	case X86_VENDOR_Intel:
+		switch (eax) {
+		case 4:
+			/*
+			 * Zero out the (ncores-per-chip - 1) field
+			 */
+			cp->cp_eax &= 0x03fffffff;
+			break;
+		default:
+			break;
+		}
+		break;
+	case X86_VENDOR_AMD:
+		switch (eax) {
+		case 0x80000008:
+			/*
+			 * Zero out the (ncores-per-chip - 1) field
+			 */
+			cp->cp_ecx &= 0xffffff00;
+			break;
+		default:
+			break;
+		}
+		break;
+	default:
+		break;
+	}
+}
+#else
 #define	platform_cpuid_mangle(vendor, eax, cp)	/* nothing */
+#endif
 
 /*
  *  Some undocumented ways of patching the results of the cpuid
@@ -473,8 +533,9 @@
 	struct cpuid_info *cpi;
 	struct cpuid_regs *cp;
 	int xcpuid;
+#if !defined(__xpv)
 	extern int idle_cpu_prefer_mwait;
-
+#endif
 
 	/*
 	 * Space statically allocated for cpu0, ensure pointer is set
@@ -663,6 +724,7 @@
 		if (cpi->cpi_maxeax < 5)
 			mask_ecx &= ~CPUID_INTC_ECX_MON;
 
+#if !defined(__xpv)
 		/*
 		 * Do not use MONITOR/MWAIT to halt in the idle loop on any AMD
 		 * processors.  AMD does not intend MWAIT to be used in the cpu
@@ -671,6 +733,7 @@
 		 * Pre-family-10h Opterons do not have the MWAIT instruction.
 		 */
 		idle_cpu_prefer_mwait = 0;
+#endif
 
 		break;
 	case X86_VENDOR_TM:
@@ -741,6 +804,13 @@
 		break;
 	}
 
+#if defined(__xpv)
+	/*
+	 * Do not support MONITOR/MWAIT under a hypervisor
+	 */
+	mask_ecx &= ~CPUID_INTC_ECX_MON;
+#endif	/* __xpv */
+
 	/*
 	 * Now we've figured out the masks that determine
 	 * which bits we choose to believe, apply the masks
@@ -2132,6 +2202,9 @@
  * However, Intel decided to -not- implement the 32-bit variant of the
  * syscall instruction, so we provide a predicate to allow our caller
  * to test that subtlety here.
+ *
+ * XXPV	Currently, 32-bit syscall instructions don't work via the hypervisor,
+ *	even in the case where the hardware would in fact support it.
  */
 /*ARGSUSED*/
 int
@@ -2139,6 +2212,7 @@
 {
 	ASSERT(cpuid_checkpass((cpu == NULL ? CPU : cpu), 1));
 
+#if !defined(__xpv)
 	if (cpu == NULL)
 		cpu = CPU;
 
@@ -2151,6 +2225,7 @@
 		    (CPI_FEATURES_XTD_EDX(cpi) & CPUID_AMD_EDX_SYSC))
 			return (1);
 	}
+#endif
 	return (0);
 }
 
@@ -3458,6 +3533,8 @@
 	return (l2i->l2i_ret);
 }
 
+#if !defined(__xpv)
+
 uint32_t *
 cpuid_mwait_alloc(cpu_t *cpu)
 {
@@ -3514,3 +3591,5 @@
 	cpu->cpu_m.mcpu_cpi->cpi_mwait.buf_actual = NULL;
 	cpu->cpu_m.mcpu_cpi->cpi_mwait.size_actual = 0;
 }
+
+#endif	/* !__xpv */
--- a/usr/src/uts/i86pc/os/cpupm.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/cpupm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -196,9 +196,13 @@
 boolean_t
 cpupm_is_ready()
 {
+#ifndef	__xpv
 	if (!cpupm_enabled)
 		return (B_FALSE);
 	return (cpupm_ready);
+#else
+	return (B_FALSE);
+#endif
 }
 
 /*
@@ -220,6 +224,7 @@
 void
 cpupm_post_startup()
 {
+#ifndef	__xpv
 	/*
 	 * The CPU domain built by the PPM during CPUs attaching
 	 * should be rebuilt with the information retrieved from
@@ -239,4 +244,7 @@
 
 	if (cpupm_init_topspeed != NULL)
 		(*cpupm_init_topspeed)();
+#else
+	cpupm_ready = B_TRUE;
+#endif
 }
--- a/usr/src/uts/i86pc/os/ddi_impl.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/ddi_impl.c	Tue Sep 18 15:46:43 2007 -0700
@@ -61,6 +61,9 @@
 #include <sys/sunndi.h>
 #include <sys/vmem.h>
 #include <sys/pci_impl.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 #include <sys/mach_intr.h>
 #include <vm/hat_i86.h>
 #include <sys/x86_archext.h>
@@ -199,7 +202,12 @@
 	 * attach the isa nexus to get ACPI resource usage
 	 * isa is "kind of" a pseudo node
 	 */
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		(void) i_ddi_attach_pseudo_node("isa");
+#else
 	(void) i_ddi_attach_pseudo_node("isa");
+#endif
 
 	/* reprogram devices not set up by firmware (BIOS) */
 	impl_bus_reprobe();
@@ -637,8 +645,7 @@
 		struct intrspec *new;
 		struct prop_ispec *l;
 
-		n = pdptr->par_nintr =
-			intr_len / sizeof (struct prop_ispec);
+		n = pdptr->par_nintr = intr_len / sizeof (struct prop_ispec);
 		l = (struct prop_ispec *)intr_prop;
 		pdptr->par_intr =
 		    new = kmem_zalloc(n * sizeof (struct intrspec), KM_SLEEP);
@@ -968,6 +975,15 @@
 	    PG_EXCL | ((vmflag & VM_NOSLEEP) ? 0 : PG_WAIT), &kas, addr, arg));
 }
 
+#ifdef __xpv
+static void
+segkmem_free_io(vmem_t *vmp, void * ptr, size_t size)
+{
+	extern void page_destroy_io(page_t *);
+	segkmem_xfree(vmp, ptr, size, page_destroy_io);
+}
+#endif
+
 static void *
 segkmem_alloc_io_4P(vmem_t *vmp, size_t size, int vmflag)
 {
@@ -1072,7 +1088,13 @@
 
 	kmem_io[a].kmem_io_arena = vmem_create(io_arena_params[a].io_name,
 	    NULL, 0, PAGESIZE, io_arena_params[a].io_alloc,
-	    segkmem_free, heap_arena, 0, VM_SLEEP);
+#ifdef __xpv
+	    segkmem_free_io,
+#else
+	    segkmem_free,
+#endif
+	    heap_arena, 0, VM_SLEEP);
+
 	for (c = 0; c < KA_NCACHE; c++) {
 		size_t size = KA_ALIGN << c;
 		(void) sprintf(name, "%s_%lu",
@@ -1157,8 +1179,15 @@
 ka_init(void)
 {
 	int a;
+	paddr_t maxphysaddr;
+#if !defined(__xpv)
 	extern pfn_t physmax;
-	uint64_t maxphysaddr = mmu_ptob((uint64_t)physmax + 1) - 1;
+
+	maxphysaddr = mmu_ptob((paddr_t)physmax) + MMU_PAGEOFFSET;
+#else
+	maxphysaddr = mmu_ptob((paddr_t)HYPERVISOR_memory_op(
+	    XENMEM_maximum_ram_page, NULL)) + MMU_PAGEOFFSET;
+#endif
 
 	ASSERT(maxphysaddr <= io_arena_params[0].io_limit);
 
@@ -1282,9 +1311,7 @@
 	if (addr) {
 		ASSERT(!((uintptr_t)addr & (align - 1)));
 
-		if (page_resv(pgcnt,
-			(cansleep) ? KM_SLEEP : KM_NOSLEEP) == 0) {
-
+		if (page_resv(pgcnt, (cansleep) ? KM_SLEEP : KM_NOSLEEP) == 0) {
 			vmem_free(heap_arena, addr, asize);
 			return (NULL);
 		}
@@ -1298,7 +1325,7 @@
 			pflag |= PG_PHYSCONTIG;
 
 		ppl = page_create_io(&kvp, (u_offset_t)(uintptr_t)addr,
-			asize, pflag, &kas, (caddr_t)addr, attr);
+		    asize, pflag, &kas, (caddr_t)addr, attr);
 
 		if (!ppl) {
 			vmem_free(heap_arena, addr, asize);
@@ -1313,8 +1340,8 @@
 			page_io_unlock(pp);
 			page_downgrade(pp);
 			hat_memload(kas.a_hat, (caddr_t)(uintptr_t)pp->p_offset,
-				pp, (PROT_ALL & ~PROT_USER) |
-				HAT_NOSYNC, HAT_LOAD_LOCK);
+			    pp, (PROT_ALL & ~PROT_USER) |
+			    HAT_NOSYNC, HAT_LOAD_LOCK);
 		}
 	}
 	return (addr);
@@ -1331,15 +1358,14 @@
 	hat_unload(kas.a_hat, addr, asize, HAT_UNLOAD_UNLOCK);
 
 	for (a = addr, ea = a + asize; a < ea; a += PAGESIZE) {
-		pp = page_find(&kvp,
-				(u_offset_t)(uintptr_t)a);
+		pp = page_find(&kvp, (u_offset_t)(uintptr_t)a);
 		if (!pp)
 			panic("contig_free: contig pp not found");
 
 		if (!page_tryupgrade(pp)) {
 			page_unlock(pp);
 			pp = page_lookup(&kvp,
-				(u_offset_t)(uintptr_t)a, SE_EXCL);
+			    (u_offset_t)(uintptr_t)a, SE_EXCL);
 			if (pp == NULL)
 				panic("contig_free: page freed");
 		}
@@ -1460,10 +1486,10 @@
 		size_t	*saddr = addr;
 		if (saddr[-4] == 0)
 			vmem_free((vmem_t *)saddr[-3], (void *)saddr[-2],
-				saddr[-1]);
+			    saddr[-1]);
 		else
 			kmem_cache_free((kmem_cache_t *)saddr[-4],
-				(void *)saddr[-2]);
+			    (void *)saddr[-2]);
 	}
 }
 
@@ -1575,8 +1601,8 @@
 	}
 
 	if (attr->dma_attr_minxfer == 0 || attr->dma_attr_align == 0 ||
-		(attr->dma_attr_align & (attr->dma_attr_align - 1)) ||
-		(attr->dma_attr_minxfer & (attr->dma_attr_minxfer - 1))) {
+	    (attr->dma_attr_align & (attr->dma_attr_align - 1)) ||
+	    (attr->dma_attr_minxfer & (attr->dma_attr_minxfer - 1))) {
 			return (DDI_FAILURE);
 	}
 
@@ -1699,7 +1725,7 @@
 	attrp->dma_attr_flags = 0;
 
 	ret = i_ddi_mem_alloc(dip, attrp, length, cansleep, streaming,
-			accattrp, kaddrp, &rlen, ap);
+	    accattrp, kaddrp, &rlen, ap);
 	if (ret == DDI_SUCCESS) {
 		if (real_length)
 			*real_length = (uint_t)rlen;
@@ -1770,6 +1796,18 @@
 int
 impl_keep_instance(dev_info_t *dip)
 {
+
+#if defined(__xpv)
+	/*
+	 * Do not persist instance numbers assigned to devices in dom0
+	 */
+	dev_info_t *pdip;
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		if (((pdip = ddi_get_parent(dip)) != NULL) &&
+		    (strcmp(ddi_get_name(pdip), "xpvd") == 0))
+			return (DDI_SUCCESS);
+	}
+#endif
 	return (DDI_FAILURE);
 }
 
@@ -2013,9 +2051,9 @@
 	int	rv = DDI_FAILURE;
 
 	if ((ddi_getlongprop(DDI_DEV_T_ANY, cdip, DDI_PROP_DONTPASS,
-		"devconf-addr", (caddr_t)&daddr, &dlen) == DDI_PROP_SUCCESS) &&
+	    "devconf-addr", (caddr_t)&daddr, &dlen) == DDI_PROP_SUCCESS) &&
 	    (ddi_getprop(DDI_DEV_T_ANY, cdip, DDI_PROP_DONTPASS,
-		"ignore-hardware-nodes", -1) != -1)) {
+	    "ignore-hardware-nodes", -1) != -1)) {
 		if (strcmp(daddr, caddr) == 0) {
 			return (DDI_SUCCESS);
 		}
@@ -2135,8 +2173,8 @@
 	    (strcmp(bootdev_module, lkupname) == 0 ||
 	    strcmp(bootdev_oldmod, lkupname) == 0) &&
 	    ((ddi_getprop(DDI_DEV_T_ANY, cdip, DDI_PROP_DONTPASS,
-		"ignore-hardware-nodes", -1) != -1) ||
-		ignore_hardware_nodes) &&
+	    "ignore-hardware-nodes", -1) != -1) ||
+	    ignore_hardware_nodes) &&
 	    strcmp(bootdev_newaddr, caddr) == 0 &&
 	    strcmp(bootdev_oldaddr, naddr) == 0) {
 		rv = DDI_SUCCESS;
@@ -2467,6 +2505,10 @@
 	(void) BOP_GETPROP(bootops,
 	    "ramdisk_end", (void *)&ramdisk_end);
 
+#ifdef __xpv
+	ramdisk_start -= ONE_GIG;
+	ramdisk_end -= ONE_GIG;
+#endif
 	rd_mem_prop.phys = ramdisk_start;
 	rd_mem_prop.size = ramdisk_end - ramdisk_start + 1;
 
@@ -2567,13 +2609,22 @@
 	struct bus_probe *probe;
 
 	/* load modules to install bus probes */
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		if (modload("misc", "pci_autoconfig") < 0) {
+			panic("failed to load misc/pci_autoconfig");
+		}
+	}
+	(void) modload("misc", "xpv_autoconfig");
+#else
 	if (modload("misc", "pci_autoconfig") < 0) {
-		cmn_err(CE_PANIC, "failed to load misc/pci_autoconfig");
+		panic("failed to load misc/pci_autoconfig");
 	}
+#endif
 
 	probe = bus_probes;
 	while (probe) {
-		/* run the probe function */
+		/* run the probe functions */
 		(*probe->probe)(0);
 		probe = probe->next;
 	}
--- a/usr/src/uts/i86pc/os/dtrace_subr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/dtrace_subr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -124,7 +124,7 @@
 		len = (caddr_t)KERNEL_TEXT - vaddr;
 		vaddr = device_arena_contains(vaddr, len, &len);
 		if (vaddr == NULL)
-		    break;
+			break;
 		(*func)((uintptr_t)vaddr, (uintptr_t)vaddr + len);
 	}
 #endif
@@ -155,7 +155,7 @@
 
 	kpreempt_disable();
 	xc_sync((xc_arg_t)func, (xc_arg_t)arg, 0, X_CALL_HIPRI, set,
-		(xc_func_t)dtrace_xcall_func);
+	    (xc_func_t)dtrace_xcall_func);
 	kpreempt_enable();
 }
 
@@ -388,10 +388,15 @@
 
 /*
  * Additional artificial frames for the machine type. For i86pc, we're already
- * accounted for, so return 0.
+ * accounted for, so return 0. On the hypervisor, we have an additional frame
+ * (xen_callback_handler).
  */
 int
 dtrace_mach_aframes(void)
 {
+#ifdef __xpv
+	return (1);
+#else
 	return (0);
+#endif
 }
--- a/usr/src/uts/i86pc/os/fakebop.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/fakebop.c	Tue Sep 18 15:46:43 2007 -0700
@@ -53,6 +53,10 @@
 #include <sys/privregs.h>
 #include <sys/sysmacros.h>
 #include <sys/ctype.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#include <net/if.h>
+#endif
 #include <vm/kboot_mmu.h>
 #include <vm/hat_pte.h>
 #include "acpi_fw.h"
@@ -102,6 +106,11 @@
 static char *curr_page = NULL;		/* ptr to avail bprop memory */
 static int curr_space = 0;		/* amount of memory at curr_page */
 
+#ifdef __xpv
+start_info_t *xen_info;
+shared_info_t *HYPERVISOR_shared_info;
+#endif
+
 /*
  * some allocator statistics
  */
@@ -136,6 +145,15 @@
 
 	/*
 	 * find the lowest or highest available memory in physinstalled
+	 * On 32 bit avoid physmem above 4Gig if PAE isn't enabled
+	 */
+#if defined(__i386)
+	if (xbootp->bi_use_pae == 0 && high_phys > FOUR_GIG)
+		high_phys = FOUR_GIG;
+#endif
+
+	/*
+	 * find the highest available memory in physinstalled
 	 */
 	size = P2ROUNDUP(size, align);
 	for (; ml; ml = ml->next) {
@@ -497,10 +515,16 @@
 	int n_len;
 	char *value;
 	int v_len;
-	char *inputdev;	/* these override the comand line if serial ports */
+	char *inputdev;	/* these override the command line if serial ports */
 	char *outputdev;
 	char *consoledev;
 	uint64_t lvalue;
+	int use_xencons = 0;
+
+#ifdef __xpv
+	if (!DOMAIN_IS_INITDOMAIN(xen_info))
+		use_xencons = 1;
+#endif /* __xpv */
 
 	DBG_MSG("Opening /boot/solaris/bootenv.rc\n");
 	fd = BRD_OPEN(bfs_ops, "/boot/solaris/bootenv.rc", 0);
@@ -615,30 +639,43 @@
 	/*
 	 * check to see if we have to override the default value of the console
 	 */
-	inputdev = line;
-	v_len = do_bsys_getproplen(NULL, "input-device");
-	if (v_len > 0)
-		(void) do_bsys_getprop(NULL, "input-device", inputdev);
-	else
-		v_len = 0;
-	inputdev[v_len] = 0;
+	if (!use_xencons) {
+		inputdev = line;
+		v_len = do_bsys_getproplen(NULL, "input-device");
+		if (v_len > 0)
+			(void) do_bsys_getprop(NULL, "input-device", inputdev);
+		else
+			v_len = 0;
+		inputdev[v_len] = 0;
+
+		outputdev = inputdev + v_len + 1;
+		v_len = do_bsys_getproplen(NULL, "output-device");
+		if (v_len > 0)
+			(void) do_bsys_getprop(NULL, "output-device",
+			    outputdev);
+		else
+			v_len = 0;
+		outputdev[v_len] = 0;
 
-	outputdev = inputdev + v_len + 1;
-	v_len = do_bsys_getproplen(NULL, "output-device");
-	if (v_len > 0)
-		(void) do_bsys_getprop(NULL, "output-device", outputdev);
-	else
-		v_len = 0;
-	outputdev[v_len] = 0;
-
-	consoledev = outputdev + v_len + 1;
-	v_len = do_bsys_getproplen(NULL, "console");
-	if (v_len > 0)
-		(void) do_bsys_getprop(NULL, "console", consoledev);
-	else
-		v_len = 0;
-	consoledev[v_len] = 0;
-	bcons_init2(inputdev, outputdev, consoledev);
+		consoledev = outputdev + v_len + 1;
+		v_len = do_bsys_getproplen(NULL, "console");
+		if (v_len > 0)
+			(void) do_bsys_getprop(NULL, "console", consoledev);
+		else
+			v_len = 0;
+		consoledev[v_len] = 0;
+		bcons_init2(inputdev, outputdev, consoledev);
+	} else {
+		/*
+		 * Ensure console property exists
+		 * If not create it as "hypervisor"
+		 */
+		v_len = do_bsys_getproplen(NULL, "console");
+		if (v_len < 0)
+			bsetprops("console", "hypervisor");
+		inputdev = outputdev = consoledev = "hypervisor";
+		bcons_init2(inputdev, outputdev, consoledev);
+	}
 
 	if (strstr((char *)xbootp->bi_cmdline, "prom_debug") || kbm_debug) {
 		value = line;
@@ -706,6 +743,9 @@
 static void
 do_bsys_doint(bootops_t *bop, int intnum, struct bop_regs *rp)
 {
+#if defined(__xpv)
+	prom_panic("unsupported call to BOP_DOINT()\n");
+#else	/* __xpv */
 	static int firsttime = 1;
 	bios_func_t bios_func = (bios_func_t)(void *)(uintptr_t)0x5000;
 	bios_regs_t br;
@@ -745,6 +785,7 @@
 	rp->edi.word.di = br.di;
 	rp->ds = br.ds;
 	rp->es = br.es;
+#endif /* __xpv */
 }
 
 static struct boot_syscalls bop_sysp = {
@@ -757,6 +798,150 @@
 
 #define	BUFLEN	64
 
+#if defined(__xpv)
+
+static char namebuf[32];
+
+static void
+xen_parse_props(char *s, char *prop_map[], int n_prop)
+{
+	char **prop_name = prop_map;
+	char *cp = s, *scp;
+
+	do {
+		scp = cp;
+		while ((*cp != NULL) && (*cp != ':'))
+			cp++;
+
+		if ((scp != cp) && (*prop_name != NULL)) {
+			*cp = NULL;
+			bsetprops(*prop_name, scp);
+		}
+
+		cp++;
+		prop_name++;
+		n_prop--;
+	} while (n_prop > 0);
+}
+
+#define	VBDPATHLEN	64
+
+/*
+ * parse the 'xpv-root' property to create properties used by
+ * ufs_mountroot.
+ */
+static void
+xen_vbdroot_props(char *s)
+{
+	char vbdpath[VBDPATHLEN] = "/xpvd/xdf@";
+	const char lnamefix[] = "/dev/dsk/c0d";
+	char *pnp;
+	char *prop_p;
+	char mi;
+	short minor;
+	long addr = 0;
+
+	pnp = vbdpath + strlen(vbdpath);
+	prop_p = s + strlen(lnamefix);
+	while ((*prop_p != '\0') && (*prop_p != 's') && (*prop_p != 'p'))
+		addr = addr * 10 + *prop_p++ - '0';
+	(void) snprintf(pnp, VBDPATHLEN, "%lx", addr);
+	pnp = vbdpath + strlen(vbdpath);
+	if (*prop_p == 's')
+		mi = 'a';
+	else if (*prop_p == 'p')
+		mi = 'q';
+	else
+		ASSERT(0); /* shouldn't be here */
+	prop_p++;
+	ASSERT(*prop_p != '\0');
+	if (ISDIGIT(*prop_p)) {
+		minor = *prop_p - '0';
+		prop_p++;
+		if (ISDIGIT(*prop_p)) {
+			minor = minor * 10 + *prop_p - '0';
+		}
+	} else {
+		/* malformed root path, use 0 as default */
+		minor = 0;
+	}
+	ASSERT(minor < 16); /* at most 16 partitions */
+	mi += minor;
+	*pnp++ = ':';
+	*pnp++ = mi;
+	*pnp++ = '\0';
+	bsetprops("fstype", "ufs");
+	bsetprops("bootpath", vbdpath);
+
+	DBG_MSG("VBD bootpath set to ");
+	DBG_MSG(vbdpath);
+	DBG_MSG("\n");
+}
+
+/*
+ * parse the xpv-nfsroot property to create properties used by
+ * nfs_mountroot.
+ */
+static void
+xen_nfsroot_props(char *s)
+{
+	char *prop_map[] = {
+		BP_SERVER_IP,	/* server IP address */
+		BP_SERVER_NAME,	/* server hostname */
+		BP_SERVER_PATH,	/* root path */
+	};
+	int n_prop = sizeof (prop_map) / sizeof (prop_map[0]);
+
+	bsetprop("fstype", 6, "nfsdyn", 7);
+
+	xen_parse_props(s, prop_map, n_prop);
+
+	/*
+	 * If a server name wasn't specified, use a default.
+	 */
+	if (do_bsys_getproplen(NULL, BP_SERVER_NAME) == -1)
+		bsetprops(BP_SERVER_NAME, "unknown");
+}
+
+/*
+ * Extract our IP address, etc. from the "xpv-ip" property.
+ */
+static void
+xen_ip_props(char *s)
+{
+	char *prop_map[] = {
+		BP_HOST_IP,		/* IP address */
+		NULL,			/* NFS server IP address (ignored in */
+					/* favour of xpv-nfsroot) */
+		BP_ROUTER_IP,		/* IP gateway */
+		BP_SUBNET_MASK,		/* IP subnet mask */
+		"xpv-hostname",		/* hostname (ignored) */
+		BP_NETWORK_INTERFACE,	/* interface name */
+		"xpv-hcp",		/* host configuration protocol */
+	};
+	int n_prop = sizeof (prop_map) / sizeof (prop_map[0]);
+	char ifname[IFNAMSIZ];
+
+	xen_parse_props(s, prop_map, n_prop);
+
+	/*
+	 * A Linux dom0 administrator expects all interfaces to be
+	 * called "ethX", which is not the case here.
+	 *
+	 * If the interface name specified is "eth0", presume that
+	 * this is really intended to be "xnf0" (the first domU ->
+	 * dom0 interface for this domain).
+	 */
+	if ((do_bsys_getprop(NULL, BP_NETWORK_INTERFACE, ifname) == 0) &&
+	    (strcmp("eth0", ifname) == 0)) {
+		bsetprops(BP_NETWORK_INTERFACE, "xnf0");
+		bop_printf(NULL,
+		    "network interface name 'eth0' replaced with 'xnf0'\n");
+	}
+}
+
+#else	/* __xpv */
+
 static void
 setup_rarp_props(struct sol_netinfo *sip)
 {
@@ -798,6 +983,8 @@
 	}
 }
 
+#endif	/* __xpv */
+
 /*
  * 1st pass at building the table of boot properties. This includes:
  * - values set on the command line: -B a=x,b=y,c=z ....
@@ -816,16 +1003,18 @@
 	int name_len;
 	char *value;
 	int value_len;
-	static int stdout_val = 0;
 	struct boot_modules *bm;
 	char *propbuf;
 	int quoted = 0;
 	int boot_arg_len;
+#ifndef __xpv
+	static int stdout_val = 0;
 	uchar_t boot_device;
 	char str[3];
 	multiboot_info_t *mbi;
 	int netboot;
 	struct sol_netinfo *sip;
+#endif
 
 	/*
 	 * These have to be done first, so that kobj_mount_root() works
@@ -851,6 +1040,75 @@
 	boot_args[0] = 0;
 	boot_arg_len = 0;
 
+#ifdef __xpv
+	/*
+	 * Xen puts a lot of device information in front of the kernel name
+	 * let's grab them and make them boot properties.  The first
+	 * string w/o an "=" in it will be the boot-file property.
+	 */
+	(void) strcpy(namebuf, "xpv-");
+	for (;;) {
+		/*
+		 * get to next property
+		 */
+		while (ISSPACE(*value))
+			++value;
+		name = value;
+		/*
+		 * look for an "="
+		 */
+		while (*value && !ISSPACE(*value) && *value != '=') {
+			value++;
+		}
+		if (*value != '=') { /* no "=" in the property */
+			value = name;
+			break;
+		}
+		name_len = value - name;
+		value_len = 0;
+		/*
+		 * skip over the "="
+		 */
+		value++;
+		while (value[value_len] && !ISSPACE(value[value_len])) {
+			++value_len;
+		}
+		/*
+		 * build property name with "xpv-" prefix
+		 */
+		if (name_len + 4 > 32) { /* skip if name too long */
+			value += value_len;
+			continue;
+		}
+		bcopy(name, &namebuf[4], name_len);
+		name_len += 4;
+		namebuf[name_len] = 0;
+		bcopy(value, propbuf, value_len);
+		propbuf[value_len] = 0;
+		bsetprops(namebuf, propbuf);
+
+		/*
+		 * xpv-root is set to the logical disk name of the xen
+		 * VBD when booting from a disk-based filesystem.
+		 */
+		if (strcmp(namebuf, "xpv-root") == 0)
+			xen_vbdroot_props(propbuf);
+		/*
+		 * While we're here, if we have a "xpv-nfsroot" property
+		 * then we need to set "fstype" to "nfsdyn" so we mount
+		 * our root from the nfs server.  Also parse the xpv-nfsroot
+		 * property to create the properties that nfs_mountroot will
+		 * need to find the root and mount it.
+		 */
+		if (strcmp(namebuf, "xpv-nfsroot") == 0)
+			xen_nfsroot_props(propbuf);
+
+		if (strcmp(namebuf, "xpv-ip") == 0)
+			xen_ip_props(propbuf);
+		value += value_len;
+	}
+#endif
+
 	while (ISSPACE(*value))
 		++value;
 	/*
@@ -961,6 +1219,7 @@
 	 */
 	bsetprops("boot-args", boot_args);
 
+#ifndef __xpv
 	/*
 	 * set the BIOS boot device from GRUB
 	 */
@@ -993,12 +1252,18 @@
 	}
 	bsetprop("stdout", strlen("stdout"),
 	    &stdout_val, sizeof (stdout_val));
+#endif /* __xpv */
 
 	/*
 	 * more conjured up values for made up things....
 	 */
+#if defined(__xpv)
+	bsetprops("mfg-name", "i86xpv");
+	bsetprops("impl-arch-name", "i86xpv");
+#else
 	bsetprops("mfg-name", "i86pc");
 	bsetprops("impl-arch-name", "i86pc");
+#endif
 
 	/*
 	 * Build firmware-provided system properties
@@ -1006,6 +1271,8 @@
 	build_firmware_properties();
 
 	/*
+	 * XXPV
+	 *
 	 * Find out what these are:
 	 * - cpuid_feature_ecx_include
 	 * - cpuid_feature_ecx_exclude
@@ -1019,6 +1286,101 @@
 	 */
 }
 
+#ifdef __xpv
+/*
+ * Under the Hypervisor, memory usable for DMA may be scarce. One
+ * very likely large pool of DMA friendly memory is occupied by
+ * the boot_archive, as it was loaded by grub into low MFNs.
+ *
+ * Here we free up that memory by copying the boot archive to what are
+ * likely higher MFN pages and then swapping the mfn/pfn mappings.
+ */
+#define	PFN_2GIG	0x80000
+static void
+relocate_boot_archive(void)
+{
+	mfn_t max_mfn = HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL);
+	struct boot_modules *bm = xbootp->bi_modules;
+	uintptr_t va;
+	pfn_t va_pfn;
+	mfn_t va_mfn;
+	caddr_t copy;
+	pfn_t copy_pfn;
+	mfn_t copy_mfn;
+	size_t	len;
+	int slop;
+	int total = 0;
+	int relocated = 0;
+	int mmu_update_return;
+	mmu_update_t t[2];
+	x86pte_t pte;
+
+	/*
+	 * If all MFN's are below 2Gig, don't bother doing this.
+	 */
+	if (max_mfn < PFN_2GIG)
+		return;
+	if (xbootp->bi_module_cnt < 1) {
+		DBG_MSG("no boot_archive!");
+		return;
+	}
+
+	DBG_MSG("moving boot_archive to high MFN memory\n");
+	va = (uintptr_t)bm->bm_addr;
+	len = bm->bm_size;
+	slop = va & MMU_PAGEOFFSET;
+	if (slop) {
+		va += MMU_PAGESIZE - slop;
+		len -= MMU_PAGESIZE - slop;
+	}
+	len = P2ALIGN(len, MMU_PAGESIZE);
+
+	/*
+	 * Go through all boot_archive pages, swapping any low MFN pages
+	 * with memory at next_phys.
+	 */
+	while (len != 0) {
+		++total;
+		va_pfn = mmu_btop(va - ONE_GIG);
+		va_mfn = mfn_list[va_pfn];
+		if (mfn_list[va_pfn] < PFN_2GIG) {
+			copy = kbm_remap_window(next_phys, 1);
+			bcopy((void *)va, copy, MMU_PAGESIZE);
+			copy_pfn = mmu_btop(next_phys);
+			copy_mfn = mfn_list[copy_pfn];
+
+			pte = mfn_to_ma(copy_mfn) | PT_NOCONSIST | PT_VALID;
+			if (HYPERVISOR_update_va_mapping(va, pte,
+			    UVMF_INVLPG | UVMF_LOCAL))
+				bop_panic("relocate_boot_archive():  "
+				    "HYPERVISOR_update_va_mapping() failed");
+
+			mfn_list[va_pfn] = copy_mfn;
+			mfn_list[copy_pfn] = va_mfn;
+
+			t[0].ptr = mfn_to_ma(copy_mfn) | MMU_MACHPHYS_UPDATE;
+			t[0].val = va_pfn;
+			t[1].ptr = mfn_to_ma(va_mfn) | MMU_MACHPHYS_UPDATE;
+			t[1].val = copy_pfn;
+			if (HYPERVISOR_mmu_update(t, 2, &mmu_update_return,
+			    DOMID_SELF) != 0 || mmu_update_return != 2)
+				bop_panic("relocate_boot_archive():  "
+				    "HYPERVISOR_mmu_update() failed");
+
+			next_phys += MMU_PAGESIZE;
+			++relocated;
+		}
+		len -= MMU_PAGESIZE;
+		va += MMU_PAGESIZE;
+	}
+	DBG_MSG("Relocated pages:\n");
+	DBG(relocated);
+	DBG_MSG("Out of total pages:\n");
+	DBG(total);
+}
+#endif /* __xpv */
+
+#if !defined(__xpv)
 /*
  * Install a temporary IDT that lets us catch errors in the boot time code.
  * We shouldn't get any faults at all while this is installed, so we'll
@@ -1140,12 +1502,13 @@
 	bzero(&bop_idt, sizeof (bop_idt));
 	for (t = 0; t < NIDT; ++t) {
 		set_gatesegd(&bop_idt[t], &bop_trap_handler, bcode_sel,
-		    SDT_SYSIGT, SEL_KPL);
+		    SDT_SYSIGT, TRP_KPL);
 	}
 	bop_idt_info.dtr_limit = sizeof (bop_idt) - 1;
 	bop_idt_info.dtr_base = (uintptr_t)&bop_idt;
 	wr_idtr(&bop_idt_info);
 }
+#endif
 
 /*
  * This is where we enter the kernel. It dummies up the boot_ops and
@@ -1161,6 +1524,10 @@
 	 * 1st off - initialize the console for any error messages
 	 */
 	xbootp = xbp;
+#ifdef __xpv
+	HYPERVISOR_shared_info = (void *)xbootp->bi_shared_info;
+	xen_info = xbootp->bi_xen_start_info;
+#endif
 	bcons_init((void *)xbootp->bi_cmdline);
 	have_console = 1;
 
@@ -1174,11 +1541,13 @@
 	DBG_MSG((char *)xbootp->bi_cmdline);
 	DBG_MSG("\n\n\n");
 
+#ifndef __xpv
 	/*
 	 * Install an IDT to catch early pagefaults (shouldn't have any).
 	 * Also needed for kmdb.
 	 */
 	bop_idt_init();
+#endif
 
 	/*
 	 * physavail is no longer used by startup
@@ -1195,6 +1564,16 @@
 	next_virt = (uintptr_t)xbootp->bi_next_vaddr;
 	DBG(next_virt);
 	DBG_MSG("Initializing boot time memory management...");
+#ifdef __xpv
+	{
+		xen_platform_parameters_t p;
+
+		/* This call shouldn't fail, dboot already did it once. */
+		(void) HYPERVISOR_xen_version(XENVER_platform_parameters, &p);
+		mfn_to_pfn_mapping = (pfn_t *)(xen_virt_start = p.virt_start);
+		DBG(xen_virt_start);
+	}
+#endif
 	kbm_init(xbootp);
 	DBG_MSG("done\n");
 
@@ -1216,6 +1595,17 @@
 	 */
 	bops->bsys_ealloc = do_bsys_ealloc;
 
+#ifdef __xpv
+	/*
+	 * On domain 0 we need to free up some physical memory that is
+	 * usable for DMA. Since GRUB loaded the boot_archive, it is
+	 * sitting in low MFN memory. We'll relocated the boot archive
+	 * pages to high PFN memory.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		relocate_boot_archive();
+#endif
+
 	/*
 	 *
 	 */
@@ -1225,6 +1615,7 @@
 	if (strstr((char *)xbootp->bi_cmdline, "prom_debug") || kbm_debug) {
 		char *name;
 		char *value;
+		char *cp;
 		int len;
 
 		value = do_bsys_alloc(NULL, NULL, MMU_PAGESIZE, MMU_PAGESIZE);
@@ -1236,7 +1627,13 @@
 			len = do_bsys_getproplen(NULL, name);
 			bop_printf(NULL, "len=%d ", len);
 			value[len] = 0;
-			bop_printf(NULL, "%s\n", value);
+			for (cp = value; *cp; ++cp) {
+				if (' ' <= *cp && *cp <= '~')
+					bop_printf(NULL, "%c", *cp);
+				else
+					bop_printf(NULL, "-0x%x-", *cp);
+			}
+			bop_printf(NULL, "\n");
 		}
 	}
 
@@ -1272,6 +1669,7 @@
 }
 
 
+#ifndef __xpv
 /*
  * Set ACPI firmware properties
  */
@@ -1570,20 +1968,50 @@
 	bsetprop(SLIT_PROPNAME, strlen(SLIT_PROPNAME), &tp->entry,
 	    tp->number * tp->number);
 }
+#else /* __xpv */
+static void
+enumerate_xen_cpus()
+{
+	processorid_t	id, max_id;
+
+	/*
+	 * User-set boot-ncpus overrides enumeration
+	 */
+	if (do_bsys_getproplen(NULL, "boot-ncpus") >= 0)
+		return;
+
+	/*
+	 * Probe every possible virtual CPU id and remember the
+	 * highest id present; the count of CPUs is one greater
+	 * than this.  This tacitly assumes at least cpu 0 is present.
+	 */
+	max_id = 0;
+	for (id = 0; id < MAX_VIRT_CPUS; id++)
+		if (HYPERVISOR_vcpu_op(VCPUOP_is_up, id, NULL) == 0)
+			max_id = id;
+
+	bsetpropsi("boot-ncpus", max_id+1);
+
+}
+#endif /* __xpv */
 
 static void
 build_firmware_properties(void)
 {
+#ifndef __xpv
 	struct table_header *tp;
 
-	if (tp = find_fw_table("APIC"))
+	if ((tp = find_fw_table("APIC")) != NULL)
 		process_madt((struct madt *)tp);
 
-	if (tp = find_fw_table("SRAT"))
+	if ((tp = find_fw_table("SRAT")) != NULL)
 		process_srat((struct srat *)tp);
 
 	if (tp = find_fw_table("SLIT"))
 		process_slit((struct slit *)tp);
+#else /* __xpv */
+	enumerate_xen_cpus();
+#endif /* __xpv */
 }
 
 /*
--- a/usr/src/uts/i86pc/os/fpu_subr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/fpu_subr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -75,10 +75,22 @@
 
 #endif
 
+#if defined(__xpv)
+
+/*
+ * Use of SSE or otherwise is forcibly configured for us by the hypervisor.
+ */
+
+#define	ENABLE_SSE()
+#define	DISABLE_SSE()
+
+#else	/* __xpv */
 
 #define	ENABLE_SSE()	setcr4(CR4_ENABLE_SSE_FLAGS(getcr4()))
 #define	DISABLE_SSE()	setcr4(CR4_DISABLE_SSE_FLAGS(getcr4()))
 
+#endif	/* __xpv */
+
 /*
  * Try and figure out what kind of FP capabilities we have, and
  * set up the control registers accordingly.
@@ -109,6 +121,7 @@
 		}
 #endif
 
+#ifndef __xpv
 		/*
 		 * Check and see if the fpu is present by looking
 		 * at the "extension type" bit.  (While this used to
@@ -118,6 +131,7 @@
 		 */
 		if ((getcr0() & CR0_ET) == 0)
 			continue;
+#endif
 
 #if defined(__amd64)
 		/*
--- a/usr/src/uts/i86pc/os/graphics.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/graphics.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -150,6 +149,7 @@
 void
 progressbar_start(void)
 {
+#if !defined(__xpv)
 	extern pri_t minclsyspri;
 
 	if (graphics_mode == 0)
@@ -169,11 +169,13 @@
 
 	progressbar_tid = thread_create(NULL, 0, progressbar_thread,
 	    NULL, 0, &p0, TS_RUN, minclsyspri);
+#endif
 }
 
 void
 progressbar_stop(void)
 {
+#if !defined(__xpv)
 	if (graphics_mode == 0)
 		return;
 
@@ -187,4 +189,5 @@
 	/* unmap video memory */
 	hat_unload(kas.a_hat, videomem, videomem_size, HAT_UNLOAD_UNLOCK);
 	vmem_free(heap_arena, videomem, videomem_size);
+#endif
 }
--- a/usr/src/uts/i86pc/os/hold_page.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/hold_page.c	Tue Sep 18 15:46:43 2007 -0700
@@ -28,10 +28,37 @@
 
 #include <sys/hold_page.h>
 
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+
 /*ARGSUSED*/
 int
 plat_hold_page(pfn_t pfn, int lock, page_t **pp_ret)
 {
+#if defined(__xpv)
+	page_t *pp = page_numtopp_nolock(pfn);
+
+	if (pp == NULL)
+		return (PLAT_HOLD_FAIL);
+
+	if (lock == PLAT_HOLD_LOCK) {
+		ASSERT(pp_ret != NULL);
+		if (page_trylock(pp, SE_EXCL) == 0)
+			return (PLAT_HOLD_FAIL);
+	}
+
+	if (mfn_list[pfn] == MFN_INVALID) {
+		/* We failed - release the lock if we grabbed it earlier */
+		if (lock == PLAT_HOLD_LOCK) {
+			page_unlock(pp);
+		}
+		return (PLAT_HOLD_FAIL);
+	}
+	if (lock == PLAT_HOLD_LOCK)
+		*pp_ret = pp;
+#endif	/* __xpv */
+
 	return (PLAT_HOLD_OK);
 }
 
@@ -39,4 +66,8 @@
 void
 plat_release_page(page_t *pp)
 {
+#if defined(__xpv)
+	ASSERT((pp != NULL) && PAGE_LOCKED(pp));
+	page_unlock(pp);
+#endif
 }
--- a/usr/src/uts/i86pc/os/intr.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/intr.c	Tue Sep 18 15:46:43 2007 -0700
@@ -18,6 +18,7 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
@@ -54,8 +55,35 @@
 #include <sys/x86_archext.h>
 #include <sys/promif.h>
 #include <vm/hat_i86.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 
 
+#if defined(__xpv) && defined(DEBUG)
+
+/*
+ * This panic message is intended as an aid to interrupt debugging.
+ *
+ * The associated assertion tests the condition of enabling
+ * events when events are already enabled.  The implication
+ * being that whatever code the programmer thought was
+ * protected by having events disabled until the second
+ * enable happened really wasn't protected at all ..
+ */
+
+int stistipanic = 1;	/* controls the debug panic check */
+const char *stistimsg = "stisti";
+ulong_t laststi[NCPU];
+
+/*
+ * This variable tracks the last place events were disabled on each cpu
+ * it assists in debugging when asserts that interupts are enabled trip.
+ */
+ulong_t lastcli[NCPU];
+
+#endif
+
 /*
  * Set cpu's base SPL level to the highest active interrupt level
  */
@@ -409,7 +437,7 @@
  * The first time intr_get_time() is called while handling an interrupt,
  * it returns the time since the interrupt handler was invoked. Subsequent
  * calls will return the time since the prior call to intr_get_time(). Time
- * is returned as ticks. Use tsc_scalehrtime() to convert ticks to nsec.
+ * is returned as ticks. Use scalehrtimef() to convert ticks to nsec.
  *
  * Theory Of Intrstat[][]:
  *
@@ -739,7 +767,7 @@
 
 	for (i = 0; i < PIL_MAX; i++) {
 		hrt = (hrtime_t)cpup->cpu_m.intrstat[i + 1][0];
-		tsc_scalehrtime(&hrt);
+		scalehrtimef(&hrt);
 		knp[i * 2].value.ui64 = (uint64_t)hrt;
 		knp[(i * 2) + 1].value.ui64 = cpup->cpu_stats.sys.intr[i];
 	}
@@ -869,7 +897,7 @@
 	while (cpu->cpu_softinfo.st_pending) {
 		oldipl = cpu->cpu_pri;
 		newsp = dosoftint_prolog(cpu, (caddr_t)regs,
-			cpu->cpu_softinfo.st_pending, oldipl);
+		    cpu->cpu_softinfo.st_pending, oldipl);
 		/*
 		 * If returned stack pointer is NULL, priority is too high
 		 * to run any of the pending softints now.
@@ -901,10 +929,12 @@
 	ttp->ttr_vector = 0xff;
 #endif	/* TRAPTRACE */
 
+#if !defined(__xpv)
 	/*
 	 * Handle any pending TLB flushing
 	 */
 	tlb_service();
+#endif
 
 	/*
 	 * If it's a softint go do it now.
--- a/usr/src/uts/i86pc/os/lgrpplat.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/lgrpplat.c	Tue Sep 18 15:46:43 2007 -0700
@@ -526,6 +526,12 @@
 void
 lgrp_plat_init(void)
 {
+#if defined(__xpv)
+	/*
+	 * XXPV	For now, the hypervisor treats all memory equally.
+	 */
+	lgrp_plat_node_cnt = max_mem_nodes = 1;
+#else	/* __xpv */
 	uint_t		bus;
 	uint_t		dev;
 	uint_t		node;
@@ -707,6 +713,7 @@
 	 */
 	lgrp_expand_proc_thresh = LGRP_LOADAVG_THREAD_MAX / 2;
 	lgrp_expand_proc_diff = 0;
+#endif	/* __xpv */
 }
 
 
--- a/usr/src/uts/i86pc/os/machdep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/machdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -117,6 +117,10 @@
 #include <sys/mem.h>
 #include <sys/dumphdr.h>
 #include <sys/compress.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#include <sys/xpv_panic.h>
+#endif
 
 #ifdef	TRAPTRACE
 #include <sys/traptrace.h>
@@ -167,7 +171,9 @@
 void
 mdboot(int cmd, int fcn, char *mdep, boolean_t invoke_cb)
 {
+#ifndef __xpv
 	extern void mtrr_resync(void);
+#endif
 
 	if (!panicstr) {
 		kpreempt_disable();
@@ -190,6 +196,9 @@
 	if (!(fcn == AD_HALT || fcn == AD_POWEROFF))
 		prom_printf("rebooting...\n");
 
+	if (IN_XPV_PANIC())
+		reset();
+
 	/*
 	 * We can't bring up the console from above lock level, so do it now
 	 */
@@ -206,6 +215,19 @@
 	 */
 	page_retire_mdboot();
 
+#if defined(__xpv)
+	/*
+	 * XXPV	Should probably think some more about how we deal
+	 *	with panicing before it's really safe to panic.
+	 *	On hypervisors, we reboot very quickly..  Perhaps panic
+	 *	should only attempt to recover by rebooting if,
+	 *	say, we were able to mount the root filesystem,
+	 *	or if we successfully launched init(1m).
+	 */
+	if (panicstr && proc_init == NULL)
+		(void) HYPERVISOR_shutdown(SHUTDOWN_poweroff);
+#endif
+
 	/*
 	 * stop other cpus and raise our priority.  since there is only
 	 * one active cpu after this, and our priority will be too high
@@ -229,7 +251,9 @@
 	(void) spl8();
 	(*psm_shutdownf)(cmd, fcn);
 
+#ifndef __xpv
 	mtrr_resync();
+#endif
 
 	if (fcn == AD_HALT || fcn == AD_POWEROFF)
 		halt((char *)NULL);
@@ -330,6 +354,7 @@
 void
 reset(void)
 {
+#if !defined(__xpv)
 	ushort_t *bios_memchk;
 
 	/*
@@ -345,6 +370,12 @@
 	if (ddi_prop_exists(DDI_DEV_T_ANY, ddi_root_node(), 0, "efi-systab"))
 		efi_reset();
 	pc_reset();
+#else
+	if (IN_XPV_PANIC())
+		pc_reset();
+	(void) HYPERVISOR_shutdown(SHUTDOWN_reboot);
+	panic("HYPERVISOR_shutdown() failed");
+#endif
 	/*NOTREACHED*/
 }
 
@@ -427,7 +458,7 @@
 
 	s = clear_int_flag();
 	i = cons_polledio->cons_polledio_getchar(
-		cons_polledio->cons_polledio_argument);
+	    cons_polledio->cons_polledio_argument);
 	restore_int_flag(s);
 	return (i);
 }
@@ -446,7 +477,7 @@
 
 	s = clear_int_flag();
 	cons_polledio->cons_polledio_putchar(
-		cons_polledio->cons_polledio_argument, c);
+	    cons_polledio->cons_polledio_argument, c);
 	restore_int_flag(s);
 }
 
@@ -462,7 +493,7 @@
 
 	s = clear_int_flag();
 	i = cons_polledio->cons_polledio_ischar(
-		cons_polledio->cons_polledio_argument);
+	    cons_polledio->cons_polledio_argument);
 	restore_int_flag(s);
 	return (i);
 }
@@ -482,6 +513,10 @@
 	sysp_ischar,	/*	int	(*ischar)();	9  */
 };
 
+#if defined(__xpv)
+int using_kern_polledio;
+#endif
+
 void
 kadb_uses_kernel()
 {
@@ -490,6 +525,9 @@
 	 * control kadb's I/O; it only controls the kernel's prom_* I/O.
 	 */
 	sysp = &kern_sysp;
+#if defined(__xpv)
+	using_kern_polledio = 1;
+#endif
 }
 
 /*
@@ -514,7 +552,7 @@
 	for (i = 500000; i; i--) {
 		maskval = inb(port) & mask;
 		if (((maskval & onbits) == onbits) &&
-			((maskval & offbits) == 0))
+		    ((maskval & offbits) == 0))
 			return (0);
 		drv_usecwait(10);
 	}
@@ -759,10 +797,16 @@
 	processorid_t i;
 	cpuset_t xcset;
 
-	(void) splzs();
+	/*
+	 * In the case of a Xen panic, the hypervisor has already stopped
+	 * all of the CPUs.
+	 */
+	if (!IN_XPV_PANIC()) {
+		(void) splzs();
 
-	CPUSET_ALL_BUT(xcset, cp->cpu_id);
-	xc_trycall(NULL, NULL, NULL, xcset, (int (*)())panic_idle);
+		CPUSET_ALL_BUT(xcset, cp->cpu_id);
+		xc_trycall(NULL, NULL, NULL, xcset, (int (*)())panic_idle);
+	}
 
 	for (i = 0; i < NCPU; i++) {
 		if (i != cp->cpu_id && cpu[i] != NULL &&
@@ -809,6 +853,16 @@
 	/* Nothing to do here */
 }
 
+void *
+plat_traceback(void *fpreg)
+{
+#ifdef __xpv
+	if (IN_XPV_PANIC())
+		return (xpv_traceback(fpreg));
+#endif
+	return (fpreg);
+}
+
 /*ARGSUSED*/
 void
 plat_tod_fault(enum tod_fault_type tod_bad)
@@ -858,9 +912,9 @@
 void
 tenmicrosec(void)
 {
-	extern int	tsc_gethrtime_initted;
+	extern int gethrtime_hires;
 
-	if (tsc_gethrtime_initted) {
+	if (gethrtime_hires) {
 		hrtime_t start, end;
 		start = end =  gethrtime();
 		while ((end - start) < (10 * (NANOSEC / MICROSEC))) {
@@ -868,6 +922,13 @@
 			end = gethrtime();
 		}
 	} else {
+#if defined(__xpv)
+		hrtime_t newtime;
+
+		newtime = xpv_gethrtime() + 10000; /* now + 10 us */
+		while (xpv_gethrtime() < newtime)
+			SMT_PAUSE();
+#else	/* __xpv */
 		int i;
 
 		/*
@@ -875,6 +936,7 @@
 		 */
 		for (i = 0; i < microdata; i++)
 			tenmicrodata = microdata;
+#endif	/* __xpv */
 	}
 }
 
@@ -994,31 +1056,117 @@
 }
 
 /*
- * Return true if the given page VA can be read via /dev/kmem.
+ * The mem driver's usual method of using hat_devload() to establish a
+ * temporary mapping will not work for foreign pages mapped into this
+ * domain or for the special hypervisor-provided pages.  For the foreign
+ * pages, we often don't know which domain owns them, so we can't ask the
+ * hypervisor to set up a new mapping.  For the other pages, we don't have
+ * a pfn, so we can't create a new PTE.  For these special cases, we do a
+ * direct uiomove() from the existing kernel virtual address.
  */
 /*ARGSUSED*/
 int
-plat_mem_valid_page(uintptr_t pageaddr, uio_rw_t rw)
+plat_mem_do_mmio(struct uio *uio, enum uio_rw rw)
+{
+#if defined(__xpv)
+	void *va = (void *)(uintptr_t)uio->uio_loffset;
+	off_t pageoff = uio->uio_loffset & PAGEOFFSET;
+	size_t nbytes = MIN((size_t)(PAGESIZE - pageoff),
+	    (size_t)uio->uio_iov->iov_len);
+
+	if ((rw == UIO_READ &&
+	    (va == HYPERVISOR_shared_info || va == xen_info)) ||
+	    (pfn_is_foreign(hat_getpfnum(kas.a_hat, va))))
+		return (uiomove(va, nbytes, rw, uio));
+#endif
+	return (ENOTSUP);
+}
+
+pgcnt_t
+num_phys_pages()
 {
-	return (0);
+	pgcnt_t npages = 0;
+	struct memlist *mp;
+
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		xen_sysctl_t op;
+
+		op.cmd = XEN_SYSCTL_physinfo;
+		op.interface_version = XEN_SYSCTL_INTERFACE_VERSION;
+		if (HYPERVISOR_sysctl(&op) != 0)
+			panic("physinfo op refused");
+
+		return ((pgcnt_t)op.u.physinfo.total_pages);
+	}
+#endif /* __xpv */
+
+	for (mp = phys_install; mp != NULL; mp = mp->next)
+		npages += mp->size >> PAGESHIFT;
+
+	return (npages);
 }
 
 int
 dump_plat_addr()
 {
+#ifdef __xpv
+	pfn_t pfn = mmu_btop(xen_info->shared_info) | PFN_IS_FOREIGN_MFN;
+	mem_vtop_t mem_vtop;
+	int cnt;
+
+	/*
+	 * On the hypervisor, we want to dump the page with shared_info on it.
+	 */
+	if (!IN_XPV_PANIC()) {
+		mem_vtop.m_as = &kas;
+		mem_vtop.m_va = HYPERVISOR_shared_info;
+		mem_vtop.m_pfn = pfn;
+		dumpvp_write(&mem_vtop, sizeof (mem_vtop_t));
+		cnt = 1;
+	} else {
+		cnt = dump_xpv_addr();
+	}
+	return (cnt);
+#else
 	return (0);
+#endif
 }
 
 void
 dump_plat_pfn()
 {
+#ifdef __xpv
+	pfn_t pfn = mmu_btop(xen_info->shared_info) | PFN_IS_FOREIGN_MFN;
+
+	if (!IN_XPV_PANIC())
+		dumpvp_write(&pfn, sizeof (pfn));
+	else
+		dump_xpv_pfn();
+#endif
 }
 
 /*ARGSUSED*/
 int
 dump_plat_data(void *dump_cbuf)
 {
+#ifdef __xpv
+	uint32_t csize;
+	int cnt;
+
+	if (!IN_XPV_PANIC()) {
+		csize = (uint32_t)compress(HYPERVISOR_shared_info, dump_cbuf,
+		    PAGESIZE);
+		dumpvp_write(&csize, sizeof (uint32_t));
+		dumpvp_write(dump_cbuf, csize);
+		cnt = 1;
+	} else {
+		cnt = dump_xpv_data(dump_cbuf);
+	}
+	return (cnt);
+#else
 	return (0);
+#endif
 }
 
 /*
--- a/usr/src/uts/i86pc/os/microcode.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/microcode.c	Tue Sep 18 15:46:43 2007 -0700
@@ -45,6 +45,9 @@
 #include <sys/ucode.h>
 #include <sys/x86_archext.h>
 #include <sys/x_call.h>
+#ifdef	__xpv
+#include <sys/hypervisor.h>
+#endif
 
 /*
  * Microcode specific information per core
@@ -127,9 +130,18 @@
  * Check whether or not a processor is capable of microcode operations
  * Returns 1 if it is capable, 0 if not.
  */
+/*ARGSUSED*/
 static int
 ucode_capable(cpu_t *cp)
 {
+	/* i86xpv guest domain can't update microcode */
+#ifdef	__xpv
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		return (0);
+	}
+#endif
+
+#ifndef	__xpv
 	/*
 	 * At this point we only support microcode update for Intel
 	 * processors family 6 and above.
@@ -142,6 +154,13 @@
 		return (0);
 	else
 		return (1);
+#else
+	/*
+	 * XXPV - remove when microcode loading works in dom0. Don't support
+	 * microcode loading in dom0 right now.
+	 */
+	return (0);
+#endif
 }
 
 /*
@@ -580,14 +599,6 @@
 void
 ucode_check(cpu_t *cp)
 {
-#ifdef __xpv
-{
-	This needs to be ported.  Only do ucode update from dom0.  In
-	    addition figure out how to bind to physical CPUs when doing
-	    it in dom0.
-}
-#endif	/* __xpv */
-
 	struct cpu_ucode_info *uinfop;
 	ucode_errno_t rc = EM_OK;
 
--- a/usr/src/uts/i86pc/os/mlsetup.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/mlsetup.c	Tue Sep 18 15:46:43 2007 -0700
@@ -58,6 +58,9 @@
 #include <sys/kobj.h>
 #include <sys/kobj_lex.h>
 #include <sys/pci_cfgspace.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 /*
  * some globals for patching the result of cpuid
@@ -110,6 +113,13 @@
 	 */
 	cpu[0]->cpu_self = cpu[0];
 
+#if defined(__xpv)
+	/*
+	 * Point at the hypervisor's virtual cpu structure
+	 */
+	cpu[0]->cpu_m.mcpu_vcpu_info = &HYPERVISOR_shared_info->vcpu_info[0];
+#endif
+
 	/*
 	 * Set up dummy cpu_pri_data values till psm spl code is
 	 * installed.  This allows splx() to work on amd64.
@@ -150,7 +160,7 @@
 	init_desctbls();
 
 
-#if defined(__i386)
+#if defined(__i386) && !defined(__xpv)
 	/*
 	 * Some i386 processors do not implement the rdtsc instruction,
 	 * or at least they do not implement it correctly.
@@ -161,7 +171,10 @@
 	 */
 	if (x86_feature & X86_TSC)
 		patch_tsc();
-#endif	/* __i386 */
+#endif	/* __i386 && !__xpv */
+
+#if !defined(__xpv)
+	/* XXPV	what, if anything, should be dorked with here under xen? */
 
 	/*
 	 * While we're thinking about the TSC, let's set up %cr4 so that
@@ -177,6 +190,7 @@
 
 	if (x86_feature & X86_DE)
 		setcr4(getcr4() | CR4_DE);
+#endif /* __xpv */
 
 	/*
 	 * initialize t0
@@ -235,7 +249,7 @@
 	/*
 	 * The kernel doesn't use LDTs unless a process explicitly requests one.
 	 */
-	p0.p_ldt_desc = zero_sdesc;
+	p0.p_ldt_desc = null_sdesc;
 
 	/*
 	 * Initialize thread/cpu microstate accounting
@@ -268,7 +282,12 @@
 	cpu_vm_data_init(CPU);
 
 	/* lgrp_init() needs PCI config space access */
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		pci_cfgspace_init();
+#else
 	pci_cfgspace_init();
+#endif
 
 	/*
 	 * Initialize the lgrp framework
@@ -293,10 +312,12 @@
 
 	ASSERT_STACK_ALIGNED();
 
+#if !defined(__xpv)
 	/*
 	 * Fill out cpu_ucode_info.  Update microcode if necessary.
 	 */
 	ucode_check(CPU);
+#endif
 
 	if (workaround_errata(CPU) != 0)
 		panic("critical workaround(s) missing for boot cpu");
--- a/usr/src/uts/i86pc/os/mp_implfuncs.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/mp_implfuncs.c	Tue Sep 18 15:46:43 2007 -0700
@@ -35,6 +35,11 @@
 #include <sys/psm_modctl.h>
 #include <sys/smp_impldefs.h>
 #include <sys/reboot.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#include <vm/kboot_mmu.h>
+#include <vm/hat_pte.h>
+#endif
 
 /*
  *	External reference functions
@@ -83,11 +88,11 @@
 	struct psm_sw *swp;
 
 	memsz = sizeof (struct modlinkage) + sizeof (struct modlpsm) +
-		sizeof (struct psm_sw);
+	    sizeof (struct psm_sw);
 	mlinkp = (struct modlinkage *)kmem_zalloc(memsz, KM_NOSLEEP);
 	if (!mlinkp) {
 		cmn_err(CE_WARN, "!psm_mod_init: Cannot install %s",
-			infop->p_mach_idstring);
+		    infop->p_mach_idstring);
 		return (NULL);
 	}
 	mlpsmp = (struct modlpsm *)(mlinkp + 1);
@@ -113,7 +118,7 @@
 		return;
 
 	(void) kmem_free(mlinkp, (sizeof (struct modlinkage) +
-		sizeof (struct modlpsm) + sizeof (struct psm_sw)));
+	    sizeof (struct modlpsm) + sizeof (struct psm_sw)));
 }
 
 int
@@ -211,7 +216,20 @@
 		return (0);
 
 	pgoffset = addr & MMU_PAGEOFFSET;
+#ifdef __xpv
+	/*
+	 * If we're dom0, we're starting from a MA. translate that to a PA
+	 * XXPV - what about driver domains???
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		base = pfn_to_pa(xen_assign_pfn(mmu_btop(addr))) |
+		    (addr & MMU_PAGEOFFSET);
+	} else {
+		base = addr;
+	}
+#else
 	base = addr;
+#endif
 	npages = mmu_btopr(len + pgoffset);
 	cvaddr = device_arena_alloc(ptob(npages), VM_NOSLEEP);
 	if (cvaddr == NULL)
@@ -330,7 +348,11 @@
 	return (0);
 }
 
+#if defined(__xpv)
+#define	DEFAULT_PSM_MODULE	"xpv_psm"
+#else
 #define	DEFAULT_PSM_MODULE	"uppc"
+#endif
 
 static char *
 psm_get_impl_module(int first)
@@ -363,9 +385,8 @@
 	mutex_init(&psmsw_lock, NULL, MUTEX_DEFAULT, NULL);
 	open_mach_list();
 
-	for (this = psm_get_impl_module(1);
-		this != (char *)NULL;
-		this = psm_get_impl_module(0)) {
+	for (this = psm_get_impl_module(1); this != (char *)NULL;
+	    this = psm_get_impl_module(0)) {
 		if (modload("mach", this) == -1)
 			cmn_err(CE_WARN, "!Cannot load psm %s", this);
 	}
@@ -399,7 +420,7 @@
 		err = mod_remove_by_name(cswp->psw_infop->p_mach_idstring);
 		if (err)
 			cmn_err(CE_WARN, "%s: mod_remove_by_name failed %d",
-				&machstring[0], err);
+			    &machstring[0], err);
 		mutex_enter(&psmsw_lock);
 	}
 	mutex_exit(&psmsw_lock);
--- a/usr/src/uts/i86pc/os/mp_machdep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/mp_machdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -44,8 +44,12 @@
 #include <sys/archsystm.h>
 #include <sys/machsystm.h>
 #include <sys/sysmacros.h>
+#include <sys/memlist.h>
 #include <sys/param.h>
 #include <sys/promif.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 #include <sys/mach_intr.h>
 #include <vm/hat_i86.h>
 #include <sys/kdi_machimpl.h>
@@ -59,7 +63,6 @@
 static void mp_enable_intr(processorid_t cpun);
 static void mach_init();
 static void mach_picinit();
-static uint64_t mach_calchz(uint32_t pit_counter, uint64_t *processor_clks);
 static int machhztomhz(uint64_t cpu_freq_hz);
 static uint64_t mach_getcpufreq(void);
 static void mach_fixcpufreq(void);
@@ -76,8 +79,10 @@
 static void dummy_scalehrtime(hrtime_t *);
 static void cpu_idle(void);
 static void cpu_wakeup(cpu_t *, int);
+#ifndef __xpv
 static void cpu_idle_mwait(void);
 static void cpu_wakeup_mwait(cpu_t *, int);
+#endif
 /*
  *	External reference functions
  */
@@ -135,10 +140,23 @@
 void (*notify_error)(int, char *) = (void (*)(int, char *))return_instr;
 void (*hrtime_tick)(void)	= return_instr;
 
+/*
+ * True if the generic TSC code is our source of hrtime, rather than whatever
+ * the PSM can provide.
+ */
+#ifdef __xpv
+int tsc_gethrtime_enable = 0;
+#else
 int tsc_gethrtime_enable = 1;
+#endif
 int tsc_gethrtime_initted = 0;
 
 /*
+ * True if the hrtime implementation is "hires"; namely, better than microdata.
+ */
+int gethrtime_hires = 0;
+
+/*
  * Local Static Data
  */
 static struct psm_ops mach_ops;
@@ -151,11 +169,12 @@
  */
 int	idle_cpu_use_hlt = 1;
 
+#ifndef __xpv
 /*
  * If non-zero, idle cpus will use mwait if available to halt instead of hlt.
  */
 int	idle_cpu_prefer_mwait = 1;
-
+#endif
 
 /*ARGSUSED*/
 int
@@ -473,6 +492,7 @@
 		poke_cpu(cpu_found);
 }
 
+#ifndef __xpv
 /*
  * Idle the present CPU until awoken via touching its monitored line
  */
@@ -638,6 +658,7 @@
 	 */
 	MWAIT_WAKEUP(cpu[cpu_found]);	/* write to monitored line */
 }
+#endif
 
 void (*cpu_pause_handler)(volatile char *) = NULL;
 
@@ -827,6 +848,8 @@
 	 * Allocate monitor/mwait buffer for cpu0.
 	 */
 	if (idle_cpu_use_hlt) {
+		idle_cpu = cpu_idle;
+#ifndef __xpv
 		if ((x86_feature & X86_MWAIT) && idle_cpu_prefer_mwait) {
 			CPU->cpu_m.mcpu_mwait = cpuid_mwait_alloc(CPU);
 			/*
@@ -845,6 +868,7 @@
 		} else {
 			idle_cpu = cpu_idle;
 		}
+#endif
 	}
 
 	mach_smpinit();
@@ -911,11 +935,13 @@
 	 * Set the dispatcher hook to enable cpu "wake up"
 	 * when a thread becomes runnable.
 	 */
-	if (idle_cpu_use_hlt)
+	if (idle_cpu_use_hlt) {
+		disp_enq_thread = cpu_wakeup;
+#ifndef __xpv
 		if ((x86_feature & X86_MWAIT) && idle_cpu_prefer_mwait)
 			disp_enq_thread = cpu_wakeup_mwait;
-		else
-			disp_enq_thread = cpu_wakeup;
+#endif
+	}
 
 	if (pops->psm_disable_intr)
 		psm_disable_intr = pops->psm_disable_intr;
@@ -959,6 +985,13 @@
 
 #define	MEGA_HZ		1000000
 
+#ifdef __xpv
+
+int xpv_cpufreq_workaround = 1;
+int xpv_cpufreq_verbose = 0;
+
+#else	/* __xpv */
+
 static uint64_t
 mach_calchz(uint32_t pit_counter, uint64_t *processor_clks)
 {
@@ -973,9 +1006,58 @@
 	return (cpu_hz);
 }
 
+#endif	/* __xpv */
+
 static uint64_t
 mach_getcpufreq(void)
 {
+#if defined(__xpv)
+	vcpu_time_info_t *vti = &CPU->cpu_m.mcpu_vcpu_info->time;
+	uint64_t cpu_hz;
+
+	/*
+	 * During dom0 bringup, it was noted that on at least one older
+	 * Intel HT machine, the hypervisor initially gives a tsc_to_system_mul
+	 * value that is quite wrong (the 3.06GHz clock was reported
+	 * as 4.77GHz)
+	 *
+	 * The curious thing is, that if you stop the kernel at entry,
+	 * breakpoint here and inspect the value with kmdb, the value
+	 * is correct - but if you don't stop and simply enable the
+	 * printf statement (below), you can see the bad value printed
+	 * here.  Almost as if something kmdb did caused the hypervisor to
+	 * figure it out correctly.  And, note that the hypervisor
+	 * eventually -does- figure it out correctly ... if you look at
+	 * the field later in the life of dom0, it is correct.
+	 *
+	 * For now, on dom0, we employ a slightly cheesy workaround of
+	 * using the DOM0_PHYSINFO hypercall.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info) && xpv_cpufreq_workaround) {
+		xen_sysctl_t op0, *op = &op0;
+
+		op->cmd = XEN_SYSCTL_physinfo;
+		op->interface_version = XEN_SYSCTL_INTERFACE_VERSION;
+		if (HYPERVISOR_sysctl(op) != 0)
+			panic("physinfo op refused");
+
+		cpu_hz = 1000 * (uint64_t)op->u.physinfo.cpu_khz;
+	} else {
+		cpu_hz = (UINT64_C(1000000000) << 32) / vti->tsc_to_system_mul;
+
+		if (vti->tsc_shift < 0)
+			cpu_hz <<= -vti->tsc_shift;
+		else
+			cpu_hz >>= vti->tsc_shift;
+	}
+
+	if (xpv_cpufreq_verbose)
+		printf("mach_getcpufreq: system_mul 0x%x, shift %d, "
+		    "cpu_hz %" PRId64 "Hz\n",
+		    vti->tsc_to_system_mul, vti->tsc_shift, cpu_hz);
+
+	return (cpu_hz);
+#else	/* __xpv */
 	uint32_t pit_counter;
 	uint64_t processor_clks;
 
@@ -1006,6 +1088,7 @@
 
 	/* We do not know how to calculate cpu frequency for this cpu. */
 	return (0);
+#endif	/* __xpv */
 }
 
 /*
@@ -1153,14 +1236,12 @@
 	if (!(x86_feature & X86_TSC) || (cpu_freq == 0))
 		tsc_gethrtime_enable = 0;
 
+#ifndef __xpv
 	if (tsc_gethrtime_enable) {
 		tsc_hrtimeinit(cpu_freq_hz);
-		gethrtimef = tsc_gethrtime;
-		gethrtimeunscaledf = tsc_gethrtimeunscaled;
-		scalehrtimef = tsc_scalehrtime;
-		hrtime_tick = tsc_tick;
-		tsc_gethrtime_initted = 1;
-	} else {
+	} else
+#endif
+	{
 		if (pops->psm_hrtimeinit)
 			(*pops->psm_hrtimeinit)();
 		gethrtimef = pops->psm_gethrtime;
@@ -1171,15 +1252,13 @@
 	mach_fixcpufreq();
 
 	if (mach_ver[0] >= PSM_INFO_VER01_3) {
-		if ((preferred_mode == TIMER_ONESHOT) &&
-		    (tsc_gethrtime_enable)) {
+		if (preferred_mode == TIMER_ONESHOT) {
 
 			resolution = (*pops->psm_clkinit)(0);
 			if (resolution != 0)  {
 				*set_mode = TIMER_ONESHOT;
 				return (resolution);
 			}
-
 		}
 
 		/*
--- a/usr/src/uts/i86pc/os/mp_startup.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/mp_startup.c	Tue Sep 18 15:46:43 2007 -0700
@@ -66,6 +66,9 @@
 #include <sys/pci_cfgspace.h>
 #include <sys/mach_mmu.h>
 #include <sys/sysmacros.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 #include <sys/cpu_module.h>
 
 struct cpu	cpus[1];			/* CPU data */
@@ -99,8 +102,6 @@
 static void cpu_asysc_enable(void);
 static void cpu_asysc_disable(void);
 
-extern int tsc_gethrtime_enable;
-
 /*
  * Init CPU info - get CPU type info for processor_info system call.
  */
@@ -238,7 +239,9 @@
 	kthread_id_t tp;
 	caddr_t	sp;
 	proc_t *procp;
+#if !defined(__xpv)
 	extern int idle_cpu_prefer_mwait;
+#endif
 	extern void idle();
 
 #ifdef TRAPTRACE
@@ -248,8 +251,10 @@
 	ASSERT(cpun < NCPU && cpu[cpun] == NULL);
 
 	cp = kmem_zalloc(sizeof (*cp), KM_SLEEP);
+#if !defined(__xpv)
 	if ((x86_feature & X86_MWAIT) && idle_cpu_prefer_mwait)
 		cp->cpu_m.mcpu_mwait = cpuid_mwait_alloc(CPU);
+#endif
 
 	procp = curthread->t_procp;
 
@@ -384,10 +389,12 @@
 	 */
 	cpuid_alloc_space(cp);
 
+#if !defined(__xpv)
 	/*
 	 * alloc space for ucode_info
 	 */
 	ucode_alloc_space(cp);
+#endif
 
 	hat_cpu_online(cp);
 
@@ -478,7 +485,9 @@
 
 	cpuid_free_space(cp);
 
+#if !defined(__xpv)
 	ucode_free_space(cp);
+#endif
 
 	if (cp->cpu_m.mcpu_idt != CPU->cpu_m.mcpu_idt)
 		kmem_free(cp->cpu_m.mcpu_idt, sizeof (idt0));
@@ -500,8 +509,10 @@
 	disp_cpu_fini(cp);
 	mutex_exit(&cpu_lock);
 
+#if !defined(__xpv)
 	if (cp->cpu_m.mcpu_mwait != NULL)
 		cpuid_mwait_free(cp);
+#endif
 	kmem_free(cp, sizeof (*cp));
 }
 
@@ -605,6 +616,35 @@
 	    cp->cpu_id, rw, msr, error);
 }
 
+#if defined(__xpv)
+
+/*
+ * On dom0, we can determine the number of physical cpus on the machine.
+ * This number is important when figuring out what workarounds are
+ * appropriate, so compute it now.
+ */
+static uint_t
+xen_get_nphyscpus(void)
+{
+	static uint_t nphyscpus = 0;
+
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+
+	if (nphyscpus == 0) {
+		xen_sysctl_t op;
+		xen_sysctl_physinfo_t *pi = &op.u.physinfo;
+
+		op.cmd = XEN_SYSCTL_physinfo;
+		op.interface_version = XEN_SYSCTL_INTERFACE_VERSION;
+		if (HYPERVISOR_sysctl(&op) == 0)
+			nphyscpus = pi->threads_per_core *
+			    pi->cores_per_socket * pi->sockets_per_node *
+			    pi->nr_nodes;
+	}
+	return (nphyscpus);
+}
+#endif
+
 uint_t
 workaround_errata(struct cpu *cpu)
 {
@@ -793,10 +833,16 @@
 		 * Erratum 122 is only present in MP configurations (multi-core
 		 * or multi-processor).
 		 */
+#if defined(__xpv)
+		if (!DOMAIN_IS_INITDOMAIN(xen_info))
+			break;
+		if (!opteron_erratum_122 && xen_get_nphyscpus() == 1)
+			break;
+#else
 		if (!opteron_erratum_122 && lgrp_plat_node_cnt == 1 &&
 		    cpuid_get_ncpu_per_chip(cpu) == 1)
 			break;
-
+#endif
 		/* disable TLB Flush Filter */
 
 		if ((error = checked_rdmsr(msr, &value)) != 0) {
@@ -835,7 +881,10 @@
 		 */
 		if (cpuid_get_ncpu_per_chip(cpu) < 2)
 			break;
-
+#if defined(__xpv)
+		if (!DOMAIN_IS_INITDOMAIN(xen_info))
+			break;
+#endif
 		/*
 		 * The "workaround" is to print a warning to upgrade the BIOS
 		 */
@@ -872,10 +921,15 @@
 		 */
 		if (opteron_erratum_131)
 			break;
-
+#if defined(__xpv)
+		if (!DOMAIN_IS_INITDOMAIN(xen_info))
+			break;
+		if (xen_get_nphyscpus() < 4)
+			break;
+#else
 		if (lgrp_plat_node_cnt * cpuid_get_ncpu_per_chip(cpu) < 4)
 			break;
-
+#endif
 		/*
 		 * Print a warning if neither of the workarounds for
 		 * erratum 131 is present.
@@ -909,6 +963,19 @@
 		 */
 		if (opteron_workaround_6336786) {
 			opteron_workaround_6336786++;
+#if defined(__xpv)
+		} else if ((DOMAIN_IS_INITDOMAIN(xen_info) &&
+		    xen_get_nphyscpus() > 1) ||
+		    opteron_workaround_6336786_UP) {
+			/*
+			 * XXPV	Hmm.  We can't walk the set of lgrps on
+			 *	the hypervisor; so just complain and drive
+			 *	on.  This probably needs to be fixed in
+			 *	the hypervisor itself.
+			 */
+			opteron_workaround_6336786++;
+			workaround_warning(cpu, 6336786);
+#else	/* __xpv */
 		} else if ((lgrp_plat_node_cnt *
 		    cpuid_get_ncpu_per_chip(cpu) > 1) ||
 		    opteron_workaround_6336786_UP) {
@@ -925,6 +992,7 @@
 				pci_putb_func(0, node + 24, 3, 0x87, data);
 			}
 			opteron_workaround_6336786++;
+#endif	/* __xpv */
 		}
 #else
 		workaround_warning(cpu, 6336786);
@@ -950,10 +1018,30 @@
 		 */
 		if (opteron_workaround_6323525) {
 			opteron_workaround_6323525++;
+#if defined(__xpv)
+		} else if (x86_feature & X86_SSE2) {
+			if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+				/*
+				 * XXPV	Use dom0_msr here when extended
+				 *	operations are supported?
+				 */
+				if (xen_get_nphyscpus() > 1)
+					opteron_workaround_6323525++;
+			} else {
+				/*
+				 * We have no way to tell how many physical
+				 * cpus there are, or even if this processor
+				 * has the problem, so enable the workaround
+				 * unconditionally (at some performance cost).
+				 */
+				opteron_workaround_6323525++;
+			}
+#else	/* __xpv */
 		} else if ((x86_feature & X86_SSE2) && ((lgrp_plat_node_cnt *
 		    cpuid_get_ncpu_per_chip(cpu)) > 1)) {
 			if ((xrdmsr(MSR_BU_CFG) & 0x02) == 0)
 				opteron_workaround_6323525++;
+#endif	/* __xpv */
 		}
 #else
 		workaround_warning(cpu, 6323525);
@@ -961,7 +1049,11 @@
 #endif
 	}
 
+#ifdef __xpv
+	return (0);
+#else
 	return (missing);
+#endif
 }
 
 void
@@ -1121,8 +1213,10 @@
 
 	mach_cpucontext_free(cp, ctx, 0);
 
+#ifndef __xpv
 	if (tsc_gethrtime_enable)
 		tsc_sync_master(who);
+#endif
 
 	if (dtrace_cpu_init != NULL) {
 		/*
@@ -1207,8 +1301,10 @@
 			CPUSET_DEL(mp_cpus, who);
 	}
 
+#if !defined(__xpv)
 	/* Free the space allocated to hold the microcode file */
 	ucode_free();
+#endif
 
 	affinity_clear();
 
@@ -1270,8 +1366,10 @@
 	/* Let cpu0 continue into tsc_sync_master() */
 	CPUSET_ATOMIC_ADD(procset, cp->cpu_id);
 
+#ifndef __xpv
 	if (tsc_gethrtime_enable)
 		tsc_sync_slave();
+#endif
 
 	/*
 	 * Once this was done from assembly, but it's safer here; if
@@ -1284,12 +1382,14 @@
 
 	new_x86_feature = cpuid_pass1(cp);
 
+#ifndef __xpv
 	/*
 	 * We need to Sync MTRR with cpu0's MTRR. We have to do
 	 * this with interrupts disabled.
 	 */
 	if (x86_feature & X86_MTRR)
 		mtrr_sync();
+#endif
 
 	/*
 	 * Set up TSC_AUX to contain the cpuid for this processor
@@ -1368,10 +1468,12 @@
 		(*dtrace_cpu_init)(cp->cpu_id);
 	}
 
+#if !defined(__xpv)
 	/*
 	 * Fill out cpu_ucode_info.  Update microcode if necessary.
 	 */
 	ucode_check(cp);
+#endif
 
 	mutex_exit(&cpu_lock);
 
@@ -1453,13 +1555,21 @@
 	extern int cbe_psm_timer_mode;
 	ASSERT(MUTEX_HELD(&cpu_lock));
 
+#ifdef __xpv
+	/*
+	 * We can't offline vcpu0.
+	 */
+	if (cp->cpu_id == 0)
+		return (EBUSY);
+#endif
+
 	/*
 	 * If TIMER_PERIODIC mode is used, CPU0 is the one running it;
 	 * can't stop it.  (This is true only for machines with no TSC.)
 	 */
 
 	if ((cbe_psm_timer_mode == TIMER_PERIODIC) && (cp->cpu_id == 0))
-		return (1);
+		return (EBUSY);
 
 	return (0);
 }
--- a/usr/src/uts/i86pc/os/pci_cfgspace.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/pci_cfgspace.c	Tue Sep 18 15:46:43 2007 -0700
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -37,6 +37,11 @@
 #include <sys/pci_impl.h>
 #include <sys/pci_cfgspace.h>
 #include <sys/pci_cfgspace_impl.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+int pci_max_nbus = 0xFE;
+#endif
+
 
 int pci_bios_cfg_type = PCI_MECHANISM_UNKNOWN;
 int pci_bios_nbus;
@@ -67,8 +72,11 @@
  * Internal routines
  */
 static int pci_check(void);
+
+#if !defined(__xpv)
 static int pci_check_bios(void);
 static int pci_get_cfg_type(void);
+#endif
 
 /* all config-space access routines share this one... */
 kmutex_t pcicfg_mutex;
@@ -107,6 +115,32 @@
 	if (pci_bios_cfg_type != PCI_MECHANISM_UNKNOWN)
 		return (TRUE);
 
+#if defined(__xpv)
+	/*
+	 * only support PCI config mechanism 1 in i86xpv. This should be fine
+	 * since the other ones are workarounds for old broken H/W which won't
+	 * be supported in i86xpv anyway.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		pci_bios_cfg_type = PCI_MECHANISM_1;
+		pci_getb_func = pci_mech1_getb;
+		pci_getw_func = pci_mech1_getw;
+		pci_getl_func = pci_mech1_getl;
+		pci_putb_func = pci_mech1_putb;
+		pci_putw_func = pci_mech1_putw;
+		pci_putl_func = pci_mech1_putl;
+
+		/*
+		 * Since we can't get the BIOS info in i86xpv, we will do an
+		 * exhaustive search of all PCI buses. We have to do this until
+		 * we start using the PCI information in ACPI.
+		 */
+		pci_bios_nbus = pci_max_nbus;
+	}
+
+	return (TRUE);
+#else /* !__xpv */
+
 	pci_bios_cfg_type = pci_check_bios();
 
 	if (pci_bios_cfg_type == PCI_MECHANISM_NONE)
@@ -162,8 +196,10 @@
 	}
 
 	return (TRUE);
+#endif /* __xpv */
 }
 
+#if !defined(__xpv)
 
 static int
 pci_check_bios(void)
@@ -235,3 +271,5 @@
 		return (PCI_MECHANISM_NONE);
 	}
 }
+
+#endif	/* __xpv */
--- a/usr/src/uts/i86pc/os/startup.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/startup.c	Tue Sep 18 15:46:43 2007 -0700
@@ -67,7 +67,7 @@
 #include <sys/bootconf.h>
 #include <sys/varargs.h>
 #include <sys/promif.h>
-#include <sys/modctl.h>		/* for "procfs" hack */
+#include <sys/modctl.h>
 
 #include <sys/sunddi.h>
 #include <sys/sunndi.h>
@@ -108,12 +108,22 @@
 #include <sys/kobj.h>
 #include <sys/kobj_lex.h>
 #include <sys/cpc_impl.h>
-#include <sys/pg.h>
 #include <sys/x86_archext.h>
 #include <sys/cpu_module.h>
 #include <sys/smbios.h>
 #include <sys/debug_info.h>
 
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#include <sys/xen_mmu.h>
+#include <sys/evtchn_impl.h>
+#include <sys/gnttab.h>
+#include <sys/xpv_panic.h>
+#include <xen/sys/xenbus_comms.h>
+#include <xen/public/physdev.h>
+extern void xen_late_startup(void);
+extern struct xen_evt_data cpu0_evt_data;
+#endif
 
 #include <sys/bootinfo.h>
 #include <vm/kboot_mmu.h>
@@ -337,7 +347,7 @@
  *		|      Kernel Data	|
  * 0xFEC00000  -|-----------------------|
  *              |      Kernel Text	|
- * 0xFE800000  -|-----------------------|- KERNEL_TEXT
+ * 0xFE800000  -|-----------------------|- KERNEL_TEXT (0xFB400000 on Xen)
  *		|---       GDT       ---|- GDT page (GDT_VA)
  *		|---    debug info   ---|- debug info (DEBUG_INFO_VA)
  *		|			|
@@ -628,21 +638,37 @@
 void
 startup(void)
 {
+#if !defined(__xpv)
 	extern void startup_bios_disk(void);
 	extern void startup_pci_bios(void);
+#endif
+	/*
+	 * Make sure that nobody tries to use sekpm until we have
+	 * initialized it properly.
+	 */
 #if defined(__amd64)
 	kpm_desired = 1;
 #endif
 	kpm_enable = 0;
 
+#if defined(__xpv)	/* XXPV fix me! */
+	{
+		extern int segvn_use_regions;
+		segvn_use_regions = 0;
+	}
+#endif
 	progressbar_init();
 	startup_init();
 	startup_memlist();
 	startup_kmem();
 	startup_vm();
+#if !defined(__xpv)
 	startup_pci_bios();
+#endif
 	startup_modules();
+#if !defined(__xpv)
 	startup_bios_disk();
+#endif
 	startup_end();
 	progressbar_start();
 }
@@ -827,6 +853,13 @@
 
 	di->di_magic = DEBUG_INFO_MAGIC;
 	di->di_version = DEBUG_INFO_VERSION;
+	di->di_modules = (uintptr_t)&modules;
+	di->di_s_text = (uintptr_t)s_text;
+	di->di_e_text = (uintptr_t)e_text;
+	di->di_s_data = (uintptr_t)s_data;
+	di->di_e_data = (uintptr_t)e_data;
+	di->di_hat_htable_off = offsetof(hat_t, hat_htable);
+	di->di_ht_pfn_off = offsetof(htable_t, ht_pfn);
 }
 
 /*
@@ -1231,6 +1264,12 @@
 	    kernelheap + MMU_PAGESIZE,
 	    (void *)core_base, (void *)(core_base + core_size));
 
+#if defined(__xpv)
+	/*
+	 * Link pending events struct into cpu struct
+	 */
+	CPU->cpu_m.mcpu_evt_pend = &cpu0_evt_data;
+#endif
 	/*
 	 * Initialize kernel memory allocator.
 	 */
@@ -1241,6 +1280,10 @@
 	 */
 	page_set_colorequiv_arr();
 
+#if defined(__xpv)
+	xen_version();
+#endif
+
 	/*
 	 * print this out early so that we know what's going on
 	 */
@@ -1274,6 +1317,23 @@
 	}
 #endif
 
+#ifdef __xpv
+	/*
+	 * Some of the xen start information has to be relocated up
+	 * into the kernel's permanent address space.
+	 */
+	PRM_POINT("calling xen_relocate_start_info()");
+	xen_relocate_start_info();
+	PRM_POINT("xen_relocate_start_info() done");
+
+	/*
+	 * (Update the vcpu pointer in our cpu structure to point into
+	 * the relocated shared info.)
+	 */
+	CPU->cpu_m.mcpu_vcpu_info =
+	    &HYPERVISOR_shared_info->vcpu_info[CPU->cpu_id];
+#endif
+
 	PRM_POINT("startup_kmem() done");
 }
 
@@ -1284,6 +1344,8 @@
 	extern void prom_setup(void);
 
 	PRM_POINT("startup_modules() starting...");
+
+#ifndef __xpv
 	/*
 	 * Initialize ten-micro second timer so that drivers will
 	 * not get short changed in their init phase. This was
@@ -1291,6 +1353,7 @@
 	 * caused the drv_usecwait to be way too short.
 	 */
 	microfind();
+#endif
 
 	/*
 	 * Read the GMT lag from /etc/rtc_config.
@@ -1349,6 +1412,12 @@
 	/* Read cluster configuration data. */
 	clconf_init();
 
+#if defined(__xpv)
+	ec_init();
+	gnttab_init();
+	(void) xs_early_init();
+#endif /* __xpv */
+
 	/*
 	 * Create a kernel device tree. First, create rootnex and
 	 * then invoke bus specific code to probe devices.
@@ -1596,10 +1665,12 @@
 	hat_kern_alloc((caddr_t)segmap_start, segmapsize, ekernelheap);
 	PRM_POINT("hat_kern_alloc() done");
 
+#ifndef __xpv
 	/*
 	 * Setup MTRR (Memory type range registers)
 	 */
 	setup_mtrr();
+#endif
 
 	/*
 	 * The next two loops are done in distinct steps in order
@@ -1624,6 +1695,7 @@
 	 */
 	protect_boot_range(0, kernelbase, 1);
 
+
 	/*
 	 * Switch to running on regular HAT (not boot_mmu)
 	 */
@@ -1652,6 +1724,19 @@
 	if (boothowto & RB_DEBUG)
 		kdi_dvec_vmready();
 
+#if defined(__xpv)
+	/*
+	 * Populate the I/O pool on domain 0
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		extern long populate_io_pool(void);
+		long init_io_pool_cnt;
+
+		PRM_POINT("Populating reserve I/O page pool");
+		init_io_pool_cnt = populate_io_pool();
+		PRM_DEBUG(init_io_pool_cnt);
+	}
+#endif
 	/*
 	 * Mangle the brand string etc.
 	 */
@@ -1691,7 +1776,7 @@
 	 * The following code installs a special page fault handler (#pf)
 	 * to work around a pentium bug.
 	 */
-#if !defined(__amd64)
+#if !defined(__amd64) && !defined(__xpv)
 	if (x86_type == X86_TYPE_P5) {
 		desctbr_t idtr;
 		gate_desc_t *newidt;
@@ -1702,7 +1787,7 @@
 
 		bcopy(idt0, newidt, sizeof (idt0));
 		set_gatesegd(&newidt[T_PGFLT], &pentium_pftrap,
-		    KCS_SEL, SDT_SYSIGT, SEL_KPL);
+		    KCS_SEL, SDT_SYSIGT, TRP_KPL);
 
 		(void) as_setprot(&kas, (caddr_t)newidt, MMU_PAGESIZE,
 		    PROT_READ|PROT_EXEC);
@@ -1714,6 +1799,7 @@
 	}
 #endif	/* !__amd64 */
 
+#if !defined(__xpv)
 	/*
 	 * Map page pfn=0 for drivers, such as kd, that need to pick up
 	 * parameters left there by controllers/BIOS.
@@ -1721,6 +1807,7 @@
 	PRM_POINT("setup up p0_va");
 	p0_va = i86devmap(0, 1, PROT_READ);
 	PRM_DEBUG(p0_va);
+#endif
 
 	cmn_err(CE_CONT, "?mem = %luK (0x%lx)\n",
 	    physinstalled << (MMU_PAGESHIFT - 10), ptob(physinstalled));
@@ -1801,7 +1888,10 @@
 	setup_vaddr_for_ppcopy(CPU);
 
 	segdev_init();
-	pmem_init();
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+#endif
+		pmem_init();
 
 	PRM_POINT("startup_vm() done");
 }
@@ -1848,6 +1938,14 @@
 		load_tod_module(tod_module_name);
 	}
 
+#if defined(__xpv)
+	/*
+	 * Forceload interposing TOD module for the hypervisor.
+	 */
+	PRM_POINT("load_tod_module()");
+	load_tod_module("xpvtod");
+#endif
+
 	/*
 	 * Configure the system.
 	 */
@@ -1871,9 +1969,17 @@
 	*bootopsp = (struct bootops *)NULL;
 	bootops = (struct bootops *)NULL;
 
+#if defined(__xpv)
+	ec_init_debug_irq();
+	xs_domu_init();
+#endif
 	PRM_POINT("Enabling interrupts");
 	(*picinitf)();
 	sti();
+#if defined(__xpv)
+	ASSERT(CPU->cpu_m.mcpu_vcpu_info->evtchn_upcall_mask == 0);
+	xen_late_startup();
+#endif
 
 	(void) add_avsoftintr((void *)&softlevel1_hdl, 1, softlevel1,
 	    "softlevel1", NULL, NULL); /* XXX to be moved later */
@@ -1895,16 +2001,26 @@
 	 */
 	bind_hwcap();
 
-	/*
-	 * Load the System Management BIOS into the global ksmbios
-	 * handle, if an SMBIOS is present on this system.
-	 */
-	ksmbios = smbios_open(NULL, SMB_VERSION, ksmbios_flags, NULL);
-
-	/*
-	 * Startup the memory scrubber.
-	 */
-	memscrub_init();
+#ifdef __xpv
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+#endif
+	{
+		/*
+		 * Load the System Management BIOS into the global ksmbios
+		 * handle, if an SMBIOS is present on this system.
+		 */
+		ksmbios = smbios_open(NULL, SMB_VERSION, ksmbios_flags, NULL);
+
+#if defined(__xpv)
+		xpv_panic_init();
+#else
+		/*
+		 * Startup the memory scrubber.
+		 * XXPV	This should be running somewhere ..
+		 */
+		memscrub_init();
+#endif
+	}
 
 	/*
 	 * Complete CPU module initialization
@@ -1992,6 +2108,8 @@
 	}
 	PRM_POINT("Boot pages released");
 
+#if !defined(__xpv)
+/* XXPV -- note this following bunch of code needs to be revisited in Xen 3.0 */
 	/*
 	 * Find 1 page below 1 MB so that other processors can boot up.
 	 * Make sure it has a kernel VA as well as a 1:1 mapping.
@@ -2016,7 +2134,7 @@
 			panic("No page available for starting "
 			    "other processors");
 	}
-
+#endif	/* !__xpv */
 }
 
 /*
@@ -2211,6 +2329,7 @@
 	    PROT_READ | PROT_WRITE | PROT_EXEC);
 }
 
+#ifndef __xpv
 /*
  * These are MTTR registers supported by P6
  */
@@ -2290,7 +2409,9 @@
 	setcr0(crvalue);
 	invalidate_cache();
 
+#if !defined(__xpv)
 	reload_cr3();
+#endif
 	if (x86_feature & X86_PAT)
 		wrmsr(REG_MTRRPAT, pat_attr_reg);
 
@@ -2319,7 +2440,9 @@
 	}
 	wrmsr(REG_MTRRDEF, mtrrdef);
 
+#if !defined(__xpv)
 	reload_cr3();
+#endif
 	invalidate_cache();
 	setcr0(cr0_orig);
 }
@@ -2339,6 +2462,7 @@
 		mtrr_sync();
 	}
 }
+#endif
 
 void
 get_system_configuration(void)
--- a/usr/src/uts/i86pc/os/timestamp.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/timestamp.c	Tue Sep 18 15:46:43 2007 -0700
@@ -18,6 +18,7 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
@@ -42,6 +43,7 @@
 #include <sys/smp_impldefs.h>
 #include <sys/dtrace.h>
 #include <sys/time.h>
+#include <sys/panic.h>
 
 /*
  * Using the Pentium's TSC register for gethrtime()
@@ -131,11 +133,7 @@
 #define	TSC_SYNC_GO		2
 #define	TSC_SYNC_AGAIN		3
 
-/*
- * XX64	Is the faster way to do this with a 64-bit ABI?
- */
-
-#define	TSC_CONVERT_AND_ADD(tsc, hrt, scale) { 		\
+#define	TSC_CONVERT_AND_ADD(tsc, hrt, scale) {	 	\
 	unsigned int *_l = (unsigned int *)&(tsc); 	\
 	(hrt) += mul32(_l[1], scale) << NSEC_SHIFT; 	\
 	(hrt) += mul32(_l[0], scale) >> (32 - NSEC_SHIFT); \
@@ -163,6 +161,230 @@
 static uint_t	shadow_nsec_scale;
 static uint32_t	shadow_hres_lock;
 
+hrtime_t
+tsc_gethrtime(void)
+{
+	uint32_t old_hres_lock;
+	hrtime_t tsc, hrt;
+
+	do {
+		old_hres_lock = hres_lock;
+
+		if ((tsc = tsc_read()) >= tsc_last) {
+			/*
+			 * It would seem to be obvious that this is true
+			 * (that is, the past is less than the present),
+			 * but it isn't true in the presence of suspend/resume
+			 * cycles.  If we manage to call gethrtime()
+			 * after a resume, but before the first call to
+			 * tsc_tick(), we will see the jump.  In this case,
+			 * we will simply use the value in TSC as the delta.
+			 */
+			tsc -= tsc_last;
+		} else if (tsc >= tsc_last - 2*tsc_max_delta) {
+			/*
+			 * There is a chance that tsc_tick() has just run on
+			 * another CPU, and we have drifted just enough so that
+			 * we appear behind tsc_last.  In this case, force the
+			 * delta to be zero.
+			 */
+			tsc = 0;
+		}
+
+		hrt = tsc_hrtime_base;
+
+		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
+	} while ((old_hres_lock & ~1) != hres_lock);
+
+	return (hrt);
+}
+
+hrtime_t
+tsc_gethrtime_delta(void)
+{
+	uint32_t old_hres_lock;
+	hrtime_t tsc, hrt;
+	int flags;
+
+	do {
+		old_hres_lock = hres_lock;
+
+		/*
+		 * We need to disable interrupts here to assure that we
+		 * don't migrate between the call to tsc_read() and
+		 * adding the CPU's TSC tick delta. Note that disabling
+		 * and reenabling preemption is forbidden here because
+		 * we may be in the middle of a fast trap. In the amd64
+		 * kernel we cannot tolerate preemption during a fast
+		 * trap. See _update_sregs().
+		 */
+
+		flags = clear_int_flag();
+		tsc = tsc_read() + tsc_sync_tick_delta[CPU->cpu_id];
+		restore_int_flag(flags);
+
+		/* See comments in tsc_gethrtime() above */
+
+		if (tsc >= tsc_last) {
+			tsc -= tsc_last;
+		} else if (tsc >= tsc_last - 2 * tsc_max_delta) {
+			tsc = 0;
+		}
+
+		hrt = tsc_hrtime_base;
+
+		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
+	} while ((old_hres_lock & ~1) != hres_lock);
+
+	return (hrt);
+}
+
+/*
+ * This is similar to the above, but it cannot actually spin on hres_lock.
+ * As a result, it caches all of the variables it needs; if the variables
+ * don't change, it's done.
+ */
+hrtime_t
+dtrace_gethrtime(void)
+{
+	uint32_t old_hres_lock;
+	hrtime_t tsc, hrt;
+	int flags;
+
+	do {
+		old_hres_lock = hres_lock;
+
+		/*
+		 * Interrupts are disabled to ensure that the thread isn't
+		 * migrated between the tsc_read() and adding the CPU's
+		 * TSC tick delta.
+		 */
+		flags = clear_int_flag();
+
+		tsc = tsc_read();
+
+		if (gethrtimef == tsc_gethrtime_delta)
+			tsc += tsc_sync_tick_delta[CPU->cpu_id];
+
+		restore_int_flag(flags);
+
+		/*
+		 * See the comments in tsc_gethrtime(), above.
+		 */
+		if (tsc >= tsc_last)
+			tsc -= tsc_last;
+		else if (tsc >= tsc_last - 2*tsc_max_delta)
+			tsc = 0;
+
+		hrt = tsc_hrtime_base;
+
+		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
+
+		if ((old_hres_lock & ~1) == hres_lock)
+			break;
+
+		/*
+		 * If we're here, the clock lock is locked -- or it has been
+		 * unlocked and locked since we looked.  This may be due to
+		 * tsc_tick() running on another CPU -- or it may be because
+		 * some code path has ended up in dtrace_probe() with
+		 * CLOCK_LOCK held.  We'll try to determine that we're in
+		 * the former case by taking another lap if the lock has
+		 * changed since when we first looked at it.
+		 */
+		if (old_hres_lock != hres_lock)
+			continue;
+
+		/*
+		 * So the lock was and is locked.  We'll use the old data
+		 * instead.
+		 */
+		old_hres_lock = shadow_hres_lock;
+
+		/*
+		 * Again, disable interrupts to ensure that the thread
+		 * isn't migrated between the tsc_read() and adding
+		 * the CPU's TSC tick delta.
+		 */
+		flags = clear_int_flag();
+
+		tsc = tsc_read();
+
+		if (gethrtimef == tsc_gethrtime_delta)
+			tsc += tsc_sync_tick_delta[CPU->cpu_id];
+
+		restore_int_flag(flags);
+
+		/*
+		 * See the comments in tsc_gethrtime(), above.
+		 */
+		if (tsc >= shadow_tsc_last)
+			tsc -= shadow_tsc_last;
+		else if (tsc >= shadow_tsc_last - 2 * tsc_max_delta)
+			tsc = 0;
+
+		hrt = shadow_tsc_hrtime_base;
+
+		TSC_CONVERT_AND_ADD(tsc, hrt, shadow_nsec_scale);
+	} while ((old_hres_lock & ~1) != shadow_hres_lock);
+
+	return (hrt);
+}
+
+hrtime_t
+tsc_gethrtimeunscaled(void)
+{
+	uint32_t old_hres_lock;
+	hrtime_t tsc;
+
+	do {
+		old_hres_lock = hres_lock;
+
+		/* See tsc_tick(). */
+		tsc = tsc_read() + tsc_last_jumped;
+	} while ((old_hres_lock & ~1) != hres_lock);
+
+	return (tsc);
+}
+
+
+/* Convert a tsc timestamp to nanoseconds */
+void
+tsc_scalehrtime(hrtime_t *tsc)
+{
+	hrtime_t hrt;
+	hrtime_t mytsc;
+
+	if (tsc == NULL)
+		return;
+	mytsc = *tsc;
+
+	TSC_CONVERT(mytsc, hrt, nsec_scale);
+	*tsc  = hrt;
+}
+
+hrtime_t
+tsc_gethrtimeunscaled_delta(void)
+{
+	hrtime_t hrt;
+	int flags;
+
+	/*
+	 * Similarly to tsc_gethrtime_delta, we need to disable preemption
+	 * to prevent migration between the call to tsc_gethrtimeunscaled
+	 * and adding the CPU's hrtime delta. Note that disabling and
+	 * reenabling preemption is forbidden here because we may be in the
+	 * middle of a fast trap. In the amd64 kernel we cannot tolerate
+	 * preemption during a fast trap. See _update_sregs().
+	 */
+
+	flags = clear_int_flag();
+	hrt = tsc_gethrtimeunscaled() + tsc_sync_tick_delta[CPU->cpu_id];
+	restore_int_flag(flags);
+
+	return (hrt);
+}
+
 /*
  * Called by the master after the sync operation is complete.  If the
  * slave is discovered to lag, gethrtimef will be changed to point to
@@ -313,31 +535,6 @@
 	restore_int_flag(flags);
 }
 
-void
-tsc_hrtimeinit(uint64_t cpu_freq_hz)
-{
-	longlong_t tsc;
-	ulong_t flags;
-
-	/*
-	 * cpu_freq_hz is the measured cpu frequency in hertz
-	 */
-
-	/*
-	 * We can't accommodate CPUs slower than 31.25 MHz.
-	 */
-	ASSERT(cpu_freq_hz > NANOSEC / (1 << NSEC_SHIFT));
-	nsec_scale =
-	    (uint_t)
-		(((uint64_t)NANOSEC << (32 - NSEC_SHIFT)) / cpu_freq_hz);
-
-	flags = clear_int_flag();
-	tsc = tsc_read();
-	(void) tsc_gethrtime();
-	tsc_max_delta = tsc_read() - tsc;
-	restore_int_flag(flags);
-}
-
 /*
  * Called once per second on a CPU from the cyclic subsystem's
  * CY_HIGH_LEVEL interrupt.  (No longer just cpu0-only)
@@ -395,267 +592,32 @@
 	CLOCK_UNLOCK(spl);
 }
 
-hrtime_t
-tsc_gethrtime(void)
-{
-	uint32_t old_hres_lock;
-	hrtime_t tsc, hrt;
-
-	do {
-		old_hres_lock = hres_lock;
-
-		if ((tsc = tsc_read()) >= tsc_last) {
-			/*
-			 * It would seem to be obvious that this is true
-			 * (that is, the past is less than the present),
-			 * but it isn't true in the presence of suspend/resume
-			 * cycles.  If we manage to call gethrtime()
-			 * after a resume, but before the first call to
-			 * tsc_tick(), we will see the jump.  In this case,
-			 * we will simply use the value in TSC as the delta.
-			 */
-			tsc -= tsc_last;
-		} else if (tsc >= tsc_last - 2*tsc_max_delta) {
-			/*
-			 * There is a chance that tsc_tick() has just run on
-			 * another CPU, and we have drifted just enough so that
-			 * we appear behind tsc_last.  In this case, force the
-			 * delta to be zero.
-			 */
-			tsc = 0;
-		}
-		hrt = tsc_hrtime_base;
-
-		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
-	} while ((old_hres_lock & ~1) != hres_lock);
-
-	return (hrt);
-}
-
-/*
- * This is similar to the above, but it cannot actually spin on hres_lock.
- * As a result, it caches all of the variables it needs; if the variables
- * don't change, it's done.
- */
-hrtime_t
-dtrace_gethrtime(void)
+void
+tsc_hrtimeinit(uint64_t cpu_freq_hz)
 {
-	uint32_t old_hres_lock;
-	hrtime_t tsc, hrt;
-	int flags;
-
-	do {
-		old_hres_lock = hres_lock;
-
-		/*
-		 * Interrupts are disabled to ensure that the thread isn't
-		 * migrated between the tsc_read() and adding the CPU's
-		 * TSC tick delta.
-		 */
-		flags = clear_int_flag();
-
-		tsc = tsc_read();
-
-		if (gethrtimef == tsc_gethrtime_delta)
-			tsc += tsc_sync_tick_delta[CPU->cpu_id];
-
-		restore_int_flag(flags);
-
-		/*
-		 * See the comments in tsc_gethrtime(), above.
-		 */
-		if (tsc >= tsc_last)
-			tsc -= tsc_last;
-		else if (tsc >= tsc_last - 2*tsc_max_delta)
-			tsc = 0;
-
-		hrt = tsc_hrtime_base;
-
-		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
-
-		if ((old_hres_lock & ~1) == hres_lock)
-			break;
-
-		/*
-		 * If we're here, the clock lock is locked -- or it has been
-		 * unlocked and locked since we looked.  This may be due to
-		 * tsc_tick() running on another CPU -- or it may be because
-		 * some code path has ended up in dtrace_probe() with
-		 * CLOCK_LOCK held.  We'll try to determine that we're in
-		 * the former case by taking another lap if the lock has
-		 * changed since when we first looked at it.
-		 */
-		if (old_hres_lock != hres_lock)
-			continue;
-
-		/*
-		 * So the lock was and is locked.  We'll use the old data
-		 * instead.
-		 */
-		old_hres_lock = shadow_hres_lock;
-
-		/*
-		 * Again, disable interrupts to ensure that the thread
-		 * isn't migrated between the tsc_read() and adding
-		 * the CPU's TSC tick delta.
-		 */
-		flags = clear_int_flag();
-
-		tsc = tsc_read();
-
-		if (gethrtimef == tsc_gethrtime_delta)
-			tsc += tsc_sync_tick_delta[CPU->cpu_id];
-
-		restore_int_flag(flags);
-
-		/*
-		 * See the comments in tsc_gethrtime(), above.
-		 */
-		if (tsc >= shadow_tsc_last)
-			tsc -= shadow_tsc_last;
-		else if (tsc >= shadow_tsc_last - 2 * tsc_max_delta)
-			tsc = 0;
-
-		hrt = shadow_tsc_hrtime_base;
+	extern int gethrtime_hires;
+	longlong_t tsc;
+	ulong_t flags;
 
-		TSC_CONVERT_AND_ADD(tsc, hrt, shadow_nsec_scale);
-	} while ((old_hres_lock & ~1) != shadow_hres_lock);
-
-	return (hrt);
-}
-
-hrtime_t
-tsc_gethrtime_delta(void)
-{
-	uint32_t old_hres_lock;
-	hrtime_t tsc, hrt;
-	int flags;
-
-	do {
-		old_hres_lock = hres_lock;
-
-		/*
-		 * We need to disable interrupts here to assure that we
-		 * don't migrate between the call to tsc_read() and
-		 * adding the CPU's TSC tick delta. Note that disabling
-		 * and reenabling preemption is forbidden here because
-		 * we may be in the middle of a fast trap. In the amd64
-		 * kernel we cannot tolerate preemption during a fast
-		 * trap. See _update_sregs().
-		 */
-
-		flags = clear_int_flag();
-		tsc = tsc_read() + tsc_sync_tick_delta[CPU->cpu_id];
-		restore_int_flag(flags);
-
-		/* See comments in tsc_gethrtime() above */
-
-		if (tsc >= tsc_last) {
-			tsc -= tsc_last;
-		} else if (tsc >= tsc_last - 2 * tsc_max_delta) {
-			tsc = 0;
-		}
-
-		hrt = tsc_hrtime_base;
-
-		TSC_CONVERT_AND_ADD(tsc, hrt, nsec_scale);
-	} while ((old_hres_lock & ~1) != hres_lock);
-
-	return (hrt);
-}
-
-extern uint64_t cpu_freq_hz;
-extern int tsc_gethrtime_enable;
-
-/*
- * The following converts nanoseconds of highres-time to ticks
- */
-
-static uint64_t
-hrtime2tick(hrtime_t ts)
-{
-	hrtime_t q = ts / NANOSEC;
-	hrtime_t r = ts - (q * NANOSEC);
-
-	return (q * cpu_freq_hz + ((r * cpu_freq_hz) / NANOSEC));
-}
-
-/*
- * This is used to convert scaled high-res time from nanoseconds to
- * unscaled hardware ticks.  (Read from hardware timestamp counter)
- */
-
-uint64_t
-unscalehrtime(hrtime_t ts)
-{
-	if (tsc_gethrtime_enable) {
-		uint64_t unscale = 0;
-		hrtime_t rescale;
-		hrtime_t diff = ts;
-
-		while (diff > (nsec_per_tick)) {
-			unscale += hrtime2tick(diff);
-			rescale = unscale;
-			scalehrtime(&rescale);
-			diff = ts - rescale;
-		}
-
-		return (unscale);
-	}
-	return (0);
-}
-
-
-hrtime_t
-tsc_gethrtimeunscaled(void)
-{
-	uint32_t old_hres_lock;
-	hrtime_t tsc;
-
-	do {
-		old_hres_lock = hres_lock;
-
-		/* See tsc_tick(). */
-		tsc = tsc_read() + tsc_last_jumped;
-	} while ((old_hres_lock & ~1) != hres_lock);
-
-	return (tsc);
-}
-
-
-/* Convert a tsc timestamp to nanoseconds */
-void
-tsc_scalehrtime(hrtime_t *tsc)
-{
-	hrtime_t hrt;
-	hrtime_t mytsc;
-
-	if (tsc == NULL)
-		return;
-	mytsc = *tsc;
-
-	TSC_CONVERT(mytsc, hrt, nsec_scale);
-	*tsc  = hrt;
-}
-
-hrtime_t
-tsc_gethrtimeunscaled_delta(void)
-{
-	hrtime_t hrt;
-	int flags;
+	/*
+	 * cpu_freq_hz is the measured cpu frequency in hertz
+	 */
 
 	/*
-	 * Similarly to tsc_gethrtime_delta, we need to disable preemption
-	 * to prevent migration between the call to tsc_gethrtimeunscaled
-	 * and adding the CPU's hrtime delta. Note that disabling and
-	 * reenabling preemption is forbidden here because we may be in the
-	 * middle of a fast trap. In the amd64 kernel we cannot tolerate
-	 * preemption during a fast trap. See _update_sregs().
+	 * We can't accommodate CPUs slower than 31.25 MHz.
 	 */
+	ASSERT(cpu_freq_hz > NANOSEC / (1 << NSEC_SHIFT));
+	nsec_scale =
+	    (uint_t)(((uint64_t)NANOSEC << (32 - NSEC_SHIFT)) / cpu_freq_hz);
 
 	flags = clear_int_flag();
-	hrt = tsc_gethrtimeunscaled() + tsc_sync_tick_delta[CPU->cpu_id];
+	tsc = tsc_read();
+	(void) tsc_gethrtime();
+	tsc_max_delta = tsc_read() - tsc;
 	restore_int_flag(flags);
-
-	return (hrt);
+	gethrtimef = tsc_gethrtime;
+	gethrtimeunscaledf = tsc_gethrtimeunscaled;
+	scalehrtimef = tsc_scalehrtime;
+	hrtime_tick = tsc_tick;
+	gethrtime_hires = 1;
 }
--- a/usr/src/uts/i86pc/os/trap.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/os/trap.c	Tue Sep 18 15:46:43 2007 -0700
@@ -96,6 +96,9 @@
 #include <sys/bootinfo.h>
 #include <sys/promif.h>
 #include <sys/mach_mmu.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 
 #define	USER	0x10000		/* user-mode flag added to trap type */
 
@@ -155,20 +158,13 @@
 #endif	/* TRAPTRACE */
 static void dumpregs(struct regs *);
 static void showregs(uint_t, struct regs *, caddr_t);
-static void dump_tss(void);
 static int kern_gpfault(struct regs *);
 
-struct trap_info {
-	struct regs *trap_regs;
-	uint_t trap_type;
-	caddr_t trap_addr;
-};
-
 /*ARGSUSED*/
 static int
 die(uint_t type, struct regs *rp, caddr_t addr, processorid_t cpuid)
 {
-	struct trap_info ti;
+	struct panic_trap_info ti;
 	const char *trap_name, *trap_mnemonic;
 
 	if (type < TRAP_TYPES) {
@@ -493,9 +489,9 @@
 				errcode &= ~PF_ERR_PROT;
 			} else {
 				priv_violation = (errcode & PF_ERR_USER) &&
-					!(attr & PROT_USER);
+				    !(attr & PROT_USER);
 				access_violation = (errcode & PF_ERR_WRITE) &&
-					!(attr & PROT_WRITE);
+				    !(attr & PROT_WRITE);
 				if (!priv_violation && !access_violation)
 					goto cleanup;
 			}
@@ -780,7 +776,7 @@
 		    sz, NULL, rw)) != 0) {
 			if (ta) {
 				do_watch_step(vaddr, sz, rw,
-					watchcode, rp->r_pc);
+				    watchcode, rp->r_pc);
 				fault_type = F_INVAL;
 			} else {
 				bzero(&siginfo, sizeof (siginfo));
@@ -1089,24 +1085,32 @@
 		break;
 
 	case T_GPFLT:	/* general protection violation */
-#if defined(__amd64)
+#if defined(__amd64) || defined(__xpv)
 		/*
 		 * On amd64, we can get a #gp from referencing addresses
-		 * in the virtual address hole e.g. from a copyin
-		 * or in update_sregs while updating user semgent registers.
+		 * in the virtual address hole e.g. from a copyin or in
+		 * update_sregs while updating user segment registers.
+		 *
+		 * On the 32-bit hypervisor we could also generate one in
+		 * mfn_to_pfn by reaching around or into where the hypervisor
+		 * lives which is protected by segmentation.
 		 */
 
 		/*
 		 * If we're under on_trap() protection (see <sys/ontrap.h>),
-		 * set ot_trap and longjmp back to the on_trap() call site.
+		 * set ot_trap and longjmp back to the on_trap() call site
+		 * for OT_DATA_ACCESS or OT_SEGMENT_ACCESS.
 		 */
 		if (ct->t_ontrap != NULL) {
-			if (ct->t_ontrap->ot_prot & OT_DATA_ACCESS)
-				ct->t_ontrap->ot_trap |= OT_DATA_ACCESS;
+			int ttype =  ct->t_ontrap->ot_prot &
+			    (OT_DATA_ACCESS | OT_SEGMENT_ACCESS);
 
-			if (ct->t_ontrap->ot_prot & OT_SEGMENT_ACCESS)
-				ct->t_ontrap->ot_trap |= OT_SEGMENT_ACCESS;
-			longjmp(&curthread->t_ontrap->ot_jmpbuf);
+			if (ttype != 0) {
+				ct->t_ontrap->ot_trap |= ttype;
+				if (tudebug)
+					showregs(type, rp, (caddr_t)0);
+				longjmp(&curthread->t_ontrap->ot_jmpbuf);
+			}
 		}
 
 		/*
@@ -1126,7 +1130,7 @@
 			goto cleanup;
 		}
 		/*FALLTHROUGH*/
-#endif
+#endif	/* __amd64 || __xpv */
 	case T_SEGFLT:	/* segment not present fault */
 #if defined(__amd64)
 		/*
@@ -1138,6 +1142,8 @@
 		if (ct->t_ontrap != NULL &&
 		    ct->t_ontrap->ot_prot & OT_SEGMENT_ACCESS) {
 			ct->t_ontrap->ot_trap |= OT_SEGMENT_ACCESS;
+			if (tudebug)
+				showregs(type, rp, (caddr_t)0);
 			longjmp(&curthread->t_ontrap->ot_jmpbuf);
 		}
 #endif	/* __amd64 */
@@ -1608,11 +1614,14 @@
 	    (uint_t)getcr0(), FMT_CR0, (uint_t)getcr4(), FMT_CR4);
 #endif	/* __lint */
 
+	printf("cr2: %lx", getcr2());
+#if !defined(__xpv)
+	printf("cr3: %lx", getcr3());
 #if defined(__amd64)
-	printf("cr2: %lx cr3: %lx cr8: %lx\n", getcr2(), getcr3(), getcr8());
-#elif defined(__i386)
-	printf("cr2: %lx cr3: %lx\n", getcr2(), getcr3());
+	printf("cr8: %lx\n", getcr8());
 #endif
+#endif
+	printf("\n");
 
 	dumpregs(rp);
 	splx(s);
@@ -1657,6 +1666,82 @@
 }
 
 /*
+ * Test to see if the instruction is iret on i386 or iretq on amd64.
+ *
+ * On the hypervisor we can only test for nopop_sys_rtt_syscall. If true
+ * then we are in the context of hypervisor's failsafe handler because it
+ * tried to iret and failed due to a bad selector. See xen_failsafe_callback.
+ */
+static int
+instr_is_iret(caddr_t pc)
+{
+
+#if defined(__xpv)
+	extern void nopop_sys_rtt_syscall(void);
+	return ((pc == (caddr_t)nopop_sys_rtt_syscall) ? 1 : 0);
+
+#else
+
+#if defined(__amd64)
+	static const uint8_t iret_insn[2] = { 0x48, 0xcf };	/* iretq */
+
+#elif defined(__i386)
+	static const uint8_t iret_insn[1] = { 0xcf };		/* iret */
+#endif	/* __i386 */
+	return (bcmp(pc, iret_insn, sizeof (iret_insn)) == 0);
+
+#endif	/* __xpv */
+}
+
+#if defined(__i386)
+
+/*
+ * Test to see if the instruction is part of __SEGREGS_POP
+ *
+ * Note carefully the appallingly awful dependency between
+ * the instruction sequence used in __SEGREGS_POP and these
+ * instructions encoded here.
+ */
+static int
+instr_is_segregs_pop(caddr_t pc)
+{
+	static const uint8_t movw_0_esp_gs[4] = { 0x8e, 0x6c, 0x24, 0x0 };
+	static const uint8_t movw_4_esp_fs[4] = { 0x8e, 0x64, 0x24, 0x4 };
+	static const uint8_t movw_8_esp_es[4] = { 0x8e, 0x44, 0x24, 0x8 };
+	static const uint8_t movw_c_esp_ds[4] = { 0x8e, 0x5c, 0x24, 0xc };
+
+	if (bcmp(pc, movw_0_esp_gs, sizeof (movw_0_esp_gs)) == 0 ||
+	    bcmp(pc, movw_4_esp_fs, sizeof (movw_4_esp_fs)) == 0 ||
+	    bcmp(pc, movw_8_esp_es, sizeof (movw_8_esp_es)) == 0 ||
+	    bcmp(pc, movw_c_esp_ds, sizeof (movw_c_esp_ds)) == 0)
+		return (1);
+
+	return (0);
+}
+
+#endif	/* __i386 */
+
+/*
+ * Test to see if the instruction is part of _sys_rtt.
+ *
+ * Again on the hypervisor if we try to IRET to user land with a bad code
+ * or stack selector we will get vectored through xen_failsafe_callback.
+ * In which case we assume we got here via _sys_rtt since we only allow
+ * IRET to user land to take place in _sys_rtt.
+ */
+static int
+instr_is_sys_rtt(caddr_t pc)
+{
+	extern void _sys_rtt(), _sys_rtt_end();
+
+	if ((uintptr_t)pc < (uintptr_t)_sys_rtt ||
+	    (uintptr_t)pc > (uintptr_t)_sys_rtt_end)
+		return (0);
+
+	return (1);
+}
+
+/*
  * Handle #gp faults in kernel mode.
  *
  * One legitimate way this can happen is if we attempt to update segment
@@ -1688,33 +1773,12 @@
 	caddr_t pc = (caddr_t)rp->r_pc;
 	int v;
 
-	extern void _sys_rtt(), sr_sup();
-
-#if defined(__amd64)
-	static const uint8_t iretq_insn[2] = { 0x48, 0xcf };
-
-#elif defined(__i386)
-	static const uint8_t iret_insn[1] = { 0xcf };
-
 	/*
-	 * Note carefully the appallingly awful dependency between
-	 * the instruction sequence used in __SEGREGS_POP and these
-	 * instructions encoded here.
-	 *
-	 * XX64	Add some commentary to locore.s/privregs.h to document this.
+	 * if we're not an lwp, or in the case of running native the
+	 * pc range is outside _sys_rtt, then we should immediately
+	 * be die()ing horribly.
 	 */
-	static const uint8_t movw_0_esp_gs[4] = { 0x8e, 0x6c, 0x24, 0x0 };
-	static const uint8_t movw_4_esp_fs[4] = { 0x8e, 0x64, 0x24, 0x4 };
-	static const uint8_t movw_8_esp_es[4] = { 0x8e, 0x44, 0x24, 0x8 };
-	static const uint8_t movw_c_esp_ds[4] = { 0x8e, 0x5c, 0x24, 0xc };
-#endif
-	/*
-	 * if we're not an lwp, or the pc range is outside _sys_rtt, then
-	 * we should immediately be die()ing horribly
-	 */
-	if (lwp == NULL ||
-	    (uintptr_t)pc < (uintptr_t)_sys_rtt ||
-	    (uintptr_t)pc > (uintptr_t)sr_sup)
+	if (lwp == NULL || !instr_is_sys_rtt(pc))
 		return (1);
 
 	/*
@@ -1725,12 +1789,9 @@
 	 * based on the order in which the stack is deconstructed in
 	 * _sys_rtt. Ew.
 	 */
-
-#if defined(__amd64)
-
-	if (bcmp(pc, iretq_insn, sizeof (iretq_insn)) == 0) {
+	if (instr_is_iret(pc)) {
 		/*
-		 * We took the #gp while trying to perform the iretq.
+		 * We took the #gp while trying to perform the IRET.
 		 * This means that either %cs or %ss are bad.
 		 * All we know for sure is that most of the general
 		 * registers have been restored, including the
@@ -1758,58 +1819,35 @@
 		ASSERT(trp->r_pc == lwptoregs(lwp)->r_pc);
 		ASSERT(trp->r_err == rp->r_err);
 
+
+
+	}
+
+#if defined(__amd64)
+	if (trp == NULL && lwp->lwp_pcb.pcb_rupdate != 0) {
+
+		/*
+		 * This is the common case -- we're trying to load
+		 * a bad segment register value in the only section
+		 * of kernel code that ever loads segment registers.
+		 *
+		 * We don't need to do anything at this point because
+		 * the pcb contains all the pending segment register
+		 * state, and the regs are still intact because we
+		 * didn't adjust the stack pointer yet.  Given the fidelity
+		 * of all this, we could conceivably send a signal
+		 * to the lwp, rather than core-ing.
+		 */
+		trp = lwptoregs(lwp);
+		ASSERT((caddr_t)trp == (caddr_t)rp->r_sp);
 	}
 
 #elif defined(__i386)
 
-	if (bcmp(pc, iret_insn, sizeof (iret_insn)) == 0) {
-		/*
-		 * We took the #gp while trying to perform the iret.
-		 * This means that either %cs or %ss are bad.
-		 * All we know for sure is that most of the general
-		 * registers have been restored, including the
-		 * segment registers, and all we have left on the
-		 * topmost part of the lwp's stack are the registers that
-		 * the iret was unable to consume.
-		 *
-		 * All the rest of the state was crushed by the #gp
-		 * which pushed -its- registers atop our old save area
-		 * (because we had to decrement the stack pointer, sigh) so
-		 * all that we can try and do is to reconstruct the
-		 * crushed frame from the #gp trap frame itself.
-		 */
-		trp = &tmpregs;
-		trp->r_ss = lwptoregs(lwp)->r_ss;
-		trp->r_sp = lwptoregs(lwp)->r_sp;
-		trp->r_ps = lwptoregs(lwp)->r_ps;
-		trp->r_cs = lwptoregs(lwp)->r_cs;
-		trp->r_pc = lwptoregs(lwp)->r_pc;
-		bcopy(rp, trp, offsetof(struct regs, r_pc));
+	if (trp == NULL && instr_is_segregs_pop(pc))
+		trp = lwptoregs(lwp);
 
-		ASSERT(trp->r_pc == lwptoregs(lwp)->r_pc);
-		ASSERT(trp->r_err == rp->r_err);
-
-	} else {
-		/*
-		 * Segment registers are reloaded in _sys_rtt
-		 * via the following sequence:
-		 *
-		 *	movw	0(%esp), %gs
-		 *	movw	4(%esp), %fs
-		 *	movw	8(%esp), %es
-		 *	movw	12(%esp), %ds
-		 *	addl	$16, %esp
-		 *
-		 * Thus if any of them fault, we know the user
-		 * registers are left unharmed on the stack.
-		 */
-		if (bcmp(pc, movw_0_esp_gs, sizeof (movw_0_esp_gs)) == 0 ||
-		    bcmp(pc, movw_4_esp_fs, sizeof (movw_4_esp_fs)) == 0 ||
-		    bcmp(pc, movw_8_esp_es, sizeof (movw_8_esp_es)) == 0 ||
-		    bcmp(pc, movw_c_esp_ds, sizeof (movw_c_esp_ds)) == 0)
-			trp = lwptoregs(lwp);
-	}
-#endif	/* __amd64 */
+#endif	/* __i386 */
 
 	if (trp == NULL)
 		return (1);
@@ -1831,13 +1869,14 @@
 	if ((caddr_t)trp != (caddr_t)lwptoregs(lwp))
 		bcopy(trp, lwptoregs(lwp), sizeof (*trp));
 
+
 	mutex_enter(&p->p_lock);
 	lwp->lwp_cursig = SIGSEGV;
 	mutex_exit(&p->p_lock);
 
 	/*
-	 * Terminate all LWPs but don't discard them.  If another lwp beat us to
-	 * the punch by calling exit(), evaporate now.
+	 * Terminate all LWPs but don't discard them.  If another lwp beat
+	 * us to the punch by calling exit(), evaporate now.
 	 */
 	proc_is_exiting(p);
 	if (exitlwps(1) != 0) {
@@ -1862,6 +1901,7 @@
  * dump_tss() - Display the TSS structure
  */
 
+#if !defined(__xpv)
 #if defined(__amd64)
 
 static void
@@ -1909,11 +1949,12 @@
 }
 
 #endif	/* __amd64 */
+#endif	/* !__xpv */
 
 #if defined(TRAPTRACE)
 
-int ttrace_nrec = 0;		/* number of records to dump out */
-int ttrace_dump_nregs = 5;	/* dump out this many records with regs too */
+int ttrace_nrec = 10;		/* number of records to dump out */
+int ttrace_dump_nregs = 0;	/* dump out this many records with regs too */
 
 /*
  * Dump out the last ttrace_nrec traptrace records on each CPU
@@ -1928,12 +1969,12 @@
 	int n = NCPU;
 #if defined(__amd64)
 	const char banner[] =
-		"\ncpu          address    timestamp "
-		"type  vc  handler   pc\n";
+	    "\ncpu          address    timestamp "
+	    "type  vc  handler   pc\n";
 	const char fmt1[] = "%3d %016lx %12llx ";
 #elif defined(__i386)
 	const char banner[] =
-		"\ncpu  address     timestamp type  vc  handler   pc\n";
+	    "\ncpu  address     timestamp type  vc  handler   pc\n";
 	const char fmt1[] = "%3d %08lx %12llx ";
 #endif
 	const char fmt2[] = "%4s %3x ";
@@ -2139,20 +2180,22 @@
 #endif	/* TRAPTRACE */
 
 void
-panic_showtrap(struct trap_info *tip)
+panic_showtrap(struct panic_trap_info *tip)
 {
 	showregs(tip->trap_type, tip->trap_regs, tip->trap_addr);
 
 #if defined(TRAPTRACE)
 	dump_ttrace();
-#endif	/* TRAPTRACE */
+#endif
 
+#if !defined(__xpv)
 	if (tip->trap_type == T_DBLFLT)
 		dump_tss();
+#endif
 }
 
 void
-panic_savetrap(panic_data_t *pdp, struct trap_info *tip)
+panic_savetrap(panic_data_t *pdp, struct panic_trap_info *tip)
 {
 	panic_saveregs(pdp, tip->trap_regs);
 }
--- a/usr/src/uts/i86pc/sys/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -47,8 +47,10 @@
 	ddi_subrdefs.h	\
 	debug_info.h 	\
 	mach_mmu.h	\
+	machclock.h	\
 	machcpuvar.h	\
 	machparam.h	\
+	machprivregs.h	\
 	machsystm.h	\
 	machthread.h	\
 	memnode.h	\
--- a/usr/src/uts/i86pc/sys/apic.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/apic.h	Tue Sep 18 15:46:43 2007 -0700
@@ -710,6 +710,8 @@
     int pri, int behavior);
 extern void  apic_free_vectors(dev_info_t *dip, int inum, int count, int pri,
     int type);
+extern int apic_get_vector_intr_info(int vecirq,
+    apic_get_intr_t *intr_params_p);
 extern uchar_t apic_find_multi_vectors(int pri, int count);
 extern int apic_setup_io_intr(void *p, int irq, boolean_t deferred);
 extern uint32_t *mapin_apic(uint32_t addr, size_t len, int flags);
@@ -731,7 +733,7 @@
 #ifdef _MACHDEP
 extern cpuset_t apic_cpumask;
 #endif
-extern uint_t apic_flag;
+extern uint_t apic_picinit_called;
 extern uchar_t apic_ipltopri[MAXIPL+1];
 extern uchar_t apic_vector_to_irq[APIC_MAX_VECTOR+1];
 extern int apic_max_device_irq;
--- a/usr/src/uts/i86pc/sys/boot_console.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/boot_console.h	Tue Sep 18 15:46:43 2007 -0700
@@ -41,6 +41,10 @@
 #define	CONS_TTYA		1
 #define	CONS_TTYB		2
 #define	CONS_USBSER		3
+#define	CONS_HYPERVISOR		4
+
+#define	CONS_MIN	CONS_SCREEN_TEXT
+#define	CONS_MAX	CONS_HYPERVISOR
 
 #define	CONS_COLOR	7
 
@@ -49,12 +53,17 @@
 extern int kb_ischar(void);
 
 extern void bcons_init(char *);
-extern void bcons_init2(char *, char *, char *);
 extern void bcons_putchar(int);
 extern int bcons_getchar(void);
 extern int bcons_ischar(void);
 extern int bcons_gets(char *, int);
 
+#if !defined(_BOOT)
+extern void bcons_init2(char *, char *, char *);
+extern boolean_t bcons_hypervisor_redirect(void);
+extern void bcons_device_change(int);
+#endif /* !_BOOT */
+
 extern int console;
 
 #ifdef __cplusplus
--- a/usr/src/uts/i86pc/sys/clock.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/clock.h	Tue Sep 18 15:46:43 2007 -0700
@@ -52,18 +52,22 @@
 extern void hres_tick(void);
 extern void (*hrtime_tick)(void);
 
+#ifndef __xpv
 extern void tsc_hrtimeinit(uint64_t cpu_freq_hz);
-extern hrtime_t tsc_gethrtime(void);
-extern hrtime_t tsc_gethrtime_delta(void);
-extern hrtime_t tsc_gethrtimeunscaled(void);
-extern void tsc_scalehrtime(hrtime_t *);
-extern hrtime_t tsc_gethrtimeunscaled_delta(void);
-extern void tsc_tick(void);
 extern void tsc_sync_master(processorid_t);
 extern void tsc_sync_slave(void);
+#endif
+
+/*
+ * Careful: this can always return zero on some systems.  Use the system hrtime
+ * routines if you want a meaningful time.
+ */
 extern hrtime_t tsc_read(void);
+
 extern hrtime_t __rdtsc_insn(void);
 
+extern int tsc_gethrtime_enable;
+
 #define	ADJ_SHIFT 4		/* used in get_hrestime */
 
 #define	YRBASE		00	/* 1900 - what year 0 in chip represents */
--- a/usr/src/uts/i86pc/sys/debug_info.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/debug_info.h	Tue Sep 18 15:46:43 2007 -0700
@@ -28,8 +28,6 @@
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
-#include <sys/machparam.h>
-
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -37,9 +35,22 @@
 #define	DEBUG_INFO_MAGIC 0xdeb116ed
 #define	DEBUG_INFO_VERSION 0x1
 
+/*
+ * We place this structure at a well-known DEBUG_INFO_VA to allow 'external'
+ * debuggers to bootstrap themselves; in particular libkvm when applied to
+ * hypervisor domains or their core files.
+ */
 typedef struct debug_info {
 	uint32_t di_magic;
 	uint32_t di_version;
+	/* address of 'modules' */
+	uintptr_t di_modules;
+	uintptr_t di_s_text;
+	uintptr_t di_e_text;
+	uintptr_t di_s_data;
+	uintptr_t di_e_data;
+	size_t di_hat_htable_off;
+	size_t di_ht_pfn_off;
 } debug_info_t;
 
 #ifdef	__cplusplus
--- a/usr/src/uts/i86pc/sys/mach_mmu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/mach_mmu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -123,11 +123,19 @@
  *
  * PT_NOCONSIST - There is no hment entry for this mapping.
  *
+ * PT_FOREIGN - used for the hypervisor, check via
+ *		(pte & PT_SOFTWARE) >= PT_FOREIGN
+ *		as it might set	0x800 for foreign grant table mappings.
  */
 #define	PT_NOSYNC	(0x200)	/* PTE was created with HAT_NOSYNC */
 #define	PT_NOCONSIST	(0x400)	/* PTE was created with HAT_LOAD_NOCONSIST */
+#define	PT_FOREIGN	(0x600)	/* MFN mapped on the hypervisor has no PFN */
 
+#ifdef __xpv
+#include <sys/xen_mmu.h>
+#else
 #include <sys/pc_mmu.h>
+#endif
 
 /*
  * The software extraction for a single Page Table Entry will always
--- a/usr/src/uts/i86pc/sys/machcpuvar.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/machcpuvar.h	Tue Sep 18 15:46:43 2007 -0700
@@ -54,6 +54,17 @@
 struct cmi;
 struct cpu_ucode_info;
 
+/*
+ * A note about the hypervisor affinity bits: a one bit in the affinity mask
+ * means the corresponding event channel is allowed to be serviced
+ * by this cpu.
+ */
+struct xen_evt_data {
+	ulong_t		pending_sel[PIL_MAX + 1]; /* event array selectors */
+	ulong_t		pending_evts[PIL_MAX + 1][sizeof (ulong_t) * 8];
+	ulong_t		evt_affinity[sizeof (ulong_t) * 8]; /* service on cpu */
+};
+
 struct	machcpu {
 	/* define all the x_call stuff */
 	volatile int	xc_pend[X_CALL_LEVELS];
@@ -101,9 +112,10 @@
 #endif
 
 	struct vcpu_info *mcpu_vcpu_info;
-	uint64_t	mcpu_gdtpa;	/* xen: GDT in physical address */
+	uint64_t	mcpu_gdtpa;	/* hypervisor: GDT physical address */
 
-	uint16_t mcpu_intr_pending;	/* xen: pending interrupt levels */
+	uint16_t mcpu_intr_pending;	/* hypervisor: pending intrpt levels */
+	struct xen_evt_data *mcpu_evt_pend; /* hypervisor: pending events */
 
 	volatile uint32_t *mcpu_mwait;	/* MONITOR/MWAIT buffer */
 
--- a/usr/src/uts/i86pc/sys/machparam.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/machparam.h	Tue Sep 18 15:46:43 2007 -0700
@@ -34,6 +34,11 @@
 
 #if !defined(_ASM)
 #include <sys/types.h>
+
+#if defined(__xpv)
+#include <sys/xpv_impl.h>
+#endif
+
 #endif
 
 #ifdef	__cplusplus
@@ -63,7 +68,6 @@
 #define	MAXNODES 	4
 #define	NUMA_NODEMASK	0x0f
 
-
 /*
  * Define the FPU symbol if we could run on a machine with an external
  * FPU (i.e. not integrated with the normal machine state like the vax).
@@ -131,8 +135,20 @@
  * _kernelbase.
  */
 #define	KERNEL_TEXT_amd64	UINT64_C(0xfffffffffb800000)
+
+#ifdef __i386
+
 #define	KERNEL_TEXT_i386	ADDRESS_C(0xfe800000)
 
+/*
+ * We don't use HYPERVISOR_VIRT_START, as we need both the PAE and non-PAE
+ * versions in our code. We always compile based on the lower PAE address.
+ */
+#define	KERNEL_TEXT_i386_xpv	\
+	(HYPERVISOR_VIRT_START_PAE - 3 * ADDRESS_C(0x400000))
+
+#endif /* __i386 */
+
 #if defined(__amd64)
 
 #define	KERNELBASE	ADDRESS_C(0xfffffd8000000000)
@@ -202,8 +218,16 @@
  * limit give dtrace the red zone it needs below kernelbase.  The 32-bit
  * limit gives us a small red zone to detect address-space overruns in a
  * user program.
+ *
+ * On the hypervisor, we limit the user to memory below the VA hole.
+ * Subtract 1 large page for a red zone.
  */
+#if defined(__xpv)
+#define	USERLIMIT	ADDRESS_C(0x00007fffffe00000)
+#else
 #define	USERLIMIT	ADDRESS_C(0xfffffd7fffe00000)
+#endif
+
 #ifdef bug_5074717_is_fixed
 #define	USERLIMIT32	ADDRESS_C(0xfffff000)
 #else
@@ -237,9 +261,14 @@
 /*
  * This is the last 4MB of the 4G address space. Some psm modules
  * need this region of virtual address space mapped 1-1
+ * The top 64MB of the address space is reserved for the hypervisor.
  */
 #define	PROMSTART	ADDRESS_C(0xffc00000)
+#ifdef __xpv
+#define	KERNEL_TEXT	KERNEL_TEXT_i386_xpv
+#else
 #define	KERNEL_TEXT	KERNEL_TEXT_i386
+#endif
 
 /*
  * Virtual address range available to the debugger
--- a/usr/src/uts/i86pc/sys/machprivregs.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/machprivregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -74,7 +74,11 @@
 #if defined(__amd64)
 
 #define	IRET	iretq
+#define	SYSRETQ	sysretq
+#define	SYSRETL	sysretl
 #define	SWAPGS	swapgs
+#define	XPV_TRAP_POP	/* empty */
+#define	XPV_TRAP_PUSH	/* empty */
 
 #elif defined(__i386)
 
@@ -84,6 +88,7 @@
 
 #define	CLEAN_CS	/* empty */
 
+
 /*
  * Macros for saving the original segment registers and restoring them
  * for fast traps.
--- a/usr/src/uts/i86pc/sys/machsystm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/machsystm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -56,7 +56,6 @@
 extern void mach_cpu_idle(void);
 extern void mach_cpu_halt(char *);
 extern int mach_cpu_start(cpu_t *, void *);
-extern uint32_t *mach_alloc_mwait(cpu_t *cp);
 
 extern int Cpudelay;
 extern void setcpudelay(void);
@@ -71,6 +70,12 @@
 extern void kcpc_hw_fini(cpu_t *cp);
 extern int kcpc_hw_overflow_intr_installed;
 
+struct panic_trap_info {
+	struct regs *trap_regs;
+	uint_t trap_type;
+	caddr_t trap_addr;
+};
+
 struct memconf {
 	pfn_t	mcf_spfn;	/* begin page frame number */
 	pfn_t	mcf_epfn;	/* end page frame number */
@@ -97,7 +102,10 @@
 extern void do_interrupt(struct regs *, trap_trace_rec_t *);
 extern void memscrub_disable(void);
 
+#ifndef __xpv
 extern unsigned int microdata;
+#endif
+
 extern int use_mp;
 
 extern struct cpu	cpus[];		/* pointer to other cpus */
@@ -125,6 +133,12 @@
 extern int linear_pc(struct regs *rp, proc_t *p, caddr_t *linearp);
 extern int dtrace_linear_pc(struct regs *rp, proc_t *p, caddr_t *linearp);
 
+#ifdef __xpv
+#include <sys/xen_mmu.h>
+extern page_t *page_get_high_mfn(mfn_t);
+#endif
+
+
 #endif /* _KERNEL */
 
 #ifdef __cplusplus
--- a/usr/src/uts/i86pc/sys/psm_common.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/psm_common.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -59,6 +58,7 @@
 	uchar_t		device_status;
 } acpi_psm_lnk_t;
 
+typedef void (*intr_exit_fn_t)(int prev_ipl, int irq);
 
 /*
  * status definition for device_status (as returned by _STA)
@@ -139,6 +139,7 @@
 
 extern void psm_set_elcr(int vecno, int val);
 extern int psm_get_elcr(int vecno);
+extern intr_exit_fn_t psm_intr_exit_fn(void);
 
 #ifdef	__cplusplus
 }
--- a/usr/src/uts/i86pc/sys/vm_machparam.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/sys/vm_machparam.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -21,10 +20,8 @@
  */
 /*	Copyright (c) 1988 AT&T	*/
 /*	  All Rights Reserved  	*/
-
-
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -55,14 +52,22 @@
  */
 #ifdef __amd64
 /*
- * The maximum stack size on amd64 is chosen to allow the stack to consume
- * all the va space between the top of the user's virtual address space and
- * the top of the va hole.
+ * On amd64, the stack grows down from just below KERNELBASE (see the
+ * definition of USERLIMIT in i86pc/sys/machparam.h). Theoretically,
+ * it could grow down to the top of the VA hole (0xffff800000000000),
+ * giving it a possible maximum of about 125T. For an amd64 xpv
+ * kernel, all user VA space is below the VA hole. The theoretical
+ * maximum for the stack is about the same, although it can't grow
+ * to quite that size, since it would clash with the heap.
+ *
+ * Pick an upper limit that will work in both cases: 32T.
+ *
+ * For 32bit processes, the stack is below the text segment.
  */
-#define	MAXSSIZ		(USRSTACK - 0xFFFF800000000000)
+#define	MAXSSIZ		(32ULL * 1024ULL * 1024ULL * 1024ULL * 1024ULL)
 #else
 #define	MAXSSIZ		(USRSTACK - 1024*1024)
-#endif
+#endif /* __amd64 */
 #define	DFLSSIZ		(8*1024*1024 + ((USRSTACK) & 0x3FFFFF))
 
 /*
--- a/usr/src/uts/i86pc/unix/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/unix/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -56,7 +56,6 @@
 
 ROOTMODULE	= $(ROOT_PSM_KERN_DIR)/$(UNIX)
 ROOT_MULTIBOOT	= $(ROOT_PSM_DIR)/$(MULTIBOOT)
-BOOT_KERNEL	= $(ROOT_BOOT_PSM_KERN_DIR)/$(UNIX)
 
 UNIX_BIN	= $(OBJS_DIR)/$(UNIX)
 
@@ -71,6 +70,7 @@
 
 DBOOT_OBJS_DIR	= dboot/$(OBJS_DIR)
 DBOOT_OBJECTS	= $(DBOOT_OBJS:%=$(DBOOT_OBJS_DIR)/%)
+DBOOT_BIN	= $(DBOOT_OBJS_DIR)/$(DBOOT)
 DBOOT_O		= $(OBJS_DIR)/$(DBOOT).o
 DBOOT_S		= $(DBOOT_O:%.o=%.s)
 DBOOT_LINTS	= $(DBOOT_OBJS:%.o=$(DBOOT_OBJS_DIR)/%.ln)
@@ -87,7 +87,7 @@
 #
 ALL_TARGET	= $(UNIX_BIN) $(MULTIBOOT)
 LINT_TARGET	= $(LINT_LIB) $(DBOOT_LINT_LIB)
-INSTALL_TARGET	= $(UNIX_BIN) $(MULTIBOOT) $(ROOTMODULE) $(ROOT_MULTIBOOT) $(BOOT_KERNEL)
+INSTALL_TARGET	= $(UNIX_BIN) $(MULTIBOOT) $(ROOTMODULE) $(ROOT_MULTIBOOT)
 
 #
 #	This is UNIX_DIR. Use a short path.
@@ -108,7 +108,7 @@
 	$(OBJS_DIR)/bios_call_src.o \
 	$(OBJS_DIR)/bios_call_src \
 	$(OBJS_DIR)/bios_call.s \
-	$(DBOOT_OBJS_DIR)/$(DBOOT)
+	$(DBOOT_BIN)
 
 CLOBBERFILES	= $(CLEANFILES) $(UNIX_BIN) $(MULTIBOOT)
 CLEANLINTFILES	+= $(LINT_LIB) $(DBOOT_LINT_LIB) $(DBOOT_LINTS)
@@ -167,13 +167,15 @@
 $(UNIX_O):	$(OBJECTS) $(OBJS_DIR)/vers.o
 	$(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
 
-$(DBOOT_O):	$(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS)
-	$(LD) -dn -M dboot/Mapfile.dboot \
-		-o $(DBOOT_OBJS_DIR)/$(DBOOT) $(DBOOT_OBJECTS)
+$(DBOOT_BIN):	$(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS) dboot/Mapfile.dboot
+	$(LD) -dn -e _start -M dboot/Mapfile.dboot \
+		-o $(DBOOT_BIN) $(DBOOT_OBJECTS)
+
+$(DBOOT_O):	$(DBOOT_BIN)
 	@echo "	.data"					> $(DBOOT_S)
 	@echo "	.globl	dboot_image"			>> $(DBOOT_S)
 	@echo "dboot_image:"				>> $(DBOOT_S)
-	$(ELFEXTRACT) $(DBOOT_OBJS_DIR)/$(DBOOT)	>> $(DBOOT_S)
+	$(ELFEXTRACT) $(DBOOT_BIN)			>> $(DBOOT_S)
 	$(COMPILE.s) -o $(DBOOT_O) $(DBOOT_S)
 
 $(DBOOT_OBJS_DIR):
@@ -184,14 +186,7 @@
 # dboot.o the dependency here.
 #
 $(MULTIBOOT):	$(DBOOT_O)
-	$(CP)	$(DBOOT_OBJS_DIR)/$(DBOOT) $(MULTIBOOT)
-	$(POST_PROCESS)
-
-#
-# The boot kernel is a copy of the 32-bit kernel paired with the
-# install/failsafe miniroot
-$(BOOT_KERNEL):	$(ROOTMODULE) $(ROOT_BOOT_PSM_KERN_DIR)
-	$(CP)	$(ROOTMODULE) $(BOOT_KERNEL)
+	$(CP)	$(DBOOT_BIN) $(MULTIBOOT)
 	$(POST_PROCESS)
 
 #
--- a/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot	Tue Sep 18 15:46:43 2007 -0700
@@ -28,5 +28,11 @@
 #ident	"%Z%%M%	%I%	%E% SMI"
 #
 
-dboot = LOAD ?RWX V0xC00000 P0xC00000 A0x1000;
+dboot = LOAD ?RWXO V0xC00000 P0xC00000 A0x1000;
+#
+# Make sure that dboot_grub.s`_start is the first thing in the dboot
+# .text segment, since when we boot that's where the boot loader will
+# start execution
+#
+dboot : .text : *dboot_grub.o;
 dboot : ?A;
--- a/usr/src/uts/i86pc/vm/hat_i86.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/hat_i86.c	Tue Sep 18 15:46:43 2007 -0700
@@ -72,6 +72,9 @@
 #include <vm/seg_kp.h>
 #include <vm/seg_kpm.h>
 #include <vm/vm_dep.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 #include <vm/kboot_mmu.h>
 #include <vm/seg_spt.h>
 
@@ -85,29 +88,15 @@
 /*
  * The page that is the kernel's top level pagetable.
  *
- * For 32 bit VLP support, the kernel hat will use the 1st 4 entries
+ * For 32 bit PAE support on i86pc, the kernel hat will use the 1st 4 entries
  * on this 4K page for its top level page table. The remaining groups of
  * 4 entries are used for per processor copies of user VLP pagetables for
  * running threads.  See hat_switch() and reload_pae32() for details.
  *
- * vlp_page[0] - 0th level==2 PTE for kernel HAT (will be zero)
- * vlp_page[1] - 1st level==2 PTE for kernel HAT (will be zero)
- * vlp_page[2] - 2nd level==2 PTE for kernel HAT (zero for small memory)
- * vlp_page[3] - 3rd level==2 PTE for kernel
- *
- * vlp_page[4] - 0th level==2 PTE for user thread on cpu 0
- * vlp_page[5] - 1st level==2 PTE for user thread on cpu 0
- * vlp_page[6] - 2nd level==2 PTE for user thread on cpu 0
- * vlp_page[7] - probably copy of kernel PTE
- *
- * vlp_page[8]  - 0th level==2 PTE for user thread on cpu 1
- * vlp_page[9]  - 1st level==2 PTE for user thread on cpu 1
- * vlp_page[10] - 2nd level==2 PTE for user thread on cpu 1
- * vlp_page[11] - probably copy of kernel PTE
- * ...
- *
- * when / where the kernel PTE's are (entry 2 or 3 or none) depends
- * on kernelbase.
+ * vlp_page[0..3] - level==2 PTEs for kernel HAT
+ * vlp_page[4..7] - level==2 PTEs for user thread on cpu 0
+ * vlp_page[8..11]  - level==2 PTE for user thread on cpu 1
+ * etc...
  */
 static x86pte_t *vlp_page;
 
@@ -119,27 +108,24 @@
 
 /*
  * The kernel address space exists in all HATs. To implement this the
- * kernel reserves a fixed number of entries in every topmost level page
- * table. The values are setup in hat_init() and then copied to every hat
- * created by hat_alloc(). This means that kernelbase must be:
+ * kernel reserves a fixed number of entries in the topmost level(s) of page
+ * tables. The values are setup during startup and then copied to every user
+ * hat created by hat_alloc(). This means that kernelbase must be:
  *
  *	  4Meg aligned for 32 bit kernels
  *	512Gig aligned for x86_64 64 bit kernel
  *
- * The PAE 32 bit hat is handled as a special case. Otherwise requiring 1Gig
- * alignment would use too much VA for the kernel.
- *
+ * The hat_kernel_range_ts describe what needs to be copied from kernel hat
+ * to each user hat.
  */
-static uint_t	khat_start;	/* index of 1st entry in kernel's top ptable */
-static uint_t	khat_entries;	/* number of entries in kernel's top ptable */
-
-#if defined(__i386)
-
-static htable_t	*khat_pae32_htable = NULL;
-static uint_t	khat_pae32_start;
-static uint_t	khat_pae32_entries;
-
-#endif
+typedef struct hat_kernel_range {
+	level_t		hkr_level;
+	uintptr_t	hkr_start_va;
+	uintptr_t	hkr_end_va;	/* zero means to end of memory */
+} hat_kernel_range_t;
+#define	NUM_KERNEL_RANGE 2
+static hat_kernel_range_t kernel_ranges[NUM_KERNEL_RANGE];
+static int num_kernel_ranges;
 
 uint_t use_boot_reserve = 1;	/* cleared after early boot process */
 uint_t can_steal_post_boot = 0;	/* set late in boot to enable stealing */
@@ -214,9 +200,16 @@
 hat_t *
 hat_alloc(struct as *as)
 {
-	hat_t		*hat;
-	htable_t	*ht;	/* top level htable */
-	uint_t		use_vlp;
+	hat_t			*hat;
+	htable_t		*ht;	/* top level htable */
+	uint_t			use_vlp;
+	uint_t			r;
+	hat_kernel_range_t	*rp;
+	uintptr_t		va;
+	uintptr_t		eva;
+	uint_t			start;
+	uint_t			cnt;
+	htable_t		*src;
 
 	/*
 	 * Once we start creating user process HATs we can enable
@@ -231,14 +224,21 @@
 	mutex_init(&hat->hat_mutex, NULL, MUTEX_DEFAULT, NULL);
 	ASSERT(hat->hat_flags == 0);
 
+#if defined(__xpv)
 	/*
-	 * a 32 bit process uses a VLP style hat when using PAE
+	 * No VLP stuff on the hypervisor due to the 64-bit split top level
+	 * page tables.  On 32-bit it's not needed as the hypervisor takes
+	 * care of copying the top level PTEs to a below 4Gig page.
 	 */
+	use_vlp = 0;
+#else	/* __xpv */
+	/* 32 bit processes uses a VLP style hat when running with PAE */
 #if defined(__amd64)
 	use_vlp = (ttoproc(curthread)->p_model == DATAMODEL_ILP32);
 #elif defined(__i386)
 	use_vlp = mmu.pae_hat;
 #endif
+#endif	/* __xpv */
 	if (use_vlp) {
 		hat->hat_flags = HAT_VLP;
 		bzero(hat->hat_vlp_ptes, VLP_SIZE);
@@ -258,40 +258,65 @@
 
 	/*
 	 * Initialize Kernel HAT entries at the top of the top level page
-	 * table for the new hat.
-	 *
-	 * Note that we don't call htable_release() for the top level, that
-	 * happens when the hat is destroyed in hat_free_end()
+	 * tables for the new hat.
 	 */
 	hat->hat_htable = NULL;
 	hat->hat_ht_cached = NULL;
+	XPV_DISALLOW_MIGRATE();
 	ht = htable_create(hat, (uintptr_t)0, TOP_LEVEL(hat), NULL);
-
-	if (!(hat->hat_flags & HAT_VLP))
-		x86pte_copy(kas.a_hat->hat_htable, ht, khat_start,
-		    khat_entries);
-#if defined(__i386)
-	else if (khat_entries > 0)
-		bcopy(vlp_page + khat_start, hat->hat_vlp_ptes + khat_start,
-		    khat_entries * sizeof (x86pte_t));
+	hat->hat_htable = ht;
+
+#if defined(__amd64)
+	if (hat->hat_flags & HAT_VLP)
+		goto init_done;
 #endif
-	hat->hat_htable = ht;
-
-#if defined(__i386)
+
+	for (r = 0; r < num_kernel_ranges; ++r) {
+		rp = &kernel_ranges[r];
+		for (va = rp->hkr_start_va; va != rp->hkr_end_va;
+		    va += cnt * LEVEL_SIZE(rp->hkr_level)) {
+
+			if (rp->hkr_level == TOP_LEVEL(hat))
+				ht = hat->hat_htable;
+			else
+				ht = htable_create(hat, va, rp->hkr_level,
+				    NULL);
+
+			start = htable_va2entry(va, ht);
+			cnt = HTABLE_NUM_PTES(ht) - start;
+			eva = va +
+			    ((uintptr_t)cnt << LEVEL_SHIFT(rp->hkr_level));
+			if (rp->hkr_end_va != 0 &&
+			    (eva > rp->hkr_end_va || eva == 0))
+				cnt = htable_va2entry(rp->hkr_end_va, ht) -
+				    start;
+
+#if defined(__i386) && !defined(__xpv)
+			if (ht->ht_flags & HTABLE_VLP) {
+				bcopy(&vlp_page[start],
+				    &hat->hat_vlp_ptes[start],
+				    cnt * sizeof (x86pte_t));
+				continue;
+			}
+#endif
+			src = htable_lookup(kas.a_hat, va, rp->hkr_level);
+			ASSERT(src != NULL);
+			x86pte_copy(src, ht, start, cnt);
+			htable_release(src);
+		}
+	}
+
+init_done:
+	XPV_ALLOW_MIGRATE();
+
+#if defined(__xpv)
 	/*
-	 * PAE32 HAT alignment is less restrictive than the others to keep
-	 * the kernel from using too much VA. Because of this we may need
-	 * one layer further down when kernelbase isn't 1Gig aligned.
-	 * See hat_free_end() for the htable_release() that goes with this
-	 * htable_create()
+	 * Pin top level page tables after initializing them
 	 */
-	if (khat_pae32_htable != NULL) {
-		ht = htable_create(hat, kernelbase,
-		    khat_pae32_htable->ht_level, NULL);
-		x86pte_copy(khat_pae32_htable, ht, khat_pae32_start,
-		    khat_pae32_entries);
-		ht->ht_valid_cnt = khat_pae32_entries;
-	}
+	xen_pin(hat->hat_htable->ht_pfn, mmu.max_level);
+#if defined(__amd64)
+	xen_pin(hat->hat_user_ptable, mmu.max_level);
+#endif
 #endif
 
 	/*
@@ -346,13 +371,8 @@
 void
 hat_free_end(hat_t *hat)
 {
-	int i;
 	kmem_cache_t *cache;
 
-#ifdef DEBUG
-	for (i = 0; i <= mmu.max_page_level; i++)
-		ASSERT(hat->hat_pages_mapped[i] == 0);
-#endif
 	ASSERT(hat->hat_flags & HAT_FREEING);
 
 	/*
@@ -375,6 +395,16 @@
 	mutex_exit(&hat_list_lock);
 	hat->hat_next = hat->hat_prev = NULL;
 
+#if defined(__xpv)
+	/*
+	 * On the hypervisor, unpin top level page table(s)
+	 */
+	xen_unpin(hat->hat_htable->ht_pfn);
+#if defined(__amd64)
+	xen_unpin(hat->hat_user_ptable);
+#endif
+#endif
+
 	/*
 	 * Make a pass through the htables freeing them all up.
 	 */
@@ -535,6 +565,9 @@
 
 	for (i = 0; i <= mmu.max_page_level; ++i) {
 		mmu.pte_bits[i] = PT_VALID;
+#if defined(__xpv) && defined(__amd64)
+		mmu.pte_bits[i] |= PT_USER;
+#endif
 		if (i > 0)
 			mmu.pte_bits[i] |= PT_PAGESIZE;
 	}
@@ -674,7 +707,7 @@
 static void
 hat_vlp_setup(struct cpu *cpu)
 {
-#if defined(__amd64)
+#if defined(__amd64) && !defined(__xpv)
 	struct hat_cpu_info *hci = cpu->cpu_hat_info;
 	pfn_t pfn;
 
@@ -693,20 +726,19 @@
 	hci->hci_vlp_pfn =
 	    hat_getpfnum(kas.a_hat, (caddr_t)hci->hci_vlp_l3ptes);
 	ASSERT(hci->hci_vlp_pfn != PFN_INVALID);
-	bcopy(vlp_page + khat_start, hci->hci_vlp_l3ptes + khat_start,
-	    khat_entries * sizeof (x86pte_t));
+	bcopy(vlp_page, hci->hci_vlp_l3ptes, MMU_PAGESIZE);
 
 	pfn = hat_getpfnum(kas.a_hat, (caddr_t)hci->hci_vlp_l2ptes);
 	ASSERT(pfn != PFN_INVALID);
 	hci->hci_vlp_l3ptes[0] = MAKEPTP(pfn, 2);
-#endif /* __amd64 */
+#endif /* __amd64 && !__xpv */
 }
 
 /*ARGSUSED*/
 static void
 hat_vlp_teardown(cpu_t *cpu)
 {
-#if defined(__amd64)
+#if defined(__amd64) && !defined(__xpv)
 	struct hat_cpu_info *hci;
 
 	if ((hci = cpu->cpu_hat_info) == NULL)
@@ -715,7 +747,14 @@
 		kmem_free(hci->hci_vlp_l2ptes, MMU_PAGESIZE);
 	if (hci->hci_vlp_l3ptes)
 		kmem_free(hci->hci_vlp_l3ptes, MMU_PAGESIZE);
-#endif	/* __amd64 */
+#endif
+}
+
+#define	NEXT_HKR(r, l, s, e) {			\
+	kernel_ranges[r].hkr_level = l;		\
+	kernel_ranges[r].hkr_start_va = s;	\
+	kernel_ranges[r].hkr_end_va = e;	\
+	++r;					\
 }
 
 /*
@@ -729,90 +768,91 @@
 void
 hat_init_finish(void)
 {
-	htable_t	*top = kas.a_hat->hat_htable;
-	htable_t	*ht;
-	uint_t		e;
-	x86pte_t	pte;
-	uintptr_t	va = kernelbase;
 	size_t		size;
-
-
-#if defined(__i386)
-	ASSERT((va & LEVEL_MASK(1)) == va);
-
-	/*
-	 * Deal with kernelbase not 1Gig aligned for 32 bit PAE hats.
-	 */
-	if (!mmu.pae_hat || (va & LEVEL_OFFSET(mmu.max_level)) == 0) {
-		khat_pae32_htable = NULL;
-	} else {
-		ASSERT(mmu.max_level == 2);
-		ASSERT((va & LEVEL_OFFSET(mmu.max_level - 1)) == 0);
-		khat_pae32_htable =
-		    htable_create(kas.a_hat, va, mmu.max_level - 1, NULL);
-		khat_pae32_start = htable_va2entry(va, khat_pae32_htable);
-		khat_pae32_entries = mmu.ptes_per_table - khat_pae32_start;
-		for (e = khat_pae32_start; e < mmu.ptes_per_table;
-		    ++e, va += LEVEL_SIZE(mmu.max_level - 1)) {
-			pte = x86pte_get(khat_pae32_htable, e);
-			if (PTE_ISVALID(pte))
-				continue;
-			ht = htable_create(kas.a_hat, va, mmu.max_level - 2,
-			    NULL);
-			ASSERT(ht != NULL);
-		}
-	}
-#endif
-
-	/*
-	 * The kernel hat will need fixed values in the highest level
-	 * ptable for copying to all other hat's. This implies
-	 * alignment restrictions on _userlimit.
-	 *
-	 * Note we don't htable_release() these htables. This keeps them
-	 * from ever being stolen or free'd.
-	 *
-	 * top_level_count is used instead of ptes_per_table, since
-	 * on 32-bit PAE we only have 4 usable entries at the top level ptable.
-	 */
-	if (va == 0)
-		khat_start = mmu.top_level_count;
-	else
-		khat_start = htable_va2entry(va, kas.a_hat->hat_htable);
-	khat_entries = mmu.top_level_count - khat_start;
-	for (e = khat_start; e < mmu.top_level_count;
-	    ++e, va += LEVEL_SIZE(mmu.max_level)) {
-		if (IN_HYPERVISOR_VA(va))
-			continue;
-		pte = x86pte_get(top, e);
-		if (PTE_ISVALID(pte))
-			continue;
-		ht = htable_create(kas.a_hat, va, mmu.max_level - 1, NULL);
-		ASSERT(ht != NULL);
-	}
+	uint_t		r = 0;
+	uintptr_t	va;
+	hat_kernel_range_t *rp;
+
 
 	/*
 	 * We are now effectively running on the kernel hat.
 	 * Clearing use_boot_reserve shuts off using the pre-allocated boot
 	 * reserve for all HAT allocations.  From here on, the reserves are
-	 * only used when mapping in memory for the hat's own allocations.
+	 * only used when avoiding recursion in kmem_alloc().
 	 */
 	use_boot_reserve = 0;
 	htable_adjust_reserve();
 
 	/*
-	 * 32 bit kernels use only 4 of the 512 entries in its top level
-	 * pagetable. We'll use the remainder for the "per CPU" page tables
-	 * for VLP processes.
-	 *
-	 * We also map the top level kernel pagetable into the kernel to make
-	 * it easy to use bcopy to initialize new address spaces.
+	 * User HATs are initialized with copies of all kernel mappings in
+	 * higher level page tables. Ensure that those entries exist.
+	 */
+#if defined(__amd64)
+
+	NEXT_HKR(r, 3, kernelbase, 0);
+#if defined(__xpv)
+	NEXT_HKR(r, 3, HYPERVISOR_VIRT_START, HYPERVISOR_VIRT_END);
+#endif
+
+#elif defined(__i386)
+
+#if !defined(__xpv)
+	if (mmu.pae_hat) {
+		va = kernelbase;
+		if ((va & LEVEL_MASK(2)) != va) {
+			va = P2ROUNDUP(va, LEVEL_SIZE(2));
+			NEXT_HKR(r, 1, kernelbase, va);
+		}
+		if (va != 0)
+			NEXT_HKR(r, 2, va, 0);
+	} else
+#endif /* __xpv */
+		NEXT_HKR(r, 1, kernelbase, 0);
+
+#endif /* __i386 */
+
+	num_kernel_ranges = r;
+
+	/*
+	 * Create all the kernel pagetables that will have entries
+	 * shared to user HATs.
+	 */
+	for (r = 0; r < num_kernel_ranges; ++r) {
+		rp = &kernel_ranges[r];
+		for (va = rp->hkr_start_va; va != rp->hkr_end_va;
+		    va += LEVEL_SIZE(rp->hkr_level)) {
+			htable_t *ht;
+
+			if (IN_HYPERVISOR_VA(va))
+				continue;
+
+			/* can/must skip if a page mapping already exists */
+			if (rp->hkr_level <= mmu.max_page_level &&
+			    (ht = htable_getpage(kas.a_hat, va, NULL)) !=
+			    NULL) {
+				htable_release(ht);
+				continue;
+			}
+
+			(void) htable_create(kas.a_hat, va, rp->hkr_level - 1,
+			    NULL);
+		}
+	}
+
+	/*
+	 * 32 bit PAE metal kernels use only 4 of the 512 entries in the
+	 * page holding the top level pagetable. We use the remainder for
+	 * the "per CPU" page tables for VLP processes.
+	 * Map the top level kernel pagetable into the kernel to make
+	 * it easy to use bcopy access these tables.
 	 */
 	if (mmu.pae_hat) {
 		vlp_page = vmem_alloc(heap_arena, MMU_PAGESIZE, VM_SLEEP);
 		hat_devload(kas.a_hat, (caddr_t)vlp_page, MMU_PAGESIZE,
 		    kas.a_hat->hat_htable->ht_pfn,
+#if !defined(__xpv)
 		    PROT_WRITE |
+#endif
 		    PROT_READ | HAT_NOSYNC | HAT_UNORDERED_OK,
 		    HAT_LOAD | HAT_LOAD_NOCONSIST);
 	}
@@ -865,11 +905,14 @@
 
 /*
  * Switch to a new active hat, maintaining bit masks to track active CPUs.
+ *
+ * On the 32-bit PAE hypervisor, %cr3 is a 64-bit value, on metal it
+ * remains a 32-bit value.
  */
 void
 hat_switch(hat_t *hat)
 {
-	uintptr_t	newcr3;
+	uint64_t	newcr3;
 	cpu_t		*cpu = CPU;
 	hat_t		*old = cpu->cpu_current_hat;
 
@@ -906,9 +949,37 @@
 		    (cpu->cpu_id + 1) * VLP_SIZE;
 #endif
 	} else {
-		newcr3 = MAKECR3(hat->hat_htable->ht_pfn);
+		newcr3 = MAKECR3((uint64_t)hat->hat_htable->ht_pfn);
 	}
+#ifdef __xpv
+	{
+		struct mmuext_op t[2];
+		uint_t retcnt;
+		uint_t opcnt = 1;
+
+		t[0].cmd = MMUEXT_NEW_BASEPTR;
+		t[0].arg1.mfn = mmu_btop(pa_to_ma(newcr3));
+#if defined(__amd64)
+		/*
+		 * There's an interesting problem here, as to what to
+		 * actually specify when switching to the kernel hat.
+		 * For now we'll reuse the kernel hat again.
+		 */
+		t[1].cmd = MMUEXT_NEW_USER_BASEPTR;
+		if (hat == kas.a_hat)
+			t[1].arg1.mfn = mmu_btop(pa_to_ma(newcr3));
+		else
+			t[1].arg1.mfn = pfn_to_mfn(hat->hat_user_ptable);
+		++opcnt;
+#endif	/* __amd64 */
+		if (HYPERVISOR_mmuext_op(t, opcnt, &retcnt, DOMID_SELF) < 0)
+			panic("HYPERVISOR_mmu_update() failed");
+		ASSERT(retcnt == opcnt);
+
+	}
+#else
 	setcr3(newcr3);
+#endif
 	ASSERT(cpu == CPU);
 }
 
@@ -1003,6 +1074,7 @@
 	htable_t	*ht = NULL;
 	level_t		l;
 
+	XPV_DISALLOW_MIGRATE();
 	/*
 	 * We can't just call hat_unload(hat, 0, _userlimit...)  here, because
 	 * seg_spt and shared pagetables can't be swapped out.
@@ -1061,6 +1133,7 @@
 	 * go back and flush all the htables off the cached list.
 	 */
 	htable_purge_hat(hat);
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -1138,11 +1211,11 @@
 
 /*
  * This the set of PTE bits for PFN, permissions and caching
- * that require a TLB flush (hat_tlb_inval) if changed on a HAT_LOAD_REMAP
+ * that are allowed to change on a HAT_LOAD_REMAP
  */
 #define	PT_REMAP_BITS							\
 	(PT_PADDR | PT_NX | PT_WRITABLE | PT_WRITETHRU |		\
-	PT_NOCACHE | PT_PAT_4K | PT_PAT_LARGE)
+	PT_NOCACHE | PT_PAT_4K | PT_PAT_LARGE | PT_IGNORE | PT_REF | PT_MOD)
 
 #define	REMAPASSERT(EX)	if (!(EX)) panic("hati_pte_map: " #EX)
 /*
@@ -1239,11 +1312,11 @@
 	}
 
 	/*
-	 * We only let remaps change the bits for PFNs, permissions
-	 * or caching type.
+	 * We only let remaps change the certain bits in the PTE.
 	 */
-	ASSERT(PTE_GET(old_pte, ~(PT_REMAP_BITS | PT_REF | PT_MOD)) ==
-	    PTE_GET(pte, ~PT_REMAP_BITS));
+	if (PTE_GET(old_pte, ~PT_REMAP_BITS) != PTE_GET(pte, ~PT_REMAP_BITS))
+		panic("remap bits changed: old_pte="FMT_PTE", pte="FMT_PTE"\n",
+		    old_pte, pte);
 
 	/*
 	 * We don't create any mapping list entries on a remap, so release
@@ -1429,6 +1502,7 @@
 	level_t		level = 0;
 	pfn_t		pfn = page_pptonum(pp);
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(IS_PAGEALIGNED(va));
 	ASSERT(hat == kas.a_hat || va < _userlimit);
 	ASSERT(hat == kas.a_hat ||
@@ -1444,6 +1518,7 @@
 	if (mmu.kmap_addr <= va && va < mmu.kmap_eaddr) {
 		ASSERT(hat == kas.a_hat);
 		hat_kmap_load(addr, pp, attr, flags);
+		XPV_ALLOW_MIGRATE();
 		return;
 	}
 
@@ -1454,6 +1529,7 @@
 	attr |= HAT_STORECACHING_OK;
 	if (hati_load_common(hat, va, pp, attr, flags, level, pfn) != 0)
 		panic("unexpected hati_load_common() failure");
+	XPV_ALLOW_MIGRATE();
 }
 
 /* ARGSUSED */
@@ -1484,6 +1560,7 @@
 	pfn_t		pfn;
 	pgcnt_t		i;
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(IS_PAGEALIGNED(va));
 	ASSERT(hat == kas.a_hat || va + len <= _userlimit);
 	ASSERT(hat == kas.a_hat ||
@@ -1555,6 +1632,7 @@
 		va += pgsize;
 		pgindx += mmu_btop(pgsize);
 	}
+	XPV_ALLOW_MIGRATE();
 }
 
 /* ARGSUSED */
@@ -1613,6 +1691,7 @@
 	int		f;	/* per PTE copy of flags  - maybe modified */
 	uint_t		a;	/* per PTE copy of attr */
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(IS_PAGEALIGNED(va));
 	ASSERT(hat == kas.a_hat || eva <= _userlimit);
 	ASSERT(hat == kas.a_hat ||
@@ -1645,18 +1724,15 @@
 		 */
 		a = attr;
 		f = flags;
-		if (pf_is_memory(pfn)) {
-			if (!(a & HAT_PLAT_NOCACHE))
-				a |= HAT_STORECACHING_OK;
-
-			if (f & HAT_LOAD_NOCONSIST)
-				pp = NULL;
-			else
-				pp = page_numtopp_nolock(pfn);
-		} else {
+		if (!pf_is_memory(pfn))
+			f |= HAT_LOAD_NOCONSIST;
+		else if (!(a & HAT_PLAT_NOCACHE))
+			a |= HAT_STORECACHING_OK;
+
+		if (f & HAT_LOAD_NOCONSIST)
 			pp = NULL;
-			f |= HAT_LOAD_NOCONSIST;
-		}
+		else
+			pp = page_numtopp_nolock(pfn);
 
 		/*
 		 * load this page mapping
@@ -1675,6 +1751,7 @@
 		va += pgsize;
 		pfn += mmu_btop(pgsize);
 	}
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -1701,6 +1778,7 @@
 	if (eaddr > _userlimit)
 		panic("hat_unlock() address out of range - above _userlimit");
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(AS_LOCK_HELD(hat->hat_as, &hat->hat_as->a_lock));
 	while (vaddr < eaddr) {
 		(void) htable_walk(hat, &ht, &vaddr, eaddr);
@@ -1718,6 +1796,7 @@
 	}
 	if (ht)
 		htable_release(ht);
+	XPV_ALLOW_MIGRATE();
 }
 
 /* ARGSUSED */
@@ -1728,6 +1807,7 @@
 	panic("No shared region support on x86");
 }
 
+#if !defined(__xpv)
 /*
  * Cross call service routine to demap a virtual page on
  * the current CPU or flush all mappings in TLB.
@@ -1851,6 +1931,7 @@
 	if (flags & PS_IE)
 		sti();
 }
+#endif /* !__xpv */
 
 /*
  * Internal routine to do cross calls to invalidate a range of pages on
@@ -1861,10 +1942,12 @@
 {
 	extern int	flushes_require_xcalls;	/* from mp_startup.c */
 	cpuset_t	justme;
+	cpuset_t	cpus_to_shootdown;
+#ifndef __xpv
 	cpuset_t	check_cpus;
-	cpuset_t	cpus_to_shootdown;
 	cpu_t		*cpup;
 	int		c;
+#endif
 
 	/*
 	 * If the hat is being destroyed, there are no more users, so
@@ -1887,7 +1970,14 @@
 	 * if not running with multiple CPUs, don't use cross calls
 	 */
 	if (panicstr || !flushes_require_xcalls) {
+#ifdef __xpv
+		if (va == DEMAP_ALL_ADDR)
+			xen_flush_tlb();
+		else
+			xen_flush_va((caddr_t)va);
+#else
 		(void) hati_demap_func((xc_arg_t)hat, (xc_arg_t)va, NULL);
+#endif
 		return;
 	}
 
@@ -1903,6 +1993,7 @@
 	else
 		cpus_to_shootdown = hat->hat_cpus;
 
+#ifndef __xpv
 	/*
 	 * If any CPUs in the set are idle, just request a delayed flush
 	 * and avoid waking them up.
@@ -1930,17 +2021,32 @@
 			CPUSET_DEL(cpus_to_shootdown, c);
 		}
 	}
+#endif
 
 	if (CPUSET_ISNULL(cpus_to_shootdown) ||
 	    CPUSET_ISEQUAL(cpus_to_shootdown, justme)) {
 
+#ifdef __xpv
+		if (va == DEMAP_ALL_ADDR)
+			xen_flush_tlb();
+		else
+			xen_flush_va((caddr_t)va);
+#else
 		(void) hati_demap_func((xc_arg_t)hat, (xc_arg_t)va, NULL);
+#endif
 
 	} else {
 
 		CPUSET_ADD(cpus_to_shootdown, CPU->cpu_id);
+#ifdef __xpv
+		if (va == DEMAP_ALL_ADDR)
+			xen_gflush_tlb(cpus_to_shootdown);
+		else
+			xen_gflush_va((caddr_t)va, cpus_to_shootdown);
+#else
 		xc_call((xc_arg_t)hat, (xc_arg_t)va, NULL, X_CALL_HIPRI,
 		    cpus_to_shootdown, hati_demap_func);
+#endif
 
 	}
 	kpreempt_enable();
@@ -1985,6 +2091,10 @@
 		if (PTE_GET(old_pte, PT_SOFTWARE) >= PT_NOCONSIST) {
 			pp = NULL;
 		} else {
+#ifdef __xpv
+			if (pfn == PFN_INVALID)
+				panic("Invalid PFN, but not PT_NOCONSIST");
+#endif
 			pp = page_numtopp_nolock(pfn);
 			if (pp == NULL) {
 				panic("no page_t, not NOCONSIST: old_pte="
@@ -2000,10 +2110,16 @@
 		 * hasn't changed, as the mappings are no longer in use by
 		 * any thread, invalidation is unnecessary.
 		 * If not freeing, do a full invalidate.
+		 *
+		 * On the hypervisor we must always remove mappings, as a
+		 * writable mapping left behind could cause a page table
+		 * allocation to fail.
 		 */
+#if !defined(__xpv)
 		if (hat->hat_flags & HAT_FREEING)
 			old_pte = x86pte_get(ht, entry);
 		else
+#endif
 			old_pte = x86pte_inval(ht, entry, old_pte, pte_ptr);
 
 		/*
@@ -2098,6 +2214,7 @@
 {
 	uintptr_t va = (uintptr_t)addr;
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(hat == kas.a_hat || va + len <= _userlimit);
 
 	/*
@@ -2109,6 +2226,7 @@
 	} else {
 		hat_unload_callback(hat, addr, len, flags, NULL);
 	}
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -2164,6 +2282,7 @@
 	uint_t		r_cnt = 0;
 	x86pte_t	old_pte;
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(hat == kas.a_hat || eaddr <= _userlimit);
 	ASSERT(IS_PAGEALIGNED(vaddr));
 	ASSERT(IS_PAGEALIGNED(eaddr));
@@ -2179,6 +2298,7 @@
 				hat_pte_unmap(ht, entry, flags, old_pte, NULL);
 			htable_release(ht);
 		}
+		XPV_ALLOW_MIGRATE();
 		return;
 	}
 
@@ -2225,6 +2345,7 @@
 	 */
 	if (r_cnt > 0)
 		handle_ranges(cb, r_cnt, r);
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -2251,6 +2372,7 @@
 	ASSERT(IS_PAGEALIGNED(eaddr));
 	ASSERT(hat == kas.a_hat || eaddr <= _userlimit);
 
+	XPV_DISALLOW_MIGRATE();
 	for (; vaddr < eaddr; vaddr += LEVEL_SIZE(ht->ht_level)) {
 try_again:
 		pte = htable_walk(hat, &ht, &vaddr, eaddr);
@@ -2304,6 +2426,7 @@
 	}
 	if (ht)
 		htable_release(ht);
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -2373,6 +2496,7 @@
 	x86pte_t	oldpte, newpte;
 	page_t		*pp;
 
+	XPV_DISALLOW_MIGRATE();
 	ASSERT(IS_PAGEALIGNED(vaddr));
 	ASSERT(IS_PAGEALIGNED(eaddr));
 	ASSERT(hat == kas.a_hat ||
@@ -2460,6 +2584,7 @@
 	}
 	if (ht)
 		htable_release(ht);
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -2537,6 +2662,7 @@
 	if (IN_VA_HOLE(vaddr))
 		return (PFN_INVALID);
 
+	XPV_DISALLOW_MIGRATE();
 	/*
 	 * A very common use of hat_getpfnum() is from the DDI for kernel pages.
 	 * Use the kmap_ptes (which also covers the 32 bit heap) to speed
@@ -2548,21 +2674,25 @@
 
 		pg_index = mmu_btop(vaddr - mmu.kmap_addr);
 		pte = GET_PTE(PT_INDEX_PTR(mmu.kmap_ptes, pg_index));
-		if (!PTE_ISVALID(pte))
-			return (PFN_INVALID);
-		/*LINTED [use of constant 0 causes a silly lint warning] */
-		return (PTE2PFN(pte, 0));
+		if (PTE_ISVALID(pte))
+			/*LINTED [use of constant 0 causes a lint warning] */
+			pfn = PTE2PFN(pte, 0);
+		XPV_ALLOW_MIGRATE();
+		return (pfn);
 	}
 
 	ht = htable_getpage(hat, vaddr, &entry);
-	if (ht == NULL)
+	if (ht == NULL) {
+		XPV_ALLOW_MIGRATE();
 		return (PFN_INVALID);
+	}
 	ASSERT(vaddr >= ht->ht_vaddr);
 	ASSERT(vaddr <= HTABLE_LAST_PAGE(ht));
 	pfn = PTE2PFN(x86pte_get(ht, entry), ht->ht_level);
 	if (ht->ht_level > 0)
 		pfn += mmu_btop(vaddr & LEVEL_OFFSET(ht->ht_level));
 	htable_release(ht);
+	XPV_ALLOW_MIGRATE();
 	return (pfn);
 }
 
@@ -2590,7 +2720,7 @@
 	if ((uintptr_t)addr < kernelbase)
 		return (PFN_INVALID);
 
-
+	XPV_DISALLOW_MIGRATE();
 	if (segkpm && IS_KPM_ADDR(addr)) {
 		badcaller = 1;
 		pfn = hat_kpm_va2pfn(addr);
@@ -2601,6 +2731,7 @@
 
 	if (badcaller)
 		hat_getkpfnum_badcall(caller());
+	XPV_ALLOW_MIGRATE();
 	return (pfn);
 }
 #endif /* __amd64 */
@@ -2638,10 +2769,8 @@
 	}
 
 	ht = htable_getpage(hat, vaddr, &entry);
-	if (ht == NULL)
-		return (0);
 	htable_release(ht);
-	return (1);
+	return (ht != NULL);
 }
 
 /*
@@ -2708,6 +2837,7 @@
 		ASSERT(hat_get_mapped_size(ism_hat) == 0);
 		return (0);
 	}
+	XPV_DISALLOW_MIGRATE();
 
 	/*
 	 * The SPT segment driver often passes us a size larger than there are
@@ -2857,6 +2987,7 @@
 	}
 	if (ism_ht != NULL)
 		htable_release(ism_ht);
+	XPV_ALLOW_MIGRATE();
 	return (0);
 }
 
@@ -2881,6 +3012,7 @@
 	ASSERT(eaddr <= _userlimit);
 	ASSERT(IS_PAGEALIGNED(vaddr));
 	ASSERT(IS_PAGEALIGNED(eaddr));
+	XPV_DISALLOW_MIGRATE();
 
 	/*
 	 * First go through and remove any shared pagetables.
@@ -2930,6 +3062,7 @@
 	if (!is_it_dism(hat, addr))
 		flags |= HAT_UNLOAD_UNLOCK;
 	hat_unload(hat, addr, len, flags);
+	XPV_ALLOW_MIGRATE();
 }
 
 
@@ -2957,6 +3090,7 @@
 	x86pte_t	new;
 	uint_t		pszc = 0;
 
+	XPV_DISALLOW_MIGRATE();
 next_size:
 	/*
 	 * walk thru the mapping list clearing write permission
@@ -2998,6 +3132,7 @@
 			goto next_size;
 		}
 	}
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -3161,6 +3296,7 @@
 	uint_t		entry;
 	level_t		level;
 
+	XPV_DISALLOW_MIGRATE();
 #if defined(__amd64)
 	/*
 	 * clear the vpm ref.
@@ -3188,6 +3324,7 @@
 				 * If not part of a larger page, we're done.
 				 */
 				if (cur_pp->p_szc <= pg_szcd) {
+					XPV_ALLOW_MIGRATE();
 					return (0);
 				}
 
@@ -3447,6 +3584,7 @@
 		}
 	}
 
+	XPV_DISALLOW_MIGRATE();
 next_size:
 	/*
 	 * walk thru the mapping list syncing (and clearing) ref/mod bits.
@@ -3506,6 +3644,7 @@
 		}
 	}
 done:
+	XPV_ALLOW_MIGRATE();
 	return (save_pp->p_nrm & nrmbits);
 }
 
@@ -3587,7 +3726,9 @@
 hat_thread_exit(kthread_t *thd)
 {
 	ASSERT(thd->t_procp->p_as == &kas);
+	XPV_DISALLOW_MIGRATE();
 	hat_switch(thd->t_procp->p_as->a_hat);
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -3597,11 +3738,13 @@
 void
 hat_setup(hat_t *hat, int flags)
 {
+	XPV_DISALLOW_MIGRATE();
 	kpreempt_disable();
 
 	hat_switch(hat);
 
 	kpreempt_enable();
+	XPV_ALLOW_MIGRATE();
 }
 
 /*
@@ -3664,6 +3807,11 @@
 	/*
 	 * invalidate any left over mapping and decrement the htable valid count
 	 */
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping((uintptr_t)addr, 0,
+	    UVMF_INVLPG | UVMF_LOCAL))
+		panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	{
 		x86pte_t *pteptr;
 
@@ -3676,6 +3824,7 @@
 		mmu_tlbflush_entry(addr);
 		x86pte_mapout();
 	}
+#endif
 
 	ht = htable_getpte(kas.a_hat, ALIGN2PAGE(addr), NULL, NULL, 0);
 	if (ht == NULL)
@@ -3717,7 +3866,12 @@
 	ASSERT(ht->ht_pfn == mmu_btop(pte_pa));
 	htable_release(ht);
 #endif
+	XPV_DISALLOW_MIGRATE();
 	pte = hati_mkpte(pfn, attr, 0, flags);
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping(va, pte, UVMF_INVLPG | UVMF_LOCAL))
+		panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	{
 		x86pte_t *pteptr;
 
@@ -3730,6 +3884,8 @@
 		mmu_tlbflush_entry(addr);
 		x86pte_mapout();
 	}
+#endif
+	XPV_ALLOW_MIGRATE();
 }
 
 
@@ -4052,3 +4208,30 @@
 void
 hat_kpm_mseghash_update(pgcnt_t inx, struct memseg *msp)
 {}
+
+#ifdef __xpv
+/*
+ * There are specific Hypervisor calls to establish and remove mappings
+ * to grant table references and the privcmd driver. We have to ensure
+ * that a page table actually exists.
+ */
+void
+hat_prepare_mapping(hat_t *hat, caddr_t addr)
+{
+	ASSERT(IS_P2ALIGNED((uintptr_t)addr, MMU_PAGESIZE));
+	(void) htable_create(hat, (uintptr_t)addr, 0, NULL);
+}
+
+void
+hat_release_mapping(hat_t *hat, caddr_t addr)
+{
+	htable_t *ht;
+
+	ASSERT(IS_P2ALIGNED((uintptr_t)addr, MMU_PAGESIZE));
+	ht = htable_lookup(hat, (uintptr_t)addr, 0);
+	ASSERT(ht != NULL);
+	ASSERT(ht->ht_busy >= 2);
+	htable_release(ht);
+	htable_release(ht);
+}
+#endif
--- a/usr/src/uts/i86pc/vm/hat_i86.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/hat_i86.h	Tue Sep 18 15:46:43 2007 -0700
@@ -92,12 +92,15 @@
 	htable_t	**hat_ht_hash;	/* htable hash buckets */
 	htable_t	*hat_ht_cached;	/* cached free htables */
 	x86pte_t	hat_vlp_ptes[VLP_NUM_PTES];
+#if defined(__amd64) && defined(__xpv)
+	pfn_t		hat_user_ptable; /* alt top ptable for user mode */
+#endif
 };
 typedef struct hat hat_t;
 
-#define	PGCNT_INC(hat, level) \
+#define	PGCNT_INC(hat, level)	\
 	atomic_add_long(&(hat)->hat_pages_mapped[level], 1);
-#define	PGCNT_DEC(hat, level) \
+#define	PGCNT_DEC(hat, level)	\
 	atomic_add_long(&(hat)->hat_pages_mapped[level], -1);
 
 /*
@@ -108,16 +111,20 @@
  *
  * HAT_VLP - indicates a 32 bit process has a virtual address range less than
  *	the hardware's physical address range. (VLP->Virtual Less-than Physical)
+ *	Note - never used on the hypervisor.
  *
  * HAT_VICTIM - This is set while a hat is being examined for page table
  *	stealing and prevents it from being freed.
  *
  * HAT_SHARED - The hat has exported it's page tables via hat_share()
+ *
+ * HAT_PINNED - On the hypervisor, indicates the top page table has been pinned.
  */
 #define	HAT_FREEING	(0x0001)
 #define	HAT_VLP		(0x0002)
 #define	HAT_VICTIM	(0x0004)
 #define	HAT_SHARED	(0x0008)
+#define	HAT_PINNED	(0x0010)
 
 /*
  * Additional platform attribute for hat_devload() to force no caching.
@@ -231,19 +238,39 @@
 
 extern hment_t *hati_page_unmap(page_t *pp, htable_t *ht, uint_t entry);
 
+#if !defined(__xpv)
 /*
  * routines to deal with delayed TLB invalidations for idle CPUs
  */
 extern void tlb_going_idle(void);
 extern void tlb_service(void);
+#endif
 
 /*
  * Hat switch function invoked to load a new context into %cr3
  */
 extern void hat_switch(struct hat *hat);
 
+#ifdef __xpv
+/*
+ * Interfaces to use around code that maps/unmaps grant table references.
+ */
+extern void hat_prepare_mapping(hat_t *, caddr_t);
+extern void hat_release_mapping(hat_t *, caddr_t);
+
+#define	XPV_DISALLOW_MIGRATE()	xen_block_migrate()
+#define	XPV_ALLOW_MIGRATE()	xen_allow_migrate()
+
+#else
+
+#define	XPV_DISALLOW_MIGRATE()	/* nothing */
+#define	XPV_ALLOW_MIGRATE()	/* nothing */
+
 #define	pfn_is_foreign(pfn)	__lintzero
 
+#endif
+
+
 #endif	/* _KERNEL */
 
 #ifdef	__cplusplus
--- a/usr/src/uts/i86pc/vm/hat_kdi.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/hat_kdi.c	Tue Sep 18 15:46:43 2007 -0700
@@ -42,6 +42,9 @@
 #include <sys/cmn_err.h>
 #include <vm/seg_kmem.h>
 #include <vm/hat_i86.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
 #include <sys/bootinfo.h>
 #include <vm/kboot_mmu.h>
 #include <sys/machsystm.h>
@@ -51,10 +54,13 @@
  * in order to implement vtop and physical read/writes
  */
 static uintptr_t hat_kdi_page = 0;	/* vaddr for phsical page accesses */
-static x86pte_t *hat_kdi_pte = NULL;	/* vaddr of pte for hat_kdi_page */
 static uint_t use_kbm = 1;
 uint_t hat_kdi_use_pae;			/* if 0, use x86pte32_t for pte type */
 
+#if !defined(__xpv)
+static x86pte_t *hat_kdi_pte = NULL;	/* vaddr of pte for hat_kdi_page */
+#endif
+
 /*
  * Get the address for remapping physical pages during boot
  */
@@ -84,6 +90,7 @@
 	ht = htable_create(kas.a_hat, hat_kdi_page, 0, NULL);
 	use_kbm = 0;
 
+#ifndef __xpv
 	/*
 	 * Get an address at which to put the pagetable and devload it.
 	 */
@@ -97,9 +104,46 @@
 
 	HTABLE_INC(ht->ht_valid_cnt);
 	htable_release(ht);
+#endif
 }
+
+#ifdef __xpv
+
+/*
+ * translate machine address to physical address
+ */
+static uint64_t
+kdi_ptom(uint64_t pa)
+{
+	extern pfn_t *mfn_list;
+	ulong_t mfn = mfn_list[mmu_btop(pa)];
+
+	return (pfn_to_pa(mfn) | (pa & MMU_PAGEOFFSET));
+}
+
+/*
+ * This is like mfn_to_pfn(), but we can't use ontrap() from kmdb.
+ * Instead we let the fault happen and kmdb deals with it.
+ */
+static uint64_t
+kdi_mtop(uint64_t ma)
+{
+	pfn_t pfn;
+	mfn_t mfn = ma >> MMU_PAGESHIFT;
+
+	if (HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL) < mfn)
+		return (ma | PFN_IS_FOREIGN_MFN);
+
+	pfn = mfn_to_pfn_mapping[mfn];
+	if (pfn >= mfn_count || pfn_to_mfn(pfn) != mfn)
+		return (ma | PFN_IS_FOREIGN_MFN);
+	return (pfn_to_pa(pfn) | (ma & MMU_PAGEOFFSET));
+}
+
+#else
 #define	kdi_mtop(m)	(m)
 #define	kdi_ptom(p)	(p)
+#endif
 
 /*ARGSUSED*/
 int
@@ -132,7 +176,11 @@
 	 * We can't go through normal hat routines, so we'll use
 	 * kdi_pread() to walk the page tables
 	 */
+#if defined(__xpv)
+	*pap = pfn_to_pa(CPU->cpu_current_hat->hat_htable->ht_pfn);
+#else
 	*pap = getcr3() & MMU_PAGEMASK;
+#endif
 	for (level = mmu.max_level; ; --level) {
 		index = (va >> LEVEL_SHIFT(level)) & (mmu.ptes_per_table - 1);
 		*pap += index << mmu.pte_size_shift;
@@ -179,7 +227,7 @@
 		pgoff = pa & MMU_PAGEOFFSET;
 		sz = MIN(nbytes, MMU_PAGESIZE - pgoff);
 		va = (caddr_t)hat_kdi_page + pgoff;
-		pte = mmu_ptob(mmu_btop(pa)) | PT_VALID;
+		pte = kdi_ptom(mmu_ptob(mmu_btop(pa))) | PT_VALID;
 		if (doread) {
 			from = va;
 			to = buf;
@@ -194,11 +242,17 @@
 		 */
 		if (use_kbm)
 			(void) kbm_push(pa);
+#if defined(__xpv)
+		else
+			(void) HYPERVISOR_update_va_mapping(
+			    (uintptr_t)va, pte, UVMF_INVLPG);
+#else
 		else if (hat_kdi_use_pae)
 			*hat_kdi_pte = pte;
 		else
 			*(x86pte32_t *)hat_kdi_pte = pte;
 		mmu_tlbflush_entry((caddr_t)hat_kdi_page);
+#endif
 
 		bcopy(from, to, sz);
 
@@ -207,11 +261,17 @@
 		 */
 		if (use_kbm)
 			kbm_pop();
+#if defined(__xpv)
+		else
+			(void) HYPERVISOR_update_va_mapping(
+			    (uintptr_t)va, 0, UVMF_INVLPG);
+#else
 		else if (hat_kdi_use_pae)
 			*hat_kdi_pte = 0;
 		else
 			*(x86pte32_t *)hat_kdi_pte = 0;
 		mmu_tlbflush_entry((caddr_t)hat_kdi_page);
+#endif
 
 		buf += sz;
 		pa += sz;
--- a/usr/src/uts/i86pc/vm/hat_pte.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/hat_pte.h	Tue Sep 18 15:46:43 2007 -0700
@@ -59,16 +59,29 @@
 	(PTE_ISVALID(p) && ((l) == 0 || PTE_GET(p, PT_PAGESIZE)))
 
 /*
- * Handy macro to check if 2 PTE's are the same - ignores REF/MOD bits
+ * Handy macro to check if 2 PTE's are the same - ignores REF/MOD bits.
+ * On the 64 bit hypervisor we also have to ignore the high order software
+ * bits and the global bit which are set/cleared capriciously (by the
+ * hypervisor!)
  */
-#define	PTE_EQUIV(a, b)	 (((a) | PT_REF | PT_MOD) == ((b) | PT_REF | PT_MOD))
+#if defined(__amd64) && defined(__xpv)
+#define	PT_IGNORE	((0x7fful << 52) | PT_GLOBAL)
+#else
+#define	PT_IGNORE	(0)
+#endif
+#define	PTE_EQUIV(a, b)	 (((a) | (PT_IGNORE | PT_REF | PT_MOD)) == \
+	((b) | (PT_IGNORE | PT_REF | PT_MOD)))
 
 /*
  * Shorthand for converting a PTE to it's pfn.
  */
 #define	PTE2MFN(p, l)	\
 	mmu_btop(PTE_GET((p), PTE_IS_LGPG((p), (l)) ? PT_PADDR_LGPG : PT_PADDR))
+#ifdef __xpv
+#define	PTE2PFN(p, l) pte2pfn(p, l)
+#else
 #define	PTE2PFN(p, l) PTE2MFN(p, l)
+#endif
 
 #define	PT_NX		(0x8000000000000000ull)
 #define	PT_PADDR	(0x000ffffffffff000ull)
@@ -77,10 +90,30 @@
 /*
  * Macros to create a PTP or PTE from the pfn and level
  */
+#ifdef __xpv
+
+/*
+ * we use the highest order bit in physical address pfns to mark foreign mfns
+ */
+#ifdef _LP64
+#define	PFN_IS_FOREIGN_MFN (1ul << 51)
+#else
+#define	PFN_IS_FOREIGN_MFN (1ul << 31)
+#endif
+
+#define	MAKEPTP(pfn, l)	\
+	(pa_to_ma(pfn_to_pa(pfn)) | mmu.ptp_bits[(l) + 1])
+#define	MAKEPTE(pfn, l) \
+	((pfn & PFN_IS_FOREIGN_MFN) ? \
+	((pfn_to_pa(pfn & ~PFN_IS_FOREIGN_MFN) | mmu.pte_bits[l]) | \
+	PT_FOREIGN | PT_REF | PT_MOD) : \
+	(pa_to_ma(pfn_to_pa(pfn)) | mmu.pte_bits[l]))
+#else
 #define	MAKEPTP(pfn, l)	\
 	(pfn_to_pa(pfn) | mmu.ptp_bits[(l) + 1])
 #define	MAKEPTE(pfn, l)	\
 	(pfn_to_pa(pfn) | mmu.pte_bits[l])
+#endif
 
 /*
  * The idea of "level" refers to the level where the page table is used in the
@@ -252,6 +285,10 @@
  */
 #define	pfn_to_pa(pfn) (mmu_ptob((paddr_t)(pfn)))
 
+#ifdef __xpv
+extern pfn_t pte2pfn(x86pte_t, level_t);
+#endif
+
 extern struct hat_mmu_info mmu;
 
 #endif	/* _KERNEL */
--- a/usr/src/uts/i86pc/vm/htable.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/htable.c	Tue Sep 18 15:46:43 2007 -0700
@@ -54,6 +54,12 @@
 #include <vm/hat.h>
 #include <vm/hat_i86.h>
 #include <sys/cmn_err.h>
+#include <sys/panic.h>
+
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#include <sys/xpv_panic.h>
+#endif
 
 #include <sys/bootinfo.h>
 #include <vm/kboot_mmu.h>
@@ -121,6 +127,139 @@
  */
 static uint32_t active_ptables = 0;
 
+#ifdef __xpv
+/*
+ * Deal with hypervisor complications.
+ */
+void
+xen_flush_va(caddr_t va)
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	if (IN_XPV_PANIC()) {
+		mmu_tlbflush_entry((caddr_t)va);
+	} else {
+		t.cmd = MMUEXT_INVLPG_LOCAL;
+		t.arg1.linear_addr = (uintptr_t)va;
+		if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+			panic("HYPERVISOR_mmuext_op() failed");
+		ASSERT(count == 1);
+	}
+}
+
+void
+xen_gflush_va(caddr_t va, cpuset_t cpus)
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	if (IN_XPV_PANIC()) {
+		mmu_tlbflush_entry((caddr_t)va);
+		return;
+	}
+
+	t.cmd = MMUEXT_INVLPG_MULTI;
+	t.arg1.linear_addr = (uintptr_t)va;
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(t.arg2.vcpumask, &cpus);
+	if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+		panic("HYPERVISOR_mmuext_op() failed");
+	ASSERT(count == 1);
+}
+
+void
+xen_flush_tlb()
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	if (IN_XPV_PANIC()) {
+		xpv_panic_reload_cr3();
+	} else {
+		t.cmd = MMUEXT_TLB_FLUSH_LOCAL;
+		if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+			panic("HYPERVISOR_mmuext_op() failed");
+		ASSERT(count == 1);
+	}
+}
+
+void
+xen_gflush_tlb(cpuset_t cpus)
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	ASSERT(!IN_XPV_PANIC());
+	t.cmd = MMUEXT_TLB_FLUSH_MULTI;
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(t.arg2.vcpumask, &cpus);
+	if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+		panic("HYPERVISOR_mmuext_op() failed");
+	ASSERT(count == 1);
+}
+
+/*
+ * Install/Adjust a kpm mapping under the hypervisor.
+ * Value of "how" should be:
+ *	PT_WRITABLE | PT_VALID - regular kpm mapping
+ *	PT_VALID - make mapping read-only
+ *	0	- remove mapping
+ *
+ * returns 0 on success. non-zero for failure.
+ */
+int
+xen_kpm_page(pfn_t pfn, uint_t how)
+{
+	paddr_t pa = mmu_ptob((paddr_t)pfn);
+	x86pte_t pte = PT_NOCONSIST | PT_REF | PT_MOD;
+
+	if (kpm_vbase == NULL)
+		return (0);
+
+	if (how)
+		pte |= pa_to_ma(pa) | how;
+	else
+		pte = 0;
+	return (HYPERVISOR_update_va_mapping((uintptr_t)kpm_vbase + pa,
+	    pte, UVMF_INVLPG | UVMF_ALL));
+}
+
+void
+xen_pin(pfn_t pfn, level_t lvl)
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	t.cmd = MMUEXT_PIN_L1_TABLE + lvl;
+	t.arg1.mfn = pfn_to_mfn(pfn);
+	if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+		panic("HYPERVISOR_mmuext_op() failed");
+	ASSERT(count == 1);
+}
+
+void
+xen_unpin(pfn_t pfn)
+{
+	struct mmuext_op t;
+	uint_t count;
+
+	t.cmd = MMUEXT_UNPIN_TABLE;
+	t.arg1.mfn = pfn_to_mfn(pfn);
+	if (HYPERVISOR_mmuext_op(&t, 1, &count, DOMID_SELF) < 0)
+		panic("HYPERVISOR_mmuext_op() failed");
+	ASSERT(count == 1);
+}
+
+static void
+xen_map(uint64_t pte, caddr_t va)
+{
+	if (HYPERVISOR_update_va_mapping((uintptr_t)va, pte,
+	    UVMF_INVLPG | UVMF_LOCAL))
+		panic("HYPERVISOR_update_va_mapping() failed");
+}
+#endif /* __xpv */
+
 /*
  * Allocate a memory page for a hardware page table.
  *
@@ -193,6 +332,7 @@
 		panic("ptable_free(): no page for pfn!");
 	ASSERT(PAGE_SHARED(pp));
 	ASSERT(pfn == pp->p_pagenum);
+	ASSERT(!IN_XPV_PANIC());
 
 	/*
 	 * Get an exclusive lock, might have to wait for a kmem reader.
@@ -207,6 +347,10 @@
 		while (!page_lock(pp, SE_EXCL, (kmutex_t *)NULL, P_RECLAIM))
 			continue;
 	}
+#ifdef __xpv
+	if (kpm_vbase && xen_kpm_page(pfn, PT_VALID | PT_WRITABLE) < 0)
+		panic("failure making kpm r/w pfn=0x%lx", pfn);
+#endif
 	page_free(pp, 1);
 	page_unresv(1);
 }
@@ -562,7 +706,9 @@
 	/*
 	 * Let htable_steal() do the work, we just call htable_free()
 	 */
+	XPV_DISALLOW_MIGRATE();
 	list = htable_steal(reap_cnt);
+	XPV_ALLOW_MIGRATE();
 	while ((ht = list) != NULL) {
 		list = ht->ht_next;
 		HATSTAT_INC(hs_reaped);
@@ -673,6 +819,15 @@
 			if (is_bare) {
 				ptable_free(ht->ht_pfn);
 				ht->ht_pfn = PFN_INVALID;
+#if defined(__xpv) && defined(__amd64)
+			/*
+			 * make stolen page table writable again in kpm
+			 */
+			} else if (kpm_vbase && xen_kpm_page(ht->ht_pfn,
+			    PT_VALID | PT_WRITABLE) < 0) {
+				panic("failure making kpm r/w pfn=0x%lx",
+				    ht->ht_pfn);
+#endif
 			}
 		}
 	}
@@ -685,6 +840,30 @@
 	if (ht == NULL)
 		panic("htable_alloc(): couldn't steal\n");
 
+#if defined(__amd64) && defined(__xpv)
+	/*
+	 * Under the 64-bit hypervisor, we have 2 top level page tables.
+	 * If this allocation fails, we'll resort to stealing.
+	 * We use the stolen page indirectly, by freeing the
+	 * stolen htable first.
+	 */
+	if (level == mmu.max_level) {
+		for (;;) {
+			htable_t *stolen;
+
+			hat->hat_user_ptable = ptable_alloc((uintptr_t)ht + 1);
+			if (hat->hat_user_ptable != PFN_INVALID)
+				break;
+			stolen = htable_steal(1);
+			if (stolen == NULL)
+				panic("2nd steal ptable failed\n");
+			htable_free(stolen);
+		}
+		block_zero_no_xmm(kpm_vbase + pfn_to_pa(hat->hat_user_ptable),
+		    MMU_PAGESIZE);
+	}
+#endif
+
 	/*
 	 * Shared page tables have all entries locked and entries may not
 	 * be added or deleted.
@@ -730,6 +909,14 @@
 	if (need_to_zero)
 		x86pte_zero(ht, 0, mmu.ptes_per_table);
 
+#if defined(__amd64) && defined(__xpv)
+	if (!is_bare && kpm_vbase) {
+		(void) xen_kpm_page(ht->ht_pfn, PT_VALID);
+		if (level == mmu.max_level)
+			(void) xen_kpm_page(hat->hat_user_ptable, PT_VALID);
+	}
+#endif
+
 	return (ht);
 }
 
@@ -744,7 +931,7 @@
 
 	/*
 	 * If the process isn't exiting, cache the free htable in the hat
-	 * structure. We always do this for the boot reserve. We don't
+	 * structure. We always do this for the boot time reserve. We don't
 	 * do this if the hat is exiting or we are stealing/reaping htables.
 	 */
 	if (hat != NULL &&
@@ -768,11 +955,17 @@
 		ASSERT(ht->ht_pfn != PFN_INVALID);
 	} else if (!(ht->ht_flags & HTABLE_VLP)) {
 		ptable_free(ht->ht_pfn);
+#if defined(__amd64) && defined(__xpv)
+		if (ht->ht_level == mmu.max_level) {
+			ptable_free(hat->hat_user_ptable);
+			hat->hat_user_ptable = PFN_INVALID;
+		}
+#endif
 	}
 	ht->ht_pfn = PFN_INVALID;
 
 	/*
-	 * Free htables or put into reserves.
+	 * Free it or put into reserves.
 	 */
 	if (USE_HAT_RESERVES() || htable_reserve_cnt < htable_reserve_amount) {
 		htable_put_reserve(ht);
@@ -859,7 +1052,15 @@
 	ASSERT(higher->ht_valid_cnt > 0);
 	ASSERT(old->ht_valid_cnt == 0);
 	found = x86pte_cas(higher, entry, expect, 0);
+#ifdef __xpv
+	/*
+	 * This is weird, but Xen apparently automatically unlinks empty
+	 * pagetables from the upper page table. So allow PTP to be 0 already.
+	 */
+	if (found != expect && found != 0)
+#else
 	if (found != expect)
+#endif
 		panic("Bad PTP found=" FMT_PTE ", expected=" FMT_PTE,
 		    found, expect);
 
@@ -917,6 +1118,12 @@
  * Release of hold on an htable. If this is the last use and the pagetable
  * is empty we may want to free it, then recursively look at the pagetable
  * above it. The recursion is handled by the outer while() loop.
+ *
+ * On the metal, during process exit, we don't bother unlinking the tables from
+ * upper level pagetables. They are instead handled in bulk by hat_free_end().
+ * We can't do this on the hypervisor as we need the page table to be
+ * implicitly unpinnned before it goes to the free page lists. This can't
+ * happen unless we fully unlink it from the page table hierarchy.
  */
 void
 htable_release(htable_t *ht)
@@ -949,6 +1156,7 @@
 			if (ht->ht_busy > 1)
 				break;
 
+#if !defined(__xpv)
 			/*
 			 * we always release empty shared htables
 			 */
@@ -968,6 +1176,7 @@
 				    (hat != kas.a_hat || va >= kernelbase))
 					break;
 			}
+#endif /* __xpv */
 
 			/*
 			 * Remember if we destroy an htable that shares its PFN
@@ -1220,7 +1429,9 @@
 }
 
 /*
- * Inherit initial pagetables from the boot program.
+ * Inherit initial pagetables from the boot program. On the 64-bit
+ * hypervisor we also temporarily mark the p_index field of page table
+ * pages, so we know not to try making them writable in seg_kpm.
  */
 void
 htable_attach(
@@ -1273,11 +1484,13 @@
 	pp = boot_claim_page(pfn);
 	ASSERT(pp != NULL);
 	page_downgrade(pp);
+#if defined(__xpv) && defined(__amd64)
 	/*
 	 * Record in the page_t that is a pagetable for segkpm setup.
 	 */
 	if (kpm_vbase)
 		pp->p_index = 1;
+#endif
 
 	/*
 	 * Count valid mappings and recursively attach lower level pagetables.
@@ -1711,14 +1924,31 @@
 		pte = *(x86pte32_t *)pteptr;
 
 	newpte = MAKEPTE(pfn, 0) | mmu.pt_global | mmu.pt_nx;
-	newpte |= PT_WRITABLE;
+
+	/*
+	 * For hardware we can use a writable mapping.
+	 */
+#ifdef __xpv
+	if (IN_XPV_PANIC())
+#endif
+		newpte |= PT_WRITABLE;
 
 	if (!PTE_EQUIV(newpte, pte)) {
-		if (mmu.pae_hat)
-			*pteptr = newpte;
-		else
-			*(x86pte32_t *)pteptr = newpte;
-		mmu_tlbflush_entry((caddr_t)(PWIN_VA(x)));
+
+#ifdef __xpv
+		if (!IN_XPV_PANIC()) {
+			xen_map(newpte, PWIN_VA(x));
+		} else
+#endif
+		{
+			XPV_ALLOW_PAGETABLE_UPDATES();
+			if (mmu.pae_hat)
+				*pteptr = newpte;
+			else
+				*(x86pte32_t *)pteptr = newpte;
+			XPV_DISALLOW_PAGETABLE_UPDATES();
+			mmu_tlbflush_entry((caddr_t)(PWIN_VA(x)));
+		}
 	}
 	return (PT_INDEX_PTR(PWIN_VA(x), index));
 }
@@ -1741,7 +1971,7 @@
 void
 x86pte_mapout(void)
 {
-	if (mmu.pwin_base == NULL || !khat_running)
+	if (kpm_vbase != NULL || !khat_running)
 		return;
 
 	/*
@@ -1815,7 +2045,12 @@
 		 */
 		if (prev == n) {
 			old = new;
-			mmu_tlbflush_entry((caddr_t)addr);
+#ifdef __xpv
+			if (!IN_XPV_PANIC())
+				xen_flush_va((caddr_t)addr);
+			else
+#endif
+				mmu_tlbflush_entry((caddr_t)addr);
 			goto done;
 		}
 
@@ -1828,7 +2063,9 @@
 			goto done;
 		}
 
+		XPV_ALLOW_PAGETABLE_UPDATES();
 		old = CAS_PTE(ptep, prev, n);
+		XPV_DISALLOW_PAGETABLE_UPDATES();
 	} while (old != prev);
 
 	/*
@@ -1862,9 +2099,45 @@
 {
 	x86pte_t	pte;
 	x86pte_t	*ptep;
+#ifdef __xpv
+	/*
+	 * We can't use writable pagetables for upper level tables, so fake it.
+	 */
+	mmu_update_t t[2];
+	int cnt = 1;
+	int count;
+	maddr_t ma;
 
+	if (!IN_XPV_PANIC()) {
+		ASSERT(!(ht->ht_flags & HTABLE_VLP));	/* no VLP yet */
+		ma = pa_to_ma(PT_INDEX_PHYSADDR(pfn_to_pa(ht->ht_pfn), entry));
+		t[0].ptr = ma | MMU_NORMAL_PT_UPDATE;
+		t[0].val = new;
+
+#if defined(__amd64)
+		/*
+		 * On the 64-bit hypervisor we need to maintain the user mode
+		 * top page table too.
+		 */
+		if (ht->ht_level == mmu.max_level && ht->ht_hat != kas.a_hat) {
+			ma = pa_to_ma(PT_INDEX_PHYSADDR(pfn_to_pa(
+			    ht->ht_hat->hat_user_ptable), entry));
+			t[1].ptr = ma | MMU_NORMAL_PT_UPDATE;
+			t[1].val = new;
+			++cnt;
+		}
+#endif	/* __amd64 */
+
+		if (HYPERVISOR_mmu_update(t, cnt, &count, DOMID_SELF))
+			panic("HYPERVISOR_mmu_update() failed");
+		ASSERT(count == cnt);
+		return (old);
+	}
+#endif
 	ptep = x86pte_access_pagetable(ht, entry);
+	XPV_ALLOW_PAGETABLE_UPDATES();
 	pte = CAS_PTE(ptep, old, new);
+	XPV_DISALLOW_PAGETABLE_UPDATES();
 	x86pte_release_pagetable(ht);
 	return (pte);
 }
@@ -1894,6 +2167,29 @@
 	else
 		ptep = x86pte_access_pagetable(ht, entry);
 
+#if defined(__xpv)
+	/*
+	 * If exit()ing just use HYPERVISOR_mmu_update(), as we can't be racing
+	 * with anything else.
+	 */
+	if ((ht->ht_hat->hat_flags & HAT_FREEING) && !IN_XPV_PANIC()) {
+		int count;
+		mmu_update_t t[1];
+		maddr_t ma;
+
+		oldpte = GET_PTE(ptep);
+		if (expect != 0 && (oldpte & PT_PADDR) != (expect & PT_PADDR))
+			goto done;
+		ma = pa_to_ma(PT_INDEX_PHYSADDR(pfn_to_pa(ht->ht_pfn), entry));
+		t[0].ptr = ma | MMU_NORMAL_PT_UPDATE;
+		t[0].val = 0;
+		if (HYPERVISOR_mmu_update(t, 1, &count, DOMID_SELF))
+			panic("HYPERVISOR_mmu_update() failed");
+		ASSERT(count == 1);
+		goto done;
+	}
+#endif /* __xpv */
+
 	/*
 	 * Note that the loop is needed to handle changes due to h/w updating
 	 * of PT_MOD/PT_REF.
@@ -1902,7 +2198,9 @@
 		oldpte = GET_PTE(ptep);
 		if (expect != 0 && (oldpte & PT_PADDR) != (expect & PT_PADDR))
 			goto done;
+		XPV_ALLOW_PAGETABLE_UPDATES();
 		found = CAS_PTE(ptep, oldpte, 0);
+		XPV_DISALLOW_PAGETABLE_UPDATES();
 	} while (found != oldpte);
 	if (oldpte & (PT_REF | PT_MOD))
 		hat_tlb_inval(ht->ht_hat, htable_e2va(ht, entry));
@@ -1931,7 +2229,9 @@
 	ASSERT(ht->ht_level != VLP_LEVEL);
 
 	ptep = x86pte_access_pagetable(ht, entry);
+	XPV_ALLOW_PAGETABLE_UPDATES();
 	found = CAS_PTE(ptep, expect, new);
+	XPV_DISALLOW_PAGETABLE_UPDATES();
 	if (found == expect) {
 		hat_tlb_inval(ht->ht_hat, htable_e2va(ht, entry));
 
@@ -1948,8 +2248,10 @@
 		    (GET_PTE(ptep) & PT_MOD) != 0) {
 			do {
 				found = GET_PTE(ptep);
+				XPV_ALLOW_PAGETABLE_UPDATES();
 				found =
 				    CAS_PTE(ptep, found, found | PT_WRITABLE);
+				XPV_DISALLOW_PAGETABLE_UPDATES();
 			} while ((found & PT_WRITABLE) == 0);
 		}
 	}
@@ -1957,6 +2259,7 @@
 	return (found);
 }
 
+#ifndef __xpv
 /*
  * Copy page tables - this is just a little more complicated than the
  * previous routines. Note that it's also not atomic! It also is never
@@ -2009,6 +2312,44 @@
 	x86pte_release_pagetable(dest);
 }
 
+#else /* __xpv */
+
+/*
+ * The hypervisor only supports writable pagetables at level 0, so we have
+ * to install these 1 by 1 the slow way.
+ */
+void
+x86pte_copy(htable_t *src, htable_t *dest, uint_t entry, uint_t count)
+{
+	caddr_t	src_va;
+	x86pte_t pte;
+
+	ASSERT(!IN_XPV_PANIC());
+	src_va = (caddr_t)x86pte_access_pagetable(src, entry);
+	while (count) {
+		if (mmu.pae_hat)
+			pte = *(x86pte_t *)src_va;
+		else
+			pte = *(x86pte32_t *)src_va;
+		if (pte != 0) {
+			set_pteval(pfn_to_pa(dest->ht_pfn), entry,
+			    dest->ht_level, pte);
+#ifdef __amd64
+			if (dest->ht_level == mmu.max_level &&
+			    htable_e2va(dest, entry) < HYPERVISOR_VIRT_END)
+				set_pteval(
+				    pfn_to_pa(dest->ht_hat->hat_user_ptable),
+				    entry, dest->ht_level, pte);
+#endif
+		}
+		--count;
+		++entry;
+		src_va += mmu.pte_size;
+	}
+	x86pte_release_pagetable(src);
+}
+#endif /* __xpv */
+
 /*
  * Zero page table entries - Note this doesn't use atomic stores!
  */
@@ -2017,6 +2358,10 @@
 {
 	caddr_t dst_va;
 	size_t size;
+#ifdef __xpv
+	int x;
+	x86pte_t newpte;
+#endif
 
 	/*
 	 * Map in the page table to be zeroed.
@@ -2024,7 +2369,22 @@
 	ASSERT(!(dest->ht_flags & HTABLE_SHARED_PFN));
 	ASSERT(!(dest->ht_flags & HTABLE_VLP));
 
-	dst_va = (caddr_t)x86pte_access_pagetable(dest, entry);
+	/*
+	 * On the hypervisor we don't use x86pte_access_pagetable() since
+	 * in this case the page is not pinned yet.
+	 */
+#ifdef __xpv
+	if (kpm_vbase == NULL) {
+		kpreempt_disable();
+		ASSERT(CPU->cpu_hat_info != NULL);
+		mutex_enter(&CPU->cpu_hat_info->hci_mutex);
+		x = PWIN_TABLE(CPU->cpu_id);
+		newpte = MAKEPTE(dest->ht_pfn, 0) | PT_WRITABLE;
+		xen_map(newpte, PWIN_VA(x));
+		dst_va = (caddr_t)PT_INDEX_PTR(PWIN_VA(x), entry);
+	} else
+#endif
+		dst_va = (caddr_t)x86pte_access_pagetable(dest, entry);
 
 	size = count << mmu.pte_size_shift;
 	ASSERT(size > BLOCKZEROALIGN);
@@ -2035,7 +2395,14 @@
 #endif
 		block_zero_no_xmm(dst_va, size);
 
-	x86pte_release_pagetable(dest);
+#ifdef __xpv
+	if (kpm_vbase == NULL) {
+		xen_map(0, PWIN_VA(x));
+		mutex_exit(&CPU->cpu_hat_info->hci_mutex);
+		kpreempt_enable();
+	} else
+#endif
+		x86pte_release_pagetable(dest);
 }
 
 /*
--- a/usr/src/uts/i86pc/vm/htable.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/htable.h	Tue Sep 18 15:46:43 2007 -0700
@@ -125,10 +125,8 @@
  *
  * XX64 - The check for the VA hole needs to be better generalized.
  */
-#define	HTABLE_NUM_PTES_PAE(ht)		\
-	(((ht)->ht_flags & HTABLE_VLP) ? 4 : 512)
 #if defined(__amd64)
-#define	HTABLE_NUM_PTES(ht)	HTABLE_NUM_PTES_PAE(ht)
+#define	HTABLE_NUM_PTES(ht)	(((ht)->ht_flags & HTABLE_VLP) ? 4 : 512)
 
 #define	HTABLE_LAST_PAGE(ht)						\
 	((ht)->ht_level == mmu.max_level ? ((uintptr_t)0UL - MMU_PAGESIZE) :\
@@ -141,7 +139,8 @@
 
 #elif defined(__i386)
 
-#define	HTABLE_NUM_PTES(ht)	(!mmu.pae_hat ? 1024 : HTABLE_NUM_PTES_PAE(ht))
+#define	HTABLE_NUM_PTES(ht)	\
+	(!mmu.pae_hat ? 1024 : ((ht)->ht_level == 2 ? 4 : 512))
 
 #define	HTABLE_LAST_PAGE(ht)	((ht)->ht_vaddr - MMU_PAGESIZE + \
 	((uintptr_t)HTABLE_NUM_PTES(ht) << LEVEL_SHIFT((ht)->ht_level)))
@@ -212,17 +211,18 @@
 extern void htable_adjust_reserve(void);
 
 /*
+ * return number of bytes mapped by all the htables in a given hat
+ */
+extern size_t htable_mapped(struct hat *);
+
+
+/*
  * Attach initial pagetables as htables
  */
 extern void htable_attach(struct hat *, uintptr_t, level_t, struct htable *,
     pfn_t);
 
 /*
- * return the number of pages mapped by a hat
- */
-extern pgcnt_t htable_count_pages(struct hat *);
-
-/*
  * Routine to find the next populated htable at or above a given virtual
  * address. Can specify an upper limit, or HTABLE_WALK_TO_END to indicate
  * that it should search the entire address space.  Similar to
@@ -295,6 +295,42 @@
 #define	HTABLE_LOCK_INC(ht)	atomic_add_32(&(ht)->ht_lock_cnt, 1)
 #define	HTABLE_LOCK_DEC(ht)	atomic_add_32(&(ht)->ht_lock_cnt, -1)
 
+#ifdef __xpv
+extern void xen_flush_va(caddr_t va);
+extern void xen_gflush_va(caddr_t va, cpuset_t);
+extern void xen_flush_tlb(void);
+extern void xen_gflush_tlb(cpuset_t);
+extern void xen_pin(pfn_t, level_t);
+extern void xen_unpin(pfn_t);
+extern int xen_kpm_page(pfn_t, uint_t);
+
+/*
+ * The hypervisor maps all page tables into our address space read-only.
+ * Under normal circumstances, the hypervisor then handles all updates to
+ * the page tables underneath the covers for us.  However, when we are
+ * trying to dump core after a hypervisor panic, the hypervisor is no
+ * longer available to do these updates.  To work around the protection
+ * problem, we simply disable write-protect checking for the duration of a
+ * pagetable update operation.
+ */
+#define	XPV_ALLOW_PAGETABLE_UPDATES()					\
+	{								\
+		if (IN_XPV_PANIC())					\
+			setcr0((getcr0() & ~CR0_WP) & 0xffffffff); 	\
+	}
+#define	XPV_DISALLOW_PAGETABLE_UPDATES()				\
+	{								\
+		if (IN_XPV_PANIC() > 0)					\
+			setcr0((getcr0() | CR0_WP) & 0xffffffff);	\
+	}
+
+#else /* __xpv */
+
+#define	XPV_ALLOW_PAGETABLE_UPDATES()
+#define	XPV_DISALLOW_PAGETABLE_UPDATES()
+
+#endif
+
 #endif	/* _KERNEL */
 
 
--- a/usr/src/uts/i86pc/vm/i86_mmu.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/i86_mmu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -59,6 +59,10 @@
 #include <sys/bootinfo.h>
 #include <vm/kboot_mmu.h>
 
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
+
 caddr_t
 i86devmap(pfn_t pf, pgcnt_t pgcnt, uint_t prot)
 {
@@ -195,6 +199,8 @@
 
 	/*
 	 * We have to map in an area that matches an entire page table.
+	 * The PTEs are large page aligned to avoid spurious pagefaults
+	 * on the hypervisor.
 	 */
 	map_addr = base & LEVEL_MASK(1);
 	map_eaddr = (base + len + LEVEL_SIZE(1) - 1) & LEVEL_MASK(1);
@@ -224,7 +230,11 @@
 
 		hat_devload(kas.a_hat, ptes + i * MMU_PAGESIZE,
 		    MMU_PAGESIZE, ht->ht_pfn,
+#ifdef __xpv
+		    PROT_READ | HAT_NOSYNC | HAT_UNORDERED_OK,
+#else
 		    PROT_READ | PROT_WRITE | HAT_NOSYNC | HAT_UNORDERED_OK,
+#endif
 		    HAT_LOAD | HAT_LOAD_NOCONSIST);
 	}
 
@@ -239,6 +249,55 @@
 extern caddr_t	kpm_vbase;
 extern size_t	kpm_size;
 
+#ifdef __xpv
+/*
+ * Create the initial segkpm mappings for the hypervisor. To avoid having
+ * to deal with page tables being read only, we make all mappings
+ * read only at first.
+ */
+static void
+xen_kpm_create(paddr_t paddr, level_t lvl)
+{
+	ulong_t pg_off;
+
+	for (pg_off = 0; pg_off < LEVEL_SIZE(lvl); pg_off += MMU_PAGESIZE) {
+		kbm_map((uintptr_t)kpm_vbase + paddr, (paddr_t)0, 0, 1);
+		kbm_read_only((uintptr_t)kpm_vbase + paddr + pg_off,
+		    paddr + pg_off);
+	}
+}
+
+/*
+ * Try to make all kpm mappings writable. Failures are ok, as those
+ * are just pagetable, GDT, etc. pages.
+ */
+static void
+xen_kpm_finish_init(void)
+{
+	pfn_t gdtpfn = mmu_btop(CPU->cpu_m.mcpu_gdtpa);
+	pfn_t pfn;
+	page_t *pp;
+
+	for (pfn = 0; pfn < mfn_count; ++pfn) {
+		/*
+		 * skip gdt
+		 */
+		if (pfn == gdtpfn)
+			continue;
+
+		/*
+		 * p_index is a hint that this is a pagetable
+		 */
+		pp = page_numtopp_nolock(pfn);
+		if (pp && pp->p_index) {
+			pp->p_index = 0;
+			continue;
+		}
+		(void) xen_kpm_page(pfn, PT_VALID | PT_WRITABLE);
+	}
+}
+#endif
+
 /*
  * Routine to pre-allocate data structures for hat_kern_setup(). It computes
  * how many pagetables it needs by walking the boot loader's page tables.
@@ -263,11 +322,13 @@
 	level_t		lpagel = mmu.max_page_level;
 	uint64_t	paddr;
 	int64_t		psize;
-
+	int		nwindows;
 
 	if (kpm_size > 0) {
 		/*
-		 * Create the kpm page tables.
+		 * Create the kpm page tables.  When running on the
+		 * hypervisor these are made read/only at first.
+		 * Later we'll add write permission where possible.
 		 */
 		for (pmem = phys_install; pmem; pmem = pmem->next) {
 			paddr = pmem->address;
@@ -278,20 +339,45 @@
 					l = lpagel;
 				else
 					l = 0;
+#if defined(__xpv)
+				/*
+				 * Create read/only mappings to avoid
+				 * conflicting with pagetable usage
+				 */
+				xen_kpm_create(paddr, l);
+#else
 				kbm_map((uintptr_t)kpm_vbase + paddr, paddr,
 				    l, 1);
+#endif
 				paddr += LEVEL_SIZE(l);
 				psize -= LEVEL_SIZE(l);
 			}
 		}
-	} else {
+	}
+
+	/*
+	 * If this machine doesn't have a kpm segment, we need to allocate
+	 * a small number of 'windows' which can be used to map pagetables.
+	 */
+	nwindows = (kpm_size == 0) ? 2 * NCPU : 0;
+
+#if defined(__xpv)
+	/*
+	 * On a hypervisor, these windows are also used by the xpv_panic
+	 * code, where we need one window for each level of the pagetable
+	 * hierarchy.
+	 */
+	nwindows = MAX(nwindows, mmu.max_level);
+#endif
+
+	if (nwindows != 0) {
 		/*
 		 * Create the page windows and 1 page of VA in
 		 * which we map the PTEs of those windows.
 		 */
-		mmu.pwin_base = vmem_xalloc(heap_arena, 2 * NCPU * MMU_PAGESIZE,
+		mmu.pwin_base = vmem_xalloc(heap_arena, nwindows * MMU_PAGESIZE,
 		    LEVEL_SIZE(1), 0, 0, NULL, NULL, VM_SLEEP);
-		ASSERT(NCPU * 2 <= MMU_PAGESIZE / mmu.pte_size);
+		ASSERT(nwindows <= MMU_PAGESIZE / mmu.pte_size);
 		mmu.pwin_pte_va = vmem_xalloc(heap_arena, MMU_PAGESIZE,
 		    MMU_PAGESIZE, 0, 0, NULL, NULL, VM_SLEEP);
 
@@ -303,7 +389,12 @@
 		ASSERT(paddr != 0);
 		ASSERT((paddr & MMU_PAGEOFFSET) == 0);
 		mmu.pwin_pte_pa = paddr;
+#ifdef __xpv
+		(void) find_pte((uintptr_t)mmu.pwin_pte_va, NULL, 0, 0);
+		kbm_read_only((uintptr_t)mmu.pwin_pte_va, mmu.pwin_pte_pa);
+#else
 		kbm_map((uintptr_t)mmu.pwin_pte_va, mmu.pwin_pte_pa, 0, 1);
+#endif
 	}
 
 	/*
@@ -391,13 +482,27 @@
 	/*
 	 * Attach htables to the existing pagetables
 	 */
+	/* BEGIN CSTYLED */
 	htable_attach(kas.a_hat, 0, mmu.max_level, NULL,
+#ifdef __xpv
+	    mmu_btop(xen_info->pt_base - ONE_GIG));
+#else
 	    mmu_btop(getcr3()));
+#endif
+	/* END CSTYLED */
 
-#if defined(__i386)
+#if defined(__i386) && !defined(__xpv)
 	CPU->cpu_tss->tss_cr3 = dftss0.tss_cr3 = getcr3();
 #endif /* __i386 */
 
+#if defined(__xpv) && defined(__amd64)
+	/*
+	 * Try to make the kpm mappings r/w. Failures here are OK, as
+	 * it's probably just a pagetable
+	 */
+	xen_kpm_finish_init();
+#endif
+
 	/*
 	 * The kernel HAT is now officially open for business.
 	 */
--- a/usr/src/uts/i86pc/vm/kboot_mmu.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/kboot_mmu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -40,6 +40,9 @@
 #include <sys/machsystm.h>
 #include <sys/promif.h>
 #include <sys/kobj.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 #include <vm/kboot_mmu.h>
 #include <vm/hat_pte.h>
 #include <vm/hat_i86.h>
@@ -50,7 +53,7 @@
  * Joe's debug printing
  */
 #define	DBG(x)    \
-	bop_printf(NULL, "boot_mmu.c: %s is %" PRIx64 "\n", #x, (uint64_t)(x));
+	bop_printf(NULL, "%M%: %s is %" PRIx64 "\n", #x, (uint64_t)(x));
 #else
 #define	DBG(x)	/* naught */
 #endif
@@ -111,6 +114,13 @@
 		top_level = 1;
 	}
 
+#ifdef __xpv
+	xen_info = bi->bi_xen_start_info;
+	mfn_list = (mfn_t *)xen_info->mfn_list;
+	DBG(mfn_list);
+	mfn_count = xen_info->nr_pages;
+	DBG(mfn_count);
+#endif
 	top_page_table = bi->bi_top_page_table;
 	DBG(top_page_table);
 }
@@ -122,15 +132,23 @@
 void *
 kbm_remap_window(paddr_t physaddr, int writeable)
 {
-	uint_t pt_bits = PT_NOCONSIST | PT_VALID | PT_WRITABLE;
+	x86pte_t pt_bits = PT_NOCONSIST | PT_VALID | PT_WRITABLE;
 
 	DBG(physaddr);
 
+#ifdef __xpv
+	if (!writeable)
+		pt_bits &= ~PT_WRITABLE;
+	if (HYPERVISOR_update_va_mapping((uintptr_t)window,
+	    pa_to_ma(physaddr) | pt_bits, UVMF_INVLPG | UVMF_LOCAL) < 0)
+		bop_panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	if (kbm_pae_support)
 		*((x86pte_t *)pte_to_window) = physaddr | pt_bits;
 	else
 		*((x86pte32_t *)pte_to_window) = physaddr | pt_bits;
 	mmu_tlbflush_entry(window);
+#endif
 	DBG(window);
 	return (window);
 }
@@ -154,6 +172,15 @@
 	if (kbm_pge_support && is_kernel)
 		pteval |= PT_GLOBAL;
 
+#ifdef __xpv
+	/*
+	 * try update_va_mapping first - fails if page table is missing.
+	 */
+	if (HYPERVISOR_update_va_mapping(va, pteval,
+	    UVMF_INVLPG | UVMF_LOCAL) == 0)
+		return;
+#endif
+
 	/*
 	 * Find the pte that will map this address. This creates any
 	 * missing intermediate level page tables.
@@ -162,13 +189,54 @@
 	if (ptep == NULL)
 		bop_panic("kbm_map: find_pte returned NULL");
 
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping(va, pteval, UVMF_INVLPG | UVMF_LOCAL))
+		bop_panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	if (kbm_pae_support)
 		*ptep = pteval;
 	else
 		*((x86pte32_t *)ptep) = pteval;
 	mmu_tlbflush_entry((caddr_t)va);
+#endif
 }
 
+#ifdef __xpv
+
+/*
+ * Add a mapping for the machine page at the given virtual address.
+ */
+void
+kbm_map_ma(maddr_t ma, uintptr_t va, uint_t level)
+{
+	paddr_t pte_physaddr;
+	x86pte_t pteval;
+
+	pteval = ma | PT_NOCONSIST | PT_VALID | PT_REF | PT_WRITABLE;
+	if (level == 1)
+		pteval |= PT_PAGESIZE;
+
+	/*
+	 * try update_va_mapping first - fails if page table is missing.
+	 */
+	if (HYPERVISOR_update_va_mapping(va,
+	    pteval, UVMF_INVLPG | UVMF_LOCAL) == 0)
+		return;
+
+	/*
+	 * Find the pte that will map this address. This creates any
+	 * missing intermediate level page tables
+	 */
+	(void) find_pte(va, &pte_physaddr, level, 0);
+
+	if (HYPERVISOR_update_va_mapping(va,
+	    pteval, UVMF_INVLPG | UVMF_LOCAL) != 0)
+		bop_panic("HYPERVISOR_update_va_mapping failed");
+}
+
+#endif /* __xpv */
+
+
 /*
  * Probe the boot time page tables to find the first mapping
  * including va (or higher) and return non-zero if one is found.
@@ -200,7 +268,11 @@
 			probe_va = mmu.hole_end;
 
 		if (IN_HYPERVISOR_VA(probe_va))
+#if defined(__amd64) && defined(__xpv)
+			probe_va = HYPERVISOR_VIRT_END;
+#else
 			return (0);
+#endif
 
 		/*
 		 * If we don't have a valid PTP/PTE at this level
@@ -263,6 +335,10 @@
 	if (khat_running)
 		panic("kbm_unmap() called too late");
 	else {
+#ifdef __xpv
+		(void) HYPERVISOR_update_va_mapping(va, 0,
+		    UVMF_INVLPG | UVMF_LOCAL);
+#else
 		x86pte_t *ptep;
 		level_t	level = 0;
 		uint_t  probe_only = 1;
@@ -276,6 +352,7 @@
 		else
 			*((x86pte32_t *)ptep) = 0;
 		mmu_tlbflush_entry((caddr_t)va);
+#endif
 	}
 }
 
@@ -305,11 +382,16 @@
 	else
 		old_pte = *((x86pte32_t *)ptep);
 
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping(va, pte_val, UVMF_INVLPG | UVMF_LOCAL))
+		bop_panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	if (kbm_pae_support)
 		*((x86pte_t *)ptep) = pte_val;
 	else
 		*((x86pte32_t *)ptep) = pte_val;
 	mmu_tlbflush_entry((caddr_t)va);
+#endif
 
 	if (!(old_pte & PT_VALID) || ma_to_pa(old_pte) == -1)
 		return (PFN_INVALID);
@@ -325,6 +407,11 @@
 {
 	x86pte_t pte_val = pa_to_ma(pa) |
 	    PT_NOCONSIST | PT_REF | PT_MOD | PT_VALID;
+
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping(va, pte_val, UVMF_INVLPG | UVMF_LOCAL))
+		bop_panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	x86pte_t *ptep;
 	level_t	level = 0;
 
@@ -337,6 +424,7 @@
 	else
 		*((x86pte32_t *)ptep) = pte_val;
 	mmu_tlbflush_entry((caddr_t)va);
+#endif
 }
 
 /*
@@ -364,11 +452,17 @@
 void
 kbm_pop(void)
 {
+#ifdef __xpv
+	if (HYPERVISOR_update_va_mapping((uintptr_t)window, save_pte,
+	    UVMF_INVLPG | UVMF_LOCAL) < 0)
+		bop_panic("HYPERVISOR_update_va_mapping() failed");
+#else
 	if (kbm_pae_support)
 		*((x86pte_t *)pte_to_window) = save_pte;
 	else
 		*((x86pte32_t *)pte_to_window) = save_pte;
 	mmu_tlbflush_entry(window);
+#endif
 }
 
 x86pte_t
@@ -381,6 +475,7 @@
 	return (((x86pte32_t *)table_ptr)[index]);
 }
 
+#ifndef __xpv
 void
 set_pteval(paddr_t table, uint_t index, uint_t level, x86pte_t pteval)
 {
@@ -392,6 +487,7 @@
 	if (level == top_level && level == 2)
 		reload_cr3();
 }
+#endif
 
 paddr_t
 make_ptable(x86pte_t *pteval, uint_t level)
@@ -402,6 +498,10 @@
 	new_table = do_bop_phys_alloc(MMU_PAGESIZE, MMU_PAGESIZE);
 	table_ptr = kbm_remap_window(new_table, 1);
 	bzero(table_ptr, MMU_PAGESIZE);
+#ifdef __xpv
+	/* Remove write permission to the new page table.  */
+	(void) kbm_remap_window(new_table, 0);
+#endif
 
 	if (level == top_level && level == 2)
 		*pteval = pa_to_ma(new_table) | PT_VALID;
--- a/usr/src/uts/i86pc/vm/kboot_mmu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/kboot_mmu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -63,6 +63,10 @@
  */
 extern void kbm_map(uintptr_t va, paddr_t pa, uint_t level, uint_t is_kernel);
 
+#ifdef __xpv
+extern void kbm_map_ma(maddr_t ma, uintptr_t va, uint_t level);
+#endif
+
 /*
  * unmap a single 4K page at VA
  */
--- a/usr/src/uts/i86pc/vm/vm_dep.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/vm_dep.h	Tue Sep 18 15:46:43 2007 -0700
@@ -42,211 +42,53 @@
 #include <sys/memnode.h>
 
 /*
- * WARNING: vm_dep.h is included by files in common. As such, macros
- * dependent upon PTE36 such as LARGEPAGESIZE cannot be used in this file.
+ * WARNING: vm_dep.h is included by files in common.
  */
 
 #define	GETTICK()	tsc_read()
 
-/* memranges in descending order */
-extern pfn_t		*memranges;
+extern uint_t page_create_update_flags_x86(uint_t);
+
+extern size_t plcnt_sz(size_t);
+#define	PLCNT_SZ(ctrs_sz) (ctrs_sz = plcnt_sz(ctrs_sz))
 
-#define	MEMRANGEHI(mtype)						\
-	((mtype > 0) ? memranges[mtype - 1] - 1: physmax)
-#define	MEMRANGELO(mtype)	(memranges[mtype])
+extern caddr_t plcnt_init(caddr_t);
+#define	PLCNT_INIT(addr) (addr = plcnt_init(addr))
 
-#define	MTYPE_FREEMEM(mt)						\
-	(mnoderanges[mt].mnr_mt_clpgcnt +				\
-	    mnoderanges[mt].mnr_mt_flpgcnt +				\
-	    mnoderanges[mt].mnr_mt_lgpgcnt)
+extern void plcnt_inc_dec(page_t *, int, int, long, int);
+#define	PLCNT_INCR(pp, mnode, mtype, szc, flags)			\
+	plcnt_inc_dec(pp, mtype, szc, 1l << PAGE_BSZS_SHIFT(szc), flags)
+#define	PLCNT_DECR(pp, mnode, mtype, szc, flags)			\
+	plcnt_inc_dec(pp, mtype, szc, -1l << PAGE_BSZS_SHIFT(szc), flags)
 
 /*
- * combined memory ranges from mnode and memranges[] to manage single
- * mnode/mtype dimension in the page lists.
- */
-typedef struct {
-	pfn_t	mnr_pfnlo;
-	pfn_t	mnr_pfnhi;
-	int	mnr_mnode;
-	int	mnr_memrange;		/* index into memranges[] */
-	/* maintain page list stats */
-	pgcnt_t	mnr_mt_pgmax;		/* mnode/mtype max page cnt */
-	pgcnt_t	mnr_mt_clpgcnt;		/* cache list cnt */
-	pgcnt_t	mnr_mt_flpgcnt;		/* free list cnt - small pages */
-	pgcnt_t	mnr_mt_lgpgcnt;		/* free list cnt - large pages */
-#ifdef DEBUG
-	struct mnr_mts {		/* mnode/mtype szc stats */
-		pgcnt_t	mnr_mts_pgcnt;
-		int	mnr_mts_colors;
-		pgcnt_t *mnr_mtsc_pgcnt;
-	} 	*mnr_mts;
-#endif
-} mnoderange_t;
-
-#ifdef DEBUG
-#define	PLCNT_SZ(ctrs_sz) {						\
-	int	szc, colors;						\
-	ctrs_sz += mnoderangecnt * sizeof (struct mnr_mts) *		\
-	    mmu_page_sizes;						\
-	for (szc = 0; szc < mmu_page_sizes; szc++) {			\
-		colors = page_get_pagecolors(szc);			\
-		ctrs_sz += mnoderangecnt * sizeof (pgcnt_t) * colors;	\
-	}								\
-}
-
-#define	PLCNT_INIT(addr) {						\
-	int	mt, szc, colors;					\
-	for (mt = 0; mt < mnoderangecnt; mt++) {			\
-		mnoderanges[mt].mnr_mts = (struct mnr_mts *)addr;	\
-		addr += (sizeof (struct mnr_mts) * mmu_page_sizes);	\
-		for (szc = 0; szc < mmu_page_sizes; szc++) {		\
-			colors = page_get_pagecolors(szc);		\
-			mnoderanges[mt].mnr_mts[szc].mnr_mts_colors =	\
-			    colors;					\
-			mnoderanges[mt].mnr_mts[szc].mnr_mtsc_pgcnt =	\
-			    (pgcnt_t *)addr;				\
-			addr += (sizeof (pgcnt_t) * colors);		\
-		}							\
-	}								\
-}
-#define	PLCNT_DO(pp, mtype, szc, cnt, flags) {				\
-	int	bin = PP_2_BIN(pp);					\
-	if (flags & PG_CACHE_LIST)					\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_clpgcnt, cnt);				\
-	else if (szc)							\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_lgpgcnt, cnt);				\
-	else								\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_flpgcnt, cnt);				\
-	atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].		\
-	    mnr_mts_pgcnt, cnt);					\
-	atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].		\
-	    mnr_mtsc_pgcnt[bin], cnt);					\
-}
-#else
-#define	PLCNT_SZ(ctrs_sz)
-#define	PLCNT_INIT(base)
-#define	PLCNT_DO(pp, mtype, szc, cnt, flags) {				\
-	if (flags & PG_CACHE_LIST)					\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_clpgcnt, cnt);				\
-	else if (szc)							\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_lgpgcnt, cnt);				\
-	else								\
-		atomic_add_long(&mnoderanges[mtype].			\
-		    mnr_mt_flpgcnt, cnt);				\
-}
-#endif
-
-#define	PLCNT_INCR(pp, mnode, mtype, szc, flags) {			\
-	long	cnt = (1 << PAGE_BSZS_SHIFT(szc));			\
-	ASSERT(mtype == PP_2_MTYPE(pp));				\
-	if (physmax4g && mtype <= mtype4g)				\
-		atomic_add_long(&freemem4g, cnt);			\
-	PLCNT_DO(pp, mtype, szc, cnt, flags);				\
-}
-
-#define	PLCNT_DECR(pp, mnode, mtype, szc, flags) {			\
-	long	cnt = ((-1) << PAGE_BSZS_SHIFT(szc));			\
-	ASSERT(mtype == PP_2_MTYPE(pp));				\
-	if (physmax4g && mtype <= mtype4g)				\
-		atomic_add_long(&freemem4g, cnt);			\
-	PLCNT_DO(pp, mtype, szc, cnt, flags);				\
-}
-
-/*
- * macros to update page list max counts.  no-op on x86.
+ * macro to update page list max counts.  no-op on x86.
  */
 #define	PLCNT_XFER_NORELOC(pp)
 
 #define	PLCNT_MODIFY_MAX(pfn, cnt)	mtype_modify_max(pfn, (pgcnt_t)cnt)
-
-extern mnoderange_t	*mnoderanges;
-extern int		mnoderangecnt;
-extern int		mtype4g;
-
-/*
- * 4g memory management variables for systems with more than 4g of memory:
- *
- * physical memory below 4g is required for 32bit dma devices and, currently,
- * for kmem memory. On systems with more than 4g of memory, the pool of memory
- * below 4g can be depleted without any paging activity given that there is
- * likely to be sufficient memory above 4g.
- *
- * physmax4g is set true if the largest pfn is over 4g. The rest of the
- * 4g memory management code is enabled only when physmax4g is true.
- *
- * maxmem4g is the count of the maximum number of pages on the page lists
- * with physical addresses below 4g. It can be a lot less then 4g given that
- * BIOS may reserve large chunks of space below 4g for hot plug pci devices,
- * agp aperture etc.
- *
- * freemem4g maintains the count of the number of available pages on the
- * page lists with physical addresses below 4g.
- *
- * DESFREE4G specifies the desired amount of below 4g memory. It defaults to
- * 6% (desfree4gshift = 4) of maxmem4g.
- *
- * RESTRICT4G_ALLOC returns true if freemem4g falls below DESFREE4G
- * and the amount of physical memory above 4g is greater than freemem4g.
- * In this case, page_get_* routines will restrict below 4g allocations
- * for requests that don't specifically require it.
- */
-
-extern int		physmax4g;
-extern pgcnt_t		maxmem4g;
-extern pgcnt_t		freemem4g;
-extern int		lotsfree4gshift;
-extern int		desfree4gshift;
-#define	LOTSFREE4G	(maxmem4g >> lotsfree4gshift)
-#define	DESFREE4G	(maxmem4g >> desfree4gshift)
-
-#define	RESTRICT4G_ALLOC					\
-	(physmax4g && (freemem4g < DESFREE4G) && ((freemem4g << 1) < freemem))
-
-/*
- * 16m memory management:
- *
- * reserve some amount of physical memory below 16m for legacy devices.
- *
- * RESTRICT16M_ALLOC returns true if an there are sufficient free pages above
- * 16m or if the 16m pool drops below DESFREE16M.
- *
- * In this case, general page allocations via page_get_{free,cache}list
- * routines will be restricted from allocating from the 16m pool. Allocations
- * that require specific pfn ranges (page_get_anylist) and PG_PANIC allocations
- * are not restricted.
- */
-
-#define	FREEMEM16M	MTYPE_FREEMEM(0)
-#define	DESFREE16M	desfree16m
-#define	RESTRICT16M_ALLOC(freemem, pgcnt, flags)		\
-	((freemem != 0) && ((flags & PG_PANIC) == 0) &&		\
-	    ((freemem >= (FREEMEM16M)) ||			\
-	    (FREEMEM16M  < (DESFREE16M + pgcnt))))
-extern pgcnt_t		desfree16m;
-
-extern int		restricted_kmemalloc;
-extern int		memrange_num(pfn_t);
-extern int		pfn_2_mtype(pfn_t);
-extern int		mtype_func(int, int, uint_t);
-extern void		mtype_modify_max(pfn_t, long);
-extern int		mnode_pgcnt(int);
-extern int		mnode_range_cnt(int);
-
-#define	NUM_MEM_RANGES	4		/* memory range types */
+extern int memrange_num(pfn_t);
+extern int pfn_2_mtype(pfn_t);
+extern int mtype_func(int, int, uint_t);
+extern void mtype_modify_max(pfn_t, long);
+extern int mnode_pgcnt(int);
+extern int mnode_range_cnt(int);
 
 /*
  * candidate counters in vm_pagelist.c are indexed by color and range
  */
+#define	NUM_MEM_RANGES	4		/* memory range types */
 #define	MAX_MNODE_MRANGES	NUM_MEM_RANGES
 #define	MNODE_RANGE_CNT(mnode)	mnode_range_cnt(mnode)
-#define	MNODE_MAX_MRANGE(mnode)	(memrange_num(mem_node_config[mnode].physbase))
+#define	MNODE_MAX_MRANGE(mnode)	memrange_num(mem_node_config[mnode].physbase)
+
+/*
+ * This was really badly defined, it implicitly uses mnode_maxmrange[]
+ * which is a static in vm_pagelist.c
+ */
+extern int mtype_2_mrange(int);
 #define	MTYPE_2_MRANGE(mnode, mtype)	\
-	(mnode_maxmrange[mnode] - mnoderanges[mtype].mnr_memrange)
+	(mnode_maxmrange[mnode] - mtype_2_mrange(mtype))
 
 /*
  * Per page size free lists. Allocated dynamically.
@@ -366,7 +208,7 @@
 #define	PP_2_BIN(pp)		(PP_2_BIN_SZC(pp, pp->p_szc))
 
 #define	PP_2_MEM_NODE(pp)	(PFN_2_MEM_NODE(pp->p_pagenum))
-#define	PP_2_MTYPE(pp)		(pfn_2_mtype(pfn_to_mfn(pp->p_pagenum)))
+#define	PP_2_MTYPE(pp)		(pfn_2_mtype(pp->p_pagenum))
 #define	PP_2_SZC(pp)		(pp->p_szc)
 
 #define	SZCPAGES(szc)		(1 << PAGE_BSZS_SHIFT(szc))
@@ -402,76 +244,9 @@
 extern struct cpu	cpus[];
 #define	CPU0		cpus
 
-#if defined(__amd64)
-
-/*
- * set the mtype range (called from page_get_{free,cache}list)
- *   - set range to above 4g if the system has more than 4g of memory and the
- *   amount of memory below 4g runs low. If not, set range to above 16m if
- *   16m threshold is reached otherwise set range to all of memory
- *   starting from the hi pfns.
- *
- * page_get_anylist gets its mtype range from the specified ddi_dma_attr_t.
- */
-#define	MTYPE_INIT(mtype, vp, vaddr, flags, pgsz) {			\
-	mtype = mnoderangecnt - 1;					\
-	if (RESTRICT4G_ALLOC) {						\
-		VM_STAT_ADD(vmm_vmstats.restrict4gcnt);			\
-		/* here only for > 4g systems */			\
-		flags |= PGI_MT_RANGE4G;				\
-	} else if (RESTRICT16M_ALLOC(freemem, btop(pgsz), flags)) {	\
-		flags |= PGI_MT_RANGE16M;				\
-	} else {							\
-		VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);		\
-		VM_STAT_COND_ADD((flags & PG_PANIC),			\
-		    vmm_vmstats.pgpanicalloc);				\
-		flags |= PGI_MT_RANGE0;					\
-	}								\
-}
-
-#elif defined(__i386)
-
-/*
- * set the mtype range
- *   - kmem requests needs to be below 4g if restricted_kmemalloc is set.
- *   - for non kmem requests, set range to above 4g if the amount of memory
- *   below 4g runs low.
- */
-
-#define	MTYPE_INIT(mtype, vp, vaddr, flags, pgsz) {			\
-	if (restricted_kmemalloc && VN_ISKAS(vp) &&			\
-	    (caddr_t)(vaddr) >= kernelheap &&				\
-	    (caddr_t)(vaddr) < ekernelheap) {				\
-		ASSERT(physmax4g);					\
-		mtype = mtype4g;					\
-		if (RESTRICT16M_ALLOC(freemem4g - btop(pgsz),		\
-		    btop(pgsz), flags)) {				\
-			flags |= PGI_MT_RANGE16M;			\
-		} else {						\
-			VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);	\
-			VM_STAT_COND_ADD((flags & PG_PANIC),		\
-			    vmm_vmstats.pgpanicalloc);			\
-			flags |= PGI_MT_RANGE0;				\
-		}							\
-	} else {							\
-		mtype = mnoderangecnt - 1;				\
-		if (RESTRICT4G_ALLOC) {					\
-			VM_STAT_ADD(vmm_vmstats.restrict4gcnt);		\
-			/* here only for > 4g systems */		\
-			flags |= PGI_MT_RANGE4G;			\
-		} else if (RESTRICT16M_ALLOC(freemem, btop(pgsz),	\
-		    flags)) {						\
-			flags |= PGI_MT_RANGE16M;			\
-		} else {						\
-			VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);	\
-			VM_STAT_COND_ADD((flags & PG_PANIC),		\
-			    vmm_vmstats.pgpanicalloc);			\
-			flags |= PGI_MT_RANGE0;				\
-		}							\
-	}								\
-}
-
-#endif	/* __i386 */
+extern int mtype_init(vnode_t *, caddr_t, uint_t *, size_t);
+#define	MTYPE_INIT(mtype, vp, vaddr, flags, pgsz)		\
+	(mtype = mtype_init(vp, vaddr, &(flags), pgsz))
 
 /*
  * macros to loop through the mtype range (page_get_mnode_{free,cache,any}list,
@@ -495,24 +270,15 @@
 	}								\
 }
 
-/* mtype init for page_get_replacement_page */
-
-#define	MTYPE_PGR_INIT(mtype, flags, pp, mnode, pgcnt) {		\
-	mtype = mnoderangecnt - 1;					\
-	if (RESTRICT16M_ALLOC(freemem, pgcnt, flags)) {			\
-		flags |= PGI_MT_RANGE16M;				\
-	} else {							\
-		VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);		\
-		flags |= PGI_MT_RANGE0;					\
-	}								\
-}
+extern int mtype_pgr_init(int *, page_t *, int, pgcnt_t);
+#define	MTYPE_PGR_INIT(mtype, flags, pp, mnode, pgcnt)			\
+	(mtype = mtype_pgr_init(&flags, pp, mnode, pgcnt))
 
 #define	MNODE_PGCNT(mnode)		mnode_pgcnt(mnode)
 
+extern void mnodetype_2_pfn(int, int, pfn_t *, pfn_t *);
 #define	MNODETYPE_2_PFN(mnode, mtype, pfnlo, pfnhi)			\
-	ASSERT(mnoderanges[mtype].mnr_mnode == mnode);			\
-	pfnlo = mnoderanges[mtype].mnr_pfnlo;				\
-	pfnhi = mnoderanges[mtype].mnr_pfnhi;
+	mnodetype_2_pfn(mnode, mtype, &pfnlo, &pfnhi)
 
 #define	PC_BIN_MUTEX(mnode, bin, flags) ((flags & PG_FREE_LIST) ?	\
 	&fpc_mutex[(bin) & (NPC_MUTEX - 1)][mnode] :			\
@@ -596,11 +362,12 @@
  * PGI range flags - should not overlap PGI flags
  */
 #define	PGI_MT_RANGE0	0x1000000	/* mtype range to 0 */
-#define	PGI_MT_RANGE16M	0x2000000	/* mtype range to 16m */
+#define	PGI_MT_RANGE16M 0x2000000	/* mtype range to 16m */
 #define	PGI_MT_RANGE4G	0x4000000	/* mtype range to 4g */
 #define	PGI_MT_NEXT	0x8000000	/* get next mtype */
 #define	PGI_MT_RANGE	(PGI_MT_RANGE0 | PGI_MT_RANGE16M | PGI_MT_RANGE4G)
 
+
 /*
  * Maximum and default values for user heap, stack, private and shared
  * anonymous memory, and user text and initialized data.
--- a/usr/src/uts/i86pc/vm/vm_machdep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/i86pc/vm/vm_machdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -83,6 +83,43 @@
 #include <sys/promif.h>
 #include <sys/memnode.h>
 #include <sys/stack.h>
+#include <util/qsort.h>
+#include <sys/taskq.h>
+
+#ifdef __xpv
+
+#include <sys/hypervisor.h>
+#include <sys/xen_mmu.h>
+#include <sys/balloon_impl.h>
+
+/*
+ * domain 0 pages usable for DMA are kept pre-allocated and kept in
+ * distinct lists, ordered by increasing mfn.
+ */
+static kmutex_t io_pool_lock;
+static page_t *io_pool_4g;	/* pool for 32 bit dma limited devices */
+static page_t *io_pool_16m;	/* pool for 24 bit dma limited legacy devices */
+static long io_pool_cnt;
+static long io_pool_cnt_max = 0;
+#define	DEFAULT_IO_POOL_MIN	128
+static long io_pool_cnt_min = DEFAULT_IO_POOL_MIN;
+static long io_pool_cnt_lowater = 0;
+static long io_pool_shrink_attempts; /* how many times did we try to shrink */
+static long io_pool_shrinks;	/* how many times did we really shrink */
+static long io_pool_grows;	/* how many times did we grow */
+static mfn_t start_mfn = 1;
+static caddr_t io_pool_kva;	/* use to alloc pages when needed */
+
+static int create_contig_pfnlist(uint_t);
+
+/*
+ * percentage of phys mem to hold in the i/o pool
+ */
+#define	DEFAULT_IO_POOL_PCT	2
+static long io_pool_physmem_pct = DEFAULT_IO_POOL_PCT;
+static void page_io_pool_sub(page_t **, page_t *, page_t *);
+
+#endif /* __xpv */
 
 uint_t vac_colors = 1;
 
@@ -96,15 +133,136 @@
  */
 extern int use_sse_pagecopy, use_sse_pagezero;
 
-/* 4g memory management */
-pgcnt_t		maxmem4g;
-pgcnt_t		freemem4g;
-int		physmax4g;
-int		desfree4gshift = 4;	/* maxmem4g shift to derive DESFREE4G */
-int		lotsfree4gshift = 3;
-
-/* 16m memory management: desired number of free pages below 16m. */
-pgcnt_t		desfree16m = 0x380;
+/*
+ * combined memory ranges from mnode and memranges[] to manage single
+ * mnode/mtype dimension in the page lists.
+ */
+typedef struct {
+	pfn_t	mnr_pfnlo;
+	pfn_t	mnr_pfnhi;
+	int	mnr_mnode;
+	int	mnr_memrange;		/* index into memranges[] */
+	/* maintain page list stats */
+	pgcnt_t	mnr_mt_clpgcnt;		/* cache list cnt */
+	pgcnt_t	mnr_mt_flpgcnt;		/* free list cnt - small pages */
+	pgcnt_t	mnr_mt_lgpgcnt;		/* free list cnt - large pages */
+#ifdef DEBUG
+	struct mnr_mts {		/* mnode/mtype szc stats */
+		pgcnt_t	mnr_mts_pgcnt;
+		int	mnr_mts_colors;
+		pgcnt_t *mnr_mtsc_pgcnt;
+	} 	*mnr_mts;
+#endif
+} mnoderange_t;
+
+#define	MEMRANGEHI(mtype)						\
+	((mtype > 0) ? memranges[mtype - 1] - 1: physmax)
+#define	MEMRANGELO(mtype)	(memranges[mtype])
+
+#define	MTYPE_FREEMEM(mt)						\
+	(mnoderanges[mt].mnr_mt_clpgcnt +				\
+	    mnoderanges[mt].mnr_mt_flpgcnt +				\
+	    mnoderanges[mt].mnr_mt_lgpgcnt)
+
+/*
+ * As the PC architecture evolved memory up was clumped into several
+ * ranges for various historical I/O devices to do DMA.
+ * < 16Meg - ISA bus
+ * < 2Gig - ???
+ * < 4Gig - PCI bus or drivers that don't understand PAE mode
+ *
+ * These are listed in reverse order, so that we can skip over unused
+ * ranges on machines with small memories.
+ *
+ * For now under the Hypervisor, we'll only ever have one memrange.
+ */
+#define	PFN_4GIG	0x100000
+#define	PFN_16MEG	0x1000
+static pfn_t arch_memranges[NUM_MEM_RANGES] = {
+    PFN_4GIG,	/* pfn range for 4G and above */
+    0x80000,	/* pfn range for 2G-4G */
+    PFN_16MEG,	/* pfn range for 16M-2G */
+    0x00000,	/* pfn range for 0-16M */
+};
+pfn_t *memranges = &arch_memranges[0];
+int nranges = NUM_MEM_RANGES;
+
+/*
+ * This combines mem_node_config and memranges into one data
+ * structure to be used for page list management.
+ */
+mnoderange_t	*mnoderanges;
+int		mnoderangecnt;
+int		mtype4g;
+
+/*
+ * 4g memory management variables for systems with more than 4g of memory:
+ *
+ * physical memory below 4g is required for 32bit dma devices and, currently,
+ * for kmem memory. On systems with more than 4g of memory, the pool of memory
+ * below 4g can be depleted without any paging activity given that there is
+ * likely to be sufficient memory above 4g.
+ *
+ * physmax4g is set true if the largest pfn is over 4g. The rest of the
+ * 4g memory management code is enabled only when physmax4g is true.
+ *
+ * maxmem4g is the count of the maximum number of pages on the page lists
+ * with physical addresses below 4g. It can be a lot less then 4g given that
+ * BIOS may reserve large chunks of space below 4g for hot plug pci devices,
+ * agp aperture etc.
+ *
+ * freemem4g maintains the count of the number of available pages on the
+ * page lists with physical addresses below 4g.
+ *
+ * DESFREE4G specifies the desired amount of below 4g memory. It defaults to
+ * 6% (desfree4gshift = 4) of maxmem4g.
+ *
+ * RESTRICT4G_ALLOC returns true if freemem4g falls below DESFREE4G
+ * and the amount of physical memory above 4g is greater than freemem4g.
+ * In this case, page_get_* routines will restrict below 4g allocations
+ * for requests that don't specifically require it.
+ */
+
+#define	LOTSFREE4G	(maxmem4g >> lotsfree4gshift)
+#define	DESFREE4G	(maxmem4g >> desfree4gshift)
+
+#define	RESTRICT4G_ALLOC					\
+	(physmax4g && (freemem4g < DESFREE4G) && ((freemem4g << 1) < freemem))
+
+static pgcnt_t	maxmem4g;
+static pgcnt_t	freemem4g;
+static int	physmax4g;
+static int	desfree4gshift = 4;	/* maxmem4g shift to derive DESFREE4G */
+static int	lotsfree4gshift = 3;
+
+/*
+ * 16m memory management:
+ *
+ * reserve some amount of physical memory below 16m for legacy devices.
+ *
+ * RESTRICT16M_ALLOC returns true if an there are sufficient free pages above
+ * 16m or if the 16m pool drops below DESFREE16M.
+ *
+ * In this case, general page allocations via page_get_{free,cache}list
+ * routines will be restricted from allocating from the 16m pool. Allocations
+ * that require specific pfn ranges (page_get_anylist) and PG_PANIC allocations
+ * are not restricted.
+ */
+
+#define	FREEMEM16M	MTYPE_FREEMEM(0)
+#define	DESFREE16M	desfree16m
+#define	RESTRICT16M_ALLOC(freemem, pgcnt, flags)		\
+	((freemem != 0) && ((flags & PG_PANIC) == 0) &&		\
+	    ((freemem >= (FREEMEM16M)) ||			\
+	    (FREEMEM16M  < (DESFREE16M + pgcnt))))
+
+static pgcnt_t	desfree16m = 0x380;
+
+/*
+ * This can be patched via /etc/system to allow old non-PAE aware device
+ * drivers to use kmem_alloc'd memory on 32 bit systems with > 4Gig RAM.
+ */
+int restricted_kmemalloc = 0;
 
 #ifdef VM_STATS
 struct {
@@ -148,6 +306,47 @@
 size_t max_utext_lpsize = MMU_PAGESIZE;
 size_t max_shm_lpsize = MMU_PAGESIZE;
 
+
+/*
+ * initialized by page_coloring_init().
+ */
+uint_t	page_colors;
+uint_t	page_colors_mask;
+uint_t	page_coloring_shift;
+int	cpu_page_colors;
+static uint_t	l2_colors;
+
+/*
+ * Page freelists and cachelists are dynamically allocated once mnoderangecnt
+ * and page_colors are calculated from the l2 cache n-way set size.  Within a
+ * mnode range, the page freelist and cachelist are hashed into bins based on
+ * color. This makes it easier to search for a page within a specific memory
+ * range.
+ */
+#define	PAGE_COLORS_MIN	16
+
+page_t ****page_freelists;
+page_t ***page_cachelists;
+
+
+/*
+ * Used by page layer to know about page sizes
+ */
+hw_pagesize_t hw_page_array[MAX_NUM_LEVEL + 1];
+
+kmutex_t	*fpc_mutex[NPC_MUTEX];
+kmutex_t	*cpc_mutex[NPC_MUTEX];
+
+/*
+ * Only let one thread at a time try to coalesce large pages, to
+ * prevent them from working against each other.
+ */
+static kmutex_t	contig_lock;
+#define	CONTIG_LOCK()	mutex_enter(&contig_lock);
+#define	CONTIG_UNLOCK()	mutex_exit(&contig_lock);
+
+#define	PFN_16M		(mmu_btop((uint64_t)0x1000000))
+
 /*
  * Return the optimum page size for a given mapping
  */
@@ -263,39 +462,39 @@
 		return (0);
 
 	if (flags & MAP_TEXT) {
-	    if (!memcntl)
-		max_lpsize = max_utext_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_utext_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    shm_lpg_min_physmem));
 
 	} else if (flags & MAP_INITDATA) {
-	    if (!memcntl)
-		max_lpsize = max_uidata_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_uidata_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    privm_lpg_min_physmem));
 
 	} else if (type == MAPPGSZC_SHM) {
-	    if (!memcntl)
-		max_lpsize = max_shm_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_shm_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    shm_lpg_min_physmem));
 
 	} else if (type == MAPPGSZC_HEAP) {
-	    if (!memcntl)
-		max_lpsize = max_uheap_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_uheap_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    privm_lpg_min_physmem));
 
 	} else if (type == MAPPGSZC_STACK) {
-	    if (!memcntl)
-		max_lpsize = max_ustack_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_ustack_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    privm_lpg_min_physmem));
 
 	} else {
-	    if (!memcntl)
-		max_lpsize = max_privmap_lpsize;
-	    return (map_szcvec(addr, size, off, max_lpsize,
+		if (!memcntl)
+			max_lpsize = max_privmap_lpsize;
+		return (map_szcvec(addr, size, off, max_lpsize,
 		    privm_lpg_min_physmem));
 	}
 }
@@ -674,67 +873,6 @@
 	return (address_in_memlist(phys_install, pfn_to_pa(pf), 1));
 }
 
-
-/*
- * initialized by page_coloring_init().
- */
-uint_t	page_colors;
-uint_t	page_colors_mask;
-uint_t	page_coloring_shift;
-int	cpu_page_colors;
-static uint_t	l2_colors;
-
-/*
- * Page freelists and cachelists are dynamically allocated once mnoderangecnt
- * and page_colors are calculated from the l2 cache n-way set size.  Within a
- * mnode range, the page freelist and cachelist are hashed into bins based on
- * color. This makes it easier to search for a page within a specific memory
- * range.
- */
-#define	PAGE_COLORS_MIN	16
-
-page_t ****page_freelists;
-page_t ***page_cachelists;
-
-/*
- * As the PC architecture evolved memory up was clumped into several
- * ranges for various historical I/O devices to do DMA.
- * < 16Meg - ISA bus
- * < 2Gig - ???
- * < 4Gig - PCI bus or drivers that don't understand PAE mode
- */
-static pfn_t arch_memranges[NUM_MEM_RANGES] = {
-    0x100000,	/* pfn range for 4G and above */
-    0x80000,	/* pfn range for 2G-4G */
-    0x01000,	/* pfn range for 16M-2G */
-    0x00000,	/* pfn range for 0-16M */
-};
-
-/*
- * These are changed during startup if the machine has limited memory.
- */
-pfn_t *memranges = &arch_memranges[0];
-int nranges = NUM_MEM_RANGES;
-
-/*
- * Used by page layer to know about page sizes
- */
-hw_pagesize_t hw_page_array[MAX_NUM_LEVEL + 1];
-
-/*
- * This can be patched via /etc/system to allow old non-PAE aware device
- * drivers to use kmem_alloc'd memory on 32 bit systems with > 4Gig RAM.
- */
-#if defined(__i386)
-int restricted_kmemalloc = 0;
-#elif defined(__amd64)
-int restricted_kmemalloc = 0;
-#endif
-
-kmutex_t	*fpc_mutex[NPC_MUTEX];
-kmutex_t	*cpc_mutex[NPC_MUTEX];
-
-
 /*
  * return the memrange containing pfn
  */
@@ -753,9 +891,13 @@
 /*
  * return the mnoderange containing pfn
  */
+/*ARGSUSED*/
 int
 pfn_2_mtype(pfn_t pfn)
 {
+#if defined(__xpv)
+	return (0);
+#else
 	int	n;
 
 	for (n = mnoderangecnt - 1; n >= 0; n--) {
@@ -764,8 +906,10 @@
 		}
 	}
 	return (n);
+#endif
 }
 
+#if !defined(__xpv)
 /*
  * is_contigpage_free:
  *	returns a page list of contiguous pages. It minimally has to return
@@ -862,6 +1006,7 @@
 
 	return (NULL);
 }
+#endif	/* !__xpv */
 
 /*
  * verify that pages being returned from allocator have correct DMA attribute
@@ -887,13 +1032,7 @@
 }
 #endif
 
-static kmutex_t	contig_lock;
-
-#define	CONTIG_LOCK()	mutex_enter(&contig_lock);
-#define	CONTIG_UNLOCK()	mutex_exit(&contig_lock);
-
-#define	PFN_16M		(mmu_btop((uint64_t)0x1000000))
-
+#if !defined(__xpv)
 static page_t *
 page_get_contigpage(pgcnt_t *pgcnt, ddi_dma_attr_t *mattr, int iolock)
 {
@@ -1015,23 +1154,19 @@
 	CONTIG_UNLOCK();
 	return (NULL);
 }
+#endif	/* !__xpv */
 
 /*
- * combine mem_node_config and memrange memory ranges into one data
- * structure to be used for page list management.
- *
  * mnode_range_cnt() calculates the number of memory ranges for mnode and
  * memranges[]. Used to determine the size of page lists and mnoderanges.
- *
- * mnode_range_setup() initializes mnoderanges.
  */
-mnoderange_t	*mnoderanges;
-int		mnoderangecnt;
-int		mtype4g;
-
 int
 mnode_range_cnt(int mnode)
 {
+#if defined(__xpv)
+	ASSERT(mnode == 0);
+	return (1);
+#else	/* __xpv */
 	int	mri;
 	int	mnrcnt = 0;
 
@@ -1058,8 +1193,12 @@
 	}
 	ASSERT(mnrcnt <= MAX_MNODE_MRANGES);
 	return (mnrcnt);
+#endif	/* __xpv */
 }
 
+/*
+ * mnode_range_setup() initializes mnoderanges.
+ */
 void
 mnode_range_setup(mnoderange_t *mnoderanges)
 {
@@ -1076,12 +1215,10 @@
 
 		while (mri >= 0 && mem_node_config[mnode].physmax >=
 		    MEMRANGELO(mri)) {
-			mnoderanges->mnr_pfnlo =
-			    MAX(MEMRANGELO(mri),
-				mem_node_config[mnode].physbase);
-			mnoderanges->mnr_pfnhi =
-			    MIN(MEMRANGEHI(mri),
-				mem_node_config[mnode].physmax);
+			mnoderanges->mnr_pfnlo = MAX(MEMRANGELO(mri),
+			    mem_node_config[mnode].physbase);
+			mnoderanges->mnr_pfnhi = MIN(MEMRANGEHI(mri),
+			    mem_node_config[mnode].physmax);
 			mnoderanges->mnr_mnode = mnode;
 			mnoderanges->mnr_memrange = mri;
 			mnoderanges++;
@@ -1093,6 +1230,71 @@
 	}
 }
 
+/*ARGSUSED*/
+int
+mtype_init(vnode_t *vp, caddr_t vaddr, uint_t *flags, size_t pgsz)
+{
+	int mtype = mnoderangecnt - 1;
+
+#if !defined(__xpv)
+#if defined(__i386)
+	/*
+	 * set the mtype range
+	 * - kmem requests needs to be below 4g if restricted_kmemalloc is set.
+	 * - for non kmem requests, set range to above 4g if memory below 4g
+	 * runs low.
+	 */
+	if (restricted_kmemalloc && VN_ISKAS(vp) &&
+	    (caddr_t)(vaddr) >= kernelheap &&
+	    (caddr_t)(vaddr) < ekernelheap) {
+		ASSERT(physmax4g);
+		mtype = mtype4g;
+		if (RESTRICT16M_ALLOC(freemem4g - btop(pgsz),
+		    btop(pgsz), *flags)) {
+			*flags |= PGI_MT_RANGE16M;
+		} else {
+			VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);
+			VM_STAT_COND_ADD((*flags & PG_PANIC),
+			    vmm_vmstats.pgpanicalloc);
+			*flags |= PGI_MT_RANGE0;
+		}
+		return (mtype);
+	}
+#endif	/* __i386 */
+
+	if (RESTRICT4G_ALLOC) {
+		VM_STAT_ADD(vmm_vmstats.restrict4gcnt);
+		/* here only for > 4g systems */
+		*flags |= PGI_MT_RANGE4G;
+	} else if (RESTRICT16M_ALLOC(freemem, btop(pgsz), *flags)) {
+		*flags |= PGI_MT_RANGE16M;
+	} else {
+		VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);
+		VM_STAT_COND_ADD((*flags & PG_PANIC), vmm_vmstats.pgpanicalloc);
+		*flags |= PGI_MT_RANGE0;
+	}
+#endif /* !__xpv */
+	return (mtype);
+}
+
+
+/* mtype init for page_get_replacement_page */
+/*ARGSUSED*/
+int
+mtype_pgr_init(int *flags, page_t *pp, int mnode, pgcnt_t pgcnt)
+{
+	int mtype = mnoderangecnt - 1;
+#if !defined(__ixpv)
+	if (RESTRICT16M_ALLOC(freemem, pgcnt, *flags)) {
+		*flags |= PGI_MT_RANGE16M;
+	} else {
+		VM_STAT_ADD(vmm_vmstats.unrestrict16mcnt);
+		*flags |= PGI_MT_RANGE0;
+	}
+#endif
+	return (mtype);
+}
+
 /*
  * Determine if the mnode range specified in mtype contains memory belonging
  * to memory node mnode.  If flags & PGI_MT_RANGE is set then mtype contains
@@ -1104,13 +1306,11 @@
 mtype_func(int mnode, int mtype, uint_t flags)
 {
 	if (flags & PGI_MT_RANGE) {
-		int	mtlim;
+		int	mtlim = 0;
 
 		if (flags & PGI_MT_NEXT)
 			mtype--;
-		if (flags & PGI_MT_RANGE0)
-			mtlim = 0;
-		else if (flags & PGI_MT_RANGE4G)
+		if (flags & PGI_MT_RANGE4G)
 			mtlim = mtype4g + 1;	/* exclude 0-4g range */
 		else if (flags & PGI_MT_RANGE16M)
 			mtlim = 1;		/* exclude 0-16m range */
@@ -1119,9 +1319,8 @@
 				return (mtype);
 			mtype--;
 		}
-	} else {
-		if (mnoderanges[mtype].mnr_mnode == mnode)
-			return (mtype);
+	} else if (mnoderanges[mtype].mnr_mnode == mnode) {
+		return (mtype);
 	}
 	return (-1);
 }
@@ -1140,6 +1339,9 @@
 
 	ASSERT(cnt > 0);
 
+	if (!physmax4g)
+		return;
+
 	for (pfn = startpfn; pfn < endpfn; ) {
 		if (pfn <= mnoderanges[mtype].mnr_pfnhi) {
 			if (endpfn < mnoderanges[mtype].mnr_pfnhi) {
@@ -1147,8 +1349,7 @@
 			} else {
 				inc = mnoderanges[mtype].mnr_pfnhi - pfn + 1;
 			}
-			mnoderanges[mtype].mnr_mt_pgmax += inc;
-			if (physmax4g && mtype <= mtype4g)
+			if (mtype <= mtype4g)
 				maxmem4g += inc;
 			pfn += inc;
 		}
@@ -1157,6 +1358,77 @@
 	}
 }
 
+int
+mtype_2_mrange(int mtype)
+{
+	return (mnoderanges[mtype].mnr_memrange);
+}
+
+void
+mnodetype_2_pfn(int mnode, int mtype, pfn_t *pfnlo, pfn_t *pfnhi)
+{
+	ASSERT(mnoderanges[mtype].mnr_mnode == mnode);
+	*pfnlo = mnoderanges[mtype].mnr_pfnlo;
+	*pfnhi = mnoderanges[mtype].mnr_pfnhi;
+}
+
+size_t
+plcnt_sz(size_t ctrs_sz)
+{
+#ifdef DEBUG
+	int	szc, colors;
+
+	ctrs_sz += mnoderangecnt * sizeof (struct mnr_mts) * mmu_page_sizes;
+	for (szc = 0; szc < mmu_page_sizes; szc++) {
+		colors = page_get_pagecolors(szc);
+		ctrs_sz += mnoderangecnt * sizeof (pgcnt_t) * colors;
+	}
+#endif
+	return (ctrs_sz);
+}
+
+caddr_t
+plcnt_init(caddr_t addr)
+{
+#ifdef DEBUG
+	int	mt, szc, colors;
+
+	for (mt = 0; mt < mnoderangecnt; mt++) {
+		mnoderanges[mt].mnr_mts = (struct mnr_mts *)addr;
+		addr += (sizeof (struct mnr_mts) * mmu_page_sizes);
+		for (szc = 0; szc < mmu_page_sizes; szc++) {
+			colors = page_get_pagecolors(szc);
+			mnoderanges[mt].mnr_mts[szc].mnr_mts_colors = colors;
+			mnoderanges[mt].mnr_mts[szc].mnr_mtsc_pgcnt =
+			    (pgcnt_t *)addr;
+			addr += (sizeof (pgcnt_t) * colors);
+		}
+	}
+#endif
+	return (addr);
+}
+
+void
+plcnt_inc_dec(page_t *pp, int mtype, int szc, long cnt, int flags)
+{
+#ifdef DEBUG
+	int	bin = PP_2_BIN(pp);
+
+	atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].mnr_mts_pgcnt, cnt);
+	atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].mnr_mtsc_pgcnt[bin],
+	    cnt);
+#endif
+	ASSERT(mtype == PP_2_MTYPE(pp));
+	if (physmax4g && mtype <= mtype4g)
+		atomic_add_long(&freemem4g, cnt);
+	if (flags & PG_CACHE_LIST)
+		atomic_add_long(&mnoderanges[mtype].mnr_mt_clpgcnt, cnt);
+	else if (szc)
+		atomic_add_long(&mnoderanges[mtype].mnr_mt_lgpgcnt, cnt);
+	else
+		atomic_add_long(&mnoderanges[mtype].mnr_mt_flpgcnt, cnt);
+}
+
 /*
  * Returns the free page count for mnode
  */
@@ -1187,13 +1459,18 @@
 	int	i;
 	int	colors;
 
+#if defined(__xpv)
+	/*
+	 * Hypervisor domains currently don't have any concept of NUMA.
+	 * Hence we'll act like there is only 1 memrange.
+	 */
+	i = memrange_num(1);
+#else /* !__xpv */
 	/*
 	 * Reduce the memory ranges lists if we don't have large amounts
 	 * of memory. This avoids searching known empty free lists.
 	 */
 	i = memrange_num(physmax);
-	memranges += i;
-	nranges -= i;
 #if defined(__i386)
 	if (i > 0)
 		restricted_kmemalloc = 0;
@@ -1201,6 +1478,9 @@
 	/* physmax greater than 4g */
 	if (i == 0)
 		physmax4g = 1;
+#endif /* !__xpv */
+	memranges += i;
+	nranges -= i;
 
 	ASSERT(ISP2(l2_sz));
 	ASSERT(ISP2(l2_linesz));
@@ -1264,6 +1544,25 @@
 		}
 	}
 
+	/* factor in colorequiv to check additional 'equivalent' bins. */
+	if (colorequiv > 1) {
+
+		int a = lowbit(colorequiv) - 1;
+		if (a > 15)
+			a = 15;
+
+		for (i = 0; i <= mmu.max_page_level; i++) {
+			if ((colors = hw_page_array[i].hp_colors) <= 1) {
+				continue;
+			}
+			while ((colors >> a) == 0)
+				a--;
+			if ((a << 4) > colorequivszc[i]) {
+				colorequivszc[i] = (a << 4);
+			}
+		}
+	}
+
 	/* size for mnoderanges */
 	for (mnoderangecnt = 0, i = 0; i < max_mem_nodes; i++)
 		mnoderangecnt += mnode_range_cnt(i);
@@ -1342,6 +1641,81 @@
 	}
 }
 
+#if defined(__xpv)
+/*
+ * Give back 10% of the io_pool pages to the free list.
+ * Don't shrink the pool below some absolute minimum.
+ */
+static void
+page_io_pool_shrink()
+{
+	int retcnt;
+	page_t *pp, *pp_first, *pp_last, **curpool;
+	mfn_t mfn;
+	int bothpools = 0;
+
+	mutex_enter(&io_pool_lock);
+	io_pool_shrink_attempts++;	/* should be a kstat? */
+	retcnt = io_pool_cnt / 10;
+	if (io_pool_cnt - retcnt < io_pool_cnt_min)
+		retcnt = io_pool_cnt - io_pool_cnt_min;
+	if (retcnt <= 0)
+		goto done;
+	io_pool_shrinks++;	/* should be a kstat? */
+	curpool = &io_pool_4g;
+domore:
+	/*
+	 * Loop through taking pages from the end of the list
+	 * (highest mfns) till amount to return reached.
+	 */
+	for (pp = *curpool; pp && retcnt > 0; ) {
+		pp_first = pp_last = pp->p_prev;
+		if (pp_first == *curpool)
+			break;
+		retcnt--;
+		io_pool_cnt--;
+		page_io_pool_sub(curpool, pp_first, pp_last);
+		if ((mfn = pfn_to_mfn(pp->p_pagenum)) < start_mfn)
+			start_mfn = mfn;
+		page_free(pp_first, 1);
+		pp = *curpool;
+	}
+	if (retcnt != 0 && !bothpools) {
+		/*
+		 * If not enough found in less constrained pool try the
+		 * more constrained one.
+		 */
+		curpool = &io_pool_16m;
+		bothpools = 1;
+		goto domore;
+	}
+done:
+	mutex_exit(&io_pool_lock);
+}
+
+#endif	/* __xpv */
+
+uint_t
+page_create_update_flags_x86(uint_t flags)
+{
+#if defined(__xpv)
+	/*
+	 * Check this is an urgent allocation and free pages are depleted.
+	 */
+	if (!(flags & PG_WAIT) && freemem < desfree)
+		page_io_pool_shrink();
+#else /* !__xpv */
+	/*
+	 * page_create_get_something may call this because 4g memory may be
+	 * depleted. Set flags to allow for relocation of base page below
+	 * 4g if necessary.
+	 */
+	if (physmax4g)
+		flags |= (PGI_PGCPSZC0 | PGI_PGCPHIPRI);
+#endif /* __xpv */
+	return (flags);
+}
+
 /*ARGSUSED*/
 int
 bp_color(struct buf *bp)
@@ -1349,10 +1723,875 @@
 	return (0);
 }
 
+#if defined(__xpv)
+
+/*
+ * Take pages out of an io_pool
+ */
+static void
+page_io_pool_sub(page_t **poolp, page_t *pp_first, page_t *pp_last)
+{
+	if (*poolp == pp_first) {
+		*poolp = pp_last->p_next;
+		if (*poolp == pp_first)
+			*poolp = NULL;
+	}
+	pp_first->p_prev->p_next = pp_last->p_next;
+	pp_last->p_next->p_prev = pp_first->p_prev;
+	pp_first->p_prev = pp_last;
+	pp_last->p_next = pp_first;
+}
+
+/*
+ * Put a page on the io_pool list. The list is ordered by increasing MFN.
+ */
+static void
+page_io_pool_add(page_t **poolp, page_t *pp)
+{
+	page_t	*look;
+	mfn_t	mfn = mfn_list[pp->p_pagenum];
+
+	if (*poolp == NULL) {
+		*poolp = pp;
+		pp->p_next = pp;
+		pp->p_prev = pp;
+		return;
+	}
+
+	/*
+	 * Since we try to take pages from the high end of the pool
+	 * chances are good that the pages to be put on the list will
+	 * go at or near the end of the list. so start at the end and
+	 * work backwards.
+	 */
+	look = (*poolp)->p_prev;
+	while (mfn < mfn_list[look->p_pagenum]) {
+		look = look->p_prev;
+		if (look == (*poolp)->p_prev)
+			break; /* backed all the way to front of list */
+	}
+
+	/* insert after look */
+	pp->p_prev = look;
+	pp->p_next = look->p_next;
+	pp->p_next->p_prev = pp;
+	look->p_next = pp;
+	if (mfn < mfn_list[(*poolp)->p_pagenum]) {
+		/*
+		 * we inserted a new first list element
+		 * adjust pool pointer to newly inserted element
+		 */
+		*poolp = pp;
+	}
+}
+
+/*
+ * Add a page to the io_pool.  Setting the force flag will force the page
+ * into the io_pool no matter what.
+ */
+static void
+add_page_to_pool(page_t *pp, int force)
+{
+	page_t *highest;
+	page_t *freep = NULL;
+
+	mutex_enter(&io_pool_lock);
+	/*
+	 * Always keep the scarce low memory pages
+	 */
+	if (mfn_list[pp->p_pagenum] < PFN_16MEG) {
+		++io_pool_cnt;
+		page_io_pool_add(&io_pool_16m, pp);
+		goto done;
+	}
+	if (io_pool_cnt < io_pool_cnt_max || force) {
+		++io_pool_cnt;
+		page_io_pool_add(&io_pool_4g, pp);
+	} else {
+		highest = io_pool_4g->p_prev;
+		if (mfn_list[pp->p_pagenum] < mfn_list[highest->p_pagenum]) {
+			page_io_pool_sub(&io_pool_4g, highest, highest);
+			page_io_pool_add(&io_pool_4g, pp);
+			freep = highest;
+		} else {
+			freep = pp;
+		}
+	}
+done:
+	mutex_exit(&io_pool_lock);
+	if (freep)
+		page_free(freep, 1);
+}
+
+
+int contig_pfn_cnt;	/* no of pfns in the contig pfn list */
+int contig_pfn_max;	/* capacity of the contig pfn list */
+int next_alloc_pfn;	/* next position in list to start a contig search */
+int contig_pfnlist_updates;	/* pfn list update count */
+int contig_pfnlist_locked;	/* contig pfn list locked against use */
+int contig_pfnlist_builds;	/* how many times have we (re)built list */
+int contig_pfnlist_buildfailed;	/* how many times has list build failed */
+int create_contig_pending;	/* nonzero means taskq creating contig list */
+pfn_t *contig_pfn_list = NULL;	/* list of contig pfns in ascending mfn order */
+
+/*
+ * Function to use in sorting a list of pfns by their underlying mfns.
+ */
+static int
+mfn_compare(const void *pfnp1, const void *pfnp2)
+{
+	mfn_t mfn1 = mfn_list[*(pfn_t *)pfnp1];
+	mfn_t mfn2 = mfn_list[*(pfn_t *)pfnp2];
+
+	if (mfn1 > mfn2)
+		return (1);
+	if (mfn1 < mfn2)
+		return (-1);
+	return (0);
+}
+
+/*
+ * Compact the contig_pfn_list by tossing all the non-contiguous
+ * elements from the list.
+ */
+static void
+compact_contig_pfn_list(void)
+{
+	pfn_t pfn, lapfn, prev_lapfn;
+	mfn_t mfn;
+	int i, newcnt = 0;
+
+	prev_lapfn = 0;
+	for (i = 0; i < contig_pfn_cnt - 1; i++) {
+		pfn = contig_pfn_list[i];
+		lapfn = contig_pfn_list[i + 1];
+		mfn = mfn_list[pfn];
+		/*
+		 * See if next pfn is for a contig mfn
+		 */
+		if (mfn_list[lapfn] != mfn + 1)
+			continue;
+		/*
+		 * pfn and lookahead are both put in list
+		 * unless pfn is the previous lookahead.
+		 */
+		if (pfn != prev_lapfn)
+			contig_pfn_list[newcnt++] = pfn;
+		contig_pfn_list[newcnt++] = lapfn;
+		prev_lapfn = lapfn;
+	}
+	for (i = newcnt; i < contig_pfn_cnt; i++)
+		contig_pfn_list[i] = 0;
+	contig_pfn_cnt = newcnt;
+}
+
+/*ARGSUSED*/
+static void
+call_create_contiglist(void *arg)
+{
+	mutex_enter(&io_pool_lock);
+	(void) create_contig_pfnlist(PG_WAIT);
+	create_contig_pending = 0;
+	mutex_exit(&io_pool_lock);
+}
+
+/*
+ * Create list of freelist pfns that have underlying
+ * contiguous mfns.  The list is kept in ascending mfn order.
+ * returns 1 if list created else 0.
+ */
+static int
+create_contig_pfnlist(uint_t flags)
+{
+	pfn_t pfn;
+	page_t *pp;
+
+	if (contig_pfn_list != NULL)
+		return (1);
+	ASSERT(!contig_pfnlist_locked);
+	contig_pfn_max = freemem + (freemem / 10);
+	contig_pfn_list = kmem_zalloc(contig_pfn_max * sizeof (pfn_t),
+	    (flags & PG_WAIT) ? KM_SLEEP : KM_NOSLEEP);
+	if (contig_pfn_list == NULL) {
+		/*
+		 * If we could not create the contig list (because
+		 * we could not sleep for memory).  Dispatch a taskq that can
+		 * sleep to get the memory.
+		 */
+		if (!create_contig_pending) {
+			if (taskq_dispatch(system_taskq, call_create_contiglist,
+			    NULL, TQ_NOSLEEP) != NULL)
+				create_contig_pending = 1;
+		}
+		contig_pfnlist_buildfailed++;	/* count list build failures */
+		return (0);
+	}
+	ASSERT(contig_pfn_cnt == 0);
+	for (pfn = 0; pfn < mfn_count; pfn++) {
+		pp = page_numtopp_nolock(pfn);
+		if (pp == NULL || !PP_ISFREE(pp))
+			continue;
+		contig_pfn_list[contig_pfn_cnt] = pfn;
+		if (++contig_pfn_cnt == contig_pfn_max)
+			break;
+	}
+	qsort(contig_pfn_list, contig_pfn_cnt, sizeof (pfn_t), mfn_compare);
+	compact_contig_pfn_list();
+	/*
+	 * Make sure next search of the newly created contiguous pfn
+	 * list starts at the beginning of the list.
+	 */
+	next_alloc_pfn = 0;
+	contig_pfnlist_builds++;	/* count list builds */
+	return (1);
+}
+
+
+/*
+ * Toss the current contig pfnlist.  Someone is about to do a massive
+ * update to pfn<->mfn mappings.  So we have them destroy the list and lock
+ * it till they are done with their update.
+ */
+void
+clear_and_lock_contig_pfnlist()
+{
+	pfn_t *listp = NULL;
+	size_t listsize;
+
+	mutex_enter(&io_pool_lock);
+	ASSERT(!contig_pfnlist_locked);
+	if (contig_pfn_list != NULL) {
+		listp = contig_pfn_list;
+		listsize = contig_pfn_max * sizeof (pfn_t);
+		contig_pfn_list = NULL;
+		contig_pfn_max = contig_pfn_cnt = 0;
+	}
+	contig_pfnlist_locked = 1;
+	mutex_exit(&io_pool_lock);
+	if (listp != NULL)
+		kmem_free(listp, listsize);
+}
+
+/*
+ * Unlock the contig_pfn_list.  The next attempted use of it will cause
+ * it to be re-created.
+ */
+void
+unlock_contig_pfnlist()
+{
+	mutex_enter(&io_pool_lock);
+	ASSERT(contig_pfnlist_locked);
+	contig_pfnlist_locked = 0;
+	mutex_exit(&io_pool_lock);
+}
+
+/*
+ * Update the contiguous pfn list in response to a pfn <-> mfn reassignment
+ */
+void
+update_contig_pfnlist(pfn_t pfn, mfn_t oldmfn, mfn_t newmfn)
+{
+	int probe_hi, probe_lo, probe_pos, insert_after, insert_point;
+	pfn_t probe_pfn;
+	mfn_t probe_mfn;
+
+	if (contig_pfn_list == NULL)
+		return;
+	mutex_enter(&io_pool_lock);
+	contig_pfnlist_updates++;
+	/*
+	 * Find the pfn in the current list.  Use a binary chop to locate it.
+	 */
+	probe_hi = contig_pfn_cnt - 1;
+	probe_lo = 0;
+	probe_pos = (probe_hi + probe_lo) / 2;
+	while ((probe_pfn = contig_pfn_list[probe_pos]) != pfn) {
+		if (probe_pos == probe_lo) { /* pfn not in list */
+			probe_pos = -1;
+			break;
+		}
+		if (pfn_to_mfn(probe_pfn) <= oldmfn)
+			probe_lo = probe_pos;
+		else
+			probe_hi = probe_pos;
+		probe_pos = (probe_hi + probe_lo) / 2;
+	}
+	if (probe_pos >= 0)  { /* remove pfn fom list */
+		contig_pfn_cnt--;
+		ovbcopy(&contig_pfn_list[probe_pos + 1],
+		    &contig_pfn_list[probe_pos],
+		    (contig_pfn_cnt - probe_pos) * sizeof (pfn_t));
+	}
+	if (newmfn == MFN_INVALID)
+		goto done;
+	/*
+	 * Check if new mfn has adjacent mfns in the list
+	 */
+	probe_hi = contig_pfn_cnt - 1;
+	probe_lo = 0;
+	insert_after = -2;
+	do {
+		probe_pos = (probe_hi + probe_lo) / 2;
+		probe_mfn = pfn_to_mfn(contig_pfn_list[probe_pos]);
+		if (newmfn == probe_mfn + 1)
+			insert_after = probe_pos;
+		else if (newmfn == probe_mfn - 1)
+			insert_after = probe_pos - 1;
+		if (probe_pos == probe_lo)
+			break;
+		if (probe_mfn <= newmfn)
+			probe_lo = probe_pos;
+		else
+			probe_hi = probe_pos;
+	} while (insert_after == -2);
+	/*
+	 * If there is space in the list and there are adjacent mfns
+	 * insert the pfn in to its proper place in the list.
+	 */
+	if (insert_after != -2 && contig_pfn_cnt + 1 <= contig_pfn_max) {
+		insert_point = insert_after + 1;
+		ovbcopy(&contig_pfn_list[insert_point],
+		    &contig_pfn_list[insert_point + 1],
+		    (contig_pfn_cnt - insert_point) * sizeof (pfn_t));
+		contig_pfn_list[insert_point] = pfn;
+		contig_pfn_cnt++;
+	}
+done:
+	mutex_exit(&io_pool_lock);
+}
+
+/*
+ * Called to (re-)populate the io_pool from the free page lists.
+ */
+long
+populate_io_pool(void)
+{
+	pfn_t pfn;
+	mfn_t mfn, max_mfn;
+	page_t *pp;
+
+	/*
+	 * Figure out the bounds of the pool on first invocation.
+	 * We use a percentage of memory for the io pool size.
+	 * we allow that to shrink, but not to less than a fixed minimum
+	 */
+	if (io_pool_cnt_max == 0) {
+		io_pool_cnt_max = physmem / (100 / io_pool_physmem_pct);
+		io_pool_cnt_lowater = io_pool_cnt_max;
+		/*
+		 * This is the first time in populate_io_pool, grab a va to use
+		 * when we need to allocate pages.
+		 */
+		io_pool_kva = vmem_alloc(heap_arena, PAGESIZE, VM_SLEEP);
+	}
+	/*
+	 * If we are out of pages in the pool, then grow the size of the pool
+	 */
+	if (io_pool_cnt == 0)
+		io_pool_cnt_max += io_pool_cnt_max / 20; /* grow by 5% */
+	io_pool_grows++;	/* should be a kstat? */
+
+	/*
+	 * Get highest mfn on this platform, but limit to the 32 bit DMA max.
+	 */
+	(void) mfn_to_pfn(start_mfn);
+	max_mfn = MIN(cached_max_mfn, PFN_4GIG);
+	for (mfn = start_mfn; mfn < max_mfn; start_mfn = ++mfn) {
+		pfn = mfn_to_pfn(mfn);
+		if (pfn & PFN_IS_FOREIGN_MFN)
+			continue;
+		/*
+		 * try to allocate it from free pages
+		 */
+		pp = page_numtopp_alloc(pfn);
+		if (pp == NULL)
+			continue;
+		PP_CLRFREE(pp);
+		add_page_to_pool(pp, 1);
+		if (io_pool_cnt >= io_pool_cnt_max)
+			break;
+	}
+
+	return (io_pool_cnt);
+}
+
+/*
+ * Destroy a page that was being used for DMA I/O. It may or
+ * may not actually go back to the io_pool.
+ */
+void
+page_destroy_io(page_t *pp)
+{
+	mfn_t mfn = mfn_list[pp->p_pagenum];
+
+	/*
+	 * When the page was alloc'd a reservation was made, release it now
+	 */
+	page_unresv(1);
+	/*
+	 * Unload translations, if any, then hash out the
+	 * page to erase its identity.
+	 */
+	(void) hat_pageunload(pp, HAT_FORCE_PGUNLOAD);
+	page_hashout(pp, NULL);
+
+	/*
+	 * If the page came from the free lists, just put it back to them.
+	 * DomU pages always go on the free lists as well.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) || mfn >= PFN_4GIG) {
+		page_free(pp, 1);
+		return;
+	}
+
+	add_page_to_pool(pp, 0);
+}
+
+
+long contig_searches;		/* count of times contig pages requested */
+long contig_search_restarts;	/* count of contig ranges tried */
+long contig_search_failed;	/* count of contig alloc failures */
+
+/*
+ * Look thru the contiguous pfns that are not part of the io_pool for
+ * contiguous free pages.  Return a list of the found pages or NULL.
+ */
+page_t *
+find_contig_free(uint_t bytes, uint_t flags)
+{
+	page_t *pp, *plist = NULL;
+	mfn_t mfn, prev_mfn;
+	pfn_t pfn;
+	int pages_needed, pages_requested;
+	int search_start;
+
+	/*
+	 * create the contig pfn list if not already done
+	 */
+	if (contig_pfn_list == NULL) {
+		if (contig_pfnlist_locked) {
+			return (NULL);
+		} else {
+			if (!create_contig_pfnlist(flags))
+				return (NULL);
+		}
+	}
+	contig_searches++;
+	/*
+	 * Search contiguous pfn list for physically contiguous pages not in
+	 * the io_pool.  Start the search where the last search left off.
+	 */
+	pages_requested = pages_needed = mmu_btop(bytes);
+	search_start = next_alloc_pfn;
+	prev_mfn = 0;
+	while (pages_needed) {
+		pfn = contig_pfn_list[next_alloc_pfn];
+		mfn = pfn_to_mfn(pfn);
+		if ((prev_mfn == 0 || mfn == prev_mfn + 1) &&
+		    (pp = page_numtopp_alloc(pfn)) != NULL) {
+			PP_CLRFREE(pp);
+			page_io_pool_add(&plist, pp);
+			pages_needed--;
+			prev_mfn = mfn;
+		} else {
+			contig_search_restarts++;
+			/*
+			 * free partial page list
+			 */
+			while (plist != NULL) {
+				pp = plist;
+				page_io_pool_sub(&plist, pp, pp);
+				page_free(pp, 1);
+			}
+			pages_needed = pages_requested;
+			prev_mfn = 0;
+		}
+		if (++next_alloc_pfn == contig_pfn_cnt)
+			next_alloc_pfn = 0;
+		if (next_alloc_pfn == search_start)
+			break; /* all pfns searched */
+	}
+	if (pages_needed) {
+		contig_search_failed++;
+		/*
+		 * Failed to find enough contig pages.
+		 * free partial page list
+		 */
+		while (plist != NULL) {
+			pp = plist;
+			page_io_pool_sub(&plist, pp, pp);
+			page_free(pp, 1);
+		}
+	}
+	return (plist);
+}
+
+/*
+ * Allocator for domain 0 I/O pages. We match the required
+ * DMA attributes and contiguity constraints.
+ */
+/*ARGSUSED*/
+page_t *
+page_create_io(
+	struct vnode	*vp,
+	u_offset_t	off,
+	uint_t		bytes,
+	uint_t		flags,
+	struct as	*as,
+	caddr_t		vaddr,
+	ddi_dma_attr_t	*mattr)
+{
+	mfn_t	max_mfn = HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL);
+	page_t	*pp_first;	/* list to return */
+	page_t	*pp_last;	/* last in list to return */
+	page_t	*pp, **poolp, **pplist = NULL, *expp;
+	int	i, extpages = 0, npages = 0, contig, anyaddr, extra;
+	mfn_t	lo_mfn;
+	mfn_t	hi_mfn;
+	mfn_t	mfn, tmfn;
+	mfn_t	*mfnlist = 0;
+	pgcnt_t	pfnalign = 0;
+	int	align, order, nbits, extents;
+	uint64_t pfnseg;
+	int	attempt = 0, is_domu = 0;
+	int	asked_hypervisor = 0;
+	uint_t	kflags;
+
+	ASSERT(mattr != NULL);
+	lo_mfn = mmu_btop(mattr->dma_attr_addr_lo);
+	hi_mfn = mmu_btop(mattr->dma_attr_addr_hi);
+	align = maxbit(mattr->dma_attr_align, mattr->dma_attr_minxfer);
+	if (align > MMU_PAGESIZE)
+		pfnalign = mmu_btop(align);
+	pfnseg = mmu_btop(mattr->dma_attr_seg);
+
+	/*
+	 * Clear the contig flag if only one page is needed.
+	 */
+	contig = (flags & PG_PHYSCONTIG);
+	flags &= ~PG_PHYSCONTIG;
+	bytes = P2ROUNDUP(bytes, MMU_PAGESIZE);
+	if (bytes == MMU_PAGESIZE)
+		contig = 0;
+
+	/*
+	 * Check if any old page in the system is fine.
+	 * DomU should always go down this path.
+	 */
+	is_domu = !DOMAIN_IS_INITDOMAIN(xen_info);
+	anyaddr = lo_mfn == 0 && hi_mfn >= max_mfn && !pfnalign;
+	if ((!contig && anyaddr) || is_domu) {
+		pp = page_create_va(vp, off, bytes, flags, &kvseg, vaddr);
+		if (pp)
+			return (pp);
+		else if (is_domu)
+			return (NULL); /* no memory available */
+	}
+	/*
+	 * DomU should never reach here
+	 */
+try_again:
+	/*
+	 * We could just want unconstrained but contig pages.
+	 */
+	if (anyaddr && contig && pfnseg >= max_mfn) {
+		/*
+		 * Look for free contig pages to satisfy the request.
+		 */
+		mutex_enter(&io_pool_lock);
+		pp_first = find_contig_free(bytes, flags);
+		mutex_exit(&io_pool_lock);
+		if (pp_first != NULL)
+			goto done;
+	}
+	/*
+	 * See if we want pages for a legacy device
+	 */
+	if (hi_mfn < PFN_16MEG)
+		poolp = &io_pool_16m;
+	else
+		poolp = &io_pool_4g;
+try_smaller:
+	/*
+	 * Take pages from I/O pool. We'll use pages from the highest MFN
+	 * range possible.
+	 */
+	pp_first = pp_last = NULL;
+	npages = mmu_btop(bytes);
+	mutex_enter(&io_pool_lock);
+	for (pp = *poolp; pp && npages > 0; ) {
+		pp = pp->p_prev;
+
+		/*
+		 * skip pages above allowable range
+		 */
+		mfn = mfn_list[pp->p_pagenum];
+		if (hi_mfn < mfn)
+			goto skip;
+
+		/*
+		 * stop at pages below allowable range
+		 */
+		if (lo_mfn > mfn)
+			break;
+restart:
+		if (pp_last == NULL) {
+			/*
+			 * Check alignment
+			 */
+			tmfn = mfn - (npages - 1);
+			if (pfnalign) {
+				if (tmfn != P2ROUNDUP(tmfn, pfnalign))
+					goto skip; /* not properly aligned */
+			}
+			/*
+			 * Check segment
+			 */
+			if ((mfn & pfnseg) < (tmfn & pfnseg))
+				goto skip; /* crosses segment boundary */
+			/*
+			 * Start building page list
+			 */
+			pp_first = pp_last = pp;
+			npages--;
+		} else {
+			/*
+			 * check physical contiguity if required
+			 */
+			if (contig &&
+			    mfn_list[pp_first->p_pagenum] != mfn + 1) {
+				/*
+				 * not a contiguous page, restart list.
+				 */
+				pp_last = NULL;
+				npages = mmu_btop(bytes);
+				goto restart;
+			} else { /* add page to list */
+				pp_first = pp;
+				--npages;
+			}
+		}
+skip:
+		if (pp == *poolp)
+			break;
+	}
+
+	/*
+	 * If we didn't find memory. Try the more constrained pool, then
+	 * sweep free pages into the DMA pool and try again. If we fail
+	 * repeatedly, ask the Hypervisor for help.
+	 */
+	if (npages != 0) {
+		mutex_exit(&io_pool_lock);
+		/*
+		 * If we were looking in the less constrained pool and didn't
+		 * find pages, try the more constrained pool.
+		 */
+		if (poolp == &io_pool_4g) {
+			poolp = &io_pool_16m;
+			goto try_smaller;
+		}
+		kmem_reap();
+		if (++attempt < 4) {
+			/*
+			 * Grab some more io_pool pages
+			 */
+			(void) populate_io_pool();
+			goto try_again;
+		}
+
+		if (asked_hypervisor++)
+			return (NULL);	/* really out of luck */
+		/*
+		 * Hypervisor exchange doesn't handle segment or alignment
+		 * constraints
+		 */
+		if (mattr->dma_attr_seg < mattr->dma_attr_addr_hi || pfnalign)
+			return (NULL);
+		/*
+		 * Try exchanging pages with the hypervisor.
+		 */
+		npages = mmu_btop(bytes);
+		kflags = flags & PG_WAIT ? KM_SLEEP : KM_NOSLEEP;
+		/*
+		 * Hypervisor will allocate extents, if we want contig pages
+		 * extent must be >= npages
+		 */
+		if (contig) {
+			order = highbit(npages) - 1;
+			if (npages & ((1 << order) - 1))
+				order++;
+			extpages = 1 << order;
+		} else {
+			order = 0;
+			extpages = npages;
+		}
+		if (extpages > npages) {
+			extra = extpages - npages;
+			if (!page_resv(extra, kflags))
+				return (NULL);
+		}
+		pplist = kmem_alloc(extpages * sizeof (page_t *), kflags);
+		if (pplist == NULL)
+			goto fail;
+		mfnlist = kmem_alloc(extpages * sizeof (mfn_t), kflags);
+		if (mfnlist == NULL)
+			goto fail;
+		pp = page_create_va(vp, off, npages * PAGESIZE, flags,
+		    &kvseg, vaddr);
+		if (pp == NULL)
+			goto fail;
+		pp_first = pp;
+		if (extpages > npages) {
+			/*
+			 * fill out the rest of extent pages to swap with the
+			 * hypervisor
+			 */
+			for (i = 0; i < extra; i++) {
+				expp = page_create_va(vp,
+				    (u_offset_t)(uintptr_t)io_pool_kva,
+				    PAGESIZE, flags, &kvseg, io_pool_kva);
+				if (expp == NULL)
+					goto balloon_fail;
+				(void) hat_pageunload(expp, HAT_FORCE_PGUNLOAD);
+				page_io_unlock(expp);
+				page_hashout(expp, NULL);
+				page_io_lock(expp);
+				/*
+				 * add page to end of list
+				 */
+				expp->p_prev = pp_first->p_prev;
+				expp->p_next = pp_first;
+				expp->p_prev->p_next = expp;
+				pp_first->p_prev = expp;
+			}
+
+		}
+		for (i = 0; i < extpages; i++) {
+			pplist[i] = pp;
+			pp = pp->p_next;
+		}
+		nbits = highbit(mattr->dma_attr_addr_hi);
+		extents = contig ? 1 : npages;
+		if (balloon_replace_pages(extents, pplist, nbits, order,
+		    mfnlist) != extents)
+			goto balloon_fail;
+
+		kmem_free(pplist, extpages * sizeof (page_t *));
+		kmem_free(mfnlist, extpages * sizeof (mfn_t));
+		/*
+		 * Return any excess pages to free list
+		 */
+		if (extpages > npages) {
+			for (i = 0; i < extra; i++) {
+				pp = pp_first->p_prev;
+				page_sub(&pp_first, pp);
+				page_io_unlock(pp);
+				page_unresv(1);
+				page_free(pp, 1);
+			}
+		}
+		check_dma(mattr, pp_first, mmu_btop(bytes));
+		return (pp_first);
+	}
+
+	/*
+	 * Found the pages, now snip them from the list
+	 */
+	page_io_pool_sub(poolp, pp_first, pp_last);
+	io_pool_cnt -= mmu_btop(bytes);
+	if (io_pool_cnt < io_pool_cnt_lowater)
+		io_pool_cnt_lowater = io_pool_cnt; /* io pool low water mark */
+	mutex_exit(&io_pool_lock);
+done:
+	check_dma(mattr, pp_first, mmu_btop(bytes));
+	pp = pp_first;
+	do {
+		if (!page_hashin(pp, vp, off, NULL)) {
+			panic("pg_create_io: hashin failed pp %p, vp %p,"
+			    " off %llx",
+			    (void *)pp, (void *)vp, off);
+		}
+		off += MMU_PAGESIZE;
+		PP_CLRFREE(pp);
+		PP_CLRAGED(pp);
+		page_set_props(pp, P_REF);
+		page_io_lock(pp);
+		pp = pp->p_next;
+	} while (pp != pp_first);
+	return (pp_first);
+balloon_fail:
+	/*
+	 * Return pages to free list and return failure
+	 */
+	while (pp_first != NULL) {
+		pp = pp_first;
+		page_sub(&pp_first, pp);
+		page_io_unlock(pp);
+		if (pp->p_vnode != NULL)
+			page_hashout(pp, NULL);
+		page_free(pp, 1);
+	}
+fail:
+	if (pplist)
+		kmem_free(pplist, extpages * sizeof (page_t *));
+	if (mfnlist)
+		kmem_free(mfnlist, extpages * sizeof (mfn_t));
+	page_unresv(extpages - npages);
+	return (NULL);
+}
+
+/*
+ * Lock and return the page with the highest mfn that we can find.  last_mfn
+ * holds the last one found, so the next search can start from there.  We
+ * also keep a counter so that we don't loop forever if the machine has no
+ * free pages.
+ *
+ * This is called from the balloon thread to find pages to give away.  new_high
+ * is used when new mfn's have been added to the system - we will reset our
+ * search if the new mfn's are higher than our current search position.
+ */
+page_t *
+page_get_high_mfn(mfn_t new_high)
+{
+	static mfn_t last_mfn = 0;
+	pfn_t pfn;
+	page_t *pp;
+	ulong_t loop_count = 0;
+
+	if (new_high > last_mfn)
+		last_mfn = new_high;
+
+	for (; loop_count < mfn_count; loop_count++, last_mfn--) {
+		if (last_mfn == 0) {
+			last_mfn = cached_max_mfn;
+		}
+
+		pfn = mfn_to_pfn(last_mfn);
+		if (pfn & PFN_IS_FOREIGN_MFN)
+			continue;
+
+		/* See if the page is free.  If so, lock it. */
+		pp = page_numtopp_alloc(pfn);
+		if (pp == NULL)
+			continue;
+		PP_CLRFREE(pp);
+
+		ASSERT(PAGE_EXCL(pp));
+		ASSERT(pp->p_vnode == NULL);
+		ASSERT(!hat_page_is_mapped(pp));
+		last_mfn--;
+		return (pp);
+	}
+	return (NULL);
+}
+
+#else /* !__xpv */
+
 /*
  * get a page from any list with the given mnode
  */
-page_t *
+static page_t *
 page_get_mnode_anylist(ulong_t origbin, uchar_t szc, uint_t flags,
     int mnode, int mtype, ddi_dma_attr_t *dma_attr)
 {
@@ -1557,7 +2796,7 @@
  * Note: This function is called only by page_create_io().
  */
 /*ARGSUSED*/
-page_t *
+static page_t *
 page_get_anylist(struct vnode *vp, u_offset_t off, struct as *as, caddr_t vaddr,
     size_t size, uint_t flags, ddi_dma_attr_t *dma_attr, lgrp_t	*lgrp)
 {
@@ -1642,7 +2881,7 @@
 				    bin, mtype, szc, flags);
 				if (pp == NULL) {
 					pp = page_get_mnode_cachelist(
-						bin, flags, mnode, mtype);
+					    bin, flags, mnode, mtype);
 				}
 			} else {
 				pp = page_get_mnode_anylist(bin, szc,
@@ -1707,8 +2946,8 @@
 	uint_t		index;
 
 	TRACE_4(TR_FAC_VM, TR_PAGE_CREATE_START,
-		"page_create_start:vp %p off %llx bytes %u flags %x",
-		vp, off, bytes, flags);
+	    "page_create_start:vp %p off %llx bytes %u flags %x",
+	    vp, off, bytes, flags);
 
 	ASSERT((flags & ~(PG_EXCL | PG_WAIT | PG_PHYSCONTIG)) == 0);
 
@@ -1722,8 +2961,7 @@
 	}
 
 	TRACE_2(TR_FAC_VM, TR_PAGE_CREATE_SUCCESS,
-		"page_create_success:vp %p off %llx",
-		vp, off);
+	    "page_create_success:vp %p off %llx", vp, off);
 
 	/*
 	 * If satisfying this request has left us with too little
@@ -1734,7 +2972,7 @@
 	 */
 	if (nscan < desscan && freemem < minfree) {
 		TRACE_1(TR_FAC_VM, TR_PAGEOUT_CV_SIGNAL,
-			"pageout_cv_signal:freemem %ld", freemem);
+		    "pageout_cv_signal:freemem %ld", freemem);
 		cv_signal(&proc_pageout->p_cv);
 	}
 
@@ -1964,6 +3202,7 @@
 
 	return (NULL);
 }
+#endif /* !__xpv */
 
 
 /*
@@ -2020,13 +3259,26 @@
 		goto faulted;
 	}
 	if (use_sse_pagecopy)
+#ifdef __xpv
+		page_copy_no_xmm(pp_addr2, pp_addr1);
+#else
 		hwblkpagecopy(pp_addr1, pp_addr2);
+#endif
 	else
 		bcopy(pp_addr1, pp_addr2, PAGESIZE);
 
 	no_fault();
 faulted:
 	if (!kpm_enable) {
+#ifdef __xpv
+		/*
+		 * The target page might get used for a page table before any
+		 * intervening change to the non-kpm mapping, so blow it away.
+		 */
+		if (HYPERVISOR_update_va_mapping((uintptr_t)pp_addr2, 0,
+		    UVMF_INVLPG | UVMF_LOCAL) < 0)
+			panic("HYPERVISOR_update_va_mapping() failed");
+#endif
 		mutex_exit(ppaddr_mutex);
 	}
 	kpreempt_enable();
@@ -2071,11 +3323,49 @@
 	}
 
 	if (use_sse_pagezero) {
+#ifdef __xpv
+		uint_t rem;
+
+		/*
+		 * zero a byte at a time until properly aligned for
+		 * block_zero_no_xmm().
+		 */
+		while (!P2NPHASE(off, ((uint_t)BLOCKZEROALIGN)) && len-- > 0)
+			pp_addr2[off++] = 0;
+
+		/*
+		 * Now use faster block_zero_no_xmm() for any range
+		 * that is properly aligned and sized.
+		 */
+		rem = P2PHASE(len, ((uint_t)BLOCKZEROALIGN));
+		len -= rem;
+		if (len != 0) {
+			block_zero_no_xmm(pp_addr2 + off, len);
+			off += len;
+		}
+
+		/*
+		 * zero remainder with byte stores.
+		 */
+		while (rem-- > 0)
+			pp_addr2[off++] = 0;
+#else
 		hwblkclr(pp_addr2 + off, len);
+#endif
 	} else {
 		bzero(pp_addr2 + off, len);
 	}
 
+#ifdef __xpv
+	/*
+	 * On the hypervisor this page might get used for a page table before
+	 * any intervening change to this mapping, so blow it away.
+	 */
+	if (!kpm_enable && HYPERVISOR_update_va_mapping((uintptr_t)pp_addr2, 0,
+	    UVMF_INVLPG) < 0)
+		panic("HYPERVISOR_update_va_mapping() failed");
+#endif
+
 	if (!kpm_enable)
 		mutex_exit(ppaddr_mutex);
 	kpreempt_enable();
@@ -2205,7 +3495,7 @@
 		panic("page already exists %p", pp);
 #endif
 
-	pp = page_create_va(&kvp, offset, MMU_PAGESIZE, PG_EXCL | PG_NORELOC,
+	pp = page_create_va(&kvp, offset, MMU_PAGESIZE, PG_EXCL,
 	    &tmpseg, (caddr_t)(ctr += MMU_PAGESIZE));	/* changing VA usage */
 	if (pp == NULL)
 		return (NULL);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,170 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of all implementation architecture
+#	dependent modules for the i86xpv architecture.
+#
+
+UTSBASE = ..
+
+include Makefile.i86xpv
+
+#
+#	The following are x86 specific (rather than i86pc) specific modules
+#	which are required for the i86pc kernel to completely lint. They are
+#	not involved in the build in any other way. In order to minimize
+#	build time, it is assumed that they are up to date.
+#
+INTEL_LIB_DIR	 = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
+
+INTEL_LINTS	 = genunix
+
+LINT_LIBS	 = $(LINT_LIB) \
+		   $(GENUNIX_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
+		   $(PARALLEL_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
+		   $(CLOSED_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
+		   $(INTEL_LINTS:%=$(INTEL_LIB_DIR)/llib-l%.ln)
+
+#
+#
+#
+def		:=	TARGET= def
+all		:=	TARGET= all
+install		:=	TARGET= install
+clean		:=	TARGET= clean
+clobber		:=	TARGET= clobber
+lint		:=	TARGET= lint
+lintlib		:=	TARGET= lintlib
+machmodlintlib	:=	TARGET= modlintlib
+modlist		:=	TARGET= modlist
+modlist	modlist.intel :=	NO_STATE= -K $$MODSTATE$$$$
+clean.lint	:=	TARGET= clean.lint
+check		:=	TARGET= check
+
+.KEEP_STATE:
+
+.PARALLEL:	$(PARALLEL_KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
+		modlist modlist.intel
+
+INITIAL_TARGETS = \
+	genassym \
+	unix
+
+def all clean clobber clean.lint: setup genassym unix .WAIT \
+	$(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS)
+
+install: install_platforms setup genassym unix .WAIT \
+	$(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS)
+
+# list the modules under i86xpv.
+modlist: unix $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS)
+
+# list the modules for Install -k i86xpv.
+modlist.karch: modlist modlist.intel
+
+modlist.intel:
+	@cd $(SRC)/uts/intel; pwd; $(MAKE) $(NO_STATE) modlist
+
+lintlib:	unix
+
+modlintlib:	$(KMODS) $(CLOSED_KMODS)
+
+genassym unix $(KMODS):	FRC
+	@cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
+
+setup: FRC
+
+$(XMODS):	FRC
+	@if [ -f $@/Makefile  ]; then \
+		cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
+	else \
+		true; \
+	fi
+
+$(CLOSED_KMODS):	FRC
+	cd $(CLOSED)/uts/i86xpv/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
+
+$(CLOSED_XMODS):	FRC
+	@if [ -f $(CLOSED)/uts/i86xpv/$@/Makefile  ]; then \
+		cd $(CLOSED)/uts/i86xpv/$@; pwd; \
+		    $(MAKE) $(NO_STATE) $(TARGET); \
+	else \
+		true; \
+	fi
+
+install_h check:	FRC
+	@cd sys; pwd; $(MAKE) $(TARGET)
+
+#
+# Definitions for the /platform directory aliases.
+# Currently none for i86xpv.
+#
+PLAT_LINKS	=
+
+#
+# Make the /platform directories.  This is hardwired here because
+# the first stage of the project (KBI) only implements the userland
+# changes, but the only reasonable place to record the aliases is
+# here in kernel land.
+#
+install_platforms:	$(ROOT_PSM_DIR) $(USR_PSM_DIR) \
+			$(ROOT_PLAT_LINKS) $(USR_PLAT_LINKS) \
+			$(OEM_USR_PLAT_LINKS)
+
+#
+#	Full kernel lint target.
+#
+LINT_TARGET	= globallint
+
+# workaround for multiply defined errors
+globallint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2
+
+globallint:
+	@-$(ECHO) "\nFULL KERNEL: global crosschecks:"
+	@-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
+
+lint:	lintlib .WAIT modlintlib .WAIT $(INTEL_LINTS) $(LINT_DEPS)
+
+$(INTEL_LINTS):	FRC
+	@cd $(UTSBASE)/intel/$@; pwd; $(MAKE) modlintlib
+
+FRC:
+
+include ../Makefile.targ
+
+#
+# Cross-reference customization: build a cross-reference over all of the
+# i86pc-related directories.
+#
+SHARED_XRDIRS	= ../i86xpv ../i86pc ../intel ../common
+XRDIRS		= $(SHARED_XRDIRS)
+CLOSED_XRDIRS1	= $(SHARED_XRDIRS:../%=../% ../../../closed/uts/%)
+CLOSED_XRDIRS2	= $(CLOSED_XRDIRS1:../../../closed/uts/i86pc=)
+$(CLOSED_BUILD)XRDIRS	= $(CLOSED_XRDIRS2:../../../closed/uts/i86xpv=)
+XRPRUNE	= sun4v sun4u sun4 sfmmu sparc
+
+cscope.out tags: FRC
+	$(XREF) -x $@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.files	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,241 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This Makefile defines file modules in the directory uts/i86xpv
+#	and its children. These are the source files which are i86xpv
+#	"implementation architecture" dependent.
+#
+
+#
+#	object lists
+#
+CORE_OBJS +=			\
+	balloon.o		\
+	beeper.o		\
+	biosdisk.o		\
+	cbe.o			\
+	cmi.o			\
+	confunix.o		\
+	cpuid.o			\
+	cpupm.o			\
+	dis_tables.o		\
+	ddi_impl.o		\
+	dtrace_subr.o		\
+	dvma.o			\
+	fakebop.o		\
+	fpu_subr.o		\
+	graphics.o		\
+	hardclk.o		\
+	hat_i86.o		\
+	hat_kdi.o		\
+	hment.o			\
+	hold_page.o		\
+	hrtimers.o		\
+	htable.o		\
+	i86_mmu.o		\
+	instr_size.o		\
+	intr.o			\
+	kboot_mmu.o		\
+	kdi_subr.o		\
+	kdi_idt.o		\
+	kdi_idthdl.o		\
+	kdi_asm.o		\
+	lgrpplat.o		\
+	mach_kdi.o		\
+	mach_sysconfig.o	\
+	machdep.o		\
+	mem_config_stubs.o	\
+	memnode.o		\
+	microcode.o		\
+	mlsetup.o		\
+	mp_call.o		\
+	mp_implfuncs.o		\
+	mp_machdep.o		\
+	mp_startup.o		\
+	memscrub.o		\
+	notes.o			\
+	pci_bios.o		\
+	pci_cfgspace.o		\
+	pci_mech1.o		\
+	pci_mech2.o		\
+	pci_neptune.o		\
+	pci_orion.o		\
+	pmem.o			\
+	ppage.o			\
+	startup.o		\
+	xpv_timestamp.o		\
+	todpc_subr.o		\
+	trap.o			\
+	vm_machdep.o		\
+	x_call.o
+
+#
+#	Add the SMBIOS subsystem object files directly to the list of objects
+#	built into unix itself; this is all common code except for smb_dev.c.
+#
+CORE_OBJS += $(SMBIOS_OBJS)
+
+#
+# These get compiled twice:
+# - once in the dboot (direct boot) identity mapped code 
+# - once for use during early startup in unix
+#
+BOOT_DRIVER_OBJS =		\
+	boot_console.o		\
+	boot_keyboard.o		\
+	boot_keyboard_table.o	\
+	boot_mmu.o		\
+	boot_vga.o		\
+	boot_xconsole.o
+
+CORE_OBJS += $(BOOT_DRIVER_OBJS)
+
+#
+# Extra XEN files separated out for now.
+#
+CORE_OBJS +=			\
+	cpr_driver.o		\
+	evtchn.o		\
+	gnttab.o		\
+	hypercall.o		\
+	hyperevent.o		\
+	hypersubr.o		\
+	mp_xen.o		\
+	panic_asm.o		\
+	xenguest.o		\
+	xenbus_client.o		\
+	xenbus_comms.o		\
+	xenbus_probe.o		\
+	xenbus_xs.o		\
+	xen_machdep.o		\
+	xen_mmu.o		\
+	xpv_panic.o		\
+	xvdi.o
+
+#
+#	locore.o is special. It must be the first file relocated so that it
+#	it is relocated just where its name implies.
+#
+SPECIAL_OBJS_32 +=		\
+	locore.o		\
+	fast_trap_asm.o		\
+	interrupt.o		\
+	syscall_asm.o
+
+SPECIAL_OBJS_64 +=		\
+	locore.o		\
+	fast_trap_asm.o		\
+	interrupt.o		\
+	syscall_asm_amd64.o
+
+SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
+
+#
+# object files used to boot into full kernel
+#
+DBOOT_OBJS_32 =	muldiv.o
+
+DBOOT_OBJS_64 =
+
+DBOOT_OBJS +=			\
+	dboot_asm.o		\
+	dboot_printf.o		\
+	dboot_startkern.o	\
+	dboot_xen.o		\
+	hypercall.o		\
+	hypersubr.o		\
+	memcpy.o		\
+	memset.o		\
+	string.o		\
+	$(BOOT_DRIVER_OBJS)	\
+	$(DBOOT_OBJS_$(CLASS))
+
+#
+#			driver & misc modules
+#
+ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
+DOMCAPS_OBJS += domcaps.o
+BALLOON_OBJS += balloon_drv.o
+EVTCHN_OBJS += evtchn_dev.o
+GFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
+		    gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
+PCI_E_MISC_OBJS += pcie_error.o
+PCI_E_NEXUS_OBJS += npe.o npe_misc.o
+PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
+PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
+PRIVCMD_OBJS += seg_mf.o privcmd.o privcmd_hcall.o
+ROOTNEX_OBJS += rootnex.o
+XPVTOD_OBJS += xpvtod.o
+XPV_AUTOCONFIG_OBJS += xpv_autoconfig.o
+XPV_PSM_OBJS += xpv_psm.o mp_platform_common.o apic_introp.o psm_common.o
+XENBUS_OBJS += xenbus_dev.o
+XENCONS_OBJS += xencons.o
+XPVD_OBJS += xpvd.o
+XNB_OBJS += xnb.o
+XNBE_OBJS += xnbe.o
+XNBO_OBJS += xnbo.o
+XNBU_OBJS += xnbu.o
+XNF_OBJS += xnf.o
+XSVC_OBJS += xsvc.o
+XDF_OBJS += xdf.o
+XDB_OBJS += xdb.o
+
+#
+#	Build up defines and paths.
+#
+INC_PATH	+= -I$(UTSBASE)/i86xpv -I$(UTSBASE)/i86pc -I$(SRC)/common
+
+#
+# Since the assym files are derived, the dependencies must be explicit for
+# all files including this file. (This is only actually required in the
+# instance when the .nse_depinfo file does not exist.) It may seem that
+# the lint targets should also have a similar dependency, but they don't
+# since only C headers are included when #defined(__lint) is true.
+#
+
+ASSYM_DEPS      += 		\
+	copy.o			\
+	desctbls_asm.o		\
+	ddi_i86_asm.o		\
+	exception.o		\
+	fast_trap_asm.o		\
+	float.o			\
+	hyperevent.o		\
+	i86_subr.o		\
+	kdi_asm.o		\
+	interrupt.o		\
+	lock_prim.o		\
+	locore.o		\
+	panic_asm.o		\
+	sseblk.o		\
+	swtch.o			\
+	syscall_asm.o		\
+	syscall_asm_amd64.o
+
+$(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%):	$(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
+
+ASSYM_DEPS += kdi_asm.o
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.i86xpv	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+UTSTREE=$(UTSBASE)
+
+include $(UTSBASE)/i86xpv/Makefile.i86xpv.shared
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.i86xpv.shared	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,315 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/Makefile.i86xpv.shared
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile contains the common definitions for the i86xpv unix
+#	and all i86xpv implementation architecture dependent modules.
+#
+
+#
+#	Machine type (implementation architecture):
+#
+PLATFORM	 = i86xpv
+
+#
+#	uname -m value
+#
+UNAME_M		 = i86pc
+
+#
+#	Everybody needs to know how to build modstubs.o and to locate unix.o
+#
+UNIX_DIR	 = $(UTSBASE)/$(PLATFORM)/unix
+GENLIB_DIR	 = $(UTSBASE)/intel/genunix
+MODSTUBS_DIR	 = $(UNIX_DIR)
+DSF_DIR		 = $(UTSBASE)/$(PLATFORM)/genassym
+LINTS_DIR	 = $(OBJS_DIR)
+LINT_LIB_DIR	 = $(UTSBASE)/$(PLATFORM)/lint-libs/$(OBJS_DIR)
+GEN_LINT_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
+
+DTRACESTUBS_O	 = $(OBJS_DIR)/dtracestubs.o
+DTRACESTUBS	 = $(OBJS_DIR)/libdtracestubs.so
+
+SYM_MOD		= $(OBJS_DIR)/unix.sym
+
+UNIX_O		 = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
+MODSTUBS_O	 = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
+GENLIB	 	 = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so
+LINT_LIB	 = $(LINT_LIB_DIR)/llib-lunix.ln
+DBOOT_LINT_LIB	 = $(LINT_LIB_DIR)/llib-ldboot.ln
+GEN_LINT_LIB	 = $(GEN_LINT_LIB_DIR)/llib-lgenunix.ln
+
+#
+#	Include the makefiles which define build rule templates, the
+#	collection of files per module, and a few specific flags. Note
+#	that order is significant, just as with an include path. The
+#	first build rule template which matches the files name will be
+#	used. By including these in order from most machine dependent
+#	to most machine independent, we allow a machine dependent file
+#	to be used in preference over a machine independent version
+#	(Such as a machine specific optimization, which preserves the
+#	interfaces.)
+#
+include $(UTSTREE)/$(PLATFORM)/Makefile.files
+include $(UTSTREE)/intel/Makefile.files
+include $(UTSTREE)/common/Makefile.files
+
+#
+#	Include machine independent rules. Note that this does not imply
+#	that the resulting module from rules in Makefile.uts is	machine
+#	independent. Only that the build rules are machine independent.
+#
+include $(UTSBASE)/Makefile.uts
+
+#
+#	Define supported builds
+#
+DEF_BUILDS		= $(DEF_BUILDS64) $(DEF_BUILDS32)
+ALL_BUILDS		= $(ALL_BUILDS64) $(ALL_BUILDS32)
+
+#
+#	x86 or amd64 inline templates
+#
+INLINES_32		= $(UTSBASE)/intel/ia32/ml/ia32.il \
+			  $(UTSBASE)/$(PLATFORM)/ml/ia32.il
+INLINES_64		= $(UTSBASE)/intel/amd64/ml/amd64.il \
+			  $(UTSBASE)/$(PLATFORM)/ml/amd64.il
+INLINES			+= $(INLINES_$(CLASS))
+
+#
+#	kernel-specific optimizations; override default in Makefile.master
+#
+
+CFLAGS_XARCH_32		= $(i386_CFLAGS)
+CFLAGS_XARCH_64		= $(amd64_CFLAGS)
+CFLAGS_XARCH		= $(CFLAGS_XARCH_$(CLASS))
+
+COPTFLAG_32		= $(COPTFLAG)
+COPTFLAG_64		= $(COPTFLAG64)
+COPTIMIZE		= $(COPTFLAG_$(CLASS))
+
+CFLAGS			= $(CFLAGS_XARCH)
+CFLAGS			+= $(COPTIMIZE)
+CFLAGS			+= $(INLINES) -D_ASM_INLINES
+CFLAGS			+= $(CCMODE)
+CFLAGS			+= $(SPACEFLAG)
+CFLAGS			+= $(CCUNBOUND)
+CFLAGS			+= $(CFLAGS_uts)
+
+ASFLAGS_XARCH_32	= $(i386_ASFLAGS)
+ASFLAGS_XARCH_64	= $(amd64_ASFLAGS)
+ASFLAGS_XARCH		= $(ASFLAGS_XARCH_$(CLASS))
+
+ASFLAGS			+= $(ASFLAGS_XARCH)
+
+AS_INC_PATH		+= -I$(DSF_DIR)/$(OBJS_DIR)
+
+#
+#	The following must be defined for all implementations:
+#
+#	MAPFILE:	ld mapfile for the build of kernel/unix.
+#	MODSTUBS:	Module stubs source file.
+#	GENASSYM_SRC:	genassym.c
+
+MAPFILE		= $(UTSBASE)/$(PLATFORM)/conf/Mapfile
+MODSTUBS	= $(UTSBASE)/intel/ia32/ml/modstubs.s
+GENASSYM_SRC	= $(UTSBASE)/i86pc/ml/genassym.c
+OFFSETS_SRC	= $(UTSBASE)/i86pc/ml/offsets.in
+
+#PLATFORM_OFFSETS_32	= $(UTSBASE)/$(PLATFORM)/ml/mach_offsets.in
+PLATFORM_OFFSETS_32	= $(UTSBASE)/i86pc/ml/mach_offsets.in
+PLATFORM_OFFSETS_64	= $(UTSBASE)/intel/amd64/ml/mach_offsets.in
+PLATFORM_OFFSETS_SRC	= $(PLATFORM_OFFSETS_$(CLASS))
+KDI_OFFSETS_SRC		= $(UTSBASE)/intel/kdi/kdi_offsets.in
+
+#
+#	Define the actual specific platforms
+#
+MACHINE_DEFS	 = -D__$(PLATFORM) -D__xpv -D_MACHDEP
+
+#
+#	Software workarounds for hardware "features"
+#
+
+include	$(UTSBASE)/i86pc/Makefile.workarounds
+
+#
+#	Debugging level
+#
+#	Special knowledge of which special debugging options effect which
+#	file is used to optimize the build if these flags are changed.
+#
+#	XXX: The above could possibly be done for more flags and files, but
+#	     is left as an experiment to the interested reader. Be forewarned,
+#	     that excessive use could lead to maintenance difficulties.
+#
+DEBUG_DEFS_OBJ32	=
+DEBUG_DEFS_DBG32	= -DDEBUG
+DEBUG_DEFS_OBJ64	=
+DEBUG_DEFS_DBG64	= -DDEBUG
+DEBUG_DEFS		= $(DEBUG_DEFS_$(BUILD_TYPE))
+
+DEBUG_COND_OBJ32	:sh = echo \\043
+DEBUG_COND_DBG32	=
+DEBUG_COND_OBJ64	:sh = echo \\043
+DEBUG_COND_DBG64	=
+IF_DEBUG_OBJ		= $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
+
+$(IF_DEBUG_OBJ)trap.o		:= DEBUG_DEFS += -DTRAPDEBUG -DTRAPTRACE
+$(IF_DEBUG_OBJ)syscall_asm.o	:= DEBUG_DEFS += -DSYSCALLTRACE -DTRAPTRACE
+$(IF_DEBUG_OBJ)syscall_asm_amd64.o := DEBUG_DEFS += -DSYSCALLTRACE -DTRAPTRACE
+$(IF_DEBUG_OBJ)fast_trap_asm.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)interrupt.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)intr.o		:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)locore.o		:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)mp_startup.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)machdep.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)exception.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)x_call.o		:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)mp_call.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)cbe.o		:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)hyperevent.o	:= DEBUG_DEFS += -DTRAPTRACE
+$(IF_DEBUG_OBJ)evtchn.o		:= DEBUG_DEFS += -DTRAPTRACE
+
+#
+#	Build `options'. These are historical and the need for these
+#	was removed by the module technology.
+#
+OPTION_DEFS	 = -DC2_AUDIT
+
+#
+#	Collect the preprocessor definitions to be associated with *all*
+#	files.
+#
+ALL_DEFS	 = $(MACHINE_DEFS) $(WORKAROUND_DEFS) $(DEBUG_DEFS) \
+		   $(OPTION_DEFS)
+GENASSYM_DEFS	 = $(MACHINE_DEFS) $(OPTION_DEFS) \
+			-_gcc=-fno-eliminate-unused-debug-symbols \
+			-_gcc=-fno-eliminate-unused-debug-types
+
+#
+# ----- TRANSITIONAL SECTION --------------------------------------------------
+#
+
+#
+#	Not everything which *should* be a module is a module yet. The
+#	following is a list of such objects which are currently part of
+#	the base kernel but should soon become kmods.
+#
+#	XXX: $(KMACCT_OBJS) is neither in the MT kernel nor was it ever
+#	     made into a module. If it is made MT safe before being made
+#	     into a module, it should be added to this list. It was in
+#	     this list pre ON-4.0.
+#
+#
+MACH_NOT_YET_KMODS	= $(AUTOCONF_OBJS)
+
+#
+# ----- END OF TRANSITIONAL SECTION -------------------------------------------
+#
+
+#
+#	The kernels modules which are "implementation architecture"
+#	specific for this machine are enumerated below. Note that most
+#	of these modules must exist (in one form or another) for each
+#	architecture.
+#
+#	Machine Specific Driver Modules (/kernel/drv):
+#	DRV_KMODS are built both 32-bit and 64-bit
+#	DRV_KMODS_32 are built only 32-bit
+#	DRV_KMODS_64 are built only 64-bit
+#
+
+DRV_KMODS	+= rootnex
+DRV_KMODS	+= isa
+DRV_KMODS	+= pci
+DRV_KMODS	+= npe
+DRV_KMODS	+= pci-ide
+DRV_KMODS	+= xsvc
+DRV_KMODS	+= xenbus
+DRV_KMODS	+= xencons
+DRV_KMODS	+= xpvd
+DRV_KMODS	+= xnbe
+DRV_KMODS	+= xnbo
+DRV_KMODS	+= xnbu
+DRV_KMODS	+= xnf
+DRV_KMODS	+= xdb
+DRV_KMODS	+= xdf
+DRV_KMODS	+= privcmd
+DRV_KMODS	+= domcaps
+DRV_KMODS	+= evtchn
+DRV_KMODS	+= balloon
+
+#
+#	CPU Modules
+#
+CPU_KMODS	+= generic_cpu
+
+#
+#	Exec Class Modules (/kernel/exec):
+#
+EXEC_KMODS	+=
+
+#
+#	Scheduling Class Modules (/kernel/sched):
+#
+SCHED_KMODS	+=
+
+#
+#	File System Modules (/kernel/fs):
+#
+FS_KMODS	+=
+
+#
+#	Streams Modules (/kernel/strmod):
+#
+STRMOD_KMODS	+=
+
+#
+#	'System' Modules (/kernel/sys):
+#
+SYS_KMODS	+=
+
+#
+#	'Misc' Modules (/kernel/misc):
+#
+MISC_KMODS	+= xpv_autoconfig gfx_private pcie xnb
+
+#	'Dacf' modules (/kernel/dacf)
+#
+DACF_KMODS	+= consconfig_dacf
+
+#
+#	'Mach' Modules (/kernel/mach):
+#
+MACH_KMODS     	+= xpv_psm
+
+#
+#	'TOD' modules (/platform/.../kernel/tod):
+#
+TOD_KMODS	+= xpvtod
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.rules	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,230 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+#	This Makefile defines the build rules for the directory uts/i86xpv
+#	and its children. These are the source files which are i86xpv
+#	"implementation architecture" dependent.
+#
+#	The following two-level ordering must be maintained in this file.
+#
+#	- Lines are sorted first in order of decreasing specificity based on
+#	  the first directory component.  That is, sun4u rules come before
+#	  sparc rules come before common rules.
+#
+#	- Lines whose initial directory components are equal are sorted
+#	  alphabetically by the remaining components.
+#
+
+#
+#	We share many files with the i86pc implementation to reduce
+#	the amount of merge work
+#
+
+#
+#	Section 1a: C object build rules
+#
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/conf/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/io/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pci/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pciex/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/io/psm/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/ml/%.s
+	$(COMPILE.s) -o $@ $<
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/os/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/vm/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/boot/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/gfx_private/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/xsvc/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+#	We need this one to make sure we share dtrace_subr.c with i86pc
+#	Otherwise we pick up common/os/dtrace_subr.c instead :(
+#	Note that only the non-commented versions of this hack end up
+#	in the lint section below.
+
+$(OBJS_DIR)/dtrace_subr.o:	$(UTSBASE)/i86pc/os/dtrace_subr.c
+	$(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c
+	$(CTFCONVERT_O)
+
+#
+$(OBJS_DIR)/%.o:		$(UTSBASE)/common/cpr/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/io/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+#
+#	Section 1b: Lint `object' build rules
+#
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/conf/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/io/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/io/psm/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/ml/%.s
+	@($(LHEAD) $(LINT.s) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/os/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/vm/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/boot/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/boot/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+#	See note above.
+
+$(LINTS_DIR)/dtrace_subr.ln:	$(UTSBASE)/i86pc/os/dtrace_subr.c
+	@($(LHEAD) $(LINT.c) $(UTSBASE)/i86pc/os/dtrace_subr.c $(LTAIL))
+
+#
+# stuff for dboot
+#
+# This is different from i86pc - uses 64 bit compiler for 64 bit
+#
+# Note that we *don't* want to use the definitions that have been augmented
+# by various bits of the context of the kernel build environment; so we
+# start constructing flags and things afresh.
+
+DBOOT_OBJS_DIR= dboot/$(OBJS_DIR)
+
+DBOOT_XARCH_32 = $(i386_XARCH)
+DBOOT_XARCH_64 = $(amd64_XARCH)
+DBOOT_CFLAGS = $(DBOOT_XARCH_$(CLASS)) $(CERRWARN) -O
+
+DBOOT_AS_XARCH_32 = $(i386_AS_XARCH)
+DBOOT_AS_XARCH_64 = $(amd64_AS_XARCH)
+DBOOT_ASFLAGS = $(DBOOT_AS_XARCH_$(CLASS)) -P -D_ASM
+
+DBOOT_LINTFLAGS_i86xpv	= $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS))
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/boot/%.c
+	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
+	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.c
+	$(CC) $(DBOOT_CFLAGS)  $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/%.c
+	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/os/%.c
+	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/i386/%.s
+	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/ml/%.s
+	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
+
+$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.s
+	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
+
+include $(UTSBASE)/i86pc/Makefile.rules
+
+DBOOT_DEFS += -D__xpv
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/common/cpr/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/pci/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/pciex/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/gfx_private/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/xsvc/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/io/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/os/%.c
+	@($(LHEAD) $(LINT.c) $< $(LTAIL))
+
+$(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/os/%.c
+	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
+
+$(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/ml/%.s
+	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
+
+$(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/boot/%.c
+	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.targ	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,28 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+UTSTREE=$(UTSBASE)
+
+include $(UTSBASE)/i86xpv/Makefile.targ.shared
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/Makefile.targ.shared	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,44 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This Makefile defines the set of all required, target containing
+# included Makefiles for the i86xpv "implementation architecture".
+#
+
+#
+#	Targets for all implementations:
+#
+include $(UTSBASE)/Makefile.targ
+
+#
+#	Target set for i86xpv (order is not important, as it is with the
+# isomorphic Makefile.files set).
+#
+include $(UTSTREE)/i86xpv/Makefile.rules
+include $(UTSTREE)/intel/Makefile.rules
+include $(UTSTREE)/common/Makefile.rules
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/balloon/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the balloon
+#	driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= balloon
+OBJECTS		= $(BALLOON_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(BALLOON_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/boot/boot_xconsole.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,244 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+
+#include <sys/hypervisor.h>
+#include <sys/machparam.h>
+#include <xen/public/io/console.h>
+#include <sys/mach_mmu.h>
+
+shared_info_t *HYPERVISOR_shared_info;
+void *HYPERVISOR_console_page;
+
+#if defined(_BOOT)
+#include "dboot/dboot_printf.h"
+char big_empty[MMU_PAGESIZE * 3];	/* room for 2 page aligned page */
+#endif /* _BOOT */
+
+unsigned short video_fb_buf[32 * 1024 + MMU_PAGESIZE];
+unsigned char kb_status_buf[MMU_PAGESIZE * 2];
+unsigned short *video_fb = NULL;
+unsigned char *kb_status = NULL;
+
+static volatile struct xencons_interface *cons_ifp;
+
+#define	XR_FULL(r)	((r)->xr_in_cnt - (r)->xr_out_cnt == XR_SIZE)
+#define	XR_EMPTY(r)	((r)->xr_in_cnt == (r)->xr_out_cnt)
+
+#define	PTE_BITS	(PT_VALID | PT_WRITABLE)
+#define	PTE_DEV_BITS	(PT_VALID | PT_WRITABLE | PT_NOCACHE | PT_NOCONSIST | \
+			PT_FOREIGN)
+
+/*
+ * For some unfortunate reason, the hypervisor doesn't bother to include the
+ * shared info in the original virtual address space.  This means we can't
+ * do any console I/O until we have manipulated some pagetables. So we have to
+ * do this bit of code with no ability to get debug output.
+ */
+/*ARGSUSED*/
+void
+bcons_init_xen(char *cmdline)
+{
+#ifdef _BOOT
+	int i = 0;
+	uintptr_t vaddr;
+
+	/*
+	 * find a page aligned virtual address in "big_empty"
+	 */
+	vaddr = (uintptr_t)&big_empty;
+	vaddr = (vaddr + MMU_PAGEOFFSET) & MMU_PAGEMASK;
+	HYPERVISOR_shared_info = (shared_info_t *)vaddr;
+
+	/*
+	 * Sets the "present" and "writable" bits in the PTE
+	 * plus user for amd64.
+	 */
+	HYPERVISOR_update_va_mapping(vaddr, xen_info->shared_info | PTE_BITS,
+	    UVMF_INVLPG | UVMF_LOCAL);
+
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		/*
+		 * map the xen console ring buffers
+		 */
+		HYPERVISOR_update_va_mapping(vaddr + MMU_PAGESIZE,
+		    mmu_ptob((x86pte_t)xen_info->console.domU.mfn) | PTE_BITS,
+		    UVMF_INVLPG | UVMF_LOCAL);
+	} else {
+		/*
+		 * Xen will pass dom0 information about the current
+		 * display settings via xen_info->console.dom0.  This
+		 * information includes what video mode we're in (vga
+		 * or vesa) and some basic information about the video
+		 * mode.  (screen size, cursor location, etc.)  We're
+		 * just going to ignore all this info.  Here's some
+		 * reasons why:
+		 *
+		 * - Currently Solaris itself has no support for vesa.
+		 *   Also, the only way to boot Solaris is using our
+		 *   patched version of grub, which conveniently doesn't
+		 *   support vesa either.
+		 *
+		 * - By default when solaris boots up it clears the screen
+		 *   thereby removing any previously displayed grub/xen
+		 *   console messages, so we really don't care about the
+		 *   current vga settings.
+		 *
+		 * Initially we'll map device memory for the frame buffer
+		 * and keyboard into some local memory that already has
+		 * page table entries so that we can get very basic debug
+		 * output.  Later on when we're initializing page tables
+		 * we'll map re-map these devices to be at their expected
+		 * addresses.  Note that these mappings created below will
+		 * be torn down right before the kernel boots up when
+		 * all the memory and mappings associated with dboot are
+		 * released.
+		 *
+		 * Map the frame buffer.
+		 */
+		vaddr = (uintptr_t)&video_fb_buf;
+		vaddr = (vaddr + MMU_PAGEOFFSET) & MMU_PAGEMASK;
+		for (i = 0; i < 32 * 1024; i += MMU_PAGESIZE)
+			(void) HYPERVISOR_update_va_mapping(vaddr + i,
+			    0xb8000 + i | PTE_DEV_BITS,
+			    UVMF_INVLPG | UVMF_LOCAL);
+		video_fb = (unsigned short *)vaddr;
+
+		/* Map the keyboard */
+		vaddr = (uintptr_t)&kb_status_buf;
+		vaddr = (vaddr + MMU_PAGEOFFSET) & MMU_PAGEMASK;
+		(void) HYPERVISOR_update_va_mapping(vaddr, 0x0 | PTE_DEV_BITS,
+		    UVMF_INVLPG | UVMF_LOCAL);
+		kb_status = (unsigned char *)vaddr;
+	}
+
+#endif /* _BOOT */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		HYPERVISOR_console_page =
+		    (void *)((uintptr_t)HYPERVISOR_shared_info + MMU_PAGESIZE);
+	} else {
+		HYPERVISOR_console_page = NULL;
+	}
+}
+
+
+/*
+ * This is the equivalent of polled I/O across the hypervisor CONSOLE
+ * channel to output 1 character at a time.
+ */
+void
+bcons_putchar_xen(int c)
+{
+	evtchn_send_t send;
+	char buffer = (char)c;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		(void) HYPERVISOR_console_io(CONSOLEIO_write, 1, &buffer);
+		return;
+	}
+
+	cons_ifp = (volatile struct xencons_interface *)HYPERVISOR_console_page;
+
+	/*
+	 * need to add carriage return for new lines
+	 */
+	if (c == '\n')
+		bcons_putchar_xen('\r');
+
+	/*
+	 * We have to wait till we have an open transmit slot.
+	 */
+	while (cons_ifp->out_prod - cons_ifp->out_cons >=
+	    sizeof (cons_ifp->out))
+		(void) HYPERVISOR_yield();
+
+	cons_ifp->out[MASK_XENCONS_IDX(cons_ifp->out_prod, cons_ifp->out)] =
+	    (char)c;
+	++cons_ifp->out_prod;
+
+	/*
+	 * Signal Domain 0 that it has something to do for us.
+	 */
+	send.port = xen_info->console.domU.evtchn;
+	(void) HYPERVISOR_event_channel_op(EVTCHNOP_send, &send);
+}
+
+static uint_t have_char = 0;
+static char buffered;
+
+/*
+ * See if there is a character on input.
+ */
+int
+bcons_ischar_xen(void)
+{
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		if (have_char)
+			return (1);
+		if (HYPERVISOR_console_io(CONSOLEIO_read, 1, &buffered) > 0)
+			return (have_char = 1);
+		return (0);
+	}
+
+	cons_ifp = (volatile struct xencons_interface *)HYPERVISOR_console_page;
+	if (cons_ifp->in_cons == cons_ifp->in_prod)
+		return (0);
+	return (1);
+}
+
+/*
+ * get a console input character
+ */
+int
+bcons_getchar_xen(void)
+{
+	evtchn_send_t send;
+	char c;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		while (have_char == 0)
+			(void) bcons_ischar_xen();
+		have_char = 0;
+		return (buffered);
+	}
+
+	cons_ifp = (volatile struct xencons_interface *)HYPERVISOR_console_page;
+	while (cons_ifp->in_cons == cons_ifp->in_prod)
+		(void) HYPERVISOR_yield();
+
+	c = cons_ifp->in[MASK_XENCONS_IDX(cons_ifp->in_cons, cons_ifp->in)];
+	++cons_ifp->in_cons;
+
+	/*
+	 * Signal Domain 0 that we ate a character.
+	 */
+	send.port = xen_info->console.domU.evtchn;
+	(void) HYPERVISOR_event_channel_op(EVTCHNOP_send, &send);
+	return (c);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/conf/Mapfile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,55 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+# This is 1:1 mapped code to setup the kernel memory image.
+# It needs to be after (in physical) the kernel bits, so that
+# they have full 8 Meg of memory.
+# 
+dboot	= LOAD ?RWXN P0x40800000 V0x40800000;
+dboot	: .data : *dboot.o;
+
+#
+# kernel text segment
+#
+text	= LOAD ?RXN P0x40000000 V0xf4c00000;
+text	| .text;
+text	: $PROGBITS ?A!W;
+
+#
+# start the data segment on a new 4MB page boundary
+#
+data	= LOAD ?RWX P0x40400000 V0xf5000000;
+data	| .data;
+data	: $PROGBITS ?AW;
+data	: $NOBITS ?AW;
+
+note	= NOTE;
+note	: $NOTE;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/conf/Mapfile.amd64	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,52 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+# This is 1:1 mapped code to setup the kernel memory image.
+# It needs to be after (in physical) the kernel bits, so that
+# they have full 8 Meg of memory.
+# 
+dboot	= LOAD ?RWXN P0x40800000 V0x40800000;
+dboot	: .data : *dboot.o;
+
+text    = LOAD ?RXN P0x40000000 V0xFFFFFFFFFB800000;
+text    | .text;
+text    : $PROGBITS ?A!W;
+
+#
+# start the data segment on a new 4MB page boundary
+#
+data	= LOAD ?RWX P0x40400000 V0xFFFFFFFFFBC00000;
+data	| .data;
+data	: $PROGBITS ?AW;
+data	: $NOBITS ?AW;
+
+note	= NOTE;
+note	: $NOTE;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/consconfig_dacf/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,81 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the consconfig_dacf module.
+#
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= consconfig_dacf
+OBJECTS		= $(CONSCONFIG_DACF_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(CONSCONFIG_DACF_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DACF_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#       Define targets
+#
+ALL_TARGET      = $(BINARY)
+LINT_TARGET     = $(MODULE).lint
+INSTALL_TARGET  = $(BINARY) $(ROOTMODULE)
+
+#
+#	Overrides
+#
+LDFLAGS		+= -dy -Nmisc/usbser
+
+.KEEP_STATE:
+
+def:            $(DEF_DEPS)
+
+all:            $(ALL_DEPS)
+
+clean:          $(CLEAN_DEPS)
+
+clobber:        $(CLOBBER_DEPS)
+
+lint:           $(LINT_DEPS)
+
+modlintlib:     $(MODLINTLIB_DEPS)
+
+clean.lint:     $(CLEAN_LINT_DEPS)
+
+install:        $(INSTALL_DEPS)
+
+#
+#       Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/domcaps/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the domcaps
+#	driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= domcaps
+OBJECTS		= $(DOMCAPS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(DOMCAPS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/evtchn/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,88 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the evtchn
+#	driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= evtchn
+OBJECTS		= $(EVTCHN_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(EVTCHN_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Since we don't always pick up $(ALWAYS_LINT_DEFS)...
+#
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/genassym/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,101 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of assym.h through
+#	compile time intialized data.
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+ASSYM_H		= $(DSF_DIR)/$(OBJS_DIR)/assym.h
+KDI_ASSYM_H	= $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
+GENASSYM	= $(DSF_DIR)/$(OBJS_DIR)/genassym
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(ASSYM_H) $(KDI_ASSYM_H)
+
+#
+# This is DSF_DIR.  Use a short path.
+#
+DSF_DIR		= .
+
+
+#
+#	Overrides
+#
+CLEANFILES	= $(GENASSYM) Nothing_to_remove
+CLOBBERFILES	= $(ASSYM_H) $(KDI_ASSYM_H) $(CLEANFILES) Nothing_to_remove
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+clean.lint:
+
+install:	def
+
+#
+# Create assym.h
+#
+$(GENASSYM): $(GENASSYM_SRC)
+	$(NATIVECC) $(ALWAYS_DEFS) $(GENASSYM_DEFS) $(NATIVE_INC_PATH) \
+	   -o $@ $(GENASSYM_SRC)
+
+$(ASSYM_H): $(OFFSETS_SRC) $(PLATFORM_OFFSETS_SRC) $(GENASSYM)
+	$(OFFSETS_CREATE) <$(OFFSETS_SRC) >$@
+	$(OFFSETS_CREATE) <$(PLATFORM_OFFSETS_SRC) >>$@
+	$(GENASSYM) >>$@
+
+$(KDI_ASSYM_H): $(KDI_OFFSETS_SRC) $(GENASSYM)
+	$(OFFSETS_CREATE) <$(KDI_OFFSETS_SRC) >$@
+	$(GENASSYM) >>$@
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/generic_cpu/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,84 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE = ../..
+
+#
+#       Define the module and object file sets.
+#
+MODULE		= cpu.generic
+#
+OBJECTS		= $(CPU_GCPU_OBJS:%=$(OBJS_DIR)/%)
+LINTS           = $(CPU_GCPU_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE      = $(ROOT_PSM_CPU_DIR)/$(MODULE)
+
+#
+#       Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+include $(UTSBASE)/i86pc/cpu/Makefile.files
+
+#
+#	Our lint library has a different name from that of the module we build.
+#
+LINT_MODULE	= generic_cpu
+
+#
+#       Define targets
+#
+ALL_TARGET      = $(BINARY)
+LINT_TARGET     = $(LINT_MODULE).lint
+INSTALL_TARGET  = $(BINARY) $(ROOTMODULE)
+
+#
+#       Default build targets.
+#
+.KEEP_STATE:
+
+def:            $(DEF_DEPS)
+
+all:            $(ALL_DEPS)
+
+clean:          $(CLEAN_DEPS)
+
+clobber:        $(CLOBBER_DEPS)
+
+lint:           $(LINT_DEPS)
+
+modlintlib:     $(MODLINTLIB_DEPS)
+
+clean.lint:     $(CLEAN_LINT_DEPS)
+
+install:        $(INSTALL_DEPS)
+
+#
+#       Include common targets.
+#
+include ../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/gfx_private/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,104 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the graphics private
+#	interface kernel module.
+#
+#	i86xpv platform dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= gfx_private
+OBJECTS		= $(GFX_PRIVATE_OBJS:%=$(OBJS_DIR)/%) $(OBJS_DIR)/$(VGATEXT_FONT).o
+LINTS		= $(GFX_PRIVATE_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_MISC_DIR)/$(MODULE)
+VGATEXT_FONT	= 8859-1
+VGATEXT_SRC	= $(UTSBASE)/intel/io/vgatext
+
+#
+#	dependency
+#
+LDFLAGS	+=      -dy -Nmisc/pci_autoconfig
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS +=	-erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS +=	-erroff=E_BAD_PTR_CAST_ALIGN
+LINTTAGS +=	-erroff=E_STATIC_UNUSED
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+# Custom targets and rules
+
+$(OBJS_DIR)/$(VGATEXT_FONT).c:	$(VGATEXT_SRC)/$(VGATEXT_FONT).bdf
+	awk -f $(VGATEXT_SRC)/bdf_to_c.awk	\
+		$(VGATEXT_SRC)/$(VGATEXT_FONT).bdf > $@
+
+$(OBJS_DIR)/$(VGATEXT_FONT).o:	$(OBJS_DIR)/$(VGATEXT_FONT).c
+	$(COMPILE.c) -o $@ $<
+	$(CTFCONVERT_O)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/inc.flg	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+
+find_files "s.*" usr/src/common/dis
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/balloon_drv.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,197 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * A simple wrapper around the balloon kernel thread to allow userland
+ * programs access to the balloon status.
+ */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/errno.h>
+#include <sys/open.h>
+#include <sys/cred.h>
+#include <sys/conf.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/hypervisor.h>
+#include <sys/sysmacros.h>
+#include <sys/balloon_impl.h>
+
+static dev_info_t *balloon_devi;
+
+/*ARGSUSED*/
+static int
+balloon_getinfo(dev_info_t *devi, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	if (getminor((dev_t)arg) != BALLOON_MINOR)
+		return (DDI_FAILURE);
+
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		*result = balloon_devi;
+		break;
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = 0;
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static int
+balloon_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	if (cmd != DDI_ATTACH)
+		return (DDI_FAILURE);
+
+	if (ddi_create_minor_node(devi, ddi_get_name(devi), S_IFCHR,
+	    ddi_get_instance(devi), DDI_PSEUDO, 0) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	balloon_devi = devi;
+	ddi_report_dev(devi);
+	return (DDI_SUCCESS);
+}
+
+static int
+balloon_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	if (cmd != DDI_DETACH)
+		return (DDI_FAILURE);
+	ddi_remove_minor_node(devi, NULL);
+	balloon_devi = NULL;
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED1*/
+static int
+balloon_open(dev_t *dev, int flag, int otyp, cred_t *cr)
+{
+	return (getminor(*dev) == BALLOON_MINOR ? 0 : ENXIO);
+}
+
+/*
+ * When asked for one of the balloon values, we simply query the balloon thread.
+ */
+/*ARGSUSED*/
+static int
+balloon_ioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *cr,
+    int *rval_p)
+{
+	int rval = 0;
+	size_t value;
+
+	switch (cmd) {
+	case BLN_IOCTL_CURRENT:
+	case BLN_IOCTL_TARGET:
+	case BLN_IOCTL_LOW:
+	case BLN_IOCTL_HIGH:
+	case BLN_IOCTL_LIMIT:
+		value = balloon_values(cmd);
+		if (ddi_copyout((void *)&value, (void *)arg, sizeof (value),
+		    mode))
+			return (EFAULT);
+		break;
+	default:
+		rval = EINVAL;
+		break;
+	}
+	return (rval);
+}
+
+static struct cb_ops balloon_cb_ops = {
+	balloon_open,
+	nulldev,	/* close */
+	nodev,		/* strategy */
+	nodev,		/* print */
+	nodev,		/* dump */
+	nodev,		/* read */
+	nodev,		/* write */
+	balloon_ioctl,	/* ioctl */
+	nodev,		/* devmap */
+	nodev,		/* mmap */
+	nodev,		/* segmap */
+	nochpoll,	/* poll */
+	ddi_prop_op,
+	NULL,
+	D_64BIT | D_MP,
+	CB_REV,
+	NULL,
+	NULL
+};
+
+static struct dev_ops balloon_dv_ops = {
+	DEVO_REV,
+	0,
+	balloon_getinfo,
+	nulldev,	/* identify */
+	nulldev,	/* probe */
+	balloon_attach,
+	balloon_detach,
+	nodev,		/* reset */
+	&balloon_cb_ops,
+	NULL,		/* struct bus_ops */
+	NULL		/* power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,
+	"balloon driver 1.1",
+	&balloon_dv_ops
+};
+
+static struct modlinkage modl = {
+	MODREV_1,
+	{
+		(void *)&modldrv,
+		NULL		/* null termination */
+	}
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modl));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modl));
+}
+
+int
+_info(struct modinfo *modinfo)
+{
+	return (mod_info(&modl, modinfo));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/domcaps.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,188 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * This rather uninspiring device enables userland to discover if
+ * the current kernel is actually a dom0 or other domain e.g. domU.
+ */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/errno.h>
+#include <sys/open.h>
+#include <sys/cred.h>
+#include <sys/conf.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/hypervisor.h>
+#include <sys/sysmacros.h>
+
+#include <sys/domcaps_impl.h>
+
+static dev_info_t *domcaps_devi;
+
+/*ARGSUSED*/
+static int
+domcaps_getinfo(dev_info_t *devi, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	if (getminor((dev_t)arg) != DOMCAPS_MINOR)
+		return (DDI_FAILURE);
+
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+		*result = domcaps_devi;
+		break;
+	case DDI_INFO_DEVT2INSTANCE:
+		*result = 0;
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+static int
+domcaps_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	if (cmd != DDI_ATTACH)
+		return (DDI_FAILURE);
+
+	if (ddi_create_minor_node(devi, ddi_get_name(devi), S_IFCHR,
+	    ddi_get_instance(devi), DDI_PSEUDO, 0) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	domcaps_devi = devi;
+	ddi_report_dev(devi);
+	return (DDI_SUCCESS);
+}
+
+static int
+domcaps_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	if (cmd != DDI_DETACH)
+		return (DDI_FAILURE);
+	ddi_remove_minor_node(devi, NULL);
+	domcaps_devi = NULL;
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED1*/
+static int
+domcaps_open(dev_t *dev, int flag, int otyp, cred_t *cr)
+{
+	return (getminor(*dev) == DOMCAPS_MINOR ? 0 : ENXIO);
+}
+
+/*ARGSUSED*/
+static int
+domcaps_read(dev_t dev, uio_t *uio, cred_t *cr)
+{
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		static char data[] = "control_d\n";
+		size_t nbytes;
+
+		if (uio->uio_loffset > sizeof (data))
+			return (0);
+		nbytes = MIN(uio->uio_resid, sizeof (data) - uio->uio_loffset);
+
+		return (uiomove(data + uio->uio_loffset, nbytes,
+		    UIO_READ, uio));
+	}
+
+	return (0);
+}
+
+static struct cb_ops domcaps_cb_ops = {
+	domcaps_open,
+	nulldev,	/* close */
+	nodev,		/* strategy */
+	nodev,		/* print */
+	nodev,		/* dump */
+	domcaps_read,
+	nodev,		/* write */
+	nodev,		/* ioctl */
+	nodev,		/* devmap */
+	nodev,		/* mmap */
+	nodev,		/* segmap */
+	nochpoll,	/* poll */
+	ddi_prop_op,
+	NULL,
+	D_64BIT | D_MP,
+	CB_REV,
+	NULL,
+	NULL
+};
+
+static struct dev_ops domcaps_dv_ops = {
+	DEVO_REV,
+	0,
+	domcaps_getinfo,
+	nulldev,	/* identify */
+	nulldev,	/* probe */
+	domcaps_attach,
+	domcaps_detach,
+	nodev,		/* reset */
+	&domcaps_cb_ops,
+	NULL,		/* struct bus_ops */
+	NULL		/* power */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,
+	"hypervisor capabilities driver %I%",
+	&domcaps_dv_ops
+};
+
+static struct modlinkage modl = {
+	MODREV_1,
+	{
+		(void *)&modldrv,
+		NULL		/* null termination */
+	}
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modl));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modl));
+}
+
+int
+_info(struct modinfo *modinfo)
+{
+	return (mod_info(&modl, modinfo));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/privcmd.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,398 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/errno.h>
+#include <sys/open.h>
+#include <sys/cred.h>
+#include <sys/conf.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/vmsystm.h>
+#include <sys/sdt.h>
+#include <sys/hypervisor.h>
+#include <sys/xen_errno.h>
+
+#include <vm/hat_i86.h>
+#include <vm/hat_pte.h>
+#include <vm/seg_mf.h>
+
+#include <xen/sys/privcmd.h>
+#include <sys/privcmd_impl.h>
+
+static dev_info_t *privcmd_devi;
+
+/*ARGSUSED*/
+static int
+privcmd_getinfo(dev_info_t *devi, ddi_info_cmd_t cmd, void *arg, void **result)
+{
+	switch (cmd) {
+	case DDI_INFO_DEVT2DEVINFO:
+	case DDI_INFO_DEVT2INSTANCE:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	switch (getminor((dev_t)arg)) {
+	case PRIVCMD_MINOR:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	if (cmd == DDI_INFO_DEVT2INSTANCE)
+		*result = 0;
+	else
+		*result = privcmd_devi;
+	return (DDI_SUCCESS);
+}
+
+static int
+privcmd_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
+{
+	if (cmd != DDI_ATTACH)
+		return (DDI_FAILURE);
+
+	if (ddi_create_minor_node(devi, PRIVCMD_NODE,
+	    S_IFCHR, PRIVCMD_MINOR, DDI_PSEUDO, 0) != DDI_SUCCESS)
+		return (DDI_FAILURE);
+
+	privcmd_devi = devi;
+	ddi_report_dev(devi);
+	return (DDI_SUCCESS);
+}
+
+static int
+privcmd_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
+{
+	if (cmd != DDI_DETACH)
+		return (DDI_FAILURE);
+	ddi_remove_minor_node(devi, NULL);
+	privcmd_devi = NULL;
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED1*/
+static int
+privcmd_open(dev_t *dev, int flag, int otyp, cred_t *cr)
+{
+	return (getminor(*dev) == PRIVCMD_MINOR ? 0 : ENXIO);
+}
+
+/*
+ * Map a contiguous set of machine frames in a foreign domain.
+ * Used in the following way:
+ *
+ *	privcmd_mmap_t p;
+ *	privcmd_mmap_entry_t e;
+ *
+ *	addr = mmap(NULL, size, prot, MAP_SHARED, fd, 0);
+ *	p.num = number of privcmd_mmap_entry_t's
+ *	p.dom = domid;
+ *	p.entry = &e;
+ *	e.va = addr;
+ *	e.mfn = mfn;
+ *	e.npages = btopr(size);
+ *	ioctl(fd, IOCTL_PRIVCMD_MMAP, &p);
+ */
+/*ARGSUSED2*/
+int
+do_privcmd_mmap(void *uarg, int mode, cred_t *cr)
+{
+	privcmd_mmap_t __mmapcmd, *mmc = &__mmapcmd;
+	privcmd_mmap_entry_t *umme;
+	struct as *as = curproc->p_as;
+	struct seg *seg;
+	int i, error = 0;
+
+	if (ddi_copyin(uarg, mmc, sizeof (*mmc), mode))
+		return (EFAULT);
+
+	DTRACE_XPV3(mmap__start, domid_t, mmc->dom, int, mmc->num,
+	    privcmd_mmap_entry_t *, mmc->entry);
+
+	if (mmc->dom == DOMID_SELF) {
+		error = ENOTSUP;	/* Too paranoid? */
+		goto done;
+	}
+
+	for (umme = mmc->entry, i = 0; i < mmc->num; i++, umme++) {
+		privcmd_mmap_entry_t __mmapent, *mme = &__mmapent;
+		caddr_t addr;
+
+		if (ddi_copyin(umme, mme, sizeof (*mme), mode)) {
+			error = EFAULT;
+			break;
+		}
+
+		DTRACE_XPV3(mmap__entry, ulong_t, mme->va, ulong_t, mme->mfn,
+		    ulong_t, mme->npages);
+
+		if (mme->mfn == MFN_INVALID) {
+			error = EINVAL;
+			break;
+		}
+
+		addr = (caddr_t)mme->va;
+
+		/*
+		 * Find the segment we want to mess with, then add
+		 * the mfn range to the segment.
+		 */
+		AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+		if ((seg = as_findseg(as, addr, 0)) == NULL ||
+		    addr + mmu_ptob(mme->npages) > seg->s_base + seg->s_size)
+			error = EINVAL;
+		else
+			error = segmf_add_mfns(seg, addr,
+			    mme->mfn, mme->npages, mmc->dom);
+		AS_LOCK_EXIT(as, &as->a_lock);
+
+		if (error != 0)
+			break;
+	}
+
+done:
+	DTRACE_XPV1(mmap__end, int, error);
+
+	return (error);
+}
+
+/*
+ * Set up the address range to map to an array of mfns in
+ * a foreign domain.  Used in the following way:
+ *
+ *	privcmd_mmap_batch_t p;
+ *
+ *	addr = mmap(NULL, size, prot, MAP_SHARED, fd, 0);
+ *	p.num = number of pages
+ *	p.dom = domid
+ *	p.addr = addr;
+ *	p.arr = array of mfns, indexed 0 .. p.num - 1
+ *	ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &p);
+ */
+/*ARGSUSED2*/
+static int
+do_privcmd_mmapbatch(void *uarg, int mode, cred_t *cr)
+{
+	privcmd_mmapbatch_t __mmapbatch, *mmb = &__mmapbatch;
+	struct as *as = curproc->p_as;
+	struct seg *seg;
+	int i, error = 0;
+	caddr_t addr;
+	ulong_t *ulp;
+
+	if (ddi_copyin(uarg, mmb, sizeof (*mmb), mode))
+		return (EFAULT);
+
+	DTRACE_XPV3(mmapbatch__start, domid_t, mmb->dom, int, mmb->num,
+	    caddr_t, mmb->addr);
+
+	addr = (caddr_t)mmb->addr;
+	AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+	if ((seg = as_findseg(as, addr, 0)) == NULL ||
+	    addr + ptob(mmb->num) > seg->s_base + seg->s_size) {
+		error = EINVAL;
+		goto done;
+	}
+
+	for (i = 0, ulp = mmb->arr;
+	    i < mmb->num; i++, addr += PAGESIZE, ulp++) {
+		mfn_t mfn;
+
+		if (fulword(ulp, &mfn) != 0) {
+			error = EFAULT;
+			break;
+		}
+
+		if (mfn == MFN_INVALID) {
+			error = EINVAL;
+			break;
+		}
+
+		if (segmf_add_mfns(seg, addr, mfn, 1, mmb->dom) == 0)
+			continue;
+
+		/*
+		 * Tell the process that this MFN could not be mapped, so it
+		 * won't later try to access it.
+		 */
+		mfn |= 0xf0000000;
+		if (sulword(ulp, mfn) != 0) {
+			error = EFAULT;
+			break;
+		}
+	}
+
+done:
+	AS_LOCK_EXIT(as, &as->a_lock);
+
+	DTRACE_XPV3(mmapbatch__end, int, error, struct seg *, seg, caddr_t,
+	    mmb->addr);
+
+	return (error);
+}
+
+/*ARGSUSED*/
+static int
+privcmd_ioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *cr, int *rval)
+{
+	if ((mode & FMODELS) != FNATIVE)
+		return (EOVERFLOW);
+
+	/*
+	 * Everything is a -native- data type.
+	 */
+
+	switch (cmd) {
+	case IOCTL_PRIVCMD_HYPERCALL:
+		return (do_privcmd_hypercall((void *)arg, mode, cr, rval));
+	case IOCTL_PRIVCMD_MMAP:
+		if (DOMAIN_IS_PRIVILEGED(xen_info))
+			return (do_privcmd_mmap((void *)arg, mode, cr));
+		break;
+	case IOCTL_PRIVCMD_MMAPBATCH:
+		if (DOMAIN_IS_PRIVILEGED(xen_info))
+			return (do_privcmd_mmapbatch((void *)arg, mode, cr));
+		break;
+	default:
+		break;
+	}
+	return (EINVAL);
+}
+
+/*
+ * The real magic happens in the segmf segment driver.
+ */
+/*ARGSUSED8*/
+static int
+privcmd_segmap(dev_t dev, off_t off, struct as *as, caddr_t *addrp,
+    off_t len, uint_t prot, uint_t maxprot, uint_t flags, cred_t *cr)
+{
+	struct segmf_crargs a;
+	int error;
+
+	as_rangelock(as);
+	if ((flags & MAP_FIXED) == 0) {
+		map_addr(addrp, len, (offset_t)off, 0, flags);
+		if (*addrp == NULL) {
+			error = ENOMEM;
+			goto rangeunlock;
+		}
+	} else {
+		/*
+		 * User specified address
+		 */
+		(void) as_unmap(as, *addrp, len);
+	}
+
+	/*
+	 * The mapping *must* be MAP_SHARED at offset 0.
+	 *
+	 * (Foreign pages are treated like device memory; the
+	 * ioctl interface allows the backing objects to be
+	 * arbitrarily redefined to point at any machine frame.)
+	 */
+	if ((flags & MAP_TYPE) != MAP_SHARED || off != 0) {
+		error = EINVAL;
+		goto rangeunlock;
+	}
+
+	a.dev = dev;
+	a.prot = (uchar_t)prot;
+	a.maxprot = (uchar_t)maxprot;
+	error = as_map(as, *addrp, len, segmf_create, &a);
+
+rangeunlock:
+	as_rangeunlock(as);
+	return (error);
+}
+
+static struct cb_ops privcmd_cb_ops = {
+	privcmd_open,
+	nulldev,	/* close */
+	nodev,		/* strategy */
+	nodev,		/* print */
+	nodev,		/* dump */
+	nodev,		/* read */
+	nodev,		/* write */
+	privcmd_ioctl,
+	nodev,		/* devmap */
+	nodev,		/* mmap */
+	privcmd_segmap,
+	nochpoll,	/* poll */
+	ddi_prop_op,
+	NULL,
+	D_64BIT | D_NEW | D_MP
+};
+
+static struct dev_ops privcmd_dv_ops = {
+	DEVO_REV,
+	0,
+	privcmd_getinfo,
+	nulldev,	/* identify */
+	nulldev,	/* probe */
+	privcmd_attach,
+	privcmd_detach,
+	nodev,		/* reset */
+	&privcmd_cb_ops,
+	0		/* struct bus_ops */
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,
+	"privcmd driver %I%",
+	&privcmd_dv_ops
+};
+
+static struct modlinkage modl = {
+	MODREV_1,
+	&modldrv
+};
+
+int
+_init(void)
+{
+	return (mod_install(&modl));
+}
+
+int
+_fini(void)
+{
+	return (mod_remove(&modl));
+}
+
+int
+_info(struct modinfo *modinfo)
+{
+	return (mod_info(&modl, modinfo));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/privcmd_hcall.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1000 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/errno.h>
+#include <sys/open.h>
+#include <sys/cred.h>
+#include <sys/conf.h>
+#include <sys/stat.h>
+#include <sys/modctl.h>
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/vmsystm.h>
+#include <sys/hypervisor.h>
+#include <sys/xen_errno.h>
+#include <sys/sysmacros.h>
+#include <sys/sdt.h>
+
+#include <xen/sys/privcmd.h>
+#include <sys/privcmd_impl.h>
+
+typedef struct import_export {
+	void *			ie_uaddr;
+	void *			ie_kaddr;
+	size_t			ie_size;
+	uint32_t		ie_flags;
+} import_export_t;
+
+static import_export_t null_ie = {NULL, NULL, 0, 0};
+
+#define	IE_IMPORT	0x0001		/* Data needs to be copied in */
+#define	IE_EXPORT	0x0002		/* Data needs to be copied out */
+#define	IE_FREE		0x0004
+#define	IE_IMPEXP	(IE_IMPORT | IE_EXPORT)
+
+/*
+ * Import a buffer from user-space.  If the caller provides a kernel
+ * address, we import to that address.  If not, we kmem_alloc() the space
+ * ourselves.
+ */
+static int
+import_buffer(import_export_t *iep, void *uaddr, void *kaddr, size_t size,
+    uint32_t flags)
+{
+	iep->ie_uaddr = uaddr;
+	iep->ie_size = size;
+	iep->ie_flags = flags & IE_EXPORT;
+
+	if (size == 0 || uaddr == NULL) {
+		*iep = null_ie;
+		return (0);
+	}
+
+	if (kaddr == NULL) {
+		iep->ie_kaddr = kmem_alloc(size, KM_SLEEP);
+		iep->ie_flags |= IE_FREE;
+	} else {
+		iep->ie_kaddr = kaddr;
+	}
+
+	if ((flags & IE_IMPORT) &&
+	    (ddi_copyin(uaddr, iep->ie_kaddr, size, 0) != 0)) {
+		if (iep->ie_flags & IE_FREE)
+			kmem_free(iep->ie_kaddr, iep->ie_size);
+		return (-X_EFAULT);
+	}
+
+	return (0);
+}
+
+static void
+export_buffer(import_export_t *iep, int *error)
+{
+	int copy_err = 0;
+
+	if (iep->ie_size == 0 || iep->ie_uaddr == NULL)
+		return;
+
+	/*
+	 * If the buffer was marked for export initially, and if the
+	 * hypercall completed successfully, resync the user-space buffer
+	 * with our in-kernel buffer.
+	 */
+	if ((iep->ie_flags & IE_EXPORT) && (*error >= 0) &&
+	    (ddi_copyout(iep->ie_kaddr, iep->ie_uaddr, iep->ie_size, 0) != 0))
+		copy_err = -X_EFAULT;
+	if (iep->ie_flags & IE_FREE)
+		kmem_free(iep->ie_kaddr, iep->ie_size);
+
+	if (copy_err != 0 && *error >= 0)
+		*error = copy_err;
+}
+
+/*
+ * Xen 'op' structures often include pointers disguised as 'handles', which
+ * refer to addresses in user space.  This routine copies a buffer
+ * associated with an embedded pointer into kernel space, and replaces the
+ * pointer to userspace with a pointer to the new kernel buffer.
+ *
+ * Note: if Xen ever redefines the structure of a 'handle', this routine
+ * (specifically the definition of 'hdl') will need to be updated.
+ */
+static int
+import_handle(import_export_t *iep, void *field, size_t size, int flags)
+{
+	struct { void *p; } *hdl = field;
+	void *ptr;
+	int err;
+
+	/*LINTED: constant in conditional context*/
+	get_xen_guest_handle(ptr, (*hdl));
+	err = import_buffer(iep, ptr, NULL, size, (flags));
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle((*hdl), (void *)((iep)->ie_kaddr));
+	return (err);
+}
+
+static int
+privcmd_HYPERVISOR_mmu_update(mmu_update_t *ureq, int count, int *scount,
+    domid_t domid)
+{
+	mmu_update_t *kreq, single_kreq;
+	import_export_t cnt_ie, req_ie;
+	int error, kscount, bytes;
+
+	bytes = count * sizeof (*kreq);
+	kreq = (count == 1) ? &single_kreq : kmem_alloc(bytes, KM_SLEEP);
+
+	error = import_buffer(&cnt_ie, scount, &kscount, sizeof (kscount),
+	    IE_IMPEXP);
+	if (error != 0)
+		req_ie = null_ie;
+	else
+		error = import_buffer(&req_ie, ureq, kreq, bytes, IE_IMPEXP);
+
+	DTRACE_XPV3(mmu__update__start, int, domid, int, count, mmu_update_t *,
+	    ((error == -X_EFAULT) ? ureq : kreq));
+
+	if (error == 0)
+		error = HYPERVISOR_mmu_update(kreq, count, &kscount, domid);
+	export_buffer(&cnt_ie, &error);
+	export_buffer(&req_ie, &error);
+	if (count != 1)
+		kmem_free(kreq, bytes);
+
+	DTRACE_XPV1(mmu__update__end, int, error);
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_domctl(xen_domctl_t *opp)
+{
+	xen_domctl_t op;
+	import_export_t op_ie, sub_ie;
+	int error = 0;
+
+	if ((error = import_buffer(&op_ie, opp, &op, sizeof (op),
+	    IE_IMPEXP)) != 0)
+		return (error);
+
+	sub_ie = null_ie;
+
+	/*
+	 * Check this first because our wrapper will forcibly overwrite it.
+	 */
+	if (op.interface_version != XEN_DOMCTL_INTERFACE_VERSION) {
+		error = -X_EACCES;
+		export_buffer(&op_ie, &error);
+		return (error);
+	}
+
+	/*
+	 * Now handle any domctl ops with embedded pointers elsewhere
+	 * in the user address space that also need to be tacked down
+	 * while the hypervisor futzes with them.
+	 */
+	switch (op.cmd) {
+	case XEN_DOMCTL_createdomain:
+		DTRACE_XPV1(dom__create__start, xen_domctl_t *,
+		    &op.u.createdomain);
+		break;
+
+	case XEN_DOMCTL_destroydomain:
+		DTRACE_XPV1(dom__destroy__start, domid_t, op.domain);
+		break;
+
+	case XEN_DOMCTL_pausedomain:
+		DTRACE_XPV1(dom__pause__start, domid_t, op.domain);
+		break;
+
+	case XEN_DOMCTL_unpausedomain:
+		DTRACE_XPV1(dom__unpause__start, domid_t, op.domain);
+		break;
+
+	case XEN_DOMCTL_getdomaininfo:
+		break;
+
+	case XEN_DOMCTL_getmemlist: {
+		error = import_handle(&sub_ie, &op.u.getmemlist.buffer,
+		    op.u.getmemlist.max_pfns * sizeof (xen_pfn_t), IE_EXPORT);
+		break;
+	}
+
+	case XEN_DOMCTL_getpageframeinfo:
+		break;
+
+	case XEN_DOMCTL_getpageframeinfo2: {
+		error = import_handle(&sub_ie, &op.u.getpageframeinfo2.array,
+		    op.u.getpageframeinfo2.num * sizeof (ulong_t), IE_IMPEXP);
+		break;
+	}
+
+	case XEN_DOMCTL_shadow_op: {
+		size_t size;
+
+		size = roundup(howmany(op.u.shadow_op.pages, NBBY),
+		    sizeof (ulong_t));
+		error = import_handle(&sub_ie, &op.u.shadow_op.dirty_bitmap,
+		    size, IE_IMPEXP);
+		break;
+	}
+
+	case XEN_DOMCTL_max_mem:
+		break;
+
+	case XEN_DOMCTL_setvcpucontext: {
+		vcpu_guest_context_t *taddr;
+		error = import_handle(&sub_ie, &op.u.vcpucontext.ctxt,
+		    sizeof (vcpu_guest_context_t), IE_IMPORT);
+		if (error == -X_EFAULT)
+			/*LINTED: constant in conditional context*/
+			get_xen_guest_handle(taddr, op.u.vcpucontext.ctxt);
+		else
+			taddr = sub_ie.ie_kaddr;
+		DTRACE_XPV2(setvcpucontext__start, domid_t, op.domain,
+		    vcpu_guest_context_t *, taddr);
+		break;
+	}
+
+	case XEN_DOMCTL_getvcpucontext: {
+		error = import_handle(&sub_ie, &op.u.vcpucontext.ctxt,
+		    sizeof (vcpu_guest_context_t), IE_EXPORT);
+		break;
+	}
+
+	case XEN_DOMCTL_getvcpuinfo:
+	case XEN_DOMCTL_setvcpuaffinity:
+	case XEN_DOMCTL_getvcpuaffinity:
+	case XEN_DOMCTL_max_vcpus:
+	case XEN_DOMCTL_scheduler_op:
+	case XEN_DOMCTL_setdomainhandle:
+	case XEN_DOMCTL_setdebugging:
+	case XEN_DOMCTL_irq_permission:
+	case XEN_DOMCTL_iomem_permission:
+	case XEN_DOMCTL_ioport_permission:
+	case XEN_DOMCTL_hypercall_init:
+	case XEN_DOMCTL_arch_setup:
+	case XEN_DOMCTL_settimeoffset:
+	case XEN_DOMCTL_real_mode_area:
+		break;
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_domctl %d\n", op.cmd);
+#endif
+		error = -X_EINVAL;
+	}
+
+	if (error == 0)
+		error = HYPERVISOR_domctl(&op);
+
+	export_buffer(&op_ie, &error);
+	export_buffer(&sub_ie, &error);
+
+	switch (op.cmd) {
+	case XEN_DOMCTL_createdomain:
+		DTRACE_XPV1(dom__create__end, int, error);
+		break;
+	case XEN_DOMCTL_destroydomain:
+		DTRACE_XPV1(dom__destroy__end, int, error);
+		break;
+	case XEN_DOMCTL_pausedomain:
+		DTRACE_XPV1(dom__pause__end, int, error);
+		break;
+	case XEN_DOMCTL_unpausedomain:
+		DTRACE_XPV1(dom__unpause__end, int, error);
+		break;
+	case XEN_DOMCTL_setvcpucontext:
+		DTRACE_XPV1(setvcpucontext__end, int, error);
+		break;
+	default:
+		;
+	}
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_sysctl(xen_sysctl_t *opp)
+{
+	xen_sysctl_t op;
+	import_export_t op_ie, sub_ie;
+	int error = 0;
+
+	if (import_buffer(&op_ie, opp, &op, sizeof (op), IE_IMPEXP) != 0)
+		return (-X_EFAULT);
+
+	sub_ie = null_ie;
+
+	/*
+	 * Check this first because our wrapper will forcibly overwrite it.
+	 */
+	if (op.interface_version != XEN_SYSCTL_INTERFACE_VERSION) {
+		error = -X_EACCES;
+		export_buffer(&op_ie, &error);
+		return (error);
+	}
+
+	switch (op.cmd) {
+	case XEN_SYSCTL_readconsole: {
+		error = import_handle(&sub_ie, &op.u.readconsole.buffer,
+		    op.u.readconsole.count, IE_EXPORT);
+		break;
+	}
+
+	case XEN_SYSCTL_tbuf_op:
+	case XEN_SYSCTL_physinfo:
+	case XEN_SYSCTL_sched_id:
+		break;
+
+	case XEN_SYSCTL_perfc_op: {
+		xen_sysctl_perfc_desc_t *scdp;
+		/*
+		 * If 'desc' is NULL, then the caller is asking for
+		 * the number of counters.  If 'desc' is non-NULL,
+		 * then we need to know how many counters there are
+		 * before wiring down the output buffer appropriately.
+		 */
+		/*LINTED: constant in conditional context*/
+		get_xen_guest_handle(scdp, op.u.perfc_op.desc);
+		if (scdp != NULL) {
+			static int numcounters = -1;
+
+			if (numcounters == -1) {
+				xen_sysctl_t dop;
+
+				dop.cmd = XEN_SYSCTL_perfc_op;
+				dop.interface_version =
+				    XEN_SYSCTL_INTERFACE_VERSION;
+				dop.u.perfc_op.cmd = XEN_SYSCTL_PERFCOP_query;
+
+				error = HYPERVISOR_sysctl(&dop);
+				if (error != 0)
+					break;
+				numcounters = dop.u.perfc_op.nr_counters;
+			}
+			ASSERT(numcounters != -1);
+			error = import_handle(&sub_ie, &op.u.perfc_op.desc,
+			    (sizeof (xen_sysctl_perfc_desc_t) * numcounters),
+			    IE_EXPORT);
+		}
+		break;
+	}
+
+	case XEN_SYSCTL_getdomaininfolist: {
+		error = import_handle(&sub_ie, &op.u.getdomaininfolist.buffer,
+		    (op.u.getdomaininfolist.max_domains *
+		    sizeof (xen_domctl_getdomaininfo_t)), IE_EXPORT);
+		break;
+	}
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_sysctl %d\n", op.cmd);
+#endif
+		error = -X_EINVAL;
+	}
+
+	if (error == 0)
+		error = HYPERVISOR_sysctl(&op);
+
+	export_buffer(&op_ie, &error);
+	export_buffer(&sub_ie, &error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_platform_op(xen_platform_op_t *opp)
+{
+	import_export_t op_ie, sub_ie;
+	xen_platform_op_t op;
+	int error;
+
+	if (import_buffer(&op_ie, opp, &op, sizeof (op), IE_IMPEXP) != 0)
+		return (-X_EFAULT);
+
+	sub_ie = null_ie;
+
+	/*
+	 * Check this first because our wrapper will forcibly overwrite it.
+	 */
+	if (op.interface_version != XENPF_INTERFACE_VERSION) {
+		error = -X_EACCES;
+		export_buffer(&op_ie, &error);
+		return (error);
+	}
+
+	/*
+	 * Now handle any platform ops with embedded pointers elsewhere
+	 * in the user address space that also need to be tacked down
+	 * while the hypervisor futzes with them.
+	 */
+	switch (op.cmd) {
+	case XENPF_settime:
+	case XENPF_add_memtype:
+	case XENPF_del_memtype:
+	case XENPF_read_memtype:
+	case XENPF_platform_quirk:
+		break;
+
+	case XENPF_microcode_update:
+		error = import_handle(&sub_ie, &op.u.microcode.data,
+		    op.u.microcode.length, IE_IMPORT);
+		break;
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_platform_op %d\n", op.cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	if (error == 0)
+		error = HYPERVISOR_platform_op(&op);
+
+	export_buffer(&op_ie, &error);
+	export_buffer(&sub_ie, &error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_memory_op(int cmd, void *arg)
+{
+	int error = 0;
+	import_export_t op_ie, sub_ie, gpfn_ie, mfn_ie;
+	union {
+		domid_t domid;
+		struct xen_memory_reservation resv;
+		struct xen_machphys_mfn_list xmml;
+		struct xen_add_to_physmap xatp;
+		struct xen_translate_gpfn_list tgl;
+		struct xen_memory_map mm;
+		struct xen_foreign_memory_map fmm;
+	} op_arg;
+
+	op_ie = sub_ie = gpfn_ie = mfn_ie = null_ie;
+
+	switch (cmd) {
+	case XENMEM_increase_reservation:
+	case XENMEM_decrease_reservation:
+	case XENMEM_populate_physmap: {
+		ulong_t *taddr;
+
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.resv),
+		    IE_IMPEXP) != 0)
+			return (-X_EFAULT);
+
+		error = import_handle(&sub_ie, &op_arg.resv.extent_start,
+		    (op_arg.resv.nr_extents * sizeof (ulong_t)), IE_IMPEXP);
+
+		if (error == -X_EFAULT)
+			/*LINTED: constant in conditional context*/
+			get_xen_guest_handle(taddr, op_arg.resv.extent_start);
+		else
+			taddr = sub_ie.ie_kaddr;
+
+		switch (cmd) {
+		case XENMEM_increase_reservation:
+			DTRACE_XPV4(increase__reservation__start,
+			    domid_t, op_arg.resv.domid,
+			    ulong_t, op_arg.resv.nr_extents,
+			    uint_t, op_arg.resv.extent_order,
+			    ulong_t *, taddr);
+			break;
+		case XENMEM_decrease_reservation:
+			DTRACE_XPV4(decrease__reservation__start,
+			    domid_t, op_arg.resv.domid,
+			    ulong_t, op_arg.resv.nr_extents,
+			    uint_t, op_arg.resv.extent_order,
+			    ulong_t *, taddr);
+			break;
+		case XENMEM_populate_physmap:
+			DTRACE_XPV3(populate__physmap__start,
+			    domid_t, op_arg.resv.domid,
+			    ulong_t, op_arg.resv.nr_extents,
+			    ulong_t *, taddr);
+			break;
+		}
+
+		break;
+	}
+
+	case XENMEM_maximum_ram_page:
+		break;
+
+	case XENMEM_current_reservation:
+	case XENMEM_maximum_reservation:
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.domid),
+		    IE_IMPEXP) != 0)
+			return (-X_EFAULT);
+		break;
+
+	case XENMEM_machphys_mfn_list: {
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.xmml),
+		    IE_IMPEXP) != 0)
+			return (-X_EFAULT);
+
+		error = import_handle(&sub_ie, &op_arg.xmml.extent_start,
+		    (op_arg.xmml.max_extents * sizeof (ulong_t)), IE_IMPEXP);
+		break;
+	}
+
+	case XENMEM_add_to_physmap:
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.xatp),
+		    IE_IMPEXP) != 0)
+			return (-X_EFAULT);
+		DTRACE_XPV4(add__to__physmap__start, domid_t,
+		    op_arg.xatp.domid, uint_t, op_arg.xatp.space, ulong_t,
+		    op_arg.xatp.idx, ulong_t, op_arg.xatp.gpfn);
+		break;
+
+	case XENMEM_translate_gpfn_list: {
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.tgl),
+		    IE_IMPEXP) != 0)
+			return (-X_EFAULT);
+
+		error = import_handle(&gpfn_ie, &op_arg.tgl.gpfn_list,
+		    (op_arg.tgl.nr_gpfns * sizeof (long)), IE_IMPORT);
+		if (error == 0)
+			error = import_handle(&mfn_ie, &op_arg.tgl.mfn_list,
+			    (op_arg.tgl.nr_gpfns * sizeof (long)), IE_EXPORT);
+		break;
+	}
+
+	case XENMEM_memory_map:
+	case XENMEM_machine_memory_map: {
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.mm),
+		    IE_EXPORT) != 0)
+			return (-X_EFAULT);
+
+		/*
+		 * XXPV: ugh. e820entry is packed, but not in the kernel, since
+		 * we remove all attributes; seems like this is a nice way to
+		 * break mysteriously.
+		 */
+		error = import_handle(&sub_ie, &op_arg.mm.buffer,
+		    (op_arg.mm.nr_entries * 20), IE_IMPEXP);
+		break;
+	}
+
+	case XENMEM_set_memory_map: {
+		struct xen_memory_map *taddr;
+		if (import_buffer(&op_ie, arg, &op_arg, sizeof (op_arg.fmm),
+		    IE_IMPORT) != 0)
+			return (-X_EFAULT);
+
+		/*
+		 * As above.
+		 */
+		error = import_handle(&sub_ie, &op_arg.fmm.map.buffer,
+		    (op_arg.fmm.map.nr_entries * 20), IE_IMPEXP);
+
+		if (error == -X_EFAULT)
+			/*LINTED: constant in conditional context*/
+			get_xen_guest_handle(taddr, op_arg.fmm.map.buffer);
+		else
+			taddr = sub_ie.ie_kaddr;
+		DTRACE_XPV3(set__memory__map__start, domid_t,
+		    op_arg.fmm.domid, int, op_arg.fmm.map.nr_entries,
+		    struct xen_memory_map *, taddr);
+		break;
+	}
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_memory_op %d\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	if (error == 0)
+		error = HYPERVISOR_memory_op(cmd,
+		    (arg == NULL) ? NULL: &op_arg);
+
+	export_buffer(&op_ie, &error);
+	export_buffer(&sub_ie, &error);
+	export_buffer(&gpfn_ie, &error);
+	export_buffer(&mfn_ie, &error);
+
+	switch (cmd) {
+	case XENMEM_increase_reservation:
+		DTRACE_XPV1(increase__reservation__end, int, error);
+		break;
+	case XENMEM_decrease_reservation:
+		DTRACE_XPV1(decrease__reservation__end, int, error);
+		break;
+	case XENMEM_populate_physmap:
+		DTRACE_XPV1(populate__physmap__end, int, error);
+		break;
+	case XENMEM_add_to_physmap:
+		DTRACE_XPV1(add__to__physmap__end, int, error);
+		break;
+	case XENMEM_set_memory_map:
+		DTRACE_XPV1(set__memory__map__end, int, error);
+		break;
+	}
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_event_channel_op(int cmd, void *arg)
+{
+	int error;
+	size_t size;
+	import_export_t op_ie;
+	uint32_t flags;
+
+	switch (cmd) {
+	case EVTCHNOP_alloc_unbound:
+		size = sizeof (evtchn_alloc_unbound_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_bind_interdomain:
+		size = sizeof (evtchn_bind_interdomain_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_bind_virq:
+		size = sizeof (evtchn_bind_virq_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_bind_pirq:
+		size = sizeof (evtchn_bind_pirq_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_bind_ipi:
+		size = sizeof (evtchn_bind_ipi_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_close:
+		size = sizeof (evtchn_close_t);
+		flags = IE_IMPORT;
+		break;
+	case EVTCHNOP_send:
+		size = sizeof (evtchn_send_t);
+		flags = IE_IMPORT;
+		break;
+	case EVTCHNOP_status:
+		size = sizeof (evtchn_status_t);
+		flags = IE_IMPEXP;
+		break;
+	case EVTCHNOP_bind_vcpu:
+		size = sizeof (evtchn_bind_vcpu_t);
+		flags = IE_IMPORT;
+		break;
+	case EVTCHNOP_unmask:
+		size = sizeof (evtchn_unmask_t);
+		flags = IE_IMPORT;
+		break;
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_event_channel op %d\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	error = import_buffer(&op_ie, arg, NULL, size, flags);
+
+	/*
+	 * If there is sufficient demand, we can replace this void * with
+	 * the proper op structure pointer.
+	 */
+	DTRACE_XPV2(evtchn__op__start, int, cmd, void *,
+	    ((error == -X_EFAULT) ? arg : op_ie.ie_kaddr));
+
+	if (error == 0)
+		error = HYPERVISOR_event_channel_op(cmd, op_ie.ie_kaddr);
+	export_buffer(&op_ie, &error);
+
+	DTRACE_XPV1(evtchn__op__end, int, error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_xen_version(int cmd, void *arg)
+{
+	int error;
+	int size = 0;
+	import_export_t op_ie;
+	uint32_t flags = IE_EXPORT;
+
+	switch (cmd) {
+	case XENVER_version:
+		break;
+	case XENVER_extraversion:
+		size = sizeof (xen_extraversion_t);
+		break;
+	case XENVER_compile_info:
+		size = sizeof (xen_compile_info_t);
+		break;
+	case XENVER_capabilities:
+		size = sizeof (xen_capabilities_info_t);
+		break;
+	case XENVER_changeset:
+		size = sizeof (xen_changeset_info_t);
+		break;
+	case XENVER_platform_parameters:
+		size = sizeof (xen_platform_parameters_t);
+		break;
+	case XENVER_get_features:
+		flags = IE_IMPEXP;
+		size = sizeof (xen_feature_info_t);
+		break;
+	case XENVER_pagesize:
+		break;
+	case XENVER_guest_handle:
+		size = sizeof (xen_domain_handle_t);
+		break;
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_xen_version op %d\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	error = import_buffer(&op_ie, arg, NULL, size, flags);
+	if (error == 0)
+		error = HYPERVISOR_xen_version(cmd, op_ie.ie_kaddr);
+	export_buffer(&op_ie, &error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_acm_op(int cmd, void *arg)
+{
+	int error;
+	int size = 0;
+	import_export_t op_ie;
+	uint32_t flags;
+
+	switch (cmd) {
+	case ACMOP_setpolicy:
+		size = sizeof (struct acm_setpolicy);
+		flags = IE_IMPORT;
+		break;
+	case ACMOP_getpolicy:
+		size = sizeof (struct acm_getpolicy);
+		flags = IE_IMPORT;
+		break;
+	case ACMOP_dumpstats:
+		size = sizeof (struct acm_dumpstats);
+		flags = IE_IMPORT;
+		break;
+	case ACMOP_getssid:
+		size = sizeof (struct acm_getssid);
+		flags = IE_IMPORT;
+		break;
+	case ACMOP_getdecision:
+		size = sizeof (struct acm_getdecision);
+		flags = IE_IMPEXP;
+		break;
+	default:
+#ifdef DEBUG
+		printf("unrecognized HYPERVISOR_acm_op op %d\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	error = import_buffer(&op_ie, arg, NULL, size, flags);
+	if (error == 0)
+		error = HYPERVISOR_acm_op(cmd, op_ie.ie_kaddr);
+	export_buffer(&op_ie, &error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_mmuext_op(struct mmuext_op *op, int count, uint_t *scount,
+    domid_t domid)
+{
+	int error, bytes;
+	uint_t kscount;
+	struct mmuext_op *kop, single_kop;
+	import_export_t op_ie, scnt_ie;
+
+	op_ie = scnt_ie = null_ie;
+	error = 0;
+
+	if (count >= 1) {
+		bytes = count * sizeof (*kop);
+		kop = (count == 1) ? &single_kop : kmem_alloc(bytes, KM_SLEEP);
+		error = import_buffer(&op_ie, op, kop, bytes, IE_IMPORT);
+	}
+
+	DTRACE_XPV2(mmu__ext__op__start, int, count, struct mmuext_op *,
+	    ((error == -X_EFAULT) ? op : kop));
+
+	if (scount != NULL && error == 0)
+		error = import_buffer(&scnt_ie, scount, &kscount,
+		    sizeof (kscount), IE_EXPORT);
+
+	if (error == 0)
+		error = HYPERVISOR_mmuext_op(kop, count, &kscount, domid);
+	export_buffer(&op_ie, &error);
+	export_buffer(&scnt_ie, &error);
+
+	DTRACE_XPV1(mmu__ext__op__end, int, error);
+
+	if (count > 1)
+		kmem_free(kop, bytes);
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_hvm_op(int cmd, void *arg)
+{
+	int error;
+	int size = 0;
+	import_export_t arg_ie;
+	uint32_t flags = IE_IMPORT;
+
+	switch (cmd) {
+	case HVMOP_set_param:
+	case HVMOP_get_param:
+		size = sizeof (struct xen_hvm_param);
+		flags = IE_IMPEXP;
+		break;
+	case HVMOP_set_pci_intx_level:
+		size = sizeof (struct xen_hvm_set_pci_intx_level);
+		break;
+	case HVMOP_set_isa_irq_level:
+		size = sizeof (struct xen_hvm_set_isa_irq_level);
+		break;
+	case HVMOP_set_pci_link_route:
+		size = sizeof (struct xen_hvm_set_pci_link_route);
+		break;
+
+	default:
+#ifdef DEBUG
+		printf("unrecognized HVM op 0x%x\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	error = import_buffer(&arg_ie, arg, NULL, size, flags);
+	if (error == 0)
+		error = HYPERVISOR_hvm_op(cmd, arg_ie.ie_kaddr);
+	export_buffer(&arg_ie, &error);
+
+	return (error);
+}
+
+static int
+privcmd_HYPERVISOR_sched_op(int cmd, void *arg)
+{
+	int error;
+	int size = 0;
+	import_export_t op_ie;
+	struct sched_remote_shutdown op;
+
+	switch (cmd) {
+	case SCHEDOP_remote_shutdown:
+		size = sizeof (struct sched_remote_shutdown);
+		break;
+	default:
+#ifdef DEBUG
+		printf("unrecognized sched op 0x%x\n", cmd);
+#endif
+		return (-X_EINVAL);
+	}
+
+	error = import_buffer(&op_ie, arg, &op, size, IE_IMPORT);
+	if (error == 0)
+		error = HYPERVISOR_sched_op(cmd, (arg == NULL) ? NULL : &op);
+	export_buffer(&op_ie, &error);
+
+	return (error);
+}
+
+int allow_all_hypercalls = 0;
+int privcmd_efault_debug = 0;
+
+/*ARGSUSED*/
+int
+do_privcmd_hypercall(void *uarg, int mode, cred_t *cr, int *rval)
+{
+	privcmd_hypercall_t __hc, *hc = &__hc;
+	int error;
+
+	if (ddi_copyin(uarg, hc, sizeof (*hc), mode))
+		return (EFAULT);
+
+	switch (hc->op) {
+	case __HYPERVISOR_mmu_update:
+		error = privcmd_HYPERVISOR_mmu_update(
+		    (mmu_update_t *)hc->arg[0], (int)hc->arg[1],
+		    (int *)hc->arg[2], (domid_t)hc->arg[3]);
+		break;
+	case __HYPERVISOR_domctl:
+		error = privcmd_HYPERVISOR_domctl(
+		    (xen_domctl_t *)hc->arg[0]);
+		break;
+	case __HYPERVISOR_sysctl:
+		error = privcmd_HYPERVISOR_sysctl(
+		    (xen_sysctl_t *)hc->arg[0]);
+		break;
+	case __HYPERVISOR_platform_op:
+		error = privcmd_HYPERVISOR_platform_op(
+		    (xen_platform_op_t *)hc->arg[0]);
+		break;
+	case __HYPERVISOR_memory_op:
+		error = privcmd_HYPERVISOR_memory_op(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	case __HYPERVISOR_event_channel_op:
+		error = privcmd_HYPERVISOR_event_channel_op(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	case __HYPERVISOR_xen_version:
+		error = privcmd_HYPERVISOR_xen_version(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	case __HYPERVISOR_mmuext_op:
+		error = privcmd_HYPERVISOR_mmuext_op(
+		    (struct mmuext_op *)hc->arg[0], (int)hc->arg[1],
+		    (uint_t *)hc->arg[2], (domid_t)hc->arg[3]);
+		break;
+	case __HYPERVISOR_acm_op:
+		error = privcmd_HYPERVISOR_acm_op(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	case __HYPERVISOR_hvm_op:
+		error = privcmd_HYPERVISOR_hvm_op(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	case __HYPERVISOR_sched_op:
+		error = privcmd_HYPERVISOR_sched_op(
+		    (int)hc->arg[0], (void *)hc->arg[1]);
+		break;
+	default:
+		if (allow_all_hypercalls)
+			error = __hypercall5(hc->op, hc->arg[0], hc->arg[1],
+			    hc->arg[2], hc->arg[3], hc->arg[4]);
+		else {
+#ifdef DEBUG
+			printf("unrecognized hypercall %ld\n", hc->op);
+#endif
+			error = -X_EPERM;
+		}
+		break;
+	}
+
+	if (error > 0) {
+		*rval = error;
+		error = 0;
+	} else if (error != 0)
+		error = xen_xlate_errcode(error);
+
+	return (error);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/psm/xpv_psm.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1217 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#define	PSMI_1_5
+
+#include <sys/mutex.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/clock.h>
+#include <sys/machlock.h>
+#include <sys/smp_impldefs.h>
+#include <sys/uadmin.h>
+#include <sys/promif.h>
+#include <sys/psm.h>
+#include <sys/psm_common.h>
+#include <sys/atomic.h>
+#include <sys/apic.h>
+#include <sys/archsystm.h>
+#include <sys/mach_intr.h>
+#include <sys/hypervisor.h>
+#include <sys/evtchn_impl.h>
+#include <sys/modctl.h>
+#include <sys/trap.h>
+#include <sys/panic.h>
+
+#include <xen/public/vcpu.h>
+#include <xen/public/physdev.h>
+
+
+/*
+ * Global Data
+ */
+
+int xen_psm_verbose = 0;
+
+volatile uint32_t *apicadr = NULL;	/* dummy, so common code will link */
+int apic_error = 0;
+int apic_verbose = 0;
+cpuset_t apic_cpumask;
+int apic_forceload = 0;
+uchar_t apic_vectortoipl[APIC_AVAIL_VECTOR / APIC_VECTOR_PER_IPL] = {
+	3, 4, 5, 5, 6, 6, 9, 10, 11, 12, 13, 14, 15, 15
+};
+uchar_t apic_ipltopri[MAXIPL + 1];
+uchar_t apic_ipls[APIC_AVAIL_VECTOR];
+uint_t apic_picinit_called;
+apic_cpus_info_t *apic_cpus;
+int xen_psm_intr_policy = INTR_ROUND_ROBIN_WITH_AFFINITY;
+/* use to make sure only one cpu handles the nmi */
+static lock_t xen_psm_nmi_lock;
+int xen_psm_kmdb_on_nmi = 0;		/* 0 - no, 1 - yes enter kmdb */
+int xen_psm_panic_on_nmi = 0;
+int xen_psm_num_nmis = 0;
+
+cpuset_t xen_psm_cpus_online;	/* online cpus */
+int xen_psm_ncpus = 1;		/* cpu count */
+int xen_psm_next_bind_cpu;	/* next cpu to bind an interrupt to */
+
+/*
+ * XXPV we flag MSI as not supported, since the hypervisor currently doesn't
+ * support MSI at all.  Change this initialization to zero when MSI is
+ * supported.
+ */
+int xen_support_msi = -1;
+
+static int xen_clock_irq = INVALID_IRQ;
+
+/* flag definitions for xen_psm_verbose */
+#define	XEN_PSM_VERBOSE_IRQ_FLAG		0x00000001
+#define	XEN_PSM_VERBOSE_POWEROFF_FLAG		0x00000002
+#define	XEN_PSM_VERBOSE_POWEROFF_PAUSE_FLAG	0x00000004
+
+#define	XEN_PSM_VERBOSE_IRQ(fmt) \
+	if (xen_psm_verbose & XEN_PSM_VERBOSE_IRQ_FLAG) \
+		cmn_err fmt;
+
+#define	XEN_PSM_VERBOSE_POWEROFF(fmt) \
+	if (xen_psm_verbose & XEN_PSM_VERBOSE_POWEROFF_FLAG) \
+		prom_printf fmt;
+
+/*
+ * Dummy apic array to point common routines at that want to do some apic
+ * manipulation.  Xen doesn't allow guest apic access so we point at these
+ * memory locations to fake out those who want to do apic fiddling.
+ */
+uint32_t xen_psm_dummy_apic[APIC_IRR_REG + 1];
+
+static struct psm_info xen_psm_info;
+static void xen_psm_setspl(int);
+
+static int apic_alloc_vectors(dev_info_t *, int, int, int, int, int);
+
+/*
+ * Local support routines
+ */
+
+/*
+ * Select vcpu to bind xen virtual device interrupt to.
+ */
+/*ARGSUSED*/
+int
+xen_psm_bind_intr(int irq)
+{
+	int bind_cpu, test_cpu;
+	apic_irq_t *irqptr;
+
+	if (xen_psm_intr_policy == INTR_LOWEST_PRIORITY)
+		return (IRQ_UNBOUND);
+	if (irq <= APIC_MAX_VECTOR)
+		irqptr = apic_irq_table[irq];
+	else
+		irqptr = NULL;
+	if (irqptr && (irqptr->airq_cpu & IRQ_USER_BOUND)) {
+		bind_cpu = irqptr->airq_cpu;
+		test_cpu = bind_cpu & ~IRQ_USER_BOUND;
+		if (!CPU_IN_SET(xen_psm_cpus_online, test_cpu))
+			bind_cpu = 0;
+		goto done;
+	}
+	if (xen_psm_intr_policy == INTR_ROUND_ROBIN_WITH_AFFINITY) {
+		do {
+			bind_cpu = xen_psm_next_bind_cpu++;
+			if (xen_psm_next_bind_cpu >= xen_psm_ncpus)
+				xen_psm_next_bind_cpu = 0;
+		} while (!CPU_IN_SET(xen_psm_cpus_online, bind_cpu));
+	} else {
+		bind_cpu = 0;
+	}
+done:
+	return (bind_cpu);
+}
+
+/*
+ * Autoconfiguration Routines
+ */
+
+static int
+xen_psm_probe(void)
+{
+	int ret = PSM_SUCCESS;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		ret = apic_probe_common(xen_psm_info.p_mach_idstring);
+	return (ret);
+}
+
+static void
+xen_psm_softinit(void)
+{
+	/* LINTED logical expression always true: op "||" */
+	ASSERT((1 << EVTCHN_SHIFT) == NBBY * sizeof (ulong_t));
+	CPUSET_ADD(xen_psm_cpus_online, 0);
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		apic_init_common();
+	}
+}
+
+#define	XEN_NSEC_PER_TICK	10 /* XXX - assume we have a 100 Mhz clock */
+
+/*ARGSUSED*/
+static int
+xen_psm_clkinit(int hertz)
+{
+	extern enum tod_fault_type tod_fault(enum tod_fault_type, int);
+	extern int dosynctodr;
+
+	/*
+	 * domU cannot set the TOD hardware, fault the TOD clock now to
+	 * indicate that and turn off attempts to sync TOD hardware
+	 * with the hires timer.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		mutex_enter(&tod_lock);
+		(void) tod_fault(TOD_RDONLY, 0);
+		dosynctodr = 0;
+		mutex_exit(&tod_lock);
+	}
+	/*
+	 * The hypervisor provides a timer based on the local APIC timer.
+	 * The interface supports requests of nanosecond resolution.
+	 * A common frequency of the apic clock is 100 Mhz which
+	 * gives a resolution of 10 nsec per tick.  What we would really like
+	 * is a way to get the ns per tick value from xen.
+	 * XXPV - This is an assumption that needs checking and may change
+	 */
+	return (XEN_NSEC_PER_TICK);
+}
+
+static void
+xen_psm_hrtimeinit(void)
+{
+	extern int gethrtime_hires;
+	gethrtime_hires = 1;
+}
+
+/* xen_psm NMI handler */
+/*ARGSUSED*/
+static void
+xen_psm_nmi_intr(caddr_t arg, struct regs *rp)
+{
+	xen_psm_num_nmis++;
+
+	if (!lock_try(&xen_psm_nmi_lock))
+		return;
+
+	if (xen_psm_kmdb_on_nmi && psm_debugger()) {
+		debug_enter("NMI received: entering kmdb\n");
+	} else if (xen_psm_panic_on_nmi) {
+		/* Keep panic from entering kmdb. */
+		nopanicdebug = 1;
+		panic("NMI received\n");
+	} else {
+		/*
+		 * prom_printf is the best shot we have of something which is
+		 * problem free from high level/NMI type of interrupts
+		 */
+		prom_printf("NMI received\n");
+	}
+
+	lock_clear(&xen_psm_nmi_lock);
+}
+
+static void
+xen_psm_picinit()
+{
+	int cpu, irqno;
+	cpuset_t cpus;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		/* set a flag so we know we have run xen_psm_picinit() */
+		apic_picinit_called = 1;
+		LOCK_INIT_CLEAR(&apic_ioapic_lock);
+
+		/* XXPV - do we need to do this? */
+		picsetup();	 /* initialise the 8259 */
+
+		/* enable apic mode if imcr present */
+		/* XXPV - do we need to do this either? */
+		if (apic_imcrp) {
+			outb(APIC_IMCR_P1, (uchar_t)APIC_IMCR_SELECT);
+			outb(APIC_IMCR_P2, (uchar_t)APIC_IMCR_APIC);
+		}
+
+		ioapic_init_intr(IOAPIC_NOMASK);
+		/*
+		 * We never called xen_psm_addspl() when the SCI
+		 * interrupt was added because that happened before the
+		 * PSM module was loaded.  Fix that up here by doing
+		 * any missed operations (e.g. bind to CPU)
+		 */
+		if ((irqno = apic_sci_vect) > 0) {
+			if ((cpu = xen_psm_bind_intr(irqno)) == IRQ_UNBOUND) {
+				CPUSET_ZERO(cpus);
+				CPUSET_OR(cpus, xen_psm_cpus_online);
+			} else {
+				CPUSET_ONLY(cpus, cpu & ~IRQ_USER_BOUND);
+			}
+			ec_set_irq_affinity(irqno, cpus);
+			ec_enable_irq(irqno);
+		}
+	}
+
+	/* add nmi handler - least priority nmi handler */
+	LOCK_INIT_CLEAR(&xen_psm_nmi_lock);
+
+	if (!psm_add_nmintr(0, (avfunc) xen_psm_nmi_intr,
+	    "xen_psm NMI handler", (caddr_t)NULL))
+		cmn_err(CE_WARN, "xen_psm: Unable to add nmi handler");
+}
+
+
+/*
+ * generates an interprocessor interrupt to another CPU
+ */
+static void
+xen_psm_send_ipi(int cpun, int ipl)
+{
+	ulong_t flag = intr_clear();
+
+	ec_send_ipi(ipl, cpun);
+	intr_restore(flag);
+}
+
+/*ARGSUSED*/
+static int
+xen_psm_addspl(int irqno, int ipl, int min_ipl, int max_ipl)
+{
+	int cpu, ret;
+	cpuset_t cpus;
+
+	/*
+	 * We are called at splhi() so we can't call anything that might end
+	 * up trying to context switch.
+	 */
+	if (irqno >= PIRQ_BASE && irqno < NR_PIRQS &&
+	    DOMAIN_IS_INITDOMAIN(xen_info)) {
+		/*
+		 * Priority/affinity/enable for PIRQ's is set in ec_setup_pirq()
+		 */
+		ret = apic_addspl_common(irqno, ipl, min_ipl, max_ipl);
+	} else {
+		/*
+		 * Set priority/affinity/enable for non PIRQs
+		 */
+		ret = ec_set_irq_priority(irqno, ipl);
+		ASSERT(ret == 0);
+		if ((cpu = xen_psm_bind_intr(irqno)) == IRQ_UNBOUND) {
+			CPUSET_ZERO(cpus);
+			CPUSET_OR(cpus, xen_psm_cpus_online);
+		} else {
+			CPUSET_ONLY(cpus, cpu & ~IRQ_USER_BOUND);
+		}
+		ec_set_irq_affinity(irqno, cpus);
+		ec_enable_irq(irqno);
+	}
+	return (ret);
+}
+
+/*
+ * Acquire ownership of this irq on this cpu
+ */
+void
+xen_psm_acquire_irq(int irq)
+{
+	ulong_t flags;
+	int cpuid;
+
+	/*
+	 * If the irq is currently being serviced by another cpu
+	 * we busy-wait for the other cpu to finish.  Take any
+	 * pending interrupts before retrying.
+	 */
+	do {
+		flags = intr_clear();
+		cpuid = ec_block_irq(irq);
+		intr_restore(flags);
+	} while (cpuid != CPU->cpu_id);
+}
+
+/*ARGSUSED*/
+static int
+xen_psm_delspl(int irqno, int ipl, int min_ipl, int max_ipl)
+{
+	apic_irq_t *irqptr;
+	int err = PSM_SUCCESS;
+
+	if (irqno >= PIRQ_BASE && irqno < NR_PIRQS &&
+	    DOMAIN_IS_INITDOMAIN(xen_info)) {
+		irqptr = apic_irq_table[irqno];
+		/*
+		 * unbind if no more sharers of this irq/evtchn
+		 */
+		if (irqptr->airq_share == 1) {
+			xen_psm_acquire_irq(irqno);
+			ec_unbind_irq(irqno);
+		}
+		err = apic_delspl_common(irqno, ipl, min_ipl, max_ipl);
+		/*
+		 * If still in use reset priority
+		 */
+		if (!err && irqptr->airq_share != 0) {
+			err = ec_set_irq_priority(irqno, max_ipl);
+			return (err);
+		}
+	} else {
+		xen_psm_acquire_irq(irqno);
+		ec_unbind_irq(irqno);
+	}
+	return (err);
+}
+
+static int
+xen_psm_post_cpu_start()
+{
+	int cpun;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		cpun = psm_get_cpu_id();
+		apic_cpus[cpun].aci_status =
+		    APIC_CPU_ONLINE | APIC_CPU_INTR_ENABLE;
+	}
+	return (PSM_SUCCESS);
+}
+
+static processorid_t
+xen_psm_get_next_processorid(processorid_t id)
+{
+	if (id == -1)
+		return (0);
+
+	for (id++; id < NCPU; id++) {
+		switch (-HYPERVISOR_vcpu_op(VCPUOP_is_up, id, NULL)) {
+		case 0:		/* yeah, that one's there */
+			return (id);
+		default:
+		case X_EINVAL:	/* out of range */
+			return (-1);
+		case X_ENOENT:	/* not present in the domain */
+			/*
+			 * It's not clear that we -need- to keep looking
+			 * at this point, if, e.g., we can guarantee
+			 * the hypervisor always keeps a contiguous range
+			 * of vcpus around this is equivalent to "out of range".
+			 *
+			 * But it would be sad to miss a vcpu we're
+			 * supposed to be using ..
+			 */
+			break;
+		}
+	}
+
+	return (-1);
+}
+
+/*
+ * XXPV - undo the start cpu op change; return to ignoring this value
+ *	- also tweak error handling in main startup loop
+ */
+/*ARGSUSED*/
+static int
+xen_psm_cpu_start(processorid_t id, caddr_t arg)
+{
+	int ret;
+
+	ASSERT(id > 0);
+	CPUSET_ADD(xen_psm_cpus_online, id);
+	ec_bind_cpu_ipis(id);
+	(void) ec_bind_virq_to_irq(VIRQ_TIMER, id);
+	if ((ret = xen_vcpu_up(id)) == 0)
+		xen_psm_ncpus++;
+	else
+		ret = EINVAL;
+	return (ret);
+}
+
+/*
+ * Allocate an irq for inter cpu signaling
+ */
+/*ARGSUSED*/
+static int
+xen_psm_get_ipivect(int ipl, int type)
+{
+	return (ec_bind_ipi_to_irq(ipl, 0));
+}
+
+/*ARGSUSED*/
+static int
+xen_psm_get_clockirq(int ipl)
+{
+	if (xen_clock_irq != INVALID_IRQ)
+		return (xen_clock_irq);
+
+	xen_clock_irq = ec_bind_virq_to_irq(VIRQ_TIMER, 0);
+	return (xen_clock_irq);
+}
+
+/*ARGSUSED*/
+static void
+xen_psm_shutdown(int cmd, int fcn)
+{
+	XEN_PSM_VERBOSE_POWEROFF(("xen_psm_shutdown(%d,%d);\n", cmd, fcn));
+
+	switch (cmd) {
+	case A_SHUTDOWN:
+		switch (fcn) {
+		case AD_BOOT:
+		case AD_IBOOT:
+			(void) HYPERVISOR_shutdown(SHUTDOWN_reboot);
+			break;
+		case AD_POWEROFF:
+			/* fall through if domU or if poweroff fails */
+			if (DOMAIN_IS_INITDOMAIN(xen_info))
+				if (apic_enable_acpi)
+					(void) acpi_poweroff();
+			/* FALLTHRU */
+		case AD_HALT:
+		default:
+			(void) HYPERVISOR_shutdown(SHUTDOWN_poweroff);
+			break;
+		}
+		break;
+	case A_REBOOT:
+		(void) HYPERVISOR_shutdown(SHUTDOWN_reboot);
+		break;
+	default:
+		return;
+	}
+}
+
+
+static int
+xen_psm_translate_irq(dev_info_t *dip, int irqno)
+{
+	if (dip == NULL) {
+		XEN_PSM_VERBOSE_IRQ((CE_CONT, "!xen_psm: irqno = %d"
+		    " dip = NULL\n", irqno));
+		return (irqno);
+	}
+	return (irqno);
+}
+
+/*
+ * xen_psm_intr_enter() acks the event that triggered the interrupt and
+ * returns the new priority level,
+ */
+/*ARGSUSED*/
+static int
+xen_psm_intr_enter(int ipl, int *vector)
+{
+	int newipl;
+	uint_t intno;
+	cpu_t *cpu = CPU;
+
+	intno = (*vector);
+
+	ASSERT(intno < NR_IRQS);
+	ASSERT(cpu->cpu_m.mcpu_vcpu_info->evtchn_upcall_mask != 0);
+
+	ec_clear_irq(intno);
+
+	newipl = autovect[intno].avh_hi_pri;
+	if (newipl == 0) {
+		/*
+		 * (newipl == 0) means we have no service routines for this
+		 * vector.  We will treat this as a spurious interrupt.
+		 * We have cleared the pending bit already, clear the event
+		 * mask and return a spurious interrupt.  This case can happen
+		 * when an interrupt delivery is racing with the removal of
+		 * of the service routine for that interrupt.
+		 */
+		ec_unmask_irq(intno);
+		newipl = -1;	/* flag spurious interrupt */
+	} else if (newipl <= cpu->cpu_pri) {
+		/*
+		 * (newipl <= cpu->cpu_pri) means that we must be trying to
+		 * service a vector that was shared with a higher priority
+		 * isr.  The higher priority handler has been removed and
+		 * we need to service this int.  We can't return a lower
+		 * priority than current cpu priority.  Just synthesize a
+		 * priority to return that should be acceptable.
+		 */
+		newipl = cpu->cpu_pri + 1;	/* synthetic priority */
+	}
+	return (newipl);
+}
+
+
+/*
+ * xen_psm_intr_exit() restores the old interrupt
+ * priority level after processing an interrupt.
+ * It is called with interrupts disabled, and does not enable interrupts.
+ */
+/* ARGSUSED */
+static void
+xen_psm_intr_exit(int ipl, int vector)
+{
+	ec_try_unmask_irq(vector);
+	xen_psm_setspl(ipl);
+}
+
+intr_exit_fn_t
+psm_intr_exit_fn(void)
+{
+	return (xen_psm_intr_exit);
+}
+
+/*
+ * Check if new ipl level allows delivery of previously unserviced events
+ */
+static void
+xen_psm_setspl(int ipl)
+{
+	struct cpu *cpu = CPU;
+	volatile vcpu_info_t *vci = cpu->cpu_m.mcpu_vcpu_info;
+	uint16_t pending;
+
+	ASSERT(vci->evtchn_upcall_mask != 0);
+
+	/*
+	 * If new ipl level will enable any pending interrupts, setup so the
+	 * upcoming sti will cause us to get an upcall.
+	 */
+	pending = cpu->cpu_m.mcpu_intr_pending & ~((1 << (ipl + 1)) - 1);
+	if (pending) {
+		int i;
+		ulong_t pending_sels = 0;
+		volatile ulong_t *selp;
+		struct xen_evt_data *cpe = cpu->cpu_m.mcpu_evt_pend;
+
+		for (i = bsrw_insn(pending); i > ipl; i--)
+			pending_sels |= cpe->pending_sel[i];
+		ASSERT(pending_sels);
+		selp = (volatile ulong_t *)&vci->evtchn_pending_sel;
+		atomic_or_ulong(selp, pending_sels);
+		vci->evtchn_upcall_pending = 1;
+	}
+}
+
+/*
+ * This function provides external interface to the nexus for all
+ * functionality related to the new DDI interrupt framework.
+ *
+ * Input:
+ * dip     - pointer to the dev_info structure of the requested device
+ * hdlp    - pointer to the internal interrupt handle structure for the
+ *	     requested interrupt
+ * intr_op - opcode for this call
+ * result  - pointer to the integer that will hold the result to be
+ *	     passed back if return value is PSM_SUCCESS
+ *
+ * Output:
+ * return value is either PSM_SUCCESS or PSM_FAILURE
+ */
+int
+xen_intr_ops(dev_info_t *dip, ddi_intr_handle_impl_t *hdlp,
+    psm_intr_op_t intr_op, int *result)
+{
+	int		cap;
+	int		err;
+	int		new_priority;
+	apic_irq_t	*irqp;
+	struct intrspec *ispec;
+
+	DDI_INTR_IMPLDBG((CE_CONT, "xen_intr_ops: dip: %p hdlp: %p "
+	    "intr_op: %x\n", (void *)dip, (void *)hdlp, intr_op));
+
+	switch (intr_op) {
+	case PSM_INTR_OP_CHECK_MSI:
+		if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+			*result = hdlp->ih_type & ~(DDI_INTR_TYPE_MSI |
+			    DDI_INTR_TYPE_MSIX);
+			break;
+		}
+		/*
+		 * Check MSI/X is supported or not at APIC level and
+		 * masked off the MSI/X bits in hdlp->ih_type if not
+		 * supported before return.  If MSI/X is supported,
+		 * leave the ih_type unchanged and return.
+		 *
+		 * hdlp->ih_type passed in from the nexus has all the
+		 * interrupt types supported by the device.
+		 */
+		if (xen_support_msi == 0) {
+			/*
+			 * if xen_support_msi is not set, call
+			 * apic_check_msi_support() to check whether msi
+			 * is supported first
+			 */
+			if (apic_check_msi_support() == PSM_SUCCESS)
+				xen_support_msi = 1;
+			else
+				xen_support_msi = -1;
+		}
+		if (xen_support_msi == 1)
+			*result = hdlp->ih_type;
+		else
+			*result = hdlp->ih_type & ~(DDI_INTR_TYPE_MSI |
+			    DDI_INTR_TYPE_MSIX);
+		break;
+	case PSM_INTR_OP_ALLOC_VECTORS:
+		*result = apic_alloc_vectors(dip, hdlp->ih_inum,
+		    hdlp->ih_scratch1, hdlp->ih_pri, hdlp->ih_type,
+		    (int)(uintptr_t)hdlp->ih_scratch2);
+		break;
+	case PSM_INTR_OP_FREE_VECTORS:
+		apic_free_vectors(dip, hdlp->ih_inum, hdlp->ih_scratch1,
+		    hdlp->ih_pri, hdlp->ih_type);
+		break;
+	case PSM_INTR_OP_NAVAIL_VECTORS:
+		/*
+		 * XXPV - maybe we should make this be:
+		 * min(APIC_VECTOR_PER_IPL, count of all avail vectors);
+		 */
+		if (DOMAIN_IS_INITDOMAIN(xen_info))
+			*result = APIC_VECTOR_PER_IPL;
+		else
+			*result = 1;
+		break;
+	case PSM_INTR_OP_XLATE_VECTOR:
+		ispec = ((ihdl_plat_t *)hdlp->ih_private)->ip_ispecp;
+		if (ispec->intrspec_vec >= PIRQ_BASE &&
+		    ispec->intrspec_vec < NR_PIRQS &&
+		    DOMAIN_IS_INITDOMAIN(xen_info)) {
+			*result = apic_introp_xlate(dip, ispec, hdlp->ih_type);
+		} else {
+			*result = ispec->intrspec_vec;
+		}
+		break;
+	case PSM_INTR_OP_GET_PENDING:
+		/* XXPV - is this enough for dom0 or do we need to ref ioapic */
+		*result = ec_pending_irq(hdlp->ih_vector);
+		break;
+	case PSM_INTR_OP_CLEAR_MASK:
+		/* XXPV - is this enough for dom0 or do we need to set ioapic */
+		if (hdlp->ih_type != DDI_INTR_TYPE_FIXED)
+			return (PSM_FAILURE);
+		ec_enable_irq(hdlp->ih_vector);
+		break;
+	case PSM_INTR_OP_SET_MASK:
+		/* XXPV - is this enough for dom0 or do we need to set ioapic */
+		if (hdlp->ih_type != DDI_INTR_TYPE_FIXED)
+			return (PSM_FAILURE);
+		ec_disable_irq(hdlp->ih_vector);
+		break;
+	case PSM_INTR_OP_GET_CAP:
+		cap = DDI_INTR_FLAG_PENDING | DDI_INTR_FLAG_EDGE;
+		if (hdlp->ih_type == DDI_INTR_TYPE_FIXED)
+			cap |= DDI_INTR_FLAG_MASKABLE;
+		*result = cap;
+		break;
+	case PSM_INTR_OP_GET_SHARED:
+		if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+			if (hdlp->ih_type != DDI_INTR_TYPE_FIXED)
+				return (PSM_FAILURE);
+			if ((irqp = apic_find_irq(dip, ispec, hdlp->ih_type))
+			    == NULL)
+				return (PSM_FAILURE);
+			*result = irqp->airq_share ? 1: 0;
+		} else {
+			return (PSM_FAILURE);
+		}
+		break;
+	case PSM_INTR_OP_SET_PRI:
+		new_priority = *(int *)result;
+		err = ec_set_irq_priority(hdlp->ih_vector, new_priority);
+		if (err != 0)
+			return (PSM_FAILURE);
+		break;
+	case PSM_INTR_OP_GET_INTR:
+		if (!DOMAIN_IS_INITDOMAIN(xen_info))
+			return (PSM_FAILURE);
+		/*
+		 * The interrupt handle given here has been allocated
+		 * specifically for this command, and ih_private carries
+		 * a pointer to a apic_get_intr_t.
+		 */
+		if (apic_get_vector_intr_info(
+		    hdlp->ih_vector, hdlp->ih_private) != PSM_SUCCESS)
+			return (PSM_FAILURE);
+		break;
+	case PSM_INTR_OP_SET_CAP:
+		/* FALLTHRU */
+	default:
+		return (PSM_FAILURE);
+	}
+	return (PSM_SUCCESS);
+}
+
+static void
+xen_psm_rebind_irq(int irq)
+{
+	cpuset_t ncpu;
+	processorid_t newcpu;
+
+	newcpu = xen_psm_bind_intr(irq);
+	if (newcpu == IRQ_UNBOUND) {
+		CPUSET_ZERO(ncpu);
+		CPUSET_OR(ncpu, xen_psm_cpus_online);
+	} else {
+		CPUSET_ONLY(ncpu, newcpu & ~IRQ_USER_BOUND);
+	}
+	ec_set_irq_affinity(irq, ncpu);
+}
+
+/*
+ * Disable all device interrupts for the given cpu.
+ * High priority interrupts are not disabled and will still be serviced.
+ */
+static int
+xen_psm_disable_intr(processorid_t cpun)
+{
+	int irq;
+
+	/*
+	 * Can't offline VCPU 0 on this hypervisor.  There's no reason
+	 * anyone would want to given that the CPUs are virtual. Also note
+	 * that the hypervisor requires suspend/resume to be on VCPU 0.
+	 */
+	if (cpun == 0)
+		return (PSM_FAILURE);
+
+	CPUSET_DEL(xen_psm_cpus_online, cpun);
+	for (irq = 0; irq < NR_IRQS; irq++) {
+		if (!ec_irq_needs_rebind(irq, cpun))
+			continue;
+		xen_psm_rebind_irq(irq);
+	}
+	return (PSM_SUCCESS);
+}
+
+static void
+xen_psm_enable_intr(processorid_t cpun)
+{
+	int irq;
+
+	if (cpun == 0)
+		return;
+
+	CPUSET_ADD(xen_psm_cpus_online, cpun);
+
+	/*
+	 * Rebalance device interrupts among online processors
+	 */
+	for (irq = 0; irq < NR_IRQS; irq++) {
+		if (!ec_irq_rebindable(irq))
+			continue;
+		xen_psm_rebind_irq(irq);
+	}
+}
+
+/*
+ * This function will reprogram the timer.
+ *
+ * When in oneshot mode the argument is the absolute time in future at which to
+ * generate the interrupt.
+ *
+ * When in periodic mode, the argument is the interval at which the
+ * interrupts should be generated. There is no need to support the periodic
+ * mode timer change at this time.
+ *
+ * Note that we must be careful to convert from hrtime to Xen system time (see
+ * xpv_timestamp.c).
+ */
+static void
+xen_psm_timer_reprogram(hrtime_t timer_req)
+{
+	hrtime_t now, timer_new, time_delta, xen_time;
+	ulong_t flags;
+
+	flags = intr_clear();
+	/*
+	 * We should be called from high PIL context (CBE_HIGH_PIL),
+	 * so kpreempt is disabled.
+	 */
+
+	now = xpv_gethrtime();
+	xen_time = xpv_getsystime();
+	if (timer_req <= now) {
+		/*
+		 * requested to generate an interrupt in the past
+		 * generate an interrupt as soon as possible
+		 */
+		time_delta = XEN_NSEC_PER_TICK;
+	} else
+		time_delta = timer_req - now;
+
+	timer_new = xen_time + time_delta;
+	if (HYPERVISOR_set_timer_op(timer_new) != 0)
+		panic("can't set hypervisor timer?");
+	intr_restore(flags);
+}
+
+/*
+ * This function will enable timer interrupts.
+ */
+static void
+xen_psm_timer_enable(void)
+{
+	ec_unmask_irq(xen_clock_irq);
+}
+
+/*
+ * This function will disable timer interrupts on the current cpu.
+ */
+static void
+xen_psm_timer_disable(void)
+{
+	(void) ec_block_irq(xen_clock_irq);
+	/*
+	 * If the clock irq is pending on this cpu then we need to
+	 * clear the pending interrupt.
+	 */
+	ec_unpend_irq(xen_clock_irq);
+}
+
+/*
+ *
+ * The following functions are in the platform specific file so that they
+ * can be different functions depending on whether we are running on
+ * bare metal or a hypervisor.
+ */
+
+/*
+ * Allocate a free vector for irq at ipl.
+ */
+/* ARGSUSED */
+uchar_t
+apic_allocate_vector(int ipl, int irq, int pri)
+{
+	physdev_irq_t irq_op;
+	uchar_t vector;
+
+	irq_op.irq = irq;
+
+	if (HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op))
+		panic("Hypervisor alloc vector failed");
+	vector = irq_op.vector;
+	/*
+	 * No need to worry about vector colliding with our reserved vectors
+	 * e.g. T_FASTTRAP, xen can differentiate between hardware and software
+	 * generated traps and handle them properly.
+	 */
+	apic_vector_to_irq[vector] = (uchar_t)irq;
+	return (vector);
+}
+
+/* Mark vector as not being used by any irq */
+void
+apic_free_vector(uchar_t vector)
+{
+	apic_vector_to_irq[vector] = APIC_RESV_IRQ;
+}
+
+/*
+ * This function allocate "count" vector(s) for the given "dip/pri/type"
+ */
+static int
+apic_alloc_vectors(dev_info_t *dip, int inum, int count, int pri, int type,
+    int behavior)
+{
+	int	rcount, i;
+	uchar_t	vector, cpu;
+	int irqno;
+	major_t	major;
+	apic_irq_t	*irqptr;
+
+	/* only supports MSI at the moment, will add MSI-X support later */
+	if (type != DDI_INTR_TYPE_MSI)
+		return (0);
+
+	DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_vectors: dip=0x%p type=%d "
+	    "inum=0x%x  pri=0x%x count=0x%x behavior=%d\n",
+	    (void *)dip, type, inum, pri, count, behavior));
+
+	if (count > 1) {
+		if (behavior == DDI_INTR_ALLOC_STRICT &&
+		    (apic_multi_msi_enable == 0 || count > apic_multi_msi_max))
+			return (0);
+
+		if (apic_multi_msi_enable == 0)
+			count = 1;
+		else if (count > apic_multi_msi_max)
+			count = apic_multi_msi_max;
+	}
+
+	/*
+	 * XXPV - metal version takes all vectors avail at given pri.
+	 * Why do that?  For now just allocate count vectors.
+	 */
+	rcount = count;
+
+	mutex_enter(&airq_mutex);
+
+	/*
+	 * XXPV - currently the hypervisor does not support MSI at all.
+	 * It doesn't return consecutive vectors.  This code is a first
+	 * cut for the (future) time that MSI is supported.
+	 */
+	major = (dip != NULL) ? ddi_name_to_major(ddi_get_name(dip)) : 0;
+	for (i = 0; i < rcount; i++) {
+		if ((irqno = apic_allocate_irq(apic_first_avail_irq)) ==
+		    INVALID_IRQ) {
+			mutex_exit(&airq_mutex);
+			DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_vectors: "
+			    "apic_allocate_irq failed\n"));
+			return (i);
+		}
+		apic_max_device_irq = max(irqno, apic_max_device_irq);
+		apic_min_device_irq = min(irqno, apic_min_device_irq);
+		irqptr = apic_irq_table[irqno];
+		vector = apic_allocate_vector(pri, irqno, 0);
+		apic_vector_to_irq[vector] = (uchar_t)irqno;
+#ifdef	DEBUG
+		if (apic_vector_to_irq[vector] != APIC_RESV_IRQ)
+			DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_vectors: "
+			    "apic_vector_to_irq is not APIC_RESV_IRQ\n"));
+#endif
+
+		irqptr->airq_vector = vector;
+		irqptr->airq_ioapicindex = (uchar_t)inum;	/* start */
+		irqptr->airq_intin_no = (uchar_t)rcount;
+		irqptr->airq_ipl = pri;
+		irqptr->airq_origirq = (uchar_t)(inum + i);
+		irqptr->airq_share_id = 0;
+		irqptr->airq_mps_intr_index = MSI_INDEX;
+		irqptr->airq_dip = dip;
+		irqptr->airq_major = major;
+		if (i == 0) /* they all bound to the same cpu */
+			cpu = irqptr->airq_cpu = apic_bind_intr(dip, irqno,
+			    0xff, 0xff);
+		else
+			irqptr->airq_cpu = cpu;
+		DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_vectors: irq=0x%x "
+		    "dip=0x%p vector=0x%x origirq=0x%x pri=0x%x\n", irqno,
+		    (void *)irqptr->airq_dip, irqptr->airq_vector,
+		    irqptr->airq_origirq, pri));
+	}
+	mutex_exit(&airq_mutex);
+	return (rcount);
+}
+
+/*
+ * The hypervisor doesn't permit access to local apics directly
+ */
+/* ARGSUSED */
+uint32_t *
+mapin_apic(uint32_t addr, size_t len, int flags)
+{
+	/*
+	 * Return a pointer to a memory area to fake out the
+	 * probe code that wants to read apic registers.
+	 * The dummy values will end up being ignored by xen
+	 * later on when they are used anyway.
+	 */
+	xen_psm_dummy_apic[APIC_VERS_REG] = APIC_INTEGRATED_VERS;
+	return (xen_psm_dummy_apic);
+}
+
+/* ARGSUSED */
+uint32_t *
+mapin_ioapic(uint32_t addr, size_t len, int flags)
+{
+	/*
+	 * Return non-null here to fake out configure code that calls this.
+	 * The i86xpv platform will not reference through the returned value..
+	 */
+	return ((uint32_t *)0x1);
+}
+
+/* ARGSUSED */
+void
+mapout_apic(caddr_t addr, size_t len)
+{
+}
+
+/* ARGSUSED */
+void
+mapout_ioapic(caddr_t addr, size_t len)
+{
+}
+
+uint32_t
+ioapic_read(int apic_ix, uint32_t reg)
+{
+	physdev_apic_t apic;
+
+	apic.apic_physbase = (unsigned long)apic_physaddr[apic_ix];
+	apic.reg = reg;
+	if (HYPERVISOR_physdev_op(PHYSDEVOP_apic_read, &apic))
+		panic("read ioapic %d reg %d failed", apic_ix, reg);
+	return (apic.value);
+}
+
+void
+ioapic_write(int apic_ix, uint32_t reg, uint32_t value)
+{
+	physdev_apic_t apic;
+
+	apic.apic_physbase = (unsigned long)apic_physaddr[apic_ix];
+	apic.reg = reg;
+	apic.value = value;
+	if (HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic))
+		panic("write ioapic %d reg %d failed", apic_ix, reg);
+}
+
+/*
+ * Call rebind to do the actual programming.
+ */
+int
+apic_setup_io_intr(void *p, int irq, boolean_t deferred)
+{
+	apic_irq_t *irqptr;
+	struct ioapic_reprogram_data *drep = NULL;
+	int rv, cpu;
+	cpuset_t cpus;
+
+	/*
+	 * Set cpu based on xen idea of online cpu's not apic tables.
+	 * Note that xen ignores/sets to it's own preferred value the
+	 * target cpu field when programming ioapic anyway.
+	 */
+	if ((cpu = xen_psm_bind_intr(irq)) == IRQ_UNBOUND) {
+		CPUSET_ZERO(cpus);
+		CPUSET_OR(cpus, xen_psm_cpus_online);
+	} else {
+		CPUSET_ONLY(cpus, cpu & ~IRQ_USER_BOUND);
+	}
+	apic_irq_table[irq]->airq_cpu = cpu;
+	if (deferred) {
+		drep = (struct ioapic_reprogram_data *)p;
+		ASSERT(drep != NULL);
+		irqptr = drep->irqp;
+	} else {
+		irqptr = (apic_irq_t *)p;
+	}
+	ASSERT(irqptr != NULL);
+	rv = apic_rebind(irqptr, cpu, drep);
+	if (rv) {
+		/* CPU is not up or interrupt is disabled. Fall back to 0 */
+		cpu = 0;
+		rv = apic_rebind(irqptr, cpu, drep);
+	}
+	/*
+	 * If rebind successful bind the irq to an event channel
+	 */
+	if (rv == 0)
+		ec_setup_pirq(irq, irqptr->airq_ipl, cpus);
+	return (rv);
+}
+
+/*
+ * Allocate a new vector for the given irq
+ */
+/* ARGSUSED */
+uchar_t
+apic_modify_vector(uchar_t vector, int irq)
+{
+	return (apic_allocate_vector(0, irq, 0));
+}
+
+/*
+ * The rest of the file is just generic psm module boilerplate
+ */
+
+static struct psm_ops xen_psm_ops = {
+	xen_psm_probe,				/* psm_probe		*/
+
+	xen_psm_softinit,			/* psm_init		*/
+	xen_psm_picinit,			/* psm_picinit		*/
+	xen_psm_intr_enter,			/* psm_intr_enter	*/
+	xen_psm_intr_exit,			/* psm_intr_exit	*/
+	xen_psm_setspl,				/* psm_setspl		*/
+	xen_psm_addspl,				/* psm_addspl		*/
+	xen_psm_delspl,				/* psm_delspl		*/
+	xen_psm_disable_intr,			/* psm_disable_intr	*/
+	xen_psm_enable_intr,			/* psm_enable_intr	*/
+	(int (*)(int))NULL,			/* psm_softlvl_to_irq	*/
+	(void (*)(int))NULL,			/* psm_set_softintr	*/
+	(void (*)(processorid_t))NULL,		/* psm_set_idlecpu	*/
+	(void (*)(processorid_t))NULL,		/* psm_unset_idlecpu	*/
+
+	xen_psm_clkinit,			/* psm_clkinit		*/
+	xen_psm_get_clockirq,			/* psm_get_clockirq	*/
+	xen_psm_hrtimeinit,			/* psm_hrtimeinit	*/
+	xpv_gethrtime,				/* psm_gethrtime	*/
+
+	xen_psm_get_next_processorid,		/* psm_get_next_processorid */
+	xen_psm_cpu_start,			/* psm_cpu_start	*/
+	xen_psm_post_cpu_start,			/* psm_post_cpu_start	*/
+	xen_psm_shutdown,			/* psm_shutdown		*/
+	xen_psm_get_ipivect,			/* psm_get_ipivect	*/
+	xen_psm_send_ipi,			/* psm_send_ipi		*/
+
+	xen_psm_translate_irq,			/* psm_translate_irq	*/
+
+	(void (*)(int, char *))NULL,		/* psm_notify_error	*/
+	(void (*)(int msg))NULL,		/* psm_notify_func	*/
+	xen_psm_timer_reprogram,		/* psm_timer_reprogram	*/
+	xen_psm_timer_enable,			/* psm_timer_enable	*/
+	xen_psm_timer_disable,			/* psm_timer_disable	*/
+	(void (*)(void *arg))NULL,		/* psm_post_cyclic_setup */
+	(void (*)(int, int))NULL,		/* psm_preshutdown	*/
+	xen_intr_ops			/* Advanced DDI Interrupt framework */
+};
+
+static struct psm_info xen_psm_info = {
+	PSM_INFO_VER01_5,	/* version				*/
+	PSM_OWN_SYS_DEFAULT,	/* ownership				*/
+	&xen_psm_ops,		/* operation				*/
+	"xen_psm",		/* machine name				*/
+	"platform module %I%"	/* machine descriptions			*/
+};
+
+static void *xen_psm_hdlp;
+
+int
+_init(void)
+{
+	return (psm_mod_init(&xen_psm_hdlp, &xen_psm_info));
+}
+
+int
+_fini(void)
+{
+	return (psm_mod_fini(&xen_psm_hdlp, &xen_psm_info));
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (psm_mod_info(&xen_psm_hdlp, &xen_psm_info, modinfop));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/io/xpvtod.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,191 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/mutex.h>
+#include <sys/time.h>
+#include <sys/clock.h>
+#include <sys/archsystm.h>
+#include <sys/modctl.h>
+#include <sys/autoconf.h>
+#include <sys/cmn_err.h>
+#include <sys/atomic.h>
+#include <sys/hypervisor.h>
+
+/*
+ * tod driver module for i86xpv
+ */
+
+static timestruc_t
+todxen_get(tod_ops_t *top)
+{
+	todinfo_t tod;
+	timestruc_t ts, wcts;
+	shared_info_t *si = HYPERVISOR_shared_info;
+	uint32_t xen_wc_version;
+	hrtime_t now;
+
+	ASSERT(MUTEX_HELD(&tod_lock));
+
+	/*
+	 * Pick up the wallclock base time
+	 */
+	do {
+		xen_wc_version = si->wc_version;
+
+		membar_consumer();
+
+		wcts.tv_sec = si->wc_sec;
+		wcts.tv_nsec = si->wc_nsec;
+
+		membar_consumer();
+
+	} while ((si->wc_version & 1) | (xen_wc_version ^ si->wc_version));
+
+	/*
+	 * Compute the TOD as the wallclock (boot) time plus time-since-boot
+	 * (/not/ hrtime!) and normalize.
+	 */
+	now = xpv_getsystime() +
+	    (hrtime_t)wcts.tv_nsec + (hrtime_t)wcts.tv_sec * NANOSEC;
+	ts.tv_sec = (time_t)(now / NANOSEC);
+	ts.tv_nsec = (long)(now % NANOSEC);
+
+	/*
+	 * Apply GMT lag correction from /etc/rtc_config to get UTC time
+	 */
+	ts.tv_sec += ggmtl();
+
+	/*
+	 * Validate the TOD in case of total insanity
+	 */
+	tod = utc_to_tod(ts.tv_sec);
+	if (tod.tod_year < 69) {
+		static int range_warn = 1;	/* warn only once */
+
+		if (range_warn) {
+			/*
+			 * If we're dom0, go invoke the underlying driver; the
+			 * routine should complain if it discovers something
+			 * wrong.
+			 */
+			if (DOMAIN_IS_INITDOMAIN(xen_info))
+				(void) TODOP_GET(top->tod_next);
+
+			/*
+			 * Check the virtual hardware.
+			 */
+			if (tod.tod_year > 38)
+				cmn_err(CE_WARN,
+				    "hypervisor wall clock is out "
+				    "of range -- time needs to be reset");
+			range_warn = 0;
+		}
+		tod.tod_year += 100;
+		ts.tv_sec = tod_to_utc(tod);
+	}
+
+	return (ts);
+}
+
+/*
+ * On dom0, invoke the underlying driver to update the physical RTC,
+ * and tell the hypervisor to update its idea of global time.
+ *
+ * On domU, we don't have permission to update the machine's physical RTC,
+ * so quietly ignore the attempt.
+ */
+static void
+todxen_set(tod_ops_t *top, timestruc_t ts)
+{
+	xen_platform_op_t op;
+
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		ASSERT(MUTEX_HELD(&tod_lock));
+		TODOP_SET(top->tod_next, ts);
+
+		op.cmd = XENPF_settime;
+		op.interface_version = XENPF_INTERFACE_VERSION;
+		op.u.settime.secs = ts.tv_sec - ggmtl();
+		op.u.settime.nsecs = ts.tv_nsec;
+		op.u.settime.system_time = xpv_getsystime();
+		(void) HYPERVISOR_platform_op(&op);
+	}
+}
+
+static tod_ops_t todxen_ops = {
+	TOD_OPS_VERSION,
+	todxen_get,
+	todxen_set,
+	NULL
+};
+
+static struct modlmisc modlmisc = {
+	&mod_miscops,
+	"TOD module for i86xpv"
+};
+
+static struct modlinkage modl = {
+	MODREV_1,
+	&modlmisc
+};
+
+int
+_init(void)
+{
+	/*
+	 * In future we might need to do something more sophisticated
+	 * for versioning, i.e. dealing with older hardware TOD modules
+	 * underneath us, but for now, anything else but "same" is a
+	 * fatal error.
+	 */
+	if (tod_ops->tod_version != todxen_ops.tod_version)
+		panic("TOD module version mismatch");
+
+	/*
+	 * Stitch the ops vector linkage together, with this module
+	 * sitting on the "front" of the ops list.
+	 */
+	todxen_ops.tod_next = tod_ops;
+	tod_ops = &todxen_ops;
+
+	return (mod_install(&modl));
+}
+
+int
+_fini(void)
+{
+	return (EBUSY);
+}
+
+int
+_info(struct modinfo *modinfo)
+{
+	return (mod_info(&modl, modinfo));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/isa/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,129 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the ISA nexus driver
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= isa
+OBJECTS		= $(ISANEXUS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(ISANEXUS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+INC_PATH        += -I$(UTSBASE)/i86pc/sys/acpi
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# lint pass one enforcement
+#
+CFLAGS += $(CCVERBOSE)
+
+#
+#       Dependency
+LDFLAGS         += -dy -Nmisc/acpica -Nmisc/busra
+
+#
+# Define our version of dma_engine and i8237A interfaces
+#
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_init=$(MODULE)_i_dmae_init
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_acquire=$(MODULE)_i_dmae_acquire
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_free=$(MODULE)_i_dmae_free
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_get_best_mode=$(MODULE)_i_dmae_get_best_mode
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -D_dmae_nxcookie=$(MODULE)__dmae_nxcookie
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_prog=$(MODULE)_i_dmae_prog
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_swsetup=$(MODULE)_i_dmae_swsetup
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_swsetup=$(MODULE)_i_dmae_swsetup
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_swstart=$(MODULE)_i_dmae_swstart
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_stop=$(MODULE)_i_dmae_stop
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_enable=$(MODULE)_i_dmae_enable
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_disable=$(MODULE)_i_dmae_disable
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Di_dmae_get_chan_stat=$(MODULE)_i_dmae_get_chan_stat
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_init=$(MODULE)_d37A_init
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_valid=$(MODULE)_d37A_dma_valid
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_release=$(MODULE)_d37A_dma_release
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_disable=$(MODULE)_d37A_dma_disable
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_enable=$(MODULE)_d37A_dma_enable
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_get_best_mode=$(MODULE)_d37A_get_best_mode
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_intr=$(MODULE)_d37A_intr
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -DdEISA_setchain=$(MODULE)_dEISA_setchain
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_prog_chan=$(MODULE)_d37A_prog_chan
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_swsetup=$(MODULE)_d37A_dma_swsetup
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_swstart=$(MODULE)_d37A_dma_swstart
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_dma_stop=$(MODULE)_d37A_dma_stop
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_get_chan_stat=$(MODULE)_d37A_get_chan_stat
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_set_mode=$(MODULE)_d37A_set_mode
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_write_addr=$(MODULE)_d37A_write_addr
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_read_addr=$(MODULE)_d37A_read_addr
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_write_count=$(MODULE)_d37A_write_count
+$(OBJECTS) $(LINTS)	:= CPPFLAGS += -Dd37A_read_count=$(MODULE)_d37A_read_count
+
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/amd64.il	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,90 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/
+/ Inline functions for the x64 kernel running on the hypervisor
+/
+
+	.inline	__hypercall0, 0
+	movq	%rdi, %rax
+	syscall
+	.end
+
+	.inline	__hypercall1, 0
+	movq	%rdi, %rax
+	movq	%rsi, %rdi		/ arg 1 
+	syscall
+	.end
+
+	.inline	__hypercall2, 0
+	movq	%rdi, %rax
+	movq	%rsi, %rdi		/ arg 1
+	movq	%rdx, %rsi		/ arg 2
+	syscall
+	.end
+
+	.inline	__hypercall3, 0
+	movq	%rdi, %rax
+	movq	%rsi, %rdi		/ arg 1
+	movq	%rdx, %rsi		/ arg 2
+	movq	%rcx, %rdx		/ arg 3
+	syscall
+	.end
+
+/*  XXPV studio bug  r10 is changed to eax by compiler */
+	.inline	__hypercall4_broken, 0
+	movq	%rdi, %rax
+	movq	%rsi, %rdi		/ arg 1
+	movq	%rdx, %rsi		/ arg 2
+	movq	%rcx, %rdx		/ arg 3
+	movq	%r8, %r10		/ r10 = 4th arg
+	syscall
+	.end
+
+	.inline	__hypercall5_broken, 0
+	movq	%rdi, %rax
+	movq	%rsi, %rdi		/ arg 1
+	movq	%rdx, %rsi		/ arg 2
+	movq	%rcx, %rdx		/ arg 3
+	movq	%r8, %r10		/ r10 = 4th arg
+	movq	%r9, %r8		/ arg 5
+	syscall
+	.end
+
+/*
+ * Read the -real- TSC.
+ * This is difficult to virtualize on the hypervisor given there is
+ * no way to prevent preemption; thus this inline function
+ * should only be used in the middle of the paravirtualized
+ * implementation of tsc_read.
+ */
+	.inline	__rdtsc_insn, 0
+	rdtsc
+	shlq	$32, %rdx
+	orq	%rdx, %rax
+	.end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/hyperevent.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,249 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma	ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/asm_linkage.h>
+#include <sys/hypervisor.h>
+#include <sys/privregs.h>
+#include <sys/segments.h>
+#include <sys/traptrace.h>
+#include <sys/trap.h>
+#include <sys/psw.h>
+#include <sys/x86_archext.h>
+#include <sys/asm_misc.h>
+
+#if !defined(__lint)
+#include "assym.h"
+#endif
+
+#if defined(__lint)
+
+void
+xen_failsafe_callback(void)
+{}
+
+void
+xen_callback(void)
+{}
+
+#else	/* __lint */
+
+	/*
+	 * The stack frame for events is exactly that of an x86 hardware
+	 * interrupt.
+	 *
+	 * The stack frame for a failsafe callback is augmented with saved
+	 * values for segment registers:
+	 *
+	 * i386
+	 *	%ds, %es, %fs, %gs, %eip, %cs, %eflags [, %oldesp, %oldss ]
+	 *
+	 * On amd64 the stack frame for events is exactly that of an hardware
+	 * interrupt with the addition of rcx and r11.
+	 * 
+	 * The stack frame for a failsafe callback is augmented with saved
+	 * values for segment registers:
+	 * 
+	 * amd64
+	 *	%rcx, %r11, %ds, %es, %fs, %gs, %rip, %cs, %rflags,
+	 *      [, %oldrsp, %oldss ]
+	 *
+	 * The hypervisor  does this to allow the guest OS to handle returns
+	 * to processes which have bad segment registers.
+	 *
+	 * [See comments in xen/arch/x86/[x86_64,x86_32]/entry.S]
+	 *
+	 * We will construct a fully fledged 'struct regs' and call trap
+	 * with a #gp fault.
+	 */
+
+#if defined(__amd64)
+
+	ENTRY(xen_failsafe_callback)
+
+	/*
+	 * The saved values of rcx and r11 are on the top of the stack.
+	 * pop them and let INTR_PUSH save them. We drop ds, es, fs and
+	 * gs since the hypervisor will have already loaded these for us.
+	 * If any were bad and faulted the hypervisor would have loaded
+	 * them with the null selctor.
+	 */
+	XPV_TRAP_POP	/* rcx, r11 */
+
+	/*
+	 * XXPV
+	 * If the current segregs are provided for us on the stack by
+	 * the hypervisor then we should simply move them into their proper
+	 * location in the regs struct?
+	 */
+	addq    $_CONST(_MUL(4, CLONGSIZE)), %rsp
+
+	/*
+	 * XXPV
+	 * It would be nice to somehow figure out which selector caused
+	 * #gp fault.
+	 */
+
+	pushq	$0	/* dummy error */
+	pushq	$T_GPFLT
+
+	INTR_PUSH
+	INTGATE_INIT_KERNEL_FLAGS
+
+	/*
+	 * We're here because HYPERVISOR_IRET to userland failed due to a
+	 * bad %cs value. Rewrite %cs, %ss and %rip on the stack so trap
+	 * will know to handle this with kern_gpfault and kill the currently
+	 * running process.
+	 */
+	movq	$KCS_SEL, REGOFF_CS(%rsp)
+	movq	$KDS_SEL, REGOFF_SS(%rsp)
+	leaq	nopop_sys_rtt_syscall(%rip), %rdi
+	movq	%rdi, REGOFF_RIP(%rsp)
+
+	TRACE_PTR(%rdi, %rbx, %ebx, %rcx, $TT_EVENT) /* Uses labels 8 and 9 */
+	TRACE_REGS(%rdi, %rsp, %rbx, %rcx)	/* Uses label 9 */
+	TRACE_STAMP(%rdi)		/* Clobbers %eax, %edx, uses 9 */
+
+	movq	%rsp, %rbp
+
+	TRACE_STACK(%rdi)
+
+	movq	%rbp, %rdi
+
+	ENABLE_INTR_FLAGS
+
+	movq	%rbp, %rdi
+	xorl	%esi, %esi
+	movl	%gs:CPU_ID, %edx
+	call	trap		/* trap(rp, addr, cpuid) handles all trap */
+	jmp	_sys_rtt
+	SET_SIZE(xen_failsafe_callback)
+
+#elif defined(__i386)
+
+	ENTRY(xen_failsafe_callback)
+
+	/*
+	 * drop ds, es, fs and gs
+	 */
+	addl    $_CONST(_MUL(4, CLONGSIZE)), %esp /* see comment for 64-bit */
+
+	pushl	$0	/* dummy error (see comment for 64-bit) */
+	pushl	$T_GPFLT
+
+	INTR_PUSH
+	INTGATE_INIT_KERNEL_FLAGS	/* (set kernel flag values) */
+
+	/*
+	 * The fact were here is because HYPERVISOR_IRET to userland
+	 * failed due to a bad %cs value. Rewrite %cs, %ss and %eip
+	 * on the stack so trap will know to handle this with
+	 * kern_gpfault and kill the currently running process.
+	 */
+	movl	$KCS_SEL, REGOFF_CS(%esp)
+	movl	$KDS_SEL, REGOFF_SS(%esp)
+	leal	nopop_sys_rtt_syscall, %edi
+	movl	%edi, REGOFF_EIP(%esp)
+
+	TRACE_PTR(%edi, %ebx, %ebx, %ecx, $TT_EVENT) /* Uses labels 8 and 9 */
+	TRACE_REGS(%edi, %esp, %ebx, %ecx)	/* Uses label 9 */
+	TRACE_STAMP(%edi)		/* Clobbers %eax, %edx, uses 9 */
+
+	movl	%esp, %ebp
+
+	TRACE_STACK(%edi)
+
+	ENABLE_INTR_FLAGS
+
+	pushl	%gs:CPU_ID
+	pushl	$0
+	pushl	%ebp
+	call	trap		/* trap(rp, addr, cpuid) handles all traps */
+	addl	$12, %esp
+	jmp	_sys_rtt
+	SET_SIZE(xen_failsafe_callback)
+
+#endif	/* __i386 */
+
+#if defined(__amd64)
+
+	ENTRY(xen_callback)
+	XPV_TRAP_POP
+
+	pushq	$0			/* dummy error */
+	pushq	$T_AST
+
+	INTR_PUSH
+	INTGATE_INIT_KERNEL_FLAGS	/* (set kernel flag values) */
+
+	TRACE_PTR(%rdi, %rbx, %ebx, %rcx, $TT_EVENT) /* Uses labels 8 and 9 */
+	TRACE_REGS(%rdi, %rsp, %rbx, %rcx)	/* Uses label 9 */
+	TRACE_STAMP(%rdi)		/* Clobbers %eax, %edx, uses 9 */
+
+	movq	%rsp, %rbp
+
+	TRACE_STACK(%rdi)
+
+	movq	%rdi, %rsi		/* rsi = trap trace recode pointer */
+	movq	%rbp, %rdi		/* rdi = struct regs pointer */
+	call	xen_callback_handler
+
+	jmp	_sys_rtt_ints_disabled
+	/*NOTREACHED*/
+
+	SET_SIZE(xen_callback)
+
+#elif defined(__i386)
+
+	ENTRY(xen_callback)
+	pushl	$0			/* dummy error */
+	pushl	$T_AST
+
+	INTR_PUSH
+	INTGATE_INIT_KERNEL_FLAGS	/* (set kernel flag values) */
+
+	TRACE_PTR(%edi, %ebx, %ebx, %ecx, $TT_EVENT) /* Uses labels 8 and 9 */
+	TRACE_REGS(%edi, %esp, %ebx, %ecx)	/* Uses label 9 */
+	TRACE_STAMP(%edi)		/* Clobbers %eax, %edx, uses 9 */
+
+	movl	%esp, %ebp
+
+	TRACE_STACK(%edi)
+
+	pushl	%edi			/* pass trap trace record pointer */
+	pushl	%ebp			/* pass struct regs pointer */
+	call	xen_callback_handler
+	addl	$8, %esp
+
+	jmp	_sys_rtt_ints_disabled
+	/*NOTREACHED*/
+
+	SET_SIZE(xen_callback)
+
+#endif	/* __i386 */
+#endif	/* __lint */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/hypersubr.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,264 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma	ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/asm_linkage.h>
+#include <sys/hypervisor.h>
+
+/*
+ * XXPV grr - assembler can't deal with an instruction in a quoted string
+ */
+#undef	TRAP_INSTR	/* cause it's currently "int $0x82" */
+
+#if defined(__amd64)
+#define	TRAP_INSTR	syscall
+#elif defined(__i386)
+#define	TRAP_INSTR	int $0x82
+#endif
+
+/*
+ * Hypervisor "system calls"
+ *
+ * i386
+ * 	%eax == call number
+ * 	args in registers (%ebx, %ecx, %edx, %esi, %edi)
+ *
+ * amd64
+ * 	%rax == call number
+ * 	args in registers (%rdi, %rsi, %rdx, %r10, %r8, %r9)
+ *
+ * Note that for amd64 we use %r10 instead of %rcx for passing 4th argument
+ * as in C calling convention since the "syscall" instruction clobbers %rcx.
+ *
+ * (These calls can be done more efficiently as gcc-style inlines, but
+ * for simplicity and help with initial debugging, we use these primitives
+ * to build the hypervisor calls up from C wrappers.)
+ */
+
+#if defined(__lint)
+
+/*ARGSUSED*/
+long
+__hypercall0(int callnum)
+{ return (0); }
+
+/*ARGSUSED*/
+long
+__hypercall1(int callnum, ulong_t a1)
+{ return (0); }
+
+/*ARGSUSED*/
+long
+__hypercall2(int callnum, ulong_t a1, ulong_t a2)
+{ return (0); }
+
+/*ARGSUSED*/
+long
+__hypercall3(int callnum, ulong_t a1, ulong_t a2, ulong_t a3)
+{ return (0); }
+
+/*ARGSUSED*/
+long
+__hypercall4(int callnum, ulong_t a1, ulong_t a2, ulong_t a3, ulong_t a4)
+{ return (0); }
+
+/*ARGSUSED*/
+long
+__hypercall5(int callnum,
+    ulong_t a1, ulong_t a2, ulong_t a3, ulong_t a4, ulong_t a5)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall0_int(int callnum)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall1_int(int callnum, ulong_t a1)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall2_int(int callnum, ulong_t a1, ulong_t a2)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall3_int(int callnum, ulong_t a1, ulong_t a2, ulong_t a3)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall4_int(int callnum, ulong_t a1, ulong_t a2, ulong_t a3, ulong_t a4)
+{ return (0); }
+
+/*ARGSUSED*/
+int
+__hypercall5_int(int callnum,
+    ulong_t a1, ulong_t a2, ulong_t a3, ulong_t a4, ulong_t a5)
+{ return (0); }
+
+#else	/* __lint */
+
+#if defined(__amd64) 
+
+	ENTRY_NP(__hypercall0)
+	ALTENTRY(__hypercall0_int)
+	movl	%edi, %eax
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall0)
+
+	ENTRY_NP(__hypercall1)
+	ALTENTRY(__hypercall1_int)
+	movl	%edi, %eax
+	movq	%rsi, %rdi		/* arg 1 */
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall1)
+
+	ENTRY_NP(__hypercall2)
+	ALTENTRY(__hypercall2_int)
+	movl	%edi, %eax
+	movq	%rsi, %rdi		/* arg 1 */
+	movq	%rdx, %rsi		/* arg 2 */
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall2)
+
+	ENTRY_NP(__hypercall3)
+	ALTENTRY(__hypercall3_int)
+	movl	%edi, %eax
+	movq	%rsi, %rdi		/* arg 1 */
+	movq	%rdx, %rsi		/* arg 2 */
+	movq	%rcx, %rdx		/* arg 3 */
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall3)
+
+	ENTRY_NP(__hypercall4)
+	ALTENTRY(__hypercall4_int)
+	movl	%edi, %eax
+	movq	%rsi, %rdi		/* arg 1 */
+	movq	%rdx, %rsi		/* arg 2 */
+	movq	%rcx, %rdx		/* arg 3 */
+	movq	%r8, %r10		/* r10 = 4th arg */
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall4)
+
+	ENTRY_NP(__hypercall5)
+	ALTENTRY(__hypercall5_int)
+	movl	%edi, %eax
+	movq	%rsi, %rdi		/* arg 1 */
+	movq	%rdx, %rsi		/* arg 2 */
+	movq	%rcx, %rdx		/* arg 3 */
+	movq	%r8, %r10		/* r10 = 4th arg */
+	movq	%r9, %r8		/* arg 5 */
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall5)
+
+#elif defined(__i386)
+
+	ENTRY_NP(__hypercall0)
+	ALTENTRY(__hypercall0_int)
+	movl	4(%esp), %eax
+	TRAP_INSTR
+	ret
+	SET_SIZE(__hypercall0)
+
+	ENTRY_NP(__hypercall1)
+	ALTENTRY(__hypercall1_int)
+	pushl	%ebx
+	movl	8(%esp), %eax
+	movl	12(%esp), %ebx
+	TRAP_INSTR
+	popl	%ebx
+	ret
+	SET_SIZE(__hypercall1)
+
+	ENTRY_NP(__hypercall2)
+	ALTENTRY(__hypercall2_int)
+	pushl	%ebx
+	movl	8(%esp), %eax
+	movl	12(%esp), %ebx
+	movl	16(%esp), %ecx
+	TRAP_INSTR
+	popl	%ebx
+	ret
+	SET_SIZE(__hypercall2)
+
+	ENTRY_NP(__hypercall3)
+	ALTENTRY(__hypercall3_int)
+	pushl	%ebx
+	movl	8(%esp), %eax
+	movl	12(%esp), %ebx
+	movl	16(%esp), %ecx
+	movl	20(%esp), %edx
+	TRAP_INSTR
+	popl	%ebx
+	ret
+	SET_SIZE(__hypercall3)
+
+	ENTRY_NP(__hypercall4)
+	ALTENTRY(__hypercall4_int)
+	pushl	%ebx
+	pushl	%esi
+	movl	12(%esp), %eax
+	movl	16(%esp), %ebx
+	movl	20(%esp), %ecx
+	movl	24(%esp), %edx
+	movl	28(%esp), %esi
+	TRAP_INSTR
+	popl	%esi
+	popl	%ebx
+	ret
+	SET_SIZE(__hypercall4)
+
+	ENTRY_NP(__hypercall5)
+	ALTENTRY(__hypercall5_int)
+	pushl	%ebx
+	pushl	%esi
+	pushl	%edi
+	movl	16(%esp), %eax
+	movl	20(%esp), %ebx
+	movl	24(%esp), %ecx
+	movl	28(%esp), %edx
+	movl	32(%esp), %esi
+	movl	36(%esp), %edi
+	TRAP_INSTR
+	popl	%edi
+	popl	%esi
+	popl	%ebx
+	ret
+	SET_SIZE(__hypercall5)
+
+#endif	/* __i386 */
+
+#endif	/* lint */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/ia32.il	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,103 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/
+/ Inline functions for the x86 kernel running on the hypervisor
+/
+
+	.inline	__hypercall0, 4
+	movl	(%esp), %eax
+	int	$0x82
+	.end
+
+	.inline	__hypercall1, 8
+	pushl	%ebx
+	movl	4(%esp), %eax
+	movl	8(%esp), %ebx
+	int	$0x82
+	popl	%ebx
+	.end
+
+	.inline	__hypercall2, 12
+	pushl	%ebx
+	movl	4(%esp), %eax
+	movl	8(%esp), %ebx
+	movl	12(%esp), %ecx
+	int	$0x82
+	popl	%ebx
+	.end
+
+	.inline	__hypercall3, 16
+	pushl	%ebx
+	movl	4(%esp), %eax
+	movl	8(%esp), %ebx
+	movl	12(%esp), %ecx
+	movl	16(%esp), %edx
+	int	$0x82
+	popl	%ebx
+	.end
+
+	.inline	__hypercall4, 20
+	pushl	%ebx
+	pushl	%esi
+	movl	8(%esp), %eax
+	movl	12(%esp), %ebx
+	movl	16(%esp), %ecx
+	movl	20(%esp), %edx
+	movl	24(%esp), %esi
+	int	$0x82
+	popl	%esi
+	popl	%ebx
+	.end
+
+	.inline	__hypercall5, 24
+	pushl	%ebx
+	pushl	%esi
+	pushl	%edi
+	movl	12(%esp), %eax
+	movl	16(%esp), %ebx
+	movl	20(%esp), %ecx
+	movl	24(%esp), %edx
+	movl	28(%esp), %esi
+	movl	32(%esp), %edi
+	int	$0x82
+	popl	%edi
+	popl	%esi
+	popl	%ebx
+	.end
+
+/*
+ * Read the -real- TSC.
+ * This is difficult to virtualize on the hypervisor given there is
+ * no way to prevent preemption; thus this inline function
+ * should only be used in the middle of the paravirtualized
+ * implementation of tsc_read.
+ */
+	.inline	__rdtsc_insn, 0
+	rdtsc
+	.end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/panic_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,395 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma	ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/asm_linkage.h>
+#include <sys/hypervisor.h>
+#include <sys/privregs.h>
+#include <sys/segments.h>
+#include <sys/traptrace.h>
+#include <sys/trap.h>
+#include <sys/psw.h>
+#include <sys/x86_archext.h>
+#include <sys/asm_misc.h>
+#include <sys/panic.h>
+
+#if !defined(__lint)
+#include "assym.h"
+#endif
+
+#if defined(__lint)
+
+void
+xpv_panic_callback(void)
+{}
+
+/* ARGSUSED */
+void
+xpv_panic_setcr3(ulong_t cr3)
+{}
+
+void
+xpv_panic_reload_cr3(void)
+{}
+
+void
+xpv_resetgs(void)
+{}
+
+#else	/* __lint */
+
+#if defined(__amd64)
+	ENTRY_NP(xpv_panic_getcr3)
+	movq	%cr3, %rax
+	ret
+	SET_SIZE(xpv_panic_getcr3)
+
+	ENTRY_NP(xpv_panic_setcr3)
+	movq	%rdi, %cr3
+	ret
+	SET_SIZE(xpv_panic_setcr3)
+
+	ENTRY(xpv_panic_reload_cr3)
+	movq	%cr3, %rdi
+	movq	%rdi, %cr3
+	ret
+	SET_SIZE(xpv_panic_reload_cr3)
+
+	ENTRY_NP(xpv_panic_prep)
+	pushq   %rbp
+	movq	%rsp, %rbp
+
+	subq	$REGSIZE, %rsp
+	movq	%rax, REGOFF_RAX(%rsp)
+	movq	%rbx, REGOFF_RBX(%rsp)
+	movq	%rsp, %rax
+	addq	$REGSIZE, %rax
+	movq	(%rax), %rbx
+	movq	%rbx, REGOFF_RBP(%rsp)
+	movq	8(%rax), %rbx
+	movq	%rbx, REGOFF_TRAPNO(%rsp)
+	movq	16(%rax), %rbx
+	movq	%rbx, REGOFF_ERR(%rsp)
+	movq	24(%rax), %rbx
+	movq	%rbx, REGOFF_RIP(%rsp)
+	movq	32(%rax), %rbx
+	movq	%rbx, REGOFF_CS(%rsp)
+	movq	40(%rax), %rbx
+	movq	%rbx, REGOFF_RFL(%rsp)
+	addq	$56, %rax
+	movq	%rax, REGOFF_RSP(%rsp)
+	xorl	%eax, %eax
+	movw	%gs, %ax
+	mov	%rax, REGOFF_GS(%rsp)
+	movw	%fs, %ax
+	mov	%rax, REGOFF_FS(%rsp)
+	movw	%es, %ax
+	mov	%rax, REGOFF_ES(%rsp)
+	movw	%ds, %ax
+	mov	%rax, REGOFF_DS(%rsp)
+	movw	%ss, %ax
+	mov	%rax, REGOFF_SS(%rsp)
+	movq	%rcx, REGOFF_RCX(%rsp)
+	movq	%rdx, REGOFF_RDX(%rsp)
+	movq	%rdi, REGOFF_RDI(%rsp)
+	movq	%rsi, REGOFF_RSI(%rsp)
+	movq	%r8, REGOFF_R8(%rsp)
+	movq	%r9, REGOFF_R9(%rsp)
+	movq	%r10, REGOFF_R10(%rsp)
+	movq	%r11, REGOFF_R11(%rsp)
+	movq	%r12, REGOFF_R12(%rsp)
+	movq	%r13, REGOFF_R13(%rsp)
+	movq	%r14, REGOFF_R14(%rsp)
+	movq	%r15, REGOFF_R15(%rsp)
+
+	movq	%rsp, %rdi
+	call	xpv_die
+	SET_SIZE(xpv_panic_prep)
+
+	/*
+	 * Switch to the Solaris panic stack and jump into the Xen panic
+	 * handling code.
+	 */
+	ENTRY_NP(xpv_panic_hdlr)
+	leaq	panic_stack(%rip), %rsp
+	addq	$PANICSTKSIZE, %rsp
+	call	xpv_do_panic
+	SET_SIZE(xpv_panic_hdlr)
+
+	ENTRY_NP(xpv_surprise_intr)
+	pushq   %rbp
+	movq	%rsp, %rbp
+	subq	$REGOFF_TRAPNO, %rsp
+	__SAVE_REGS
+	movq	%rsp, %rdi
+	addq	$REGOFF_TRAPNO, %rdi
+	call	xpv_interrupt
+	__RESTORE_REGS
+	addq	$REGOFF_TRAPNO, %rsp
+	popq	%rbp
+	iretq
+	SET_SIZE(xpv_surprise_intr)
+
+	ENTRY_NP(xpv_timer_trap)
+	pushq   %rbp
+	movq	%rsp, %rbp
+	subq	$REGOFF_TRAPNO, %rsp
+	__SAVE_REGS
+	movq	%rsp, %rdi
+	addq	$REGOFF_TRAPNO, %rdi
+	call	xpv_timer_tick
+	__RESTORE_REGS
+	addq	$REGOFF_TRAPNO, %rsp
+	popq	%rbp
+	iretq
+	SET_SIZE(xpv_timer_trap)
+
+#elif defined(__i386)
+
+	ENTRY_NP(xpv_panic_setcr3)
+	movl	4(%esp), %eax
+	movl	%eax, %cr3
+	ret
+	SET_SIZE(xpv_panic_setcr3)
+
+	ENTRY(xpv_panic_reload_cr3)
+	movl    %cr3, %eax
+	movl    %eax, %cr3
+	ret
+	SET_SIZE(xpv_panic_reload_cr3)
+
+	/*
+	 * Stack on entry:
+	 *  +------------+
+	 *  |   EFLAGS  |
+	 *  |   CS      |
+	 *  |   EIP     |
+	 *  |   Error   |
+	 *  |   Trap    |   <---- %esp
+	 *  +------------+
+	 */
+	ENTRY_NP(xpv_panic_prep)
+	pushl   %ebp
+	movl	%esp, %ebp
+
+	subl	$REGSIZE, %esp
+	movl	%eax, REGOFF_EAX(%esp)
+	movl	%ebx, REGOFF_EBX(%esp)
+	movl	%esp, %eax
+	addl	$REGSIZE, %eax
+	movl	(%eax), %ebx
+	movl	%ebx, REGOFF_EBP(%esp)
+	movl	4(%eax), %ebx
+	movl	%ebx, REGOFF_TRAPNO(%esp)
+	movl	8(%eax), %ebx
+	movl	%ebx, REGOFF_ERR(%esp)
+	movl	12(%eax), %ebx
+	movl	%ebx, REGOFF_EIP(%esp)
+	movl	16(%eax), %ebx
+	movl	%ebx, REGOFF_CS(%esp)
+	movl	20(%eax), %ebx
+	movl	%ebx, REGOFF_EFL(%esp)
+	addl	$28, %eax
+	movl	%eax, REGOFF_ESP(%esp)
+	xorl	%eax, %eax
+	movw	%gs, %ax
+	mov	%eax, REGOFF_GS(%esp)
+	movw	%fs, %ax
+	mov	%eax, REGOFF_FS(%esp)
+	movw	%es, %ax
+	mov	%eax, REGOFF_ES(%esp)
+	movw	%ds, %ax
+	mov	%eax, REGOFF_DS(%esp)
+	movw	%ss, %ax
+	mov	%eax, REGOFF_SS(%esp)
+	movl	%ecx, REGOFF_ECX(%esp)
+	movl	%edx, REGOFF_EDX(%esp)
+	movl	%edi, REGOFF_EDI(%esp)
+	movl	%esi, REGOFF_ESI(%esp)
+	pushl  	%esp
+	call	xpv_die
+	SET_SIZE(xpv_panic_prep)
+
+	/*
+	 * Switch to the Solaris panic stack and jump into the Xen panic
+	 * handling code.
+	 */
+	ENTRY_NP(xpv_panic_hdlr)
+	movl	4(%esp), %eax
+	lea	panic_stack, %esp
+	add	$PANICSTKSIZE, %esp
+	pushl	%eax
+	call	xpv_do_panic
+	SET_SIZE(xpv_panic_hdlr)
+
+	ENTRY_NP(xpv_surprise_intr)
+	push	%ebp
+	movl	%esp, %ebp
+	pusha
+	call	xpv_interrupt
+	popa
+	pop	%ebp
+	iret
+	SET_SIZE(xpv_surprise_intr)
+
+	ENTRY_NP(xpv_timer_trap)
+	push	%ebp
+	movl	%esp, %ebp
+	pusha
+	call	xpv_timer_tick
+	popa
+	pop	%ebp
+	iret
+	SET_SIZE(xpv_timer_trap)
+
+#endif	/* __i386 */
+
+	ENTRY_NP(xpv_panic_sti)
+	sti
+	ret
+	SET_SIZE(xpv_panic_sti)
+
+	ENTRY_NP(xpv_panic_halt)
+	sti
+	hlt
+	ret
+	SET_SIZE(xpv_panic_halt)
+
+	ENTRY_NP(xpv_panic_resetgs)
+	movl	$KGS_SEL, %eax
+	movw	%ax, %gs
+	ret
+	SET_SIZE(xpv_panic_resetgs)
+
+	ENTRY_NP(xpv_invaltrap)
+	push	$0xbad0
+	push	$0x0bad
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_invaltrap) 
+
+	ENTRY_NP(xpv_div0trap)
+	push	$0
+	push	$T_ZERODIV
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_div0trap)
+
+	ENTRY_NP(xpv_dbgtrap)
+	push	$0
+	push	$T_SGLSTP
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_dbgtrap)
+
+	ENTRY_NP(xpv_nmiint)
+	push	$0
+	push	$T_NMIFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_nmiint)
+
+	ENTRY_NP(xpv_brktrap)
+	/* XXX: check for error */
+	push	$T_BPTFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_brktrap)
+
+	ENTRY_NP(xpv_ovflotrap)
+	push	$0
+	push	$T_OVFLW
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_ovflotrap)
+
+	ENTRY_NP(xpv_boundstrap)
+	push	$0
+	push	$T_BOUNDFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_boundstrap)
+
+	ENTRY_NP(xpv_invoptrap)
+	push	$T_ILLINST
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_invoptrap)
+
+	ENTRY_NP(xpv_ndptrap)
+	push	$0
+	push	$T_NOEXTFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_ndptrap)
+
+	ENTRY_NP(xpv_syserrtrap)
+	/* XXX: check for error */
+	push	$T_DBLFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_syserrtrap)
+
+	ENTRY_NP(xpv_invtsstrap)
+	push	$T_TSSFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_invtsstrap)
+
+	ENTRY_NP(xpv_segnptrap)
+	push	$T_SEGFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_segnptrap)
+
+	ENTRY_NP(xpv_stktrap)
+	push	$T_STKFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_stktrap)
+
+	ENTRY_NP(xpv_gptrap)
+	push	$T_GPFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_gptrap)
+
+	ENTRY_NP(xpv_pftrap)
+	push	$T_PGFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_pftrap)
+
+	ENTRY_NP(xpv_ndperr)
+	push	$0
+	push	$T_EXTERRFLT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_ndperr)
+
+	ENTRY_NP(xpv_achktrap)
+	push	$T_ALIGNMENT
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_achktrap)
+
+	ENTRY_NP(xpv_mcetrap)
+	push	$0
+	push	$T_MCE
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_mcetrap)
+
+	ENTRY_NP(xpv_xmtrap)
+	push	$0
+	push	$T_SIMDFPE
+	jmp	xpv_panic_prep
+	SET_SIZE(xpv_xmtrap)
+
+#endif	/* __lint */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/ml/xenguest.s	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,75 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#if defined(__lint)
+
+/*
+ * Stop lint complaining about an empty compilation unit!
+ * Sigh.  There should be a better way to handle this.
+ */
+int __lint_xen_guest;
+
+#else	/* __lint */
+
+#include <xen/public/elfnote.h>
+
+/*
+ * A note is a name/value pair that belongs to some class.
+ */
+#define NOTE(class, id, type, value)	\
+	.align	4;			\
+	.4byte	2f - 1f;		\
+	.4byte	4f - 3f;		\
+	.4byte	id;			\
+1: ;					\
+	.string class;			\
+2: ;					\
+	.align	4;			\
+3: ;					\
+	type	value;			\
+4: ;
+
+	.section .note
+	NOTE("Xen", XEN_ELFNOTE_LOADER, .string, "generic")
+	NOTE("Xen", XEN_ELFNOTE_XEN_VERSION, .string, "xen-3.0")
+	NOTE("Xen", XEN_ELFNOTE_GUEST_OS, .string, "Solaris")
+	NOTE("Xen", XEN_ELFNOTE_VIRT_BASE, .4byte, 0x40000000)
+	NOTE("Xen", XEN_ELFNOTE_PADDR_OFFSET, .4byte, 0x40000000)
+#if defined(__i386)
+	/*
+	 * NB: If you want to build a kernel that works on a non-PAE
+	 * hypervisor, just comment out the next line and rebuild Solaris.
+	 * It'll just work, the kernel figures everything out dynamically.
+	 */
+	NOTE("Xen", XEN_ELFNOTE_PAE_MODE, .string, "yes,bimodal")
+	/*
+	 * XXPV: implement XEN_ELFNOTE_HV_START_LOW
+	 */
+#endif
+
+#endif /* __lint */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/npe/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,102 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the PCI-E nexus driver
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= npe
+OBJECTS		= $(PCI_E_NEXUS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(PCI_E_NEXUS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# depends on misc/pcihp misc/acpica
+#
+# For PCI Hotplug support, the misc/pcihp module provides devctl control
+# device and cb_ops functions to support hotplug operations.
+#
+# acpica supplies ACPI access routines
+#
+LDFLAGS	+= -dy -Nmisc/pcihp -Nmisc/acpica -Nmisc/pcie
+
+#
+# Name of the module is needed by the source, to distinguish from other
+# PCI/PCI-express nexi
+#
+CFLAGS		+= -D_MODULE_NAME="\"$(MODULE)\""
+LINTFLAGS	+= -D_MODULE_NAME="\"$(MODULE)\""
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_SUSPICIOUS_COMPARISON
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/balloon.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1065 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/balloon_impl.h>
+#include <sys/hypervisor.h>
+#include <xen/sys/xenbus_impl.h>
+#include <sys/atomic.h>
+#include <sys/cmn_err.h>
+#include <sys/disp.h>
+#include <sys/callb.h>
+#include <xen/public/memory.h>
+#include <vm/hat.h>
+#include <sys/promif.h>
+#include <vm/seg_kmem.h>
+#include <sys/memnode.h>
+#include <sys/param.h>
+#include <vm/vm_dep.h>
+#include <sys/mman.h>
+#include <sys/memlist.h>
+#include <sys/sysmacros.h>
+#include <sys/machsystm.h>
+#include <sys/sdt.h>
+
+/*
+ * This file implements a balloon thread, which controls a domain's memory
+ * reservation, or the amount of memory a domain is currently allocated.
+ * The hypervisor provides the current memory reservation through xenbus,
+ * so we register a watch on this.  We will then be signalled when the
+ * reservation changes.  If it goes up, we map the new mfn's to our pfn's
+ * (allocating page_t's if necessary), and release them into the system.
+ * If the reservation goes down, we grab pages and release them back to
+ * the hypervisor, saving the page_t's for later use.
+ */
+
+/*
+ * Various structures needed by the balloon thread
+ */
+static bln_stats_t bln_stats;
+static kthread_t *bln_thread;
+static kmutex_t bln_mutex;
+static kcondvar_t bln_cv;
+static struct xenbus_watch bln_watch;
+static mfn_t new_high_mfn;
+
+/*
+ * For holding spare page_t structures - keep a singly-linked list.
+ * The list may hold both valid (pagenum < mfn_count) and invalid
+ * (pagenum >= mfn_count) page_t's.  Valid page_t's should be inserted
+ * at the front, and invalid page_t's at the back.  Removal should
+ * always be from the front.  This is a singly-linked list using
+ * p_next, so p_prev is always NULL.
+ */
+static page_t *bln_spare_list_front, *bln_spare_list_back;
+
+int balloon_zero_memory = 1;
+size_t balloon_minkmem = (8 * 1024 * 1024);
+static caddr_t balloon_kva;
+static kmutex_t balloon_kva_mutex;
+static void balloon_zero_page(pfn_t pfn);
+
+/*
+ * reassign_pfn() calls update_contig_pfnlist(), which can cause a large
+ * slowdown when calling multiple times.  If we're reassigning less than the
+ * quota defined here, we just accept the slowdown.  If the count is greater
+ * than the quota, we tell the contig alloc code to stop its accounting until
+ * we're done.  Setting the quota to less than 2 is not supported.
+ *
+ * Note that we define our own wrapper around the external
+ * clear_and_lock_contig_pfnlist(), but we just use the version of
+ * unlock_contig_pfnlist() in vm_machdep.c.
+ */
+uint_t bln_contig_list_quota = 50;
+
+extern void clear_and_lock_contig_pfnlist(void);
+extern void unlock_contig_pfnlist(void);
+
+/*
+ * Lock the pfnlist if necessary (see above), and return whether we locked it.
+ */
+static int
+balloon_lock_contig_pfnlist(int count) {
+	if (count > bln_contig_list_quota) {
+		clear_and_lock_contig_pfnlist();
+		return (1);
+	} else {
+		return (0);
+	}
+}
+
+/*
+ * The page represented by pp is being given back to the hypervisor.
+ * Add the page_t structure to our spare list.
+ */
+static void
+balloon_page_add(page_t *pp)
+{
+	/*
+	 * We need to keep the page exclusively locked
+	 * to prevent swrand from grabbing it.
+	 */
+	ASSERT(PAGE_EXCL(pp));
+	ASSERT(MUTEX_HELD(&bln_mutex));
+
+	pp->p_prev = NULL;
+	if (bln_spare_list_front == NULL) {
+		bln_spare_list_front = bln_spare_list_back = pp;
+		pp->p_next = NULL;
+	} else if (pp->p_pagenum >= mfn_count) {
+		/*
+		 * The pfn is invalid, so add at the end of list.  Since these
+		 * adds should *only* be done by balloon_init_new_pages(), and
+		 * that does adds in order, the following ASSERT should
+		 * never trigger.
+		 */
+		ASSERT(pp->p_pagenum > bln_spare_list_back->p_pagenum);
+		bln_spare_list_back->p_next = pp;
+		pp->p_next = NULL;
+		bln_spare_list_back = pp;
+	} else {
+		/* Add at beginning of list */
+		pp->p_next = bln_spare_list_front;
+		bln_spare_list_front = pp;
+	}
+}
+
+/*
+ * Return a page_t structure from our spare list, or NULL if none are available.
+ */
+static page_t *
+balloon_page_sub(void)
+{
+	page_t *pp;
+
+	ASSERT(MUTEX_HELD(&bln_mutex));
+	if (bln_spare_list_front == NULL) {
+		return (NULL);
+	}
+
+	pp = bln_spare_list_front;
+	ASSERT(PAGE_EXCL(pp));
+	ASSERT(pp->p_pagenum <= mfn_count);
+	if (pp->p_pagenum == mfn_count) {
+		return (NULL);
+	}
+
+	bln_spare_list_front = pp->p_next;
+	if (bln_spare_list_front == NULL)
+		bln_spare_list_back = NULL;
+	pp->p_next = NULL;
+	return (pp);
+}
+
+/*
+ * NOTE: We currently do not support growing beyond the boot memory size,
+ * so the following function will not be called.  It is left in here with
+ * the hope that someday this restriction can be lifted, and this code can
+ * be used.
+ */
+
+/*
+ * This structure is placed at the start of every block of new pages
+ */
+typedef struct {
+	struct memseg	memseg;
+	struct memlist	memlist;
+	page_t		pages[1];
+} mem_structs_t;
+
+/*
+ * To make the math below slightly less confusing, we calculate the first
+ * two parts here.  page_t's are handled separately, so they are not included.
+ */
+#define	MEM_STRUCT_SIZE	(sizeof (struct memseg) + sizeof (struct memlist))
+
+/*
+ * We want to add memory, but have no spare page_t structures.  Use some of
+ * our new memory for the page_t structures.
+ *
+ * Somewhat similar to kphysm_add_memory_dynamic(), but simpler.
+ */
+static int
+balloon_init_new_pages(mfn_t framelist[], pgcnt_t count)
+{
+	pgcnt_t	metapgs, totalpgs, num_pages;
+	paddr_t	metasz;
+	pfn_t	meta_start;
+	page_t	*page_array;
+	caddr_t	va;
+	int	i, rv, locked;
+	mem_structs_t *mem;
+	struct memseg *segp;
+
+	/* Calculate the number of pages we're going to add */
+	totalpgs = bln_stats.bln_new_target - bln_stats.bln_current_pages;
+
+	/*
+	 * The following calculates the number of "meta" pages -- the pages
+	 * that will be required to hold page_t structures for all new pages.
+	 * Proof of this calculation is left up to the reader.
+	 */
+	metapgs = totalpgs - (((uint64_t)(totalpgs) << PAGESHIFT) /
+	    (PAGESIZE + sizeof (page_t)));
+
+	/*
+	 * Given the number of page_t structures we need, is there also
+	 * room in our meta pages for a memseg and memlist struct?
+	 * If not, we'll need one more meta page.
+	 */
+	if ((metapgs << PAGESHIFT) < (totalpgs * sizeof (page_t) +
+	    MEM_STRUCT_SIZE))
+		metapgs++;
+
+	/*
+	 * metapgs is calculated from totalpgs, which may be much larger than
+	 * count.  If we don't have enough pages, all of the pages in this
+	 * batch will be made meta pages, and a future trip through
+	 * balloon_inc_reservation() will add the rest of the meta pages.
+	 */
+	if (metapgs > count)
+		metapgs = count;
+
+	/*
+	 * Figure out the number of page_t structures that can fit in metapgs
+	 *
+	 * This will cause us to initialize more page_t structures than we
+	 * need - these may be used in future memory increases.
+	 */
+	metasz = pfn_to_pa(metapgs);
+	num_pages = (metasz - MEM_STRUCT_SIZE) / sizeof (page_t);
+
+	DTRACE_PROBE3(balloon__alloc__stats, pgcnt_t, totalpgs, pgcnt_t,
+	    num_pages, pgcnt_t, metapgs);
+
+	/*
+	 * We only increment mfn_count by count, not num_pages, to keep the
+	 * space of all valid pfns contiguous.  This means we create page_t
+	 * structures with invalid pagenums -- we deal with this situation
+	 * in balloon_page_sub.
+	 */
+	mfn_count += count;
+
+	/*
+	 * Get a VA for the pages that will hold page_t and other structures.
+	 * The memseg and memlist structures will go at the beginning, with
+	 * the page_t structures following.
+	 */
+	va = (caddr_t)vmem_alloc(heap_arena, metasz, VM_SLEEP);
+	/* LINTED: improper alignment */
+	mem = (mem_structs_t *)va;
+	page_array = mem->pages;
+
+	meta_start = bln_stats.bln_max_pages;
+
+	/*
+	 * Set the mfn to pfn mapping for the meta pages.
+	 */
+	locked = balloon_lock_contig_pfnlist(metapgs);
+	for (i = 0; i < metapgs; i++) {
+		reassign_pfn(bln_stats.bln_max_pages + i, framelist[i]);
+	}
+	if (locked)
+		unlock_contig_pfnlist();
+
+	/*
+	 * For our meta pages, map them in and zero the page.
+	 * This will be the first time touching the new pages.
+	 */
+	hat_devload(kas.a_hat, va, metasz, bln_stats.bln_max_pages,
+	    PROT_READ | PROT_WRITE,
+	    HAT_LOAD | HAT_LOAD_LOCK | HAT_LOAD_NOCONSIST);
+	bzero(va, metasz);
+
+	/*
+	 * Initialize the page array for the new pages.
+	 */
+	for (i = 0; i < metapgs; i++) {
+		page_array[i].p_pagenum = bln_stats.bln_max_pages++;
+		page_array[i].p_offset = (u_offset_t)-1;
+		page_iolock_init(&page_array[i]);
+		rv = page_lock(&page_array[i], SE_EXCL, NULL, P_NO_RECLAIM);
+		ASSERT(rv == 1);
+	}
+
+	/*
+	 * For the rest of the pages, initialize the page_t struct and
+	 * add them to the free list
+	 */
+	for (i = metapgs; i < num_pages; i++) {
+		page_array[i].p_pagenum = bln_stats.bln_max_pages++;
+		page_array[i].p_offset = (u_offset_t)-1;
+		page_iolock_init(&page_array[i]);
+		rv = page_lock(&page_array[i], SE_EXCL, NULL, P_NO_RECLAIM);
+		ASSERT(rv == 1);
+		balloon_page_add(&page_array[i]);
+	}
+
+	/*
+	 * Remember where I said that we don't call this function?  The missing
+	 * code right here is why.  We need to set up kpm mappings for any new
+	 * pages coming in.  However, if someone starts up a domain with small
+	 * memory, then greatly increases it, we could get in some horrible
+	 * deadlock situations as we steal page tables for kpm use, and
+	 * userland applications take them right back before we can use them
+	 * to set up our new memory.  Once a way around that is found, and a
+	 * few other changes are made, we'll be able to enable this code.
+	 */
+
+	/*
+	 * Update kernel structures, part 1: memsegs list
+	 */
+	mem->memseg.pages_base = meta_start;
+	mem->memseg.pages_end = bln_stats.bln_max_pages - 1;
+	mem->memseg.pages = &page_array[0];
+	mem->memseg.epages = &page_array[num_pages - 1];
+	mem->memseg.next = NULL;
+	memsegs_lock(1);
+	for (segp = memsegs; segp->next != NULL; segp = segp->next)
+		;
+	segp->next = &mem->memseg;
+	memsegs_unlock(1);
+
+	/*
+	 * Update kernel structures, part 2: mem_node array
+	 */
+	mem_node_add_slice(meta_start, bln_stats.bln_max_pages);
+
+	/*
+	 * Update kernel structures, part 3: phys_install array
+	 * (*sigh* how many of these things do we need?)
+	 */
+	memlist_write_lock();
+	memlist_add(pfn_to_pa(meta_start), num_pages, &mem->memlist,
+	    &phys_install);
+	memlist_write_unlock();
+
+	build_pfn_hash();
+
+	return (metapgs);
+}
+
+/* How many ulong_t's can we fit on a page? */
+#define	FRAME_ARRAY_SIZE	(PAGESIZE / sizeof (ulong_t))
+
+/*
+ * These are too large to declare on the stack, so we make them static instead
+ */
+static ulong_t	mfn_frames[FRAME_ARRAY_SIZE];
+static pfn_t	pfn_frames[FRAME_ARRAY_SIZE];
+
+/*
+ * This function is called when our reservation is increasing.  Make a
+ * hypervisor call to get our new pages, then integrate them into the system.
+ */
+static spgcnt_t
+balloon_inc_reservation(ulong_t credit)
+{
+	int	i, cnt, locked;
+	int	meta_pg_start, meta_pg_end;
+	long	rv;
+	page_t	*pp;
+	page_t	*new_list_front, *new_list_back;
+
+	rv = 0;
+	new_list_front = new_list_back = NULL;
+	meta_pg_start = meta_pg_end = 0;
+	bzero(mfn_frames, PAGESIZE);
+
+	if (credit > FRAME_ARRAY_SIZE)
+		credit = FRAME_ARRAY_SIZE;
+
+	xen_block_migrate();
+	rv = balloon_alloc_pages(credit, mfn_frames);
+
+	if (rv < 0) {
+		xen_allow_migrate();
+		return (0);
+	}
+	for (i = 0; i < rv; i++) {
+		if (mfn_frames[i] > new_high_mfn)
+			new_high_mfn = mfn_frames[i];
+
+		pp = balloon_page_sub();
+		if (pp == NULL) {
+			/*
+			 * We pass the index into the current mfn array,
+			 * then move the counter past the mfns we used
+			 */
+			meta_pg_start = i;
+			cnt = balloon_init_new_pages(&mfn_frames[i], rv - i);
+			i += cnt;
+			meta_pg_end = i;
+			if (i < rv) {
+				pp = balloon_page_sub();
+			} else {
+				ASSERT(i == rv);
+			}
+		}
+		if (pp == NULL) {
+			break;
+		}
+
+		if (new_list_back == NULL) {
+			new_list_front = new_list_back = pp;
+		} else {
+			new_list_back->p_next = pp;
+			new_list_back = pp;
+		}
+		pp->p_next = NULL;
+	}
+	cnt = i;
+	locked = balloon_lock_contig_pfnlist(cnt);
+	for (i = 0, pp = new_list_front; (i < meta_pg_start) && (pp != NULL);
+	    i++, pp = pp->p_next) {
+		reassign_pfn(pp->p_pagenum, mfn_frames[i]);
+	}
+	for (i = meta_pg_end; (i < cnt) && (pp != NULL); i++, pp = pp->p_next) {
+		reassign_pfn(pp->p_pagenum, mfn_frames[i]);
+	}
+	if (locked)
+		unlock_contig_pfnlist();
+	while (new_list_front != NULL) {
+		pp = new_list_front;
+		new_list_front = pp->p_next;
+		page_free(pp, 1);
+	}
+	page_unresv(cnt - (meta_pg_end - meta_pg_start));
+
+	if (cnt < rv) {
+		/*
+		 * We couldn't get page structures.
+		 *
+		 * This shouldn't happen, but causes no real harm if it does.
+		 * On debug kernels, we'll flag it.  On all kernels, we'll
+		 * give back the pages we couldn't assign.
+		 */
+#ifdef DEBUG
+		cmn_err(CE_WARN, "Could only assign %d of %ld pages", i, rv);
+#endif	/* DEBUG */
+
+		(void) balloon_free_pages(rv - i, &mfn_frames[i], NULL, NULL);
+
+		rv = i;
+	}
+
+	xen_allow_migrate();
+	return (rv);
+}
+
+/*
+ * This function is called when we want to decrease the memory reservation
+ * of our domain.  Allocate the memory and make a hypervisor call to give
+ * it back.
+ */
+static spgcnt_t
+balloon_dec_reservation(ulong_t debit)
+{
+	int	i, locked;
+	long	rv;
+	page_t	*pp;
+
+	bzero(mfn_frames, sizeof (mfn_frames));
+	bzero(pfn_frames, sizeof (pfn_frames));
+
+	if (debit > FRAME_ARRAY_SIZE) {
+		debit = FRAME_ARRAY_SIZE;
+	}
+
+	/*
+	 * Don't bother if there isn't a safe amount of kmem left.
+	 */
+	if (kmem_avail() < balloon_minkmem) {
+		kmem_reap();
+		if (kmem_avail() < balloon_minkmem)
+			return (0);
+	}
+
+	if (page_resv(debit, KM_NOSLEEP) == 0) {
+		return (0);
+	}
+	xen_block_migrate();
+	for (i = 0; i < debit; i++) {
+		pp = page_get_high_mfn(new_high_mfn);
+		new_high_mfn = 0;
+		if (pp == NULL) {
+			/*
+			 * Call kmem_reap(), then try once more,
+			 * but only if there is a safe amount of
+			 * kmem left.
+			 */
+			kmem_reap();
+			if (kmem_avail() < balloon_minkmem ||
+			    (pp = page_get_high_mfn(0)) == NULL) {
+				debit = i;
+				break;
+			}
+		}
+		ASSERT(PAGE_EXCL(pp));
+		ASSERT(!hat_page_is_mapped(pp));
+
+		balloon_page_add(pp);
+		pfn_frames[i] = pp->p_pagenum;
+		mfn_frames[i] = pfn_to_mfn(pp->p_pagenum);
+	}
+	if (debit == 0) {
+		xen_allow_migrate();
+		return (0);
+	}
+
+	/*
+	 * Remove all mappings for the pfns from the system
+	 */
+	locked = balloon_lock_contig_pfnlist(debit);
+	for (i = 0; i < debit; i++) {
+		reassign_pfn(pfn_frames[i], MFN_INVALID);
+	}
+	if (locked)
+		unlock_contig_pfnlist();
+
+	rv = balloon_free_pages(debit, mfn_frames, NULL, NULL);
+
+	if (rv < 0) {
+		cmn_err(CE_WARN, "Attempt to return pages to the hypervisor "
+		    "failed - up to %lu pages lost (error = %ld)", debit, rv);
+		rv = 0;
+	} else if (rv != debit) {
+		panic("Unexpected return value (%ld) from decrease reservation "
+		    "hypervisor call", rv);
+	}
+
+	xen_allow_migrate();
+	return (rv);
+}
+
+/*
+ * This function is the callback which is called when the memory/target
+ * node is changed.  When it is fired, we will read a new reservation
+ * target for our domain and signal the worker thread to make the change.
+ *
+ * If the reservation is larger than we can handle, we issue a warning.  dom0
+ * does this automatically every boot, so we skip the first warning on dom0.
+ */
+/*ARGSUSED*/
+static void
+balloon_handler(struct xenbus_watch *watch, const char **vec, uint_t len)
+{
+	ulong_t new_target_kb;
+	pgcnt_t	new_target_pages;
+	int rv;
+	static uchar_t warning_cnt = 0;
+
+	rv = xenbus_scanf(NULL, "memory", "target", "%lu", &new_target_kb);
+	if (rv != 0) {
+		return;
+	}
+
+	/* new_target is in kB - change this to pages */
+	new_target_pages = kbtop(new_target_kb);
+
+	DTRACE_PROBE1(balloon__new__target, pgcnt_t, new_target_pages);
+
+	/*
+	 * Unfortunately, dom0 may give us a target that is larger than
+	 * our max limit.  Re-check the limit, and, if the new target is
+	 * too large, adjust it downwards.
+	 */
+	mutex_enter(&bln_mutex);
+	if (new_target_pages > bln_stats.bln_max_pages) {
+		DTRACE_PROBE2(balloon__target__too__large, pgcnt_t,
+		    new_target_pages, pgcnt_t, bln_stats.bln_max_pages);
+		if (!DOMAIN_IS_INITDOMAIN(xen_info) || warning_cnt != 0) {
+			cmn_err(CE_WARN, "New balloon target (0x%lx pages) is "
+			    "larger than original memory size (0x%lx pages). "
+			    "Ballooning beyond original memory size is not "
+			    "allowed.",
+			    new_target_pages, bln_stats.bln_max_pages);
+		}
+		warning_cnt = 1;
+		bln_stats.bln_new_target = bln_stats.bln_max_pages;
+	} else {
+		bln_stats.bln_new_target = new_target_pages;
+	}
+
+	mutex_exit(&bln_mutex);
+	cv_signal(&bln_cv);
+}
+
+/*
+ * bln_wait_sec can be used to throttle the hv calls, but by default it's
+ * turned off.  If a balloon attempt fails, the wait time is forced on, and
+ * then is exponentially increased as further attempts fail.
+ */
+uint_t bln_wait_sec = 0;
+uint_t bln_wait_shift = 1;
+
+/*
+ * This is the main balloon thread.  Wait on the cv.  When woken, if our
+ * reservation has changed, call the appropriate function to adjust the
+ * reservation.
+ */
+static void
+balloon_worker_thread(void)
+{
+	uint_t		bln_wait;
+	callb_cpr_t	cprinfo;
+	spgcnt_t	rv;
+
+	bln_wait = bln_wait_sec;
+
+	CALLB_CPR_INIT(&cprinfo, &bln_mutex, callb_generic_cpr, "balloon");
+	for (;;) {
+		rv = 0;
+
+		mutex_enter(&bln_mutex);
+		CALLB_CPR_SAFE_BEGIN(&cprinfo);
+		if (bln_stats.bln_new_target != bln_stats.bln_current_pages) {
+			/*
+			 * We weren't able to fully complete the request
+			 * last time through, so try again.
+			 */
+			(void) cv_timedwait(&bln_cv, &bln_mutex,
+			    lbolt + (bln_wait * hz));
+		} else {
+			cv_wait(&bln_cv, &bln_mutex);
+		}
+		CALLB_CPR_SAFE_END(&cprinfo, &bln_mutex);
+
+		if (bln_stats.bln_new_target != bln_stats.bln_current_pages) {
+			if (bln_stats.bln_new_target <
+			    bln_stats.bln_current_pages) {
+				/* reservation shrunk */
+				rv = -balloon_dec_reservation(
+				    bln_stats.bln_current_pages -
+				    bln_stats.bln_new_target);
+			} else if (bln_stats.bln_new_target >
+			    bln_stats.bln_current_pages) {
+				/* reservation grew */
+				rv = balloon_inc_reservation(
+				    bln_stats.bln_new_target -
+				    bln_stats.bln_current_pages);
+			}
+		}
+		if (rv == 0) {
+			if (bln_wait == 0) {
+				bln_wait = 1;
+			} else {
+				bln_wait <<= bln_wait_shift;
+			}
+		} else {
+			bln_stats.bln_current_pages += rv;
+			bln_wait = bln_wait_sec;
+		}
+		if (bln_stats.bln_current_pages < bln_stats.bln_low)
+			bln_stats.bln_low = bln_stats.bln_current_pages;
+		else if (bln_stats.bln_current_pages > bln_stats.bln_high)
+			bln_stats.bln_high = bln_stats.bln_current_pages;
+		mutex_exit(&bln_mutex);
+	}
+}
+
+/*
+ * Called after balloon_init(), which is below.  The xenbus thread is up
+ * and running, so we can register our watch and create the balloon thread.
+ */
+static void
+balloon_config_watch(int state)
+{
+	if (state != XENSTORE_UP)
+		return;
+
+	bln_watch.node = "memory/target";
+	bln_watch.callback = balloon_handler;
+	if (register_xenbus_watch(&bln_watch)) {
+		cmn_err(CE_WARN, "Failed to register balloon watcher; balloon "
+		    "thread will be disabled");
+		return;
+	}
+
+	if (bln_thread == NULL)
+		bln_thread = thread_create(NULL, 0, balloon_worker_thread,
+		    NULL, 0, &p0, TS_RUN, minclsyspri);
+}
+
+/*
+ * Basic initialization of the balloon thread.  Set all of our variables,
+ * and register a callback for later when we can register a xenbus watch.
+ */
+void
+balloon_init(pgcnt_t nr_pages)
+{
+	domid_t domid = DOMID_SELF;
+
+	bln_stats.bln_current_pages = bln_stats.bln_low = nr_pages;
+	bln_stats.bln_new_target = bln_stats.bln_high = nr_pages;
+	bln_stats.bln_max_pages = nr_pages;
+	cv_init(&bln_cv, NULL, CV_DEFAULT, NULL);
+
+	/* init balloon zero logic */
+	balloon_kva = vmem_alloc(heap_arena, PAGESIZE, VM_SLEEP);
+	mutex_init(&balloon_kva_mutex, NULL, MUTEX_DRIVER, NULL);
+
+	bln_stats.bln_hard_limit = (spgcnt_t)HYPERVISOR_memory_op(
+	    XENMEM_maximum_reservation, &domid);
+
+	(void) xs_register_xenbus_callback(balloon_config_watch);
+}
+
+/*
+ * These functions are called from the network drivers when they gain a page
+ * or give one away.  We simply update our count.  Note that the counter
+ * tracks the number of pages we give away, so we need to subtract any
+ * amount passed to balloon_drv_added.
+ */
+void
+balloon_drv_added(int64_t delta)
+{
+	atomic_add_long((ulong_t *)&bln_stats.bln_hv_pages, -delta);
+}
+
+void
+balloon_drv_subtracted(int64_t delta)
+{
+	atomic_add_long((ulong_t *)&bln_stats.bln_hv_pages, delta);
+}
+
+/*
+ * balloon_alloc_pages()
+ *	Allocate page_cnt mfns.  mfns storage provided by the caller.  Returns
+ *	the number of pages allocated, which could be less than page_cnt, or
+ *	a negative number if an error occurred.
+ */
+long
+balloon_alloc_pages(uint_t page_cnt, mfn_t *mfns)
+{
+	xen_memory_reservation_t memres;
+	long rv;
+
+	bzero(&memres, sizeof (memres));
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(memres.extent_start, mfns);
+	memres.domid = DOMID_SELF;
+	memres.nr_extents = page_cnt;
+
+	rv = HYPERVISOR_memory_op(XENMEM_increase_reservation, &memres);
+	if (rv > 0)
+		atomic_add_long((ulong_t *)&bln_stats.bln_hv_pages, -rv);
+	return (rv);
+}
+
+/*
+ * balloon_free_pages()
+ *    free page_cnt pages, using any combination of mfns, pfns, and kva as long
+ *    as they refer to the same mapping. We need to zero the pages before
+ *    giving them back to the hypervisor. kva space is not free'd up in case
+ *    the caller wants to re-use it.
+ */
+long
+balloon_free_pages(uint_t page_cnt, mfn_t *mfns, caddr_t kva, pfn_t *pfns)
+{
+	xen_memory_reservation_t memdec;
+	mfn_t mfn;
+	pfn_t pfn;
+	uint_t i;
+	long e;
+
+
+#if DEBUG
+	/* make sure kva is page aligned and maps to first pfn */
+	if (kva != NULL) {
+		ASSERT(((uintptr_t)kva & PAGEOFFSET) == 0);
+		if (pfns != NULL) {
+			ASSERT(hat_getpfnum(kas.a_hat, kva) == pfns[0]);
+		}
+	}
+#endif
+
+	/* if we have a kva, we can clean all pages with just one bzero */
+	if ((kva != NULL) && balloon_zero_memory) {
+		bzero(kva, (page_cnt * PAGESIZE));
+	}
+
+	/* if we were given a kva and/or a pfn */
+	if ((kva != NULL) || (pfns != NULL)) {
+
+		/*
+		 * All the current callers only pass 1 page when using kva or
+		 * pfns, and use mfns when passing multiple pages.  If that
+		 * assumption is changed, the following code will need some
+		 * work.  The following ASSERT() guarantees we're respecting
+		 * the io locking quota.
+		 */
+		ASSERT(page_cnt < bln_contig_list_quota);
+
+		/* go through all the pages */
+		for (i = 0; i < page_cnt; i++) {
+
+			/* get the next pfn */
+			if (pfns == NULL) {
+				pfn = hat_getpfnum(kas.a_hat,
+				    (kva + (PAGESIZE * i)));
+			} else {
+				pfn = pfns[i];
+			}
+
+			/*
+			 * if we didn't already zero this page, do it now. we
+			 * need to do this *before* we give back the MFN
+			 */
+			if ((kva == NULL) && (balloon_zero_memory)) {
+				balloon_zero_page(pfn);
+			}
+
+			/*
+			 * unmap the pfn. We don't free up the kva vmem space
+			 * so the caller can re-use it. The page must be
+			 * unmapped before it is given back to the hypervisor.
+			 */
+			if (kva != NULL) {
+				hat_unload(kas.a_hat, (kva + (PAGESIZE * i)),
+				    PAGESIZE, HAT_UNLOAD_UNMAP);
+			}
+
+			/* grab the mfn before the pfn is marked as invalid */
+			mfn = pfn_to_mfn(pfn);
+
+			/* mark the pfn as invalid */
+			reassign_pfn(pfn, MFN_INVALID);
+
+			/*
+			 * if we weren't given an array of MFNs, we need to
+			 * free them up one at a time. Otherwise, we'll wait
+			 * until later and do it in one hypercall
+			 */
+			if (mfns == NULL) {
+				bzero(&memdec, sizeof (memdec));
+				/*LINTED: constant in conditional context*/
+				set_xen_guest_handle(memdec.extent_start, &mfn);
+				memdec.domid = DOMID_SELF;
+				memdec.nr_extents = 1;
+				e = HYPERVISOR_memory_op(
+				    XENMEM_decrease_reservation, &memdec);
+				if (e != 1) {
+					cmn_err(CE_PANIC, "balloon: unable to "
+					    "give a page back to the "
+					    "hypervisor.\n");
+				}
+			}
+		}
+
+	/*
+	 * if all we were given was an array of MFN's, we only need to zero out
+	 * each page. The MFNs will be free'd up below.
+	 */
+	} else if (balloon_zero_memory) {
+		ASSERT(mfns != NULL);
+		for (i = 0; i < page_cnt; i++) {
+			pfn = xen_assign_pfn(mfns[i]);
+			balloon_zero_page(pfn);
+			xen_release_pfn(pfn);
+		}
+	}
+
+	/*
+	 * if we were passed in MFNs, we haven't free'd them up yet. We can
+	 * do it with one call.
+	 */
+	if (mfns != NULL) {
+		bzero(&memdec, sizeof (memdec));
+		/*LINTED: constant in conditional context*/
+		set_xen_guest_handle(memdec.extent_start, mfns);
+		memdec.domid = DOMID_SELF;
+		memdec.nr_extents = page_cnt;
+		e = HYPERVISOR_memory_op(XENMEM_decrease_reservation, &memdec);
+		if (e != page_cnt) {
+			cmn_err(CE_PANIC, "balloon: unable to give pages back "
+			    "to the hypervisor.\n");
+		}
+	}
+
+	atomic_add_long((ulong_t *)&bln_stats.bln_hv_pages, page_cnt);
+	return (page_cnt);
+}
+
+
+/*
+ * balloon_replace_pages()
+ *	Try to replace nextexts blocks of 2^order pages.  addr_bits specifies
+ *	how many bits of address the pages must be within (i.e. 16 would mean
+ *	that the pages cannot have an address > 64k).  The constrints are on
+ *	what the hypervisor gives us -- we are free to give any pages in
+ *	exchange.  The array pp is the pages we are giving away.  The caller
+ *	provides storage space for mfns, which hold the new physical pages.
+ */
+long
+balloon_replace_pages(uint_t nextents, page_t **pp, uint_t addr_bits,
+    uint_t order, mfn_t *mfns)
+{
+	xen_memory_reservation_t memres;
+	long fallback_cnt;
+	long cnt;
+	uint_t i, j, page_cnt, extlen;
+	long e;
+	int locked;
+
+
+	/*
+	 * we shouldn't be allocating constrained pages on a guest. It doesn't
+	 * make any sense. They won't be constrained after a migration.
+	 */
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+
+	extlen = 1 << order;
+	page_cnt = nextents * extlen;
+	/* Give back the current pages to the hypervisor */
+	for (i = 0; i < page_cnt; i++) {
+		cnt = balloon_free_pages(1, NULL, NULL, &pp[i]->p_pagenum);
+		if (cnt != 1) {
+			cmn_err(CE_PANIC, "balloon: unable to give a page back "
+			    "to the hypervisor.\n");
+		}
+	}
+
+	/*
+	 * try to allocate the new pages using addr_bits and order. If we can't
+	 * get all of the pages, try to get the remaining pages with no
+	 * constraints and, if that was successful, return the number of
+	 * constrained pages we did allocate.
+	 */
+	bzero(&memres, sizeof (memres));
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(memres.extent_start, mfns);
+	memres.domid = DOMID_SELF;
+	memres.nr_extents = nextents;
+	memres.address_bits = addr_bits;
+	memres.extent_order = order;
+	cnt = HYPERVISOR_memory_op(XENMEM_increase_reservation, &memres);
+	/* assign the new MFNs to the current PFNs */
+	locked = balloon_lock_contig_pfnlist(cnt * extlen);
+	for (i = 0; i < cnt; i++) {
+		for (j = 0; j < extlen; j++) {
+			reassign_pfn(pp[i * extlen + j]->p_pagenum,
+			    mfns[i] + j);
+		}
+	}
+	if (locked)
+		unlock_contig_pfnlist();
+	if (cnt != nextents) {
+		if (cnt < 0) {
+			cnt = 0;
+		}
+
+		/*
+		 * We couldn't get enough memory to satisfy our requirements.
+		 * The above loop will assign the parts of the request that
+		 * were successful (this part may be 0).  We need to fill
+		 * in the rest.  The bzero below clears out extent_order and
+		 * address_bits, so we'll take anything from the hypervisor
+		 * to replace the pages we gave away.
+		 */
+		fallback_cnt = page_cnt - cnt * extlen;
+		bzero(&memres, sizeof (memres));
+		/*LINTED: constant in conditional context*/
+		set_xen_guest_handle(memres.extent_start, mfns);
+		memres.domid = DOMID_SELF;
+		memres.nr_extents = fallback_cnt;
+		e = HYPERVISOR_memory_op(XENMEM_increase_reservation, &memres);
+		if (e != fallback_cnt) {
+			cmn_err(CE_PANIC, "balloon: unable to recover from "
+			    "failed increase_reservation.\n");
+		}
+		locked = balloon_lock_contig_pfnlist(fallback_cnt);
+		for (i = 0; i < fallback_cnt; i++) {
+			uint_t offset = page_cnt - fallback_cnt;
+
+			/*
+			 * We already used pp[0...(cnt * extlen)] before,
+			 * so start at the next entry in the pp array.
+			 */
+			reassign_pfn(pp[i + offset]->p_pagenum, mfns[i]);
+		}
+		if (locked)
+			unlock_contig_pfnlist();
+	}
+
+	/*
+	 * balloon_free_pages increments our counter.  Decrement it here.
+	 */
+	atomic_add_long((ulong_t *)&bln_stats.bln_hv_pages, -(long)page_cnt);
+
+	/*
+	 * return the number of extents we were able to replace. If we got
+	 * this far, we know all the pp's are valid.
+	 */
+	return (cnt);
+}
+
+
+/*
+ * balloon_zero_page()
+ *    zero out the page.
+ */
+static void
+balloon_zero_page(pfn_t pfn)
+{
+	/* balloon_init() should have been called first */
+	ASSERT(balloon_kva != NULL);
+
+	mutex_enter(&balloon_kva_mutex);
+
+	/* map the pfn into kva, zero the page, then unmap the pfn */
+	hat_devload(kas.a_hat, balloon_kva, PAGESIZE, pfn,
+	    HAT_STORECACHING_OK | PROT_READ | PROT_WRITE | HAT_NOSYNC,
+	    HAT_LOAD_LOCK);
+	bzero(balloon_kva, PAGESIZE);
+	hat_unload(kas.a_hat, balloon_kva, PAGESIZE, HAT_UNLOAD);
+
+	mutex_exit(&balloon_kva_mutex);
+}
+
+/*
+ * Called from the driver - return the requested stat.
+ */
+size_t
+balloon_values(int cmd)
+{
+	switch (cmd) {
+	case BLN_IOCTL_CURRENT:
+		return (ptokb(bln_stats.bln_current_pages));
+	case BLN_IOCTL_TARGET:
+		return (ptokb(bln_stats.bln_new_target));
+	case BLN_IOCTL_LOW:
+		return (ptokb(bln_stats.bln_low));
+	case BLN_IOCTL_HIGH:
+		return (ptokb(bln_stats.bln_high));
+	case BLN_IOCTL_LIMIT:
+		return (ptokb(bln_stats.bln_hard_limit));
+	default:
+		panic("Unexpected cmd %d in balloon_values()\n", cmd);
+	}
+	/*NOTREACHED*/
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/evtchn.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1593 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * evtchn.c
+ *
+ * Communication via hypervisor event channels.
+ *
+ * Copyright (c) 2002-2005, K A Fraser
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/* some parts derived from netbsd's hypervisor_machdep.c 1.2.2.2 */
+
+/*
+ *
+ * Copyright (c) 2004 Christian Limpach.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. This section intentionally left blank.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Section 3 of the above license was updated in response to bug 6379571.
+ */
+
+#include <sys/types.h>
+#include <sys/hypervisor.h>
+#include <sys/machsystm.h>
+#include <sys/mutex.h>
+#include <sys/evtchn_impl.h>
+#include <sys/ddi_impldefs.h>
+#include <sys/avintr.h>
+#include <sys/cpuvar.h>
+#include <sys/smp_impldefs.h>
+#include <sys/archsystm.h>
+#include <sys/sysmacros.h>
+#include <sys/cmn_err.h>
+#include <sys/promif.h>
+#include <sys/debug.h>
+#include <sys/psm.h>
+#include <sys/privregs.h>
+#include <sys/trap.h>
+#include <sys/atomic.h>
+#include <sys/cpu.h>
+#include <sys/psw.h>
+#include <sys/traptrace.h>
+#include <sys/stack.h>
+#include <sys/x_call.h>
+#include <xen/public/physdev.h>
+
+/*
+ * This file manages our association between hypervisor event channels and
+ * Solaris's IRQs.  This is a one-to-one mapping, with the exception of
+ * IPI IRQs, for which there is one event channel per CPU participating
+ * in the IPI, and the clock VIRQ which also has an event channel per cpu
+ * and the IRQ for /dev/xen/evtchn. The IRQ types are:
+ *
+ * IRQT_VIRQ:
+ *	The hypervisor's standard virtual IRQ, used for the clock timer, for
+ *	example.  This code allows any cpu to bind to one of these, although
+ *	some are treated specially (i.e. VIRQ_DEBUG).
+ *	Event channel binding is done via EVTCHNOP_bind_virq.
+ *
+ * IRQT_PIRQ:
+ *	These associate a physical IRQ with an event channel via
+ *	EVTCHNOP_bind_pirq.
+ *
+ * IRQT_IPI:
+ *	A cross-call IRQ. Maps to "ncpus" event channels, each of which is
+ *	bound to exactly one of the vcpus.  We do not currently support
+ *	unbinding of IPIs (since Solaris doesn't need it). Uses
+ *	EVTCHNOP_bind_ipi.
+ *
+ * IRQT_EVTCHN:
+ *	A "normal" binding to an event channel, typically used by the frontend
+ *      drivers to bind to the their backend event channel.
+ *
+ * IRQT_DEV_EVTCHN:
+ *	This is a one-time IRQ used by /dev/xen/evtchn. Unlike other IRQs, we
+ *	have a one-IRQ to many-evtchn mapping. We only track evtchn->irq for
+ *	these event channels, which are managed via ec_irq_add/rm_evtchn().
+ *	We enforce that IRQT_DEV_EVTCHN's representative evtchn (->ii_evtchn)
+ *	is zero, and make any calls to irq_evtchn() an error, to prevent
+ *	accidentally attempting to use the illegal evtchn 0.
+ *
+ * Suspend/resume
+ *
+ *	During a suspend/resume cycle, we need to tear down the event channels.
+ *	All other mapping data is kept. The drivers will remove their own event
+ *	channels via xendev on receiving a DDI_SUSPEND.  This leaves us with
+ *	the IPIs and VIRQs, which we handle in ec_suspend() and ec_resume()
+ *	below.
+ *
+ * CPU binding
+ *
+ *	When an event channel is bound to a CPU, we set a bit in a mask present
+ *	in the machcpu (evt_affinity) to indicate that this CPU can accept this
+ *	event channel.  For both IPIs and VIRQs, this binding is fixed at
+ *	allocation time and we never modify it.  All other event channels are
+ *	bound via the PSM either as part of add_avintr(), or interrupt
+ *	redistribution (xen_psm_dis/enable_intr()) as a result of CPU
+ *	offline/online.
+ *
+ * Locking
+ *
+ *	Updates are done holding the ec_lock.  The xen_callback_handler()
+ *	routine reads the mapping data in a lockless fashion.  Additionally
+ *	suspend takes ec_lock to prevent update races during a suspend/resume
+ *	cycle.  The IPI info is also examined without the lock; this is OK
+ *	since we only ever change IPI info during initial setup and resume.
+ */
+
+#define	IRQ_IS_CPUPOKE(irq) (ipi_info[XC_CPUPOKE_PIL].mi_irq == (irq))
+
+#define	EVTCHN_MASKED(ev) \
+	(HYPERVISOR_shared_info->evtchn_mask[(ev) >> EVTCHN_SHIFT] & \
+	(1ul << ((ev) & ((1ul << EVTCHN_SHIFT) - 1))))
+
+static short evtchn_to_irq[NR_EVENT_CHANNELS];
+static cpuset_t evtchn_cpus[NR_EVENT_CHANNELS];
+static int	evtchn_owner[NR_EVENT_CHANNELS];
+#ifdef DEBUG
+static kthread_t *evtchn_owner_thread[NR_EVENT_CHANNELS];
+#endif
+
+static irq_info_t irq_info[NR_IRQS];
+static mec_info_t ipi_info[MAXIPL];
+static mec_info_t virq_info[NR_VIRQS];
+/*
+ * Mailbox for communication with the evtchn device driver.
+ * We rely on only cpu 0 servicing the event channels associated
+ * with the driver.  i.e. all evtchn driver evtchns are bound to cpu 0.
+ */
+volatile int ec_dev_mbox;	/* mailbox for evtchn device driver */
+
+/*
+ * See the locking description above.
+ */
+kmutex_t ec_lock;
+
+/*
+ * Bitmap indicating which PIRQs require the hypervisor to be notified
+ * on unmask.
+ */
+static unsigned long pirq_needs_eoi[NR_PIRQS / (sizeof (unsigned long) * NBBY)];
+
+static int ec_debug_irq = INVALID_IRQ;
+int ec_dev_irq = INVALID_IRQ;
+
+int
+xen_bind_virq(unsigned int virq, processorid_t cpu, int *port)
+{
+	evtchn_bind_virq_t bind;
+	int err;
+
+	bind.virq = virq;
+	bind.vcpu = cpu;
+	if ((err = HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq, &bind)) == 0)
+		*port = bind.port;
+	else
+		err = xen_xlate_errcode(err);
+	return (err);
+}
+
+int
+xen_bind_interdomain(int domid, int remote_port, int *port)
+{
+	evtchn_bind_interdomain_t bind;
+	int err;
+
+	bind.remote_dom  = domid;
+	bind.remote_port = remote_port;
+	if ((err = HYPERVISOR_event_channel_op(EVTCHNOP_bind_interdomain,
+	    &bind)) == 0)
+		*port = bind.local_port;
+	else
+		err = xen_xlate_errcode(err);
+	return (err);
+}
+
+int
+xen_alloc_unbound_evtchn(int domid, int *evtchnp)
+{
+	evtchn_alloc_unbound_t alloc;
+	int err;
+
+	alloc.dom = DOMID_SELF;
+	alloc.remote_dom = domid;
+
+	if ((err = HYPERVISOR_event_channel_op(EVTCHNOP_alloc_unbound,
+	    &alloc)) == 0) {
+		*evtchnp = alloc.port;
+		/* ensure evtchn is masked till we're ready to use it */
+		(void) ec_mask_evtchn(*evtchnp);
+	} else {
+		err = xen_xlate_errcode(err);
+	}
+
+	return (err);
+}
+
+static int
+xen_close_evtchn(int evtchn)
+{
+	evtchn_close_t close;
+	int err;
+
+	close.port = evtchn;
+	err = HYPERVISOR_event_channel_op(EVTCHNOP_close, &close);
+	if (err)
+		err = xen_xlate_errcode(err);
+	return (err);
+}
+
+static int
+xen_bind_ipi(processorid_t cpu)
+{
+	evtchn_bind_ipi_t bind;
+
+	ASSERT(MUTEX_HELD(&ec_lock));
+
+	bind.vcpu = cpu;
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi, &bind) != 0)
+		panic("xen_bind_ipi() failed");
+	return (bind.port);
+}
+
+/* Send future instances of this interrupt to other vcpu. */
+static void
+xen_bind_vcpu(int evtchn, int cpu)
+{
+	evtchn_bind_vcpu_t bind;
+
+	ASSERT(MUTEX_HELD(&ec_lock));
+
+	bind.port = evtchn;
+	bind.vcpu = cpu;
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind) != 0)
+		panic("xen_bind_vcpu() failed");
+}
+
+static int
+xen_bind_pirq(int pirq)
+{
+	evtchn_bind_pirq_t bind;
+	int ret;
+
+	bind.pirq = pirq;
+	bind.flags = BIND_PIRQ__WILL_SHARE;
+	if ((ret = HYPERVISOR_event_channel_op(EVTCHNOP_bind_pirq, &bind)) != 0)
+		panic("xen_bind_pirq() failed (err %d)", ret);
+	return (bind.port);
+}
+
+/* unmask an evtchn and send upcall to appropriate vcpu if pending bit is set */
+static void
+xen_evtchn_unmask(int evtchn)
+{
+	evtchn_unmask_t unmask;
+
+	unmask.port = evtchn;
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_unmask, &unmask) != 0)
+		panic("xen_evtchn_unmask() failed");
+}
+
+static void
+update_evtchn_affinity(int evtchn)
+{
+	cpu_t *cp;
+	struct xen_evt_data *cpe;
+
+	ASSERT(evtchn_to_irq[evtchn] != INVALID_IRQ);
+	ASSERT(MUTEX_HELD(&ec_lock));
+
+	/*
+	 * Use lockless search of cpu_list, similar to mutex_vector_enter().
+	 */
+	kpreempt_disable();
+	cp = cpu_list;
+	do {
+		cpe = cp->cpu_m.mcpu_evt_pend;
+		if (CPU_IN_SET(evtchn_cpus[evtchn], cp->cpu_id))
+			SET_EVTCHN_BIT(evtchn, cpe->evt_affinity);
+		else
+			CLEAR_EVTCHN_BIT(evtchn, cpe->evt_affinity);
+	} while ((cp = cp->cpu_next) != cpu_list);
+	kpreempt_enable();
+}
+
+static void
+bind_evtchn_to_cpuset(int evtchn, cpuset_t cpus)
+{
+	ASSERT(evtchn_to_irq[evtchn] != INVALID_IRQ);
+
+	CPUSET_ZERO(evtchn_cpus[evtchn]);
+	CPUSET_OR(evtchn_cpus[evtchn], cpus);
+	update_evtchn_affinity(evtchn);
+}
+
+static void
+clear_evtchn_affinity(int evtchn)
+{
+	CPUSET_ZERO(evtchn_cpus[evtchn]);
+	update_evtchn_affinity(evtchn);
+}
+
+static void
+alloc_irq_evtchn(int irq, int index, int evtchn, int cpu)
+{
+	irq_info_t *irqp = &irq_info[irq];
+
+	switch (irqp->ii_type) {
+	case IRQT_IPI:
+		ipi_info[index].mi_evtchns[cpu] = evtchn;
+		irqp->ii_u.index = index;
+		break;
+	case IRQT_VIRQ:
+		virq_info[index].mi_evtchns[cpu] = evtchn;
+		irqp->ii_u.index = index;
+		break;
+	default:
+		irqp->ii_u.evtchn = evtchn;
+		break;
+	}
+
+	evtchn_to_irq[evtchn] = irq;
+
+	/*
+	 * If a CPU is not specified, we expect to bind it to a CPU later via
+	 * the PSM.
+	 */
+	if (cpu != -1) {
+		cpuset_t tcpus;
+		CPUSET_ONLY(tcpus, cpu);
+		bind_evtchn_to_cpuset(evtchn, tcpus);
+	}
+}
+
+static int
+alloc_irq(int type, int index, int evtchn, int cpu)
+{
+	int irq;
+	irq_info_t *irqp;
+
+	ASSERT(MUTEX_HELD(&ec_lock));
+	ASSERT(type != IRQT_IPI || cpu != -1);
+
+	for (irq = 0; irq < NR_IRQS; irq++) {
+		if (irq_info[irq].ii_type == IRQT_UNBOUND)
+			break;
+	}
+
+	if (irq == NR_IRQS)
+		panic("No available IRQ to bind to: increase NR_IRQS!\n");
+
+	irqp = &irq_info[irq];
+
+	irqp->ii_type = type;
+	/*
+	 * Set irq/has_handler field to zero which means handler not installed
+	 */
+	irqp->ii_u2.has_handler = 0;
+
+	alloc_irq_evtchn(irq, index, evtchn, cpu);
+	return (irq);
+}
+
+static int
+irq_evtchn(irq_info_t *irqp)
+{
+	int evtchn;
+
+	ASSERT(irqp->ii_type != IRQT_DEV_EVTCHN);
+
+	switch (irqp->ii_type) {
+	case IRQT_IPI:
+		ASSERT(irqp->ii_u.index != 0);
+		evtchn = ipi_info[irqp->ii_u.index].mi_evtchns[CPU->cpu_id];
+		break;
+	case IRQT_VIRQ:
+		evtchn = virq_info[irqp->ii_u.index].mi_evtchns[CPU->cpu_id];
+		break;
+	default:
+		evtchn = irqp->ii_u.evtchn;
+		break;
+	}
+
+	return (evtchn);
+}
+
+static void
+unbind_evtchn(ushort_t *evtchnp)
+{
+	int err;
+
+	ASSERT(MUTEX_HELD(&ec_lock));
+
+	ASSERT(*evtchnp != 0);
+
+	err = xen_close_evtchn(*evtchnp);
+	ASSERT(err == 0);
+	clear_evtchn_affinity(*evtchnp);
+	evtchn_to_irq[*evtchnp] = INVALID_IRQ;
+	*evtchnp = 0;
+}
+
+static void
+pirq_unmask_notify(int pirq)
+{
+	struct physdev_eoi eoi;
+
+	if (TEST_EVTCHN_BIT(pirq, &pirq_needs_eoi[0])) {
+		eoi.irq = pirq;
+		(void) HYPERVISOR_physdev_op(PHYSDEVOP_eoi, &eoi);
+	}
+}
+
+static void
+pirq_query_unmask(int pirq)
+{
+	struct physdev_irq_status_query irq_status;
+
+	irq_status.irq = pirq;
+	(void) HYPERVISOR_physdev_op(PHYSDEVOP_irq_status_query, &irq_status);
+	CLEAR_EVTCHN_BIT(pirq, &pirq_needs_eoi[0]);
+	if (irq_status.flags & XENIRQSTAT_needs_eoi)
+		SET_EVTCHN_BIT(pirq, &pirq_needs_eoi[0]);
+}
+
+static void
+end_pirq(int irq)
+{
+	int evtchn = irq_evtchn(&irq_info[irq]);
+
+	ec_unmask_evtchn(evtchn);
+	pirq_unmask_notify(IRQ_TO_PIRQ(irq));
+}
+
+/*
+ * probe if a pirq is available to bind to, return 1 if available
+ * else return 0.
+ * Note that for debug versions of xen this probe may cause an in use IRQ
+ * warning message from xen.
+ */
+int
+ec_probe_pirq(int pirq)
+{
+	evtchn_bind_pirq_t bind;
+
+	bind.pirq = pirq;
+	bind.flags = 0;
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_pirq, &bind) != 0) {
+		return (0);
+	} else {
+		(void) xen_close_evtchn(bind.port);
+		return (1);
+	}
+}
+
+/*
+ * Bind an event channel to a vcpu
+ */
+void
+ec_bind_vcpu(int evtchn, int cpu)
+{
+	mutex_enter(&ec_lock);
+	xen_bind_vcpu(evtchn, cpu);
+	mutex_exit(&ec_lock);
+}
+
+/*
+ * Set up a physical device irq to be associated with an event channel.
+ */
+void
+ec_setup_pirq(int irq, int ipl, cpuset_t cpus)
+{
+	int evtchn;
+	irq_info_t *irqp = &irq_info[irq];
+
+	/*
+	 * Test if this PIRQ is already bound to an evtchn,
+	 * which means it is a shared IRQ and we don't want to
+	 * bind and do some initial setup that has already been
+	 * done for this irq on a previous trip through this code.
+	 */
+	if (irqp->ii_u.evtchn == INVALID_EVTCHN) {
+		evtchn = xen_bind_pirq(irq);
+
+		pirq_query_unmask(IRQ_TO_PIRQ(irq));
+
+		irqp->ii_type = IRQT_PIRQ;
+		irqp->ii_u.evtchn = evtchn;
+
+		evtchn_to_irq[evtchn] = irq;
+		irqp->ii_u2.ipl = ipl;
+		ec_set_irq_affinity(irq, cpus);
+		ec_enable_irq(irq);
+		pirq_unmask_notify(IRQ_TO_PIRQ(irq));
+	} else {
+		ASSERT(irqp->ii_u2.ipl != 0);
+		cmn_err(CE_NOTE, "IRQ%d is shared", irq);
+		if (ipl > irqp->ii_u2.ipl)
+			irqp->ii_u2.ipl = ipl;
+	}
+}
+
+void
+ec_unbind_irq(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+	mec_info_t *virqp;
+	int drop_lock = 0;
+	int type, i;
+
+	/*
+	 * Nasty, but we need this during suspend.
+	 */
+	if (mutex_owner(&ec_lock) != curthread) {
+		mutex_enter(&ec_lock);
+		drop_lock = 1;
+	}
+
+	type = irqp->ii_type;
+
+	ASSERT((type == IRQT_EVTCHN) || (type == IRQT_PIRQ) ||
+	    (type == IRQT_VIRQ));
+
+	if ((type == IRQT_EVTCHN) || (type == IRQT_PIRQ)) {
+		/* There's only one event channel associated with this irq */
+		unbind_evtchn(&irqp->ii_u.evtchn);
+	} else if (type == IRQT_VIRQ) {
+		/*
+		 * Each cpu on the system can have it's own event channel
+		 * associated with a virq.  Unbind them all.
+		 */
+		virqp = &virq_info[irqp->ii_u.index];
+		for (i = 0; i < NCPU; i++) {
+			if (virqp->mi_evtchns[i] != 0)
+				unbind_evtchn(&virqp->mi_evtchns[i]);
+		}
+		/* Mark the virq structure as invalid. */
+		virqp->mi_irq = INVALID_IRQ;
+	}
+
+	bzero(irqp, sizeof (*irqp));
+	/* Re-reserve PIRQ. */
+	if (type == IRQT_PIRQ)
+		irqp->ii_type = IRQT_PIRQ;
+
+	if (drop_lock)
+		mutex_exit(&ec_lock);
+}
+
+/*ARGSUSED*/
+static int
+do_nothing_function(xc_arg_t a1, xc_arg_t a2, xc_arg_t a3)
+{
+	return (0);
+}
+
+/*
+ * Rebind an event channel for delivery to a CPU.
+ */
+void
+ec_set_irq_affinity(int irq, cpuset_t dest)
+{
+	int evtchn, tcpu;
+	irq_info_t *irqp = &irq_info[irq];
+
+	mutex_enter(&ec_lock);
+
+	ASSERT(irq < NR_IRQS);
+	ASSERT(irqp->ii_type != IRQT_UNBOUND);
+
+	/*
+	 * Binding is done at allocation time for these types, so we should
+	 * never modify them.
+	 */
+	if (irqp->ii_type == IRQT_IPI || irqp->ii_type == IRQT_VIRQ ||
+	    irqp->ii_type == IRQT_DEV_EVTCHN) {
+		mutex_exit(&ec_lock);
+		return;
+	}
+
+	CPUSET_FIND(dest, tcpu);
+	ASSERT(tcpu != CPUSET_NOTINSET);
+
+	evtchn = irq_evtchn(irqp);
+
+	xen_bind_vcpu(evtchn, tcpu);
+
+	bind_evtchn_to_cpuset(evtchn, dest);
+
+	mutex_exit(&ec_lock);
+
+	/*
+	 * Now send the new target processor a NOP IPI. When this returns,
+	 * it will check for any pending interrupts, and so service any that
+	 * got delivered to the wrong processor by mistake.
+	 */
+	xc_call(NULL, NULL, NULL, X_CALL_HIPRI, dest, do_nothing_function);
+}
+
+int
+ec_set_irq_priority(int irq, int pri)
+{
+	irq_info_t *irqp;
+
+	if (irq >= NR_IRQS)
+		return (-1);
+
+	irqp = &irq_info[irq];
+
+	if (irqp->ii_type == IRQT_UNBOUND)
+		return (-1);
+
+	irqp->ii_u2.ipl = pri;
+
+	return (0);
+}
+
+void
+ec_clear_irq_priority(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+
+	ASSERT(irq < NR_IRQS);
+	ASSERT(irqp->ii_type != IRQT_UNBOUND);
+
+	irqp->ii_u2.ipl = 0;
+}
+
+int
+ec_bind_evtchn_to_irq(int evtchn)
+{
+	mutex_enter(&ec_lock);
+
+	ASSERT(evtchn_to_irq[evtchn] == INVALID_IRQ);
+
+	(void) alloc_irq(IRQT_EVTCHN, 0, evtchn, -1);
+
+	mutex_exit(&ec_lock);
+	return (evtchn_to_irq[evtchn]);
+}
+
+int
+ec_bind_virq_to_irq(int virq, int cpu)
+{
+	int err;
+	int evtchn;
+	mec_info_t *virqp;
+
+	virqp = &virq_info[virq];
+	mutex_enter(&ec_lock);
+
+	err = xen_bind_virq(virq, cpu, &evtchn);
+	ASSERT(err == 0);
+
+	ASSERT(evtchn_to_irq[evtchn] == INVALID_IRQ);
+
+	if (virqp->mi_irq == INVALID_IRQ) {
+		virqp->mi_irq = alloc_irq(IRQT_VIRQ, virq, evtchn, cpu);
+	} else {
+		alloc_irq_evtchn(virqp->mi_irq, virq, evtchn, cpu);
+	}
+
+	mutex_exit(&ec_lock);
+
+	return (virqp->mi_irq);
+}
+
+int
+ec_bind_ipi_to_irq(int ipl, int cpu)
+{
+	int evtchn;
+	ulong_t flags;
+	mec_info_t *ipip;
+
+	mutex_enter(&ec_lock);
+
+	ipip = &ipi_info[ipl];
+
+	evtchn = xen_bind_ipi(cpu);
+
+	ASSERT(evtchn_to_irq[evtchn] == INVALID_IRQ);
+
+	if (ipip->mi_irq == INVALID_IRQ) {
+		ipip->mi_irq = alloc_irq(IRQT_IPI, ipl, evtchn, cpu);
+	} else {
+		alloc_irq_evtchn(ipip->mi_irq, ipl, evtchn, cpu);
+	}
+
+	/*
+	 * Unmask the new evtchn so that it can be seen by the target cpu
+	 */
+	flags = intr_clear();
+	ec_unmask_evtchn(evtchn);
+	intr_restore(flags);
+
+	mutex_exit(&ec_lock);
+	return (ipip->mi_irq);
+}
+
+/*
+ * When bringing up a CPU, bind to all the IPIs that CPU0 bound.
+ */
+void
+ec_bind_cpu_ipis(int cpu)
+{
+	int i;
+
+	for (i = 0; i < MAXIPL; i++) {
+		mec_info_t *ipip = &ipi_info[i];
+		if (ipip->mi_irq == INVALID_IRQ)
+			continue;
+
+		(void) ec_bind_ipi_to_irq(i, cpu);
+	}
+}
+
+/*
+ * Can this IRQ be rebound to another CPU?
+ */
+int
+ec_irq_rebindable(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+
+	if (irqp->ii_u.evtchn == 0)
+		return (0);
+
+	return (irqp->ii_type == IRQT_EVTCHN || irqp->ii_type == IRQT_PIRQ);
+}
+
+/*
+ * Should this IRQ be unbound from this CPU (which is being offlined) to
+ * another?
+ */
+int
+ec_irq_needs_rebind(int irq, int cpu)
+{
+	irq_info_t *irqp = &irq_info[irq];
+
+	return (ec_irq_rebindable(irq) &&
+	    CPU_IN_SET(evtchn_cpus[irqp->ii_u.evtchn], cpu));
+}
+
+void
+ec_send_ipi(int ipl, int cpu)
+{
+	mec_info_t *ipip = &ipi_info[ipl];
+
+	ASSERT(ipip->mi_irq != INVALID_IRQ);
+
+	ec_notify_via_evtchn(ipip->mi_evtchns[cpu]);
+}
+
+void
+ec_try_ipi(int ipl, int cpu)
+{
+	mec_info_t *ipip = &ipi_info[ipl];
+
+	if (ipip->mi_irq == INVALID_IRQ || ipip->mi_irq == 0)
+		return;
+
+	ec_notify_via_evtchn(ipip->mi_evtchns[cpu]);
+}
+
+void
+ec_irq_add_evtchn(int irq, int evtchn)
+{
+	mutex_enter(&ec_lock);
+
+	/*
+	 * See description of IRQT_DEV_EVTCHN above.
+	 */
+	ASSERT(irq == ec_dev_irq);
+
+	alloc_irq_evtchn(irq, 0, evtchn, 0);
+	/*
+	 * We enforce that the representative event channel for IRQT_DEV_EVTCHN
+	 * is zero, so PSM operations on it have no effect.
+	 */
+	irq_info[irq].ii_u.evtchn = 0;
+	mutex_exit(&ec_lock);
+}
+
+void
+ec_irq_rm_evtchn(int irq, int evtchn)
+{
+	ushort_t ec = evtchn;
+
+	mutex_enter(&ec_lock);
+	ASSERT(irq == ec_dev_irq);
+	unbind_evtchn(&ec);
+	mutex_exit(&ec_lock);
+}
+
+/*
+ * Allocate an /dev/xen/evtchn IRQ.  See the big comment at the top
+ * for an explanation.
+ */
+int
+ec_dev_alloc_irq(void)
+{
+	int i;
+	irq_info_t *irqp;
+
+	for (i = 0; i < NR_IRQS; i++) {
+		if (irq_info[i].ii_type == IRQT_UNBOUND)
+			break;
+	}
+
+	ASSERT(i != NR_IRQS);
+
+	irqp = &irq_info[i];
+	irqp->ii_type = IRQT_DEV_EVTCHN;
+	irqp->ii_u2.ipl = IPL_EVTCHN;
+	/*
+	 * Force the evtchn to zero for the special evtchn device irq
+	 */
+	irqp->ii_u.evtchn = 0;
+	return (i);
+}
+
+void
+ec_enable_irq(unsigned int irq)
+{
+	ulong_t flag;
+	irq_info_t *irqp = &irq_info[irq];
+
+	if (irqp->ii_type == IRQT_DEV_EVTCHN)
+		return;
+
+	flag = intr_clear();
+	ec_unmask_evtchn(irq_evtchn(irqp));
+	intr_restore(flag);
+}
+
+void
+ec_disable_irq(unsigned int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+
+	if (irqp->ii_type == IRQT_DEV_EVTCHN)
+		return;
+
+	/*
+	 * Spin till we are the one to mask the evtchn
+	 * Ensures no one else can be servicing this evtchn.
+	 */
+	while (!ec_mask_evtchn(irq_evtchn(irqp)))
+		SMT_PAUSE();
+}
+
+static int
+ec_evtchn_pending(uint_t ev)
+{
+	uint_t evi;
+	shared_info_t *si = HYPERVISOR_shared_info;
+
+	evi = ev >> EVTCHN_SHIFT;
+	ev &= (1ul << EVTCHN_SHIFT) - 1;
+	return ((si->evtchn_pending[evi] & (1ul << ev)) != 0);
+}
+
+int
+ec_pending_irq(unsigned int irq)
+{
+	int evtchn = irq_evtchn(&irq_info[irq]);
+
+	return (ec_evtchn_pending(evtchn));
+}
+
+void
+ec_clear_irq(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+	int evtchn;
+
+	if (irqp->ii_type == IRQT_DEV_EVTCHN)
+		return;
+
+	ASSERT(irqp->ii_type != IRQT_UNBOUND);
+
+	evtchn = irq_evtchn(irqp);
+
+	ASSERT(EVTCHN_MASKED(evtchn));
+	ec_clear_evtchn(evtchn);
+}
+
+void
+ec_unmask_irq(int irq)
+{
+	ulong_t flags;
+	irq_info_t *irqp = &irq_info[irq];
+
+	flags = intr_clear();
+	switch (irqp->ii_type) {
+	case IRQT_PIRQ:
+		end_pirq(irq);
+		break;
+	case IRQT_DEV_EVTCHN:
+		break;
+	default:
+		ec_unmask_evtchn(irq_evtchn(irqp));
+		break;
+	}
+	intr_restore(flags);
+}
+
+void
+ec_try_unmask_irq(int irq)
+{
+	ulong_t flags;
+	irq_info_t *irqp = &irq_info[irq];
+	int evtchn;
+
+	flags = intr_clear();
+	switch (irqp->ii_type) {
+	case IRQT_PIRQ:
+		end_pirq(irq);
+		break;
+	case IRQT_DEV_EVTCHN:
+		break;
+	default:
+		if ((evtchn = irq_evtchn(irqp)) != 0)
+			ec_unmask_evtchn(evtchn);
+		break;
+	}
+	intr_restore(flags);
+}
+
+/*
+ * Poll until an event channel is ready or 'check_func' returns true.  This can
+ * only be used in a situation where interrupts are masked, otherwise we have a
+ * classic time-of-check vs. time-of-use race.
+ */
+void
+ec_wait_on_evtchn(int evtchn, int (*check_func)(void *), void *arg)
+{
+	if (DOMAIN_IS_INITDOMAIN(xen_info)) {
+		while (!check_func(arg))
+			(void) HYPERVISOR_yield();
+		return;
+	}
+
+	ASSERT(CPU->cpu_m.mcpu_vcpu_info->evtchn_upcall_mask != 0);
+
+	for (;;) {
+		evtchn_port_t ports[1];
+
+		ports[0] = evtchn;
+
+		ec_clear_evtchn(evtchn);
+
+		if (check_func(arg))
+			return;
+
+		(void) HYPERVISOR_poll(ports, 1, 0);
+	}
+}
+
+void
+ec_wait_on_ipi(int ipl, int (*check_func)(void *), void *arg)
+{
+	mec_info_t *ipip = &ipi_info[ipl];
+
+	if (ipip->mi_irq == INVALID_IRQ || ipip->mi_irq == 0)
+		return;
+
+	ec_wait_on_evtchn(ipip->mi_evtchns[CPU->cpu_id], check_func, arg);
+}
+
+void
+ec_suspend(void)
+{
+	irq_info_t *irqp;
+	ushort_t *evtchnp;
+	int i;
+	int c;
+
+	ASSERT(MUTEX_HELD(&ec_lock));
+
+	for (i = 0; i < MAXIPL; i++) {
+		if (ipi_info[i].mi_irq == INVALID_IRQ)
+			continue;
+
+		for (c = 0; c < NCPU; c++) {
+			if (cpu[c] == NULL)
+				continue;
+
+			if (CPU_IN_SET(cpu_suspend_lost_set, c))
+				continue;
+
+			evtchnp = &ipi_info[i].mi_evtchns[c];
+			ASSERT(*evtchnp != 0);
+			unbind_evtchn(evtchnp);
+		}
+	}
+
+	for (i = 0; i < NR_VIRQS; i++) {
+		if (virq_info[i].mi_irq == INVALID_IRQ)
+			continue;
+
+		/*
+		 * If we're sharing a single event channel across all CPUs, we
+		 * should only unbind once.
+		 */
+		if (virq_info[i].mi_shared) {
+			evtchnp = &virq_info[i].mi_evtchns[0];
+			unbind_evtchn(evtchnp);
+			for (c = 1; c < NCPU; c++)
+				virq_info[i].mi_evtchns[c] = 0;
+		} else {
+			for (c = 0; c < NCPU; c++) {
+				if (cpu[c] == NULL)
+					continue;
+
+				evtchnp = &virq_info[i].mi_evtchns[c];
+				if (*evtchnp != 0)
+					unbind_evtchn(evtchnp);
+			}
+		}
+	}
+
+	for (i = 0; i < NR_IRQS; i++) {
+		irqp = &irq_info[i];
+
+		switch (irqp->ii_type) {
+		case IRQT_EVTCHN:
+		case IRQT_DEV_EVTCHN:
+			(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+			break;
+		case IRQT_PIRQ:
+			if (irqp->ii_u.evtchn != 0)
+				(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+			break;
+		default:
+			break;
+		}
+	}
+}
+
+/*
+ * The debug irq is special, we only have one evtchn and irq but we allow all
+ * cpus to service it.  It's marked as shared and we propogate the event
+ * channel into all CPUs by hand.
+ */
+static void
+share_virq(mec_info_t *virqp)
+{
+	int evtchn = virqp->mi_evtchns[0];
+	cpuset_t tset;
+	int i;
+
+	ASSERT(evtchn != 0);
+
+	virqp->mi_shared = 1;
+
+	for (i = 1; i < NCPU; i++)
+		virqp->mi_evtchns[i] = evtchn;
+	CPUSET_ALL(tset);
+	bind_evtchn_to_cpuset(evtchn, tset);
+}
+
+static void
+virq_resume(int virq)
+{
+	mec_info_t *virqp = &virq_info[virq];
+	int evtchn;
+	int i, err;
+
+	for (i = 0; i < NCPU; i++) {
+		cpuset_t tcpus;
+
+		if (cpu[i] == NULL || CPU_IN_SET(cpu_suspend_lost_set, i))
+			continue;
+
+		err = xen_bind_virq(virq, i, &evtchn);
+		ASSERT(err == 0);
+
+		virqp->mi_evtchns[i] = evtchn;
+		evtchn_to_irq[evtchn] = virqp->mi_irq;
+		CPUSET_ONLY(tcpus, i);
+		bind_evtchn_to_cpuset(evtchn, tcpus);
+		ec_unmask_evtchn(evtchn);
+		/*
+		 * only timer VIRQ is bound to all cpus
+		 */
+		if (virq != VIRQ_TIMER)
+			break;
+	}
+
+	if (virqp->mi_shared)
+		share_virq(virqp);
+}
+
+static void
+ipi_resume(int ipl)
+{
+	mec_info_t *ipip = &ipi_info[ipl];
+	int i;
+
+	for (i = 0; i < NCPU; i++) {
+		cpuset_t tcpus;
+		int evtchn;
+
+		if (cpu[i] == NULL || CPU_IN_SET(cpu_suspend_lost_set, i))
+			continue;
+
+		evtchn = xen_bind_ipi(i);
+		ipip->mi_evtchns[i] = evtchn;
+		evtchn_to_irq[evtchn] = ipip->mi_irq;
+		CPUSET_ONLY(tcpus, i);
+		bind_evtchn_to_cpuset(evtchn, tcpus);
+		ec_unmask_evtchn(evtchn);
+	}
+}
+
+void
+ec_resume(void)
+{
+	int i;
+
+	/* New event-channel space is not 'live' yet. */
+	for (i = 0; i < NR_EVENT_CHANNELS; i++)
+		(void) ec_mask_evtchn(i);
+
+	for (i = 0; i < MAXIPL; i++) {
+		if (ipi_info[i].mi_irq == INVALID_IRQ)
+			continue;
+		ipi_resume(i);
+	}
+
+	for (i = 0; i < NR_VIRQS; i++) {
+		if (virq_info[i].mi_irq == INVALID_IRQ)
+			continue;
+		virq_resume(i);
+	}
+}
+
+void
+ec_init(void)
+{
+	int i;
+	mutex_init(&ec_lock, NULL, MUTEX_SPIN, (void *)ipltospl(SPL7));
+
+	for (i = 0; i < NR_EVENT_CHANNELS; i++) {
+		CPUSET_ZERO(evtchn_cpus[i]);
+		evtchn_to_irq[i] = INVALID_IRQ;
+		(void) ec_mask_evtchn(i);
+	}
+
+	for (i = 0; i < MAXIPL; i++)
+		ipi_info[i].mi_irq = INVALID_IRQ;
+
+	for (i = 0; i < NR_VIRQS; i++)
+		virq_info[i].mi_irq = INVALID_IRQ;
+
+	/*
+	 * Phys IRQ space is statically bound (1:1 mapping), grab the IRQs
+	 * now.
+	 */
+	for (i = PIRQ_BASE; i < NR_PIRQS; i++) {
+		irq_info[PIRQ_TO_IRQ(i)].ii_type = IRQT_PIRQ;
+	}
+}
+
+void
+ec_init_debug_irq()
+{
+	int irq;
+
+	irq = ec_bind_virq_to_irq(VIRQ_DEBUG, 0);
+	(void) add_avintr(NULL, IPL_DEBUG, (avfunc)xen_debug_handler,
+	    "debug", irq, NULL, NULL, NULL, NULL);
+
+	mutex_enter(&ec_lock);
+	share_virq(&virq_info[irq_info[irq].ii_u.index]);
+	mutex_exit(&ec_lock);
+	ec_debug_irq = irq;
+}
+
+#define	UNBLOCKED_EVENTS(si, ix, cpe, cpu_id) \
+	((si)->evtchn_pending[ix] & ~(si)->evtchn_mask[ix] & \
+		(cpe)->evt_affinity[ix])
+
+/*
+ * This is the entry point for processing events from xen
+ *
+ * (See the commentary associated with the shared_info_st structure
+ * in hypervisor-if.h)
+ *
+ * Since the event channel mechanism doesn't really implement the
+ * concept of priority like hardware interrupt controllers, we simulate
+ * that in software here using the cpu priority field and the pending
+ * interrupts field.  Events/interrupts that are not able to be serviced
+ * now because they are at a lower priority than the current cpu priority
+ * cause a level bit to be recorded in the pending interrupts word.  When
+ * the priority is lowered (either by spl or interrupt exit code) the pending
+ * levels are checked and an upcall is scheduled if there are events/interrupts
+ * that have become deliverable.
+ */
+void
+xen_callback_handler(struct regs *rp, trap_trace_rec_t *ttp)
+{
+	ulong_t pending_sels, pe, selbit;
+	int i, j, port, pri, curpri, irq;
+	uint16_t pending_ints;
+	struct cpu *cpu = CPU;
+	volatile shared_info_t *si = HYPERVISOR_shared_info;
+	volatile vcpu_info_t *vci = cpu->cpu_m.mcpu_vcpu_info;
+	volatile struct xen_evt_data *cpe = cpu->cpu_m.mcpu_evt_pend;
+	volatile uint16_t *cpu_ipp = &cpu->cpu_m.mcpu_intr_pending;
+
+	ASSERT(rp->r_trapno == T_AST && rp->r_err == 0);
+	ASSERT(&si->vcpu_info[cpu->cpu_id] == vci);
+	ASSERT_STACK_ALIGNED();
+
+	vci->evtchn_upcall_pending = 0;
+
+	/*
+	 * To expedite scanning of pending notifications, any 0->1
+	 * pending transition on an unmasked channel causes a
+	 * corresponding bit in evtchn_pending_sel to be set.
+	 * Each bit in the selector covers a 32-bit word in
+	 * the evtchn_pending[] array.
+	 */
+	membar_enter();
+	do {
+		pending_sels = vci->evtchn_pending_sel;
+	} while (atomic_cas_ulong((volatile ulong_t *)&vci->evtchn_pending_sel,
+	    pending_sels, 0) != pending_sels);
+
+	pending_ints = *cpu_ipp;
+	while ((i = ffs(pending_sels)) != 0) {
+		i--;
+		selbit = 1ul << i;
+		pending_sels &= ~selbit;
+
+		membar_enter();
+		while ((pe = UNBLOCKED_EVENTS(si, i, cpe, cpu->cpu_id)) != 0) {
+			j = ffs(pe) - 1;
+			pe &= ~(1ul << j);
+
+			port = (i << EVTCHN_SHIFT) + j;
+
+			irq = evtchn_to_irq[port];
+
+			/*
+			 * If no irq set, just ignore the event.
+			 * On e.g. netbsd they call evtchn_device_upcall(port)
+			 * We require the evtchn driver to install a handler
+			 * so there will be an irq associated with user mode
+			 * evtchns.
+			 */
+			if (irq == INVALID_IRQ) {
+				ec_clear_evtchn(port);
+				continue;
+			}
+
+			/*
+			 * If there's no handler, it could be a poke, so just
+			 * accept the event and continue.
+			 */
+			if (!irq_info[irq].ii_u2.has_handler) {
+#ifdef TRAPTRACE
+				ttp->ttr_ipl = 0xff;
+				if (IRQ_IS_CPUPOKE(irq)) {
+					ttp->ttr_ipl = XC_CPUPOKE_PIL;
+					ttp->ttr_marker = TT_INTERRUPT;
+				}
+				ttp->ttr_pri = cpu->cpu_pri;
+				ttp->ttr_spl = cpu->cpu_base_spl;
+				ttp->ttr_vector = 0xff;
+#endif /* TRAPTRACE */
+				if (ec_mask_evtchn(port)) {
+					ec_clear_evtchn(port);
+					ec_unmask_evtchn(port);
+					continue;
+				}
+			}
+
+			pri = irq_info[irq].ii_u2.ipl;
+
+			/*
+			 * If we are the cpu that successfully masks
+			 * the event, then record it as a pending event
+			 * for this cpu to service
+			 */
+			if (ec_mask_evtchn(port)) {
+				if (ec_evtchn_pending(port)) {
+					cpe->pending_sel[pri] |= selbit;
+					cpe->pending_evts[pri][i] |= (1ul << j);
+					pending_ints |= 1 << pri;
+				} else {
+					/*
+					 * another cpu serviced this event
+					 * before us, clear the mask.
+					 */
+					ec_unmask_evtchn(port);
+				}
+			}
+		}
+	}
+	*cpu_ipp = pending_ints;
+	if (pending_ints == 0)
+		return;
+	/*
+	 * We have gathered all the pending events/interrupts,
+	 * go service all the ones we can from highest priority to lowest.
+	 * Note: This loop may not actually complete and service all
+	 * pending interrupts since one of the interrupt threads may
+	 * block and the pinned thread runs.  In that case, when we
+	 * exit the interrupt thread that blocked we will check for
+	 * any unserviced interrupts and re-post an upcall to process
+	 * any unserviced pending events.
+	 */
+	curpri = cpu->cpu_pri;
+	for (pri = bsrw_insn(*cpu_ipp); pri > curpri; pri--) {
+		while ((pending_sels = cpe->pending_sel[pri]) != 0) {
+			i = ffs(pending_sels) - 1;
+			while ((pe = cpe->pending_evts[pri][i]) != 0) {
+				j = ffs(pe) - 1;
+				pe &= ~(1ul << j);
+				cpe->pending_evts[pri][i] = pe;
+				if (pe == 0) {
+					/*
+					 * Must reload pending selector bits
+					 * here as they could have changed on
+					 * a previous trip around the inner loop
+					 * while we were interrupt enabled
+					 * in a interrupt service routine.
+					 */
+					pending_sels = cpe->pending_sel[pri];
+					pending_sels &= ~(1ul << i);
+					cpe->pending_sel[pri] = pending_sels;
+					if (pending_sels == 0)
+						*cpu_ipp &= ~(1 << pri);
+				}
+				port = (i << EVTCHN_SHIFT) + j;
+				irq = evtchn_to_irq[port];
+				if (irq == INVALID_IRQ) {
+					/*
+					 * No longer a handler for this event
+					 * channel.  Clear the event and
+					 * ignore it, unmask the event.
+					 */
+					ec_clear_evtchn(port);
+					ec_unmask_evtchn(port);
+					continue;
+				}
+				if (irq == ec_dev_irq) {
+					volatile int *tptr = &ec_dev_mbox;
+
+					ASSERT(ec_dev_mbox == 0);
+					/*
+					 * NOTE: this gross store thru a pointer
+					 * is necessary because of a Sun C
+					 * compiler bug that does not properly
+					 * honor a volatile declaration.
+					 * we really should just be able to say
+					 * 	ec_dev_mbox = port;
+					 * here
+					 */
+					*tptr = port;
+				}
+				/*
+				 * Set up the regs struct to
+				 * look like a normal hardware int
+				 * and do normal interrupt handling.
+				 */
+				rp->r_trapno = irq;
+				do_interrupt(rp, ttp);
+				/*
+				 * Check for cpu priority change
+				 * Can happen if int thread blocks
+				 */
+				if (cpu->cpu_pri > curpri)
+					return;
+			}
+		}
+	}
+}
+
+void
+ec_unmask_evtchn(unsigned int ev)
+{
+	uint_t evi;
+	volatile shared_info_t *si = HYPERVISOR_shared_info;
+	volatile vcpu_info_t *vci = CPU->cpu_m.mcpu_vcpu_info;
+	volatile ulong_t *ulp;
+
+	ASSERT(!interrupts_enabled());
+	/*
+	 * Check if we need to take slow path
+	 */
+	if (!CPU_IN_SET(evtchn_cpus[ev], CPU->cpu_id)) {
+		xen_evtchn_unmask(ev);
+		return;
+	}
+	evi = ev >> EVTCHN_SHIFT;
+	ev &= (1ul << EVTCHN_SHIFT) - 1;
+	ulp = (volatile ulong_t *)&si->evtchn_mask[evi];
+	atomic_and_ulong(ulp, ~(1ul << ev));
+	/*
+	 * The following is basically the equivalent of
+	 * 'hw_resend_irq'. Just like a real IO-APIC we 'lose the
+	 * interrupt edge' if the channel is masked.
+	 * XXPV - slight race if upcall was about to be set, we may get
+	 * an extra upcall.
+	 */
+	membar_enter();
+	if (si->evtchn_pending[evi] & (1ul << ev)) {
+		membar_consumer();
+		ulp = (volatile ulong_t *)&vci->evtchn_pending_sel;
+		if (!(*ulp & (1ul << evi))) {
+			atomic_or_ulong(ulp, (1ul << evi));
+		}
+		vci->evtchn_upcall_pending = 1;
+	}
+}
+
+/*
+ * Set a bit in an evtchan mask word, return true if we are the cpu that
+ * set the bit.
+ */
+int
+ec_mask_evtchn(unsigned int ev)
+{
+	uint_t evi, evb;
+	ulong_t new, old, bit;
+	volatile shared_info_t *si = HYPERVISOR_shared_info;
+	volatile ulong_t *maskp;
+	int masked;
+
+	kpreempt_disable();
+	evi = ev >> EVTCHN_SHIFT;
+	evb = ev & ((1ul << EVTCHN_SHIFT) - 1);
+	bit = 1ul << evb;
+	maskp = (volatile ulong_t *)&si->evtchn_mask[evi];
+	do {
+		old = si->evtchn_mask[evi];
+		new = old | bit;
+	} while (atomic_cas_ulong(maskp, old, new) != old);
+	masked = (old & bit) == 0;
+	if (masked) {
+		evtchn_owner[ev] = CPU->cpu_id;
+#ifdef DEBUG
+		evtchn_owner_thread[ev] = curthread;
+#endif
+	}
+	kpreempt_enable();
+	return (masked);
+}
+
+void
+ec_clear_evtchn(unsigned int ev)
+{
+	uint_t evi;
+	shared_info_t *si = HYPERVISOR_shared_info;
+	volatile ulong_t *pendp;
+
+	evi = ev >> EVTCHN_SHIFT;
+	ev &= (1ul << EVTCHN_SHIFT) - 1;
+	pendp = (volatile ulong_t *)&si->evtchn_pending[evi];
+	atomic_and_ulong(pendp, ~(1ul << ev));
+}
+
+void
+ec_notify_via_evtchn(unsigned int port)
+{
+	evtchn_send_t send;
+
+	ASSERT(port != INVALID_EVTCHN);
+
+	send.port = port;
+	(void) HYPERVISOR_event_channel_op(EVTCHNOP_send, &send);
+}
+
+int
+ec_block_irq(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+	int evtchn;
+
+
+	evtchn = irq_evtchn(irqp);
+	(void) ec_mask_evtchn(evtchn);
+	return (evtchn_owner[evtchn]);
+}
+
+/*
+ * Make a event that is pending for delivery on the current cpu  "go away"
+ * without servicing the interrupt.
+ */
+void
+ec_unpend_irq(int irq)
+{
+	irq_info_t *irqp = &irq_info[irq];
+	int pri = irqp->ii_u2.ipl;
+	ulong_t flags;
+	uint_t evtchn, evi, bit;
+	unsigned long pe, pending_sels;
+	struct xen_evt_data *cpe;
+
+	/*
+	 * The evtchn must be masked
+	 */
+	evtchn = irq_evtchn(irqp);
+	ASSERT(EVTCHN_MASKED(evtchn));
+	evi = evtchn >> EVTCHN_SHIFT;
+	bit = evtchn & (1ul << EVTCHN_SHIFT) - 1;
+	flags = intr_clear();
+	cpe = CPU->cpu_m.mcpu_evt_pend;
+	pe = cpe->pending_evts[pri][evi] & ~(1ul << bit);
+	cpe->pending_evts[pri][evi] = pe;
+	if (pe == 0) {
+		pending_sels = cpe->pending_sel[pri];
+		pending_sels &= ~(1ul << evi);
+		cpe->pending_sel[pri] = pending_sels;
+		if (pending_sels == 0)
+			CPU->cpu_m.mcpu_intr_pending &= ~(1 << pri);
+	}
+	intr_restore(flags);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/gnttab.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,497 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * gnttab.c
+ *
+ * Granting foreign access to our memory reservation.
+ *
+ * Copyright (c) 2005, Christopher Clark
+ * Copyright (c) 2004-2005, K A Fraser
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <sys/types.h>
+#include <sys/archsystm.h>
+#include <sys/hypervisor.h>
+#include <sys/gnttab.h>
+#include <sys/sysmacros.h>
+#include <sys/machsystm.h>
+#include <sys/systm.h>
+#include <sys/mutex.h>
+#include <sys/atomic.h>
+#include <sys/spl.h>
+#include <sys/condvar.h>
+#include <sys/cpuvar.h>
+#include <sys/taskq.h>
+#include <sys/panic.h>
+#include <sys/cmn_err.h>
+#include <sys/promif.h>
+#include <sys/cpu.h>
+#include <sys/vmem.h>
+#include <vm/hat_i86.h>
+#include <sys/bootconf.h>
+#include <sys/bootsvcs.h>
+#include <sys/bootinfo.h>
+#include <sys/multiboot.h>
+#include <sys/bootvfs.h>
+#include <sys/bootprops.h>
+#include <vm/kboot_mmu.h>
+#include <vm/seg_kmem.h>
+
+#define	cmpxchg(t, c, n) atomic_cas_16((t), (c), (n))
+
+/* External tools reserve first few grant table entries. */
+#define	NR_RESERVED_ENTRIES 8
+
+#define	NR_GRANT_ENTRIES (NR_GRANT_FRAMES * \
+	    MMU_PAGESIZE / sizeof (grant_entry_t))
+#define	GNTTAB_LIST_END (NR_GRANT_ENTRIES + 1)
+#define	VALID_GRANT_REF(r) ((r) < NR_GRANT_ENTRIES)
+
+static grant_ref_t gnttab_list[NR_GRANT_ENTRIES];
+static int gnttab_free_count;
+static grant_ref_t gnttab_free_head;
+static kmutex_t gnttab_list_lock;
+
+static grant_entry_t *shared;
+#define	GT_PGADDR(i) ((uintptr_t)shared + ((i) << PAGESHIFT))
+
+static struct gnttab_free_callback *gnttab_free_callback_list = NULL;
+
+static int
+get_free_entries(int count)
+{
+	int ref;
+	grant_ref_t head;
+
+	mutex_enter(&gnttab_list_lock);
+	if (gnttab_free_count < count) {
+		mutex_exit(&gnttab_list_lock);
+		return (-1);
+	}
+	ref = head = gnttab_free_head;
+	gnttab_free_count -= count;
+	while (count-- > 1)
+		head = gnttab_list[head];
+	gnttab_free_head = gnttab_list[head];
+	gnttab_list[head] = GNTTAB_LIST_END;
+	mutex_exit(&gnttab_list_lock);
+	return (ref);
+}
+
+#define	get_free_entry() get_free_entries(1)
+
+static void
+do_free_callbacks(void)
+{
+	struct gnttab_free_callback *callback, *next;
+
+	callback = gnttab_free_callback_list;
+	gnttab_free_callback_list = NULL;
+
+	while (callback != NULL) {
+		next = callback->next;
+		if (gnttab_free_count >= callback->count) {
+			callback->next = NULL;
+			callback->fn(callback->arg);
+		} else {
+			callback->next = gnttab_free_callback_list;
+			gnttab_free_callback_list = callback;
+		}
+		callback = next;
+	}
+}
+
+static void
+check_free_callbacks(void)
+{
+	if (gnttab_free_callback_list)
+		do_free_callbacks();
+}
+
+static void
+put_free_entry(grant_ref_t ref)
+{
+	ASSERT(VALID_GRANT_REF(ref));
+
+	mutex_enter(&gnttab_list_lock);
+	gnttab_list[ref] = gnttab_free_head;
+	gnttab_free_head = ref;
+	gnttab_free_count++;
+	check_free_callbacks();
+	mutex_exit(&gnttab_list_lock);
+}
+
+/*
+ * Public grant-issuing interface functions
+ */
+
+int
+gnttab_grant_foreign_access(domid_t domid, gnttab_frame_t frame, int readonly)
+{
+	int ref;
+
+	if ((ref = get_free_entry()) == -1)
+		return (-1);
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	shared[ref].frame = frame;
+	shared[ref].domid = domid;
+	membar_producer();
+	shared[ref].flags = GTF_permit_access | (readonly ? GTF_readonly : 0);
+
+	return (ref);
+}
+
+void
+gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
+				gnttab_frame_t frame, int readonly)
+{
+	ASSERT(VALID_GRANT_REF(ref));
+
+	shared[ref].frame = frame;
+	shared[ref].domid = domid;
+	membar_producer();
+	shared[ref].flags = GTF_permit_access | (readonly ? GTF_readonly : 0);
+}
+
+
+int
+gnttab_query_foreign_access(grant_ref_t ref)
+{
+	uint16_t nflags;
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	nflags = shared[ref].flags;
+
+	return (nflags & (GTF_reading|GTF_writing));
+}
+
+/* ARGSUSED */
+int
+gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly)
+{
+	uint16_t flags, nflags;
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	nflags = shared[ref].flags;
+	do {
+		if ((flags = nflags) & (GTF_reading|GTF_writing)) {
+			cmn_err(CE_WARN, "g.e. still in use!");
+			return (0);
+		}
+	} while ((nflags = cmpxchg(&shared[ref].flags, flags, 0)) != flags);
+
+	return (1);
+}
+
+void
+gnttab_end_foreign_access(grant_ref_t ref, int readonly, gnttab_frame_t page)
+{
+	ASSERT(VALID_GRANT_REF(ref));
+
+	if (gnttab_end_foreign_access_ref(ref, readonly)) {
+		put_free_entry(ref);
+		/*
+		 * XXPV - we don't support freeing a page here
+		 */
+		if (page != 0) {
+			cmn_err(CE_WARN,
+	"gnttab_end_foreign_access_ref: using unsupported free_page interface");
+			/* free_page(page); */
+		}
+	} else {
+		/*
+		 * XXX This needs to be fixed so that the ref and page are
+		 * placed on a list to be freed up later.
+		 */
+		cmn_err(CE_WARN, "leaking g.e. and page still in use!");
+	}
+}
+
+int
+gnttab_grant_foreign_transfer(domid_t domid)
+{
+	int ref;
+
+	if ((ref = get_free_entry()) == -1)
+		return (-1);
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	shared[ref].frame = 0;
+	shared[ref].domid = domid;
+	membar_producer();
+	shared[ref].flags = GTF_accept_transfer;
+
+	return (ref);
+}
+
+void
+gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid)
+{
+	ASSERT(VALID_GRANT_REF(ref));
+
+	shared[ref].frame = 0;
+	shared[ref].domid = domid;
+	membar_producer();
+	shared[ref].flags = GTF_accept_transfer;
+}
+
+gnttab_frame_t
+gnttab_end_foreign_transfer_ref(grant_ref_t ref)
+{
+	gnttab_frame_t frame;
+	uint16_t flags;
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	/*
+	 * If a transfer is not even yet started, try to reclaim the grant
+	 * reference and return failure (== 0).
+	 */
+	while (!((flags = shared[ref].flags) & GTF_transfer_committed)) {
+		if (cmpxchg(&shared[ref].flags, flags, 0) == flags)
+			return (0);
+		(void) HYPERVISOR_yield();
+	}
+
+	/* If a transfer is in progress then wait until it is completed. */
+	while (!(flags & GTF_transfer_completed)) {
+		flags = shared[ref].flags;
+		(void) HYPERVISOR_yield();
+	}
+
+	/* Read the frame number /after/ reading completion status. */
+	membar_consumer();
+	frame = shared[ref].frame;
+	ASSERT(frame != 0);
+
+	return (frame);
+}
+
+gnttab_frame_t
+gnttab_end_foreign_transfer(grant_ref_t ref)
+{
+	gnttab_frame_t frame;
+
+	ASSERT(VALID_GRANT_REF(ref));
+
+	frame = gnttab_end_foreign_transfer_ref(ref);
+	put_free_entry(ref);
+	return (frame);
+}
+
+void
+gnttab_free_grant_reference(grant_ref_t ref)
+{
+	ASSERT(VALID_GRANT_REF(ref));
+
+	put_free_entry(ref);
+}
+
+void
+gnttab_free_grant_references(grant_ref_t head)
+{
+	grant_ref_t ref;
+	int count = 1;
+
+	if (head == GNTTAB_LIST_END)
+		return;
+	mutex_enter(&gnttab_list_lock);
+	ref = head;
+	while (gnttab_list[ref] != GNTTAB_LIST_END) {
+		ref = gnttab_list[ref];
+		count++;
+	}
+	gnttab_list[ref] = gnttab_free_head;
+	gnttab_free_head = head;
+	gnttab_free_count += count;
+	check_free_callbacks();
+	mutex_exit(&gnttab_list_lock);
+}
+
+int
+gnttab_alloc_grant_references(uint16_t count, grant_ref_t *head)
+{
+	int h = get_free_entries(count);
+
+	if (h == -1)
+		return (-1);
+
+	*head = h;
+
+	return (0);
+}
+
+int
+gnttab_claim_grant_reference(grant_ref_t *private_head)
+{
+	grant_ref_t g = *private_head;
+
+	if (g == GNTTAB_LIST_END)
+		return (-1);
+	*private_head = gnttab_list[g];
+	return (g);
+}
+
+void
+gnttab_release_grant_reference(grant_ref_t *private_head, grant_ref_t release)
+{
+	ASSERT(VALID_GRANT_REF(release));
+
+	gnttab_list[release] = *private_head;
+	*private_head = release;
+}
+
+void
+gnttab_request_free_callback(struct gnttab_free_callback *callback,
+	void (*fn)(void *), void *arg, uint16_t count)
+{
+	mutex_enter(&gnttab_list_lock);
+	if (callback->next)
+		goto out;
+	callback->fn = fn;
+	callback->arg = arg;
+	callback->count = count;
+	callback->next = gnttab_free_callback_list;
+	gnttab_free_callback_list = callback;
+	check_free_callbacks();
+out:
+	mutex_exit(&gnttab_list_lock);
+}
+
+void
+gnttab_init(void)
+{
+	gnttab_setup_table_t set;
+	gnttab_frame_t frames[NR_GRANT_FRAMES];
+	int i;
+
+	set.dom = DOMID_SELF;
+	set.nr_frames = NR_GRANT_FRAMES;
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(set.frame_list, frames);
+
+	/*
+	 * Take 4 pages of grant table space from the hypervisor and map it
+	 */
+	if ((HYPERVISOR_grant_table_op(GNTTABOP_setup_table, &set, 1) != 0) ||
+	    (set.status != 0)) {
+		cmn_err(CE_PANIC, "Grant Table setup failed");
+	}
+
+	shared = vmem_xalloc(heap_arena, NR_GRANT_FRAMES * MMU_PAGESIZE,
+	    MMU_PAGESIZE, 0, 0, 0, 0, VM_SLEEP);
+
+	for (i = 0; i < NR_GRANT_FRAMES; i++)
+		kbm_map_ma(FRAME_TO_MA(frames[i]), GT_PGADDR(i), 0);
+
+	for (i = NR_RESERVED_ENTRIES; i < NR_GRANT_ENTRIES; i++)
+		gnttab_list[i] = i + 1;
+	gnttab_free_count = NR_GRANT_ENTRIES - NR_RESERVED_ENTRIES;
+	gnttab_free_head  = NR_RESERVED_ENTRIES;
+
+	mutex_init(&gnttab_list_lock, NULL, MUTEX_DEFAULT, NULL);
+}
+
+void
+gnttab_resume(void)
+{
+	gnttab_setup_table_t set;
+	gnttab_frame_t frames[NR_GRANT_FRAMES];
+	int i;
+
+	set.dom = DOMID_SELF;
+	set.nr_frames = NR_GRANT_FRAMES;
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(set.frame_list, frames);
+
+	/*
+	 * Take NR_GRANT_FRAMES pages of grant table space from the
+	 * hypervisor and map it
+	 */
+	if ((HYPERVISOR_grant_table_op(GNTTABOP_setup_table, &set, 1) != 0) ||
+	    (set.status != 0)) {
+		cmn_err(CE_PANIC, "Grant Table setup failed");
+	}
+
+	for (i = 0; i < NR_GRANT_FRAMES; i++) {
+		(void) HYPERVISOR_update_va_mapping(GT_PGADDR(i),
+		    FRAME_TO_MA(frames[i]) | PT_VALID | PT_WRITABLE,
+		    UVMF_INVLPG | UVMF_ALL);
+	}
+}
+
+void
+gnttab_suspend(void)
+{
+	int i;
+
+	/*
+	 * clear grant table mappings before suspending
+	 */
+	for (i = 0; i < NR_GRANT_FRAMES; i++) {
+		(void) HYPERVISOR_update_va_mapping(GT_PGADDR(i),
+		    0, UVMF_INVLPG);
+	}
+}
+
+/*
+ * Local variables:
+ *  c-file-style: "solaris"
+ *  indent-tabs-mode: t
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/hypercall.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,418 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Provides basic C wrappers around hypervisor invocation.
+ *
+ * i386: eax = vector: ebx, ecx, edx, esi, edi = args 1-5
+ *	 eax = return value
+ *	 (argument registers may be clobbered on return)
+ *
+ * amd64:rax = vector: rdi, rsi, rdx, r10, r8, r9 = args 1-6
+ *	 rax = return value
+ *	 (arguments registers not clobbered on return; rcx, r11 are)
+ */
+
+#include <sys/types.h>
+
+#include <sys/hypervisor.h>
+#include <xen/public/sched.h>
+#include <sys/debug.h>
+#include <sys/archsystm.h>
+
+long
+HYPERVISOR_set_trap_table(trap_info_t *table)
+{
+	return (__hypercall1(__HYPERVISOR_set_trap_table, (ulong_t)table));
+}
+
+int
+HYPERVISOR_mmu_update(mmu_update_t *req, int count, int *success_count,
+    domid_t domain_id)
+{
+	return (__hypercall4_int(__HYPERVISOR_mmu_update,
+	    (ulong_t)req, (long)count, (ulong_t)success_count,
+	    (ulong_t)domain_id));
+}
+
+long
+HYPERVISOR_set_gdt(ulong_t *frame_list, int entries)
+{
+	return (__hypercall2(
+	    __HYPERVISOR_set_gdt, (ulong_t)frame_list, (long)entries));
+}
+
+/*
+ * XXPV Seems like "sp" would be a better name for both amd64 and i386?
+ * For now stay consistent with xen project source.
+ */
+long
+HYPERVISOR_stack_switch(ulong_t ss, ulong_t esp)
+{
+	return (__hypercall2(__HYPERVISOR_stack_switch, ss, esp));
+}
+
+#if defined(__amd64)
+
+long
+HYPERVISOR_set_callbacks(ulong_t event_address, ulong_t failsafe_address,
+    ulong_t syscall_address)
+{
+	return (__hypercall3(__HYPERVISOR_set_callbacks,
+	    event_address, failsafe_address, syscall_address));
+}
+
+#elif defined(__i386)
+
+long
+HYPERVISOR_set_callbacks(
+    ulong_t event_selector, ulong_t event_address,
+    ulong_t failsafe_selector, ulong_t failsafe_address)
+{
+	return (__hypercall4(__HYPERVISOR_set_callbacks,
+	    event_selector, event_address,
+	    failsafe_selector, failsafe_address));
+}
+
+#endif	/* __amd64 */
+
+long
+HYPERVISOR_fpu_taskswitch(int set)
+{
+	return (__hypercall1(__HYPERVISOR_fpu_taskswitch, (long)set));
+}
+
+/* *** __HYPERVISOR_sched_op_compat *** OBSOLETED */
+
+long
+HYPERVISOR_platform_op(xen_platform_op_t *platform_op)
+{
+	return (__hypercall1(__HYPERVISOR_platform_op, (ulong_t)platform_op));
+}
+
+/* *** __HYPERVISOR_set_debugreg *** NOT IMPLEMENTED */
+
+/* *** __HYPERVISOR_get_debugreg *** NOT IMPLEMENTED */
+
+long
+HYPERVISOR_update_descriptor(maddr_t ma, uint64_t desc)
+{
+#if defined(__amd64)
+
+	return (__hypercall2(__HYPERVISOR_update_descriptor, ma, desc));
+
+#elif defined(__i386)
+
+	return (__hypercall4(__HYPERVISOR_update_descriptor,
+	    (ulong_t)ma, (ulong_t)(ma >>32),
+	    (ulong_t)desc, (ulong_t)(desc >> 32)));
+
+#endif
+}
+
+long
+HYPERVISOR_memory_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_memory_op, (long)cmd,
+	    (ulong_t)arg));
+}
+
+long
+HYPERVISOR_multicall(void *call_list, uint_t nr_calls)
+{
+	return (__hypercall2(__HYPERVISOR_multicall,
+	    (ulong_t)call_list, (ulong_t)nr_calls));
+}
+
+int
+HYPERVISOR_update_va_mapping(ulong_t va, uint64_t new_pte, ulong_t flags)
+{
+#if !defined(_BOOT)
+	if (IN_XPV_PANIC())
+		return (0);
+#endif
+#if defined(__amd64)
+
+	return (__hypercall3_int(__HYPERVISOR_update_va_mapping, va,
+	    new_pte, flags));
+
+#elif defined(__i386)
+
+	return (__hypercall4_int(__HYPERVISOR_update_va_mapping, va,
+	    (ulong_t)new_pte, (ulong_t)(new_pte >> 32), flags));
+
+#endif	/* __i386 */
+}
+
+/*
+ * Note: this timeout must be the Xen system time not hrtime (see
+ * xpv_timestamp.c).
+ */
+long
+HYPERVISOR_set_timer_op(uint64_t timeout)
+{
+#if defined(__amd64)
+
+	return (__hypercall1(__HYPERVISOR_set_timer_op, timeout));
+
+#elif defined(__i386)
+
+	uint32_t timeout_hi = (uint32_t)(timeout >> 32);
+	uint32_t timeout_lo = (uint32_t)timeout;
+	return (__hypercall2(__HYPERVISOR_set_timer_op,
+	    (ulong_t)timeout_lo, (ulong_t)timeout_hi));
+
+#endif	/* __i386 */
+}
+
+/* *** __HYPERVISOR_event_channel_op_compat *** OBSOLETED */
+
+long
+HYPERVISOR_xen_version(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_xen_version, (long)cmd,
+	    (ulong_t)arg));
+}
+
+long
+HYPERVISOR_console_io(int cmd, int count, char *str)
+{
+	return (__hypercall3(__HYPERVISOR_console_io, (long)cmd, (long)count,
+	    (ulong_t)str));
+}
+
+/* *** __HYPERVISOR_physdev_op_compat *** OBSOLETED */
+
+long
+HYPERVISOR_grant_table_op(uint_t cmd, void *uop, uint_t count)
+{
+	int ret_val;
+	ret_val = __hypercall3(__HYPERVISOR_grant_table_op,
+	    (long)cmd, (ulong_t)uop, (ulong_t)count);
+
+#if !defined(_BOOT)
+	/*
+	 * XXPV --
+	 * The map_grant_ref call suffers a poor design flaw.
+	 * It's the only hypervisor interface that creates page table mappings
+	 * that doesn't take an entire PTE. Hence we can't create the
+	 * mapping with a particular setting of the software PTE bits, NX, etc.
+	 *
+	 * Until the interface is fixed, we need to minimize the possiblity
+	 * of dtrace or kmdb blowing up on a foreign mapping that doesn't
+	 * have a correct setting for the soft bits. We'll force them here.
+	 */
+	if (ret_val == 0 && cmd == GNTTABOP_map_grant_ref) {
+		extern void xen_fix_foreign(uint64_t);
+		gnttab_map_grant_ref_t *mapops = (gnttab_map_grant_ref_t *)uop;
+		uint_t i;
+		for (i = 0; i < count; ++i) {
+			if (mapops[i].status == GNTST_okay)
+				xen_fix_foreign(mapops[i].host_addr);
+		}
+	}
+#endif
+	return (ret_val);
+}
+
+long
+HYPERVISOR_vm_assist(uint_t cmd, uint_t type)
+{
+	return (__hypercall2(__HYPERVISOR_vm_assist,
+	    (ulong_t)cmd, (ulong_t)type));
+}
+
+int
+HYPERVISOR_update_va_mapping_otherdomain(ulong_t va,
+    uint64_t new_pte, ulong_t flags, domid_t domain_id)
+{
+#if defined(__amd64)
+
+	return (__hypercall4_int(__HYPERVISOR_update_va_mapping_otherdomain,
+	    va, new_pte, flags, (ulong_t)domain_id));
+
+#elif defined(__i386)
+
+	return (__hypercall5_int(__HYPERVISOR_update_va_mapping_otherdomain,
+	    va, (ulong_t)new_pte, (ulong_t)(new_pte >> 32), flags,
+	    (ulong_t)domain_id));
+
+#endif	/* __i386 */
+}
+
+/*
+ * *** __HYPERVISOR_iret ***
+ *   see HYPERVISOR_IRET() macro in i86xpv/sys/machprivregs.h
+ */
+
+long
+HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args)
+{
+	return (__hypercall3(__HYPERVISOR_vcpu_op, (long)cmd, (long)vcpuid,
+	    (ulong_t)extra_args));
+}
+
+#if defined(__amd64)
+
+long
+HYPERVISOR_set_segment_base(int reg, ulong_t value)
+{
+	return (__hypercall2(__HYPERVISOR_set_segment_base, (long)reg, value));
+}
+
+#endif	/* __amd64 */
+
+int
+HYPERVISOR_mmuext_op(struct mmuext_op *req, int count, uint_t *success_count,
+    domid_t domain_id)
+{
+	return (__hypercall4_int(__HYPERVISOR_mmuext_op,
+	    (ulong_t)req, (long)count, (ulong_t)success_count,
+	    (ulong_t)domain_id));
+}
+
+long
+HYPERVISOR_acm_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_acm_op, (long)cmd, (ulong_t)arg));
+}
+
+long
+HYPERVISOR_nmi_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_nmi_op, (long)cmd, (ulong_t)arg));
+}
+
+long
+HYPERVISOR_sched_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_sched_op,
+	    (ulong_t)cmd, (ulong_t)arg));
+}
+
+long
+HYPERVISOR_callback_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_callback_op,
+	    (ulong_t)cmd, (ulong_t)arg));
+}
+
+/* *** __HYPERVISOR_xenoprof_op *** NOT IMPLEMENTED */
+
+long
+HYPERVISOR_event_channel_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_event_channel_op, (long)cmd,
+	    (ulong_t)arg));
+}
+
+long
+HYPERVISOR_physdev_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_physdev_op, (long)cmd,
+	    (ulong_t)arg));
+}
+
+long
+HYPERVISOR_hvm_op(int cmd, void *arg)
+{
+	return (__hypercall2(__HYPERVISOR_hvm_op, (long)cmd, (ulong_t)arg));
+}
+
+long
+HYPERVISOR_sysctl(xen_sysctl_t *sysctl)
+{
+	return (__hypercall1(__HYPERVISOR_sysctl, (ulong_t)sysctl));
+}
+
+long
+HYPERVISOR_domctl(xen_domctl_t *domctl)
+{
+	return (__hypercall1(__HYPERVISOR_domctl, (ulong_t)domctl));
+}
+
+/* *** __HYPERVISOR_kexec_op *** NOT IMPLEMENTED */
+
+/*
+ *
+ * HYPERCALL HELPER ROUTINES
+ *    These don't have there own unique hypercalls.
+ *
+ */
+
+long
+HYPERVISOR_yield(void)
+{
+	return (HYPERVISOR_sched_op(SCHEDOP_yield, NULL));
+}
+
+long
+HYPERVISOR_block(void)
+{
+	return (HYPERVISOR_sched_op(SCHEDOP_block, NULL));
+}
+
+long
+HYPERVISOR_shutdown(uint_t reason)
+{
+	struct sched_shutdown sched_shutdown;
+
+	sched_shutdown.reason = reason;
+
+	return (HYPERVISOR_sched_op(SCHEDOP_shutdown, &sched_shutdown));
+}
+
+/*
+ * Poll one or more event-channel ports, and return when pending.
+ * An optional timeout (in nanoseconds, absolute time since boot) may be
+ * specified. Note: this timeout must be the Xen system time not hrtime (see
+ * xpv_timestamp.c).
+ */
+long
+HYPERVISOR_poll(evtchn_port_t *ports, uint_t nr_ports, uint64_t timeout)
+{
+	struct sched_poll sched_poll;
+
+	/*LINTED: constant in conditional context*/
+	set_xen_guest_handle(sched_poll.ports, ports);
+	sched_poll.nr_ports = nr_ports;
+	sched_poll.timeout = timeout;
+
+	return (HYPERVISOR_sched_op(SCHEDOP_poll, &sched_poll));
+}
+
+long
+HYPERVISOR_suspend(ulong_t start_info_mfn)
+{
+	struct sched_shutdown sched_shutdown;
+
+	sched_shutdown.reason = SHUTDOWN_suspend;
+
+	return (__hypercall3(__HYPERVISOR_sched_op, SCHEDOP_shutdown,
+	    (ulong_t)&sched_shutdown, start_info_mfn));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/mach_kdi.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,262 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * Kernel/Debugger Interface (KDI) routines.  Called during debugger under
+ * various system states (boot, while running, while the debugger has control).
+ * Functions intended for use while the debugger has control may not grab any
+ * locks or perform any functions that assume the availability of other system
+ * services.
+ */
+
+#include <sys/systm.h>
+#include <sys/x86_archext.h>
+#include <sys/kdi_impl.h>
+#include <sys/smp_impldefs.h>
+#include <sys/psm_types.h>
+#include <sys/segments.h>
+#include <sys/archsystm.h>
+#include <sys/controlregs.h>
+#include <sys/trap.h>
+#include <sys/kobj.h>
+#include <sys/kobj_impl.h>
+#include <sys/hypervisor.h>
+#include <sys/bootconf.h>
+#include <sys/bootinfo.h>
+#include <sys/promif.h>
+#include <sys/evtchn_impl.h>
+#include <sys/cpu.h>
+#include <vm/kboot_mmu.h>
+#include <vm/hat_pte.h>
+
+static volatile int kdi_slaves_go;
+
+/*
+ * These are not safe against dropping into kmdb when fbt::: is active. This is
+ * also broken on i86pc...
+ */
+
+void
+kdi_idtr_write(desctbr_t *idtr)
+{
+	gate_desc_t *idt = (gate_desc_t *)idtr->dtr_base;
+	uint_t nidt = (idtr->dtr_limit + 1) / sizeof (*idt);
+	uint_t vec;
+
+	for (vec = 0; vec < nidt; vec++, idt++)
+		xen_idt_write(idt, vec);
+}
+
+void
+kdi_idt_write(gate_desc_t *gate, uint_t vec)
+{
+	gate_desc_t *idt = CPU->cpu_m.mcpu_idt;
+
+	/*
+	 * See kdi_idtr_set().
+	 */
+	if (idt != NULL)
+		idt[vec] = *gate;
+
+	xen_idt_write(gate, vec);
+}
+
+ulong_t
+kdi_dreg_get(int reg)
+{
+	return (__hypercall1(__HYPERVISOR_get_debugreg, (long)reg));
+}
+
+void
+kdi_dreg_set(int reg, ulong_t value)
+{
+	(void) __hypercall2(__HYPERVISOR_set_debugreg, (long)reg, value);
+}
+
+void
+kdi_flush_caches(void)
+{
+}
+
+/*
+ * To avoid domains sucking up CPU while sitting in kmdb, we make all the slave
+ * CPUs wait for a wake-up evtchn.  The master CPU, meanwhile, sleeps for
+ * console activity.
+ */
+
+extern void kdi_slave_entry(void);
+
+void
+kdi_stop_slaves(int cpu, int doxc)
+{
+	if (doxc)
+		kdi_xc_others(cpu, kdi_slave_entry);
+	kdi_slaves_go = 0;
+}
+
+void
+kdi_start_slaves(void)
+{
+	int c;
+
+	kdi_slaves_go = 1;
+
+	for (c = 0; c < NCPU; c++) {
+		if (cpu[c] == NULL || !(cpu[c]->cpu_flags & CPU_READY))
+			continue;
+		ec_try_ipi(XC_CPUPOKE_PIL, c);
+	}
+}
+
+/*ARGSUSED*/
+static int
+check_slave(void *arg)
+{
+	return (kdi_slaves_go == 1);
+}
+
+void
+kdi_slave_wait(void)
+{
+	if (!(cpu[CPU->cpu_id]->cpu_flags & CPU_READY))
+		return;
+
+	ec_wait_on_ipi(XC_CPUPOKE_PIL, check_slave, NULL);
+}
+
+/*
+ * Caution.
+ * These routines are called -extremely- early, during kmdb initialization.
+ *
+ * Many common kernel functions assume that %gs has been initialized,
+ * and fail horribly if it hasn't.  At this point, the boot code has
+ * reserved a descriptor for us (KMDBGS_SEL) in it's GDT; arrange for it
+ * to point at a dummy cpu_t, temporarily at least.
+ *
+ * Note that kmdb entry relies on the fake cpu_t having zero cpu_idt/cpu_id.
+ */
+
+#if defined(__amd64)
+
+void *
+boot_kdi_tmpinit(void)
+{
+	cpu_t *cpu = kobj_zalloc(sizeof (*cpu), KM_TMP);
+	user_desc_t *bgdt;
+	uint64_t gdtpa;
+	ulong_t ma[1];
+
+	cpu->cpu_self = cpu;
+
+	/*
+	 * (Note that we had better switch to a -new- GDT before
+	 * we discard the KM_TMP mappings, or disaster will ensue.)
+	 */
+	bgdt = kobj_zalloc(PAGESIZE, KM_TMP);
+	ASSERT(((uintptr_t)bgdt & PAGEOFFSET) == 0);
+
+	init_boot_gdt(bgdt);
+
+	gdtpa = pfn_to_pa(va_to_pfn(bgdt));
+	ma[0] = (ulong_t)(pa_to_ma(gdtpa) >> PAGESHIFT);
+	kbm_read_only((uintptr_t)bgdt, gdtpa);
+	if (HYPERVISOR_set_gdt(ma, PAGESIZE / sizeof (user_desc_t)))
+		panic("boot_kdi_tmpinit:HYPERVISOR_set_gdt() failed");
+
+	load_segment_registers(B64CODE_SEL, 0, 0, B32DATA_SEL);
+
+	/*
+	 * Now point %gsbase to our temp cpu structure.
+	 */
+	xen_set_segment_base(SEGBASE_GS_KERNEL, (ulong_t)cpu);
+	return (0);
+}
+
+/*ARGSUSED*/
+void
+boot_kdi_tmpfini(void *old)
+{
+	/*
+	 * This breaks, why do we need it anyway?
+	 */
+#if 0	/* XXPV */
+	load_segment_registers(B64CODE_SEL, 0, KMDBGS_SEL, B32DATA_SEL);
+#endif
+}
+
+#elif defined(__i386)
+
+/*
+ * Sigh.  We're called before we've initialized the kernels GDT, living
+ * off the hypervisor's default GDT.  For kmdb's sake, we switch now to
+ * a GDT that looks like dboot's GDT; very shortly we'll initialize and
+ * switch to the kernel's GDT.
+ */
+
+void *
+boot_kdi_tmpinit(void)
+{
+	cpu_t *cpu = kobj_zalloc(sizeof (*cpu), KM_TMP);
+	user_desc_t *bgdt;
+	uint64_t gdtpa;
+	ulong_t ma[1];
+
+	cpu->cpu_self = cpu;
+
+	/*
+	 * (Note that we had better switch to a -new- GDT before
+	 * we discard the KM_TMP mappings, or disaster will ensue.)
+	 */
+	bgdt = kobj_zalloc(PAGESIZE, KM_TMP);
+
+	ASSERT(((uintptr_t)bgdt & PAGEOFFSET) == 0);
+	gdtpa = pfn_to_pa(va_to_pfn(bgdt));
+
+	init_boot_gdt(bgdt);
+
+	set_usegd(&bgdt[GDT_BGSTMP],
+	    cpu, sizeof (*cpu), SDT_MEMRWA, SEL_KPL, SDP_BYTES, SDP_OP32);
+
+	ma[0] = (ulong_t)(pa_to_ma(gdtpa) >> PAGESHIFT);
+	kbm_read_only((uintptr_t)bgdt, gdtpa);
+	if (HYPERVISOR_set_gdt(ma, PAGESIZE / sizeof (user_desc_t)))
+		panic("boot_kdi_tmpinit:HYPERVISOR_set_gdt() failed");
+
+	load_segment_registers(B32CODE_SEL, B32DATA_SEL, B32DATA_SEL, 0,
+	    KMDBGS_SEL, B32DATA_SEL);
+	return (0);
+}
+
+/*ARGSUSED*/
+void
+boot_kdi_tmpfini(void *old)
+{
+	load_segment_registers(B32CODE_SEL, B32DATA_SEL, B32DATA_SEL, 0,
+	    0, B32DATA_SEL);
+}
+
+#endif	/* __i386 */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/mp_xen.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,894 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/param.h>
+#include <sys/taskq.h>
+#include <sys/cmn_err.h>
+#include <sys/archsystm.h>
+#include <sys/machsystm.h>
+#include <sys/segments.h>
+#include <sys/cpuvar.h>
+#include <sys/psw.h>
+#include <sys/x86_archext.h>
+#include <sys/controlregs.h>
+#include <vm/as.h>
+#include <vm/hat.h>
+#include <vm/hat_i86.h>
+#include <sys/mman.h>
+#include <sys/hypervisor.h>
+#include <xen/sys/xenbus_impl.h>
+#include <sys/xpv_panic.h>
+#include <util/sscanf.h>
+#include <sys/cpu.h>
+#include <asm/cpu.h>
+
+#include <xen/public/vcpu.h>
+#include <xen/public/io/xs_wire.h>
+
+struct xen_evt_data cpu0_evt_data;		/* cpu0's pending event data */
+
+static taskq_t *cpu_config_tq;
+static void vcpu_config_event(struct xenbus_watch *, const char **, uint_t);
+static int xen_vcpu_initialize(processorid_t, vcpu_guest_context_t *);
+
+/*
+ * These routines allocate any global state that might be needed
+ * while starting cpus.  For virtual cpus, there is no such state.
+ */
+int
+mach_cpucontext_init(void)
+{
+	return (0);
+}
+
+void
+do_cpu_config_watch(int state)
+{
+	static struct xenbus_watch cpu_config_watch;
+
+	if (state != XENSTORE_UP)
+		return;
+	cpu_config_watch.node = "cpu";
+	cpu_config_watch.callback = vcpu_config_event;
+	if (register_xenbus_watch(&cpu_config_watch)) {
+		taskq_destroy(cpu_config_tq);
+		cmn_err(CE_WARN, "do_cpu_config_watch: "
+		    "failed to set vcpu config watch");
+	}
+
+}
+
+/*
+ * This routine is called after all the "normal" MP startup has
+ * been done; a good place to start watching xen store for virtual
+ * cpu hot plug events.
+ */
+void
+mach_cpucontext_fini(void)
+{
+
+	cpu_config_tq = taskq_create("vcpu config taskq", 1,
+	    maxclsyspri - 1, 1, 1, TASKQ_PREPOPULATE);
+
+	(void) xs_register_xenbus_callback(do_cpu_config_watch);
+}
+
+/*
+ * Fill in the remaining CPU context and initialize it.
+ */
+static int
+mp_set_cpu_context(vcpu_guest_context_t *vgc, cpu_t *cp)
+{
+	uint_t vec, iopl;
+
+	vgc->flags = VGCF_IN_KERNEL;
+
+	/*
+	 * fpu_ctx we leave as zero; on first fault we'll store
+	 * sse_initial into it anyway.
+	 */
+
+#if defined(__amd64)
+	vgc->user_regs.cs = KCS_SEL | SEL_KPL;	/* force to ring 3 */
+#else
+	vgc->user_regs.cs = KCS_SEL;
+#endif
+	vgc->user_regs.ds = KDS_SEL;
+	vgc->user_regs.es = KDS_SEL;
+	vgc->user_regs.ss = KDS_SEL;
+	vgc->kernel_ss = KDS_SEL;
+
+	/*
+	 * Allow I/O privilege level for Dom0 kernel.
+	 */
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		iopl = (PS_IOPL & 0x1000); /* ring 1 */
+	else
+		iopl = 0;
+
+#if defined(__amd64)
+	vgc->user_regs.fs = 0;
+	vgc->user_regs.gs = 0;
+	vgc->user_regs.rflags = F_OFF | iopl;
+#elif defined(__i386)
+	vgc->user_regs.fs = KFS_SEL;
+	vgc->user_regs.gs = KGS_SEL;
+	vgc->user_regs.eflags = F_OFF | iopl;
+	vgc->event_callback_cs = vgc->user_regs.cs;
+	vgc->failsafe_callback_cs = vgc->user_regs.cs;
+#endif
+
+	/*
+	 * Initialize the trap_info_t from the IDT
+	 */
+#if !defined(__lint)
+	ASSERT(NIDT == sizeof (vgc->trap_ctxt) / sizeof (vgc->trap_ctxt[0]));
+#endif
+	for (vec = 0; vec < NIDT; vec++) {
+		trap_info_t *ti = &vgc->trap_ctxt[vec];
+
+		if (xen_idt_to_trap_info(vec,
+		    &cp->cpu_m.mcpu_idt[vec], ti) == 0) {
+			ti->cs = KCS_SEL;
+			ti->vector = vec;
+		}
+	}
+
+	/*
+	 * No LDT
+	 */
+
+	/*
+	 * (We assert in various places that the GDT is (a) aligned on a
+	 * page boundary and (b) one page long, so this really should fit..)
+	 */
+#ifdef CRASH_XEN
+	vgc->gdt_frames[0] = pa_to_ma(mmu_btop(cp->cpu_m.mcpu_gdtpa));
+#else
+	vgc->gdt_frames[0] = pfn_to_mfn(mmu_btop(cp->cpu_m.mcpu_gdtpa));
+#endif
+	vgc->gdt_ents = NGDT;
+
+	vgc->ctrlreg[0] = CR0_ENABLE_FPU_FLAGS(getcr0());
+
+#if defined(__i386)
+	if (mmu.pae_hat)
+		vgc->ctrlreg[3] =
+		    xen_pfn_to_cr3(pfn_to_mfn(kas.a_hat->hat_htable->ht_pfn));
+	else
+#endif
+		vgc->ctrlreg[3] =
+		    pa_to_ma(mmu_ptob(kas.a_hat->hat_htable->ht_pfn));
+
+	vgc->ctrlreg[4] = getcr4();
+
+	vgc->event_callback_eip = (uintptr_t)xen_callback;
+	vgc->failsafe_callback_eip = (uintptr_t)xen_failsafe_callback;
+	vgc->flags |= VGCF_failsafe_disables_events;
+
+#if defined(__amd64)
+	/*
+	 * XXPV should this be moved to init_cpu_syscall?
+	 */
+	vgc->syscall_callback_eip = (uintptr_t)sys_syscall;
+	vgc->flags |= VGCF_syscall_disables_events;
+
+	ASSERT(vgc->user_regs.gs == 0);
+	vgc->gs_base_kernel = (uintptr_t)cp;
+#endif
+
+	return (xen_vcpu_initialize(cp->cpu_id, vgc));
+}
+
+/*
+ * Create a guest virtual cpu context so that the virtual cpu
+ * springs into life in the domain just about to call mp_startup()
+ *
+ * Virtual CPUs must be initialized once in the lifetime of the domain;
+ * after that subsequent attempts to start them will fail with X_EEXIST.
+ *
+ * Thus 'alloc' -really- creates and initializes the virtual
+ * CPU context just once. Once the initialisation succeeds, we never
+ * free it, nor the regular cpu_t to which it refers.
+ */
+void *
+mach_cpucontext_alloc(struct cpu *cp)
+{
+	kthread_t *tp = cp->cpu_thread;
+	vcpu_guest_context_t vgc;
+
+	int err = 1;
+
+	/*
+	 * First, augment the incoming cpu structure
+	 * - vcpu pointer reference
+	 * - pending event storage area
+	 * - physical address of GDT
+	 */
+	cp->cpu_m.mcpu_vcpu_info =
+	    &HYPERVISOR_shared_info->vcpu_info[cp->cpu_id];
+	cp->cpu_m.mcpu_evt_pend = kmem_zalloc(
+	    sizeof (struct xen_evt_data), KM_SLEEP);
+	cp->cpu_m.mcpu_gdtpa =
+	    mmu_ptob(hat_getpfnum(kas.a_hat, (caddr_t)cp->cpu_gdt));
+
+	if ((err = xen_gdt_setprot(cp, PROT_READ)) != 0)
+		goto done;
+
+	/*
+	 * Now set up the vcpu context so that we can start this vcpu
+	 * in the kernel at tp->t_pc (mp_startup).  Note that the
+	 * thread will thread_exit() shortly after performing the
+	 * initialization; in particular, we will *never* take a
+	 * privilege transition on this thread.
+	 */
+
+	bzero(&vgc, sizeof (vgc));
+
+#ifdef __amd64
+	vgc.user_regs.rip = tp->t_pc;
+	vgc.user_regs.rsp = tp->t_sp;
+	vgc.user_regs.rbp = tp->t_sp - 2 * sizeof (greg_t);
+#else
+	vgc.user_regs.eip = tp->t_pc;
+	vgc.user_regs.esp = tp->t_sp;
+	vgc.user_regs.ebp = tp->t_sp - 2 * sizeof (greg_t);
+#endif
+	/*
+	 * XXPV	Fix resume, if Russ didn't already fix it.
+	 *
+	 * Note that resume unconditionally puts t->t_stk + sizeof (regs)
+	 * into kernel_sp via HYPERVISOR_stack_switch. This anticipates
+	 * that only lwps take traps that switch to the kernel stack;
+	 * part of creating an lwp adjusts the stack by subtracting
+	 * sizeof (struct regs) off t_stk.
+	 *
+	 * The more interesting question is, why do we do all the work
+	 * of a fully fledged lwp for a plain thread?  In particular
+	 * we don't have to call HYPERVISOR_stack_switch for lwp-less threads
+	 * or futz with the LDT.  This should probably all be done with
+	 * an lwp context operator to keep pure thread context switch fast.
+	 */
+	vgc.kernel_sp = (ulong_t)tp->t_stk;
+
+	err = mp_set_cpu_context(&vgc, cp);
+
+done:
+	if (err) {
+		mach_cpucontext_free(cp, NULL, err);
+		return (NULL);
+	}
+	return (cp);
+}
+
+/*
+ * By the time we are called either we have successfully started
+ * the cpu, or our attempt to start it has failed.
+ */
+
+/*ARGSUSED*/
+void
+mach_cpucontext_free(struct cpu *cp, void *arg, int err)
+{
+	switch (err) {
+	case 0:
+		break;
+	case ETIMEDOUT:
+		/*
+		 * The vcpu context is loaded into the hypervisor, and
+		 * we've tried to start it, but the vcpu has not been set
+		 * running yet, for whatever reason.  We arrange to -not-
+		 * free any data structures it may be referencing.  In
+		 * particular, we've already told the hypervisor about
+		 * the GDT, and so we can't map it read-write again.
+		 */
+		break;
+	default:
+		(void) xen_gdt_setprot(cp, PROT_READ | PROT_WRITE);
+		kmem_free(cp->cpu_m.mcpu_evt_pend,
+		    sizeof (struct xen_evt_data));
+		break;
+	}
+}
+
+/*
+ * Reset this CPU's context.  Clear out any pending evtchn data, since event
+ * channel numbers will all change when we resume.
+ */
+void
+mach_cpucontext_reset(cpu_t *cp)
+{
+	bzero(cp->cpu_m.mcpu_evt_pend, sizeof (struct xen_evt_data));
+	/* mcpu_intr_pending ? */
+}
+
+static void
+pcb_to_user_regs(label_t *pcb, vcpu_guest_context_t *vgc)
+{
+#ifdef __amd64
+	vgc->user_regs.rip = pcb->val[REG_LABEL_PC];
+	vgc->user_regs.rsp = pcb->val[REG_LABEL_SP];
+	vgc->user_regs.rbp = pcb->val[REG_LABEL_BP];
+	vgc->user_regs.rbx = pcb->val[REG_LABEL_RBX];
+	vgc->user_regs.r12 = pcb->val[REG_LABEL_R12];
+	vgc->user_regs.r13 = pcb->val[REG_LABEL_R13];
+	vgc->user_regs.r14 = pcb->val[REG_LABEL_R14];
+	vgc->user_regs.r15 = pcb->val[REG_LABEL_R15];
+#else /* __amd64 */
+	vgc->user_regs.eip = pcb->val[REG_LABEL_PC];
+	vgc->user_regs.esp = pcb->val[REG_LABEL_SP];
+	vgc->user_regs.ebp = pcb->val[REG_LABEL_BP];
+	vgc->user_regs.ebx = pcb->val[REG_LABEL_EBX];
+	vgc->user_regs.esi = pcb->val[REG_LABEL_ESI];
+	vgc->user_regs.edi = pcb->val[REG_LABEL_EDI];
+#endif /* __amd64 */
+}
+
+/*
+ * Restore the context of a CPU during resume.  The CPU must either
+ * have been blocked in cpu_idle() (running the idle thread), if it was
+ * offline, or inside cpu_pause_thread().  Either way we can restore safely
+ * from the t_pcb.
+ */
+void
+mach_cpucontext_restore(cpu_t *cp)
+{
+	vcpu_guest_context_t vgc;
+	int err;
+
+	ASSERT(cp->cpu_thread == cp->cpu_pause_thread ||
+	    cp->cpu_thread == cp->cpu_idle_thread);
+
+	bzero(&vgc, sizeof (vgc));
+
+	pcb_to_user_regs(&cp->cpu_thread->t_pcb, &vgc);
+
+	/*
+	 * We're emulating a longjmp() here: in particular, we need to bump the
+	 * stack pointer to account for the pop of xIP that returning from
+	 * longjmp() normally would do, and set the return value in xAX to 1.
+	 */
+#ifdef __amd64
+	vgc.user_regs.rax = 1;
+	vgc.user_regs.rsp += sizeof (ulong_t);
+#else
+	vgc.user_regs.eax = 1;
+	vgc.user_regs.esp += sizeof (ulong_t);
+#endif
+
+	vgc.kernel_sp = cp->cpu_thread->t_sp;
+
+	err = mp_set_cpu_context(&vgc, cp);
+
+	ASSERT(err == 0);
+}
+
+void
+mach_cpu_idle(void)
+{
+	if (IN_XPV_PANIC()) {
+		xpv_panic_halt();
+	} else  {
+		(void) setjmp(&curthread->t_pcb);
+		CPUSET_ATOMIC_ADD(cpu_suspend_set, CPU->cpu_id);
+		(void) HYPERVISOR_block();
+		CPUSET_ATOMIC_DEL(cpu_suspend_set, CPU->cpu_id);
+	}
+}
+
+void
+mach_cpu_halt(char *msg)
+{
+	if (msg)
+		prom_printf("%s\n", msg);
+	(void) xen_vcpu_down(CPU->cpu_id);
+}
+
+void
+mach_cpu_pause(volatile char *safe)
+{
+	ulong_t flags;
+
+	flags = intr_clear();
+
+	if (setjmp(&curthread->t_pcb) == 0) {
+		CPUSET_ATOMIC_ADD(cpu_suspend_set, CPU->cpu_id);
+		/*
+		 * This cpu is now safe.
+		 */
+		*safe = PAUSE_WAIT;
+		membar_enter();
+	}
+
+	while (*safe != PAUSE_IDLE)
+		SMT_PAUSE();
+
+	CPUSET_ATOMIC_DEL(cpu_suspend_set, CPU->cpu_id);
+
+	intr_restore(flags);
+}
+
+/*
+ * Virtual CPU management.
+ *
+ * VCPUs can be controlled in one of two ways; through the domain itself
+ * (psradm, p_online(), etc.), and via changes in xenstore (vcpu_config()).
+ * Unfortunately, the terminology is used in different ways; they work out as
+ * follows:
+ *
+ * P_ONLINE: the VCPU is up and running, taking interrupts and running threads
+ *
+ * P_OFFLINE: the VCPU is up and running, but quiesced (i.e. blocked in the
+ * hypervisor on the idle thread).  It must be up since a downed VCPU cannot
+ * receive interrupts, and we require this for offline CPUs in Solaris.
+ *
+ * P_POWEROFF: the VCPU is down (we never called xen_vcpu_up(), or called
+ * xen_vcpu_down() for it).  It can't take interrupts or run anything, though
+ * if it has run previously, its software state (cpu_t, machcpu structures, IPI
+ * event channels, etc.) will still exist.
+ *
+ * The hypervisor has two notions of CPU states as represented in the store:
+ *
+ * "offline": the VCPU is down.  Corresponds to P_POWEROFF.
+ *
+ * "online": the VCPU is running.  Corresponds to a CPU state other than
+ * P_POWEROFF.
+ *
+ * Currently, only a notification via xenstore can bring a CPU into a
+ * P_POWEROFF state, and only the domain can change between P_ONLINE, P_NOINTR,
+ * P_OFFLINE, etc.  We need to be careful to treat xenstore notifications
+ * idempotently, as we'll get 'duplicate' entries when we resume a domain.
+ *
+ * Note that the xenstore configuration is strictly advisory, in that a domain
+ * can choose to ignore it and still power up a VCPU in the offline state. To
+ * play nice, we don't allow it. Thus, any attempt to power on/off a CPU is
+ * ENOTSUP from within Solaris.
+ */
+
+/*ARGSUSED*/
+int
+mp_cpu_poweron(struct cpu *cp)
+{
+	return (ENOTSUP);
+}
+
+/*ARGSUSED*/
+int
+mp_cpu_poweroff(struct cpu *cp)
+{
+	return (ENOTSUP);
+}
+
+static int
+poweron_vcpu(struct cpu *cp)
+{
+	int error;
+
+	ASSERT(MUTEX_HELD(&cpu_lock));
+
+	if (HYPERVISOR_vcpu_op(VCPUOP_is_up, cp->cpu_id, NULL) != 0) {
+		printf("poweron_vcpu: vcpu%d is not available!\n",
+		    cp->cpu_id);
+		return (ENXIO);
+	}
+
+	if ((error = xen_vcpu_up(cp->cpu_id)) == 0) {
+		CPUSET_ADD(cpu_ready_set, cp->cpu_id);
+		cp->cpu_flags |= CPU_EXISTS | CPU_READY | CPU_RUNNING;
+		cp->cpu_flags &= ~CPU_POWEROFF;
+		/*
+		 * There are some nasty races possible here.
+		 * Tell the vcpu it's up one more time.
+		 * XXPV	Is this enough?  Is this safe?
+		 */
+		(void) xen_vcpu_up(cp->cpu_id);
+
+		cpu_set_state(cp);
+	}
+	return (error);
+}
+
+static int
+poweroff_poke(void)
+{
+	CPUSET_ATOMIC_DEL(cpu_suspend_set, CPU->cpu_id);
+	return (0);
+}
+
+/*
+ * We must ensure that the VCPU reaches a safe state (in the suspend set, and
+ * thus is not going to change) before we can power it off.  The VCPU could
+ * still be in mach_cpu_pause() and about to head back out; so just checking
+ * cpu_suspend_set() isn't sufficient to make sure the VCPU has stopped moving.
+ * Instead, we xcall it to delete itself from the set; whichever way it comes
+ * back from that xcall, it won't mark itself in the set until it's safely back
+ * in mach_cpu_idle().
+ */
+static int
+poweroff_vcpu(struct cpu *cp)
+{
+	int error;
+	cpuset_t set;
+
+	ASSERT(MUTEX_HELD(&cpu_lock));
+
+	ASSERT(CPU->cpu_id != cp->cpu_id);
+	ASSERT(cp->cpu_flags & CPU_QUIESCED);
+
+	CPUSET_ONLY(set, cp->cpu_id);
+
+	xc_sync(0, 0, 0, X_CALL_HIPRI, set, (xc_func_t)poweroff_poke);
+
+	while (!CPU_IN_SET(cpu_suspend_set, cp->cpu_id))
+		SMT_PAUSE();
+
+	if ((error = xen_vcpu_down(cp->cpu_id)) == 0) {
+		ASSERT(CPU_IN_SET(cpu_suspend_set, cp->cpu_id));
+		CPUSET_DEL(cpu_ready_set, cp->cpu_id);
+		cp->cpu_flags |= CPU_POWEROFF | CPU_OFFLINE;
+		cp->cpu_flags &=
+		    ~(CPU_RUNNING | CPU_READY | CPU_EXISTS | CPU_ENABLE);
+
+		cpu_set_state(cp);
+	}
+	return (error);
+}
+
+static int
+vcpu_config_poweroff(processorid_t id)
+{
+	int oldstate;
+	int error;
+	cpu_t *cp;
+
+	mutex_enter(&cpu_lock);
+
+	if ((cp = cpu_get(id)) == NULL) {
+		mutex_exit(&cpu_lock);
+		return (ESRCH);
+	}
+
+	if (cpu_get_state(cp) == P_POWEROFF) {
+		mutex_exit(&cpu_lock);
+		return (0);
+	}
+
+	mutex_exit(&cpu_lock);
+
+	do {
+		error = p_online_internal(id, P_OFFLINE,
+		    &oldstate);
+
+		if (error != 0)
+			break;
+
+		/*
+		 * So we just changed it to P_OFFLINE.  But then we dropped
+		 * cpu_lock, so now it is possible for another thread to change
+		 * the cpu back to a different, non-quiesced state e.g.
+		 * P_ONLINE.
+		 */
+		mutex_enter(&cpu_lock);
+		if ((cp = cpu_get(id)) == NULL)
+			error = ESRCH;
+		else {
+			if (cp->cpu_flags & CPU_QUIESCED)
+				error = poweroff_vcpu(cp);
+			else
+				error = EBUSY;
+		}
+		mutex_exit(&cpu_lock);
+	} while (error == EBUSY);
+
+	return (error);
+}
+
+/*
+ * Add a new virtual cpu to the domain.
+ */
+static int
+vcpu_config_new(processorid_t id)
+{
+	extern int start_cpu(processorid_t);
+	int error;
+
+	if (ncpus == 1) {
+		printf("cannot (yet) add cpus to a single-cpu domain\n");
+		return (ENOTSUP);
+	}
+
+	affinity_set(CPU_CURRENT);
+	error = start_cpu(id);
+	affinity_clear();
+	return (error);
+}
+
+static int
+vcpu_config_poweron(processorid_t id)
+{
+	cpu_t *cp;
+	int oldstate;
+	int error;
+
+	if (id >= ncpus)
+		return (vcpu_config_new(id));
+
+	mutex_enter(&cpu_lock);
+
+	if ((cp = cpu_get(id)) == NULL) {
+		mutex_exit(&cpu_lock);
+		return (ESRCH);
+	}
+
+	if (cpu_get_state(cp) != P_POWEROFF) {
+		mutex_exit(&cpu_lock);
+		return (0);
+	}
+
+	if ((error = poweron_vcpu(cp)) != 0) {
+		mutex_exit(&cpu_lock);
+		return (error);
+	}
+
+	mutex_exit(&cpu_lock);
+
+	return (p_online_internal(id, P_ONLINE, &oldstate));
+}
+
+#define	REPORT_LEN	128
+
+static void
+vcpu_config_report(processorid_t id, uint_t newstate, int error)
+{
+	char *report = kmem_alloc(REPORT_LEN, KM_SLEEP);
+	size_t len;
+	char *ps;
+
+	switch (newstate) {
+	case P_ONLINE:
+		ps = PS_ONLINE;
+		break;
+	case P_POWEROFF:
+		ps = PS_POWEROFF;
+		break;
+	default:
+		cmn_err(CE_PANIC, "unknown state %u\n", newstate);
+		break;
+	}
+
+	len = snprintf(report, REPORT_LEN,
+	    "cpu%d: externally initiated %s", id, ps);
+
+	if (!error) {
+		cmn_err(CE_CONT, "!%s\n", report);
+		kmem_free(report, REPORT_LEN);
+		return;
+	}
+
+	len += snprintf(report + len, REPORT_LEN - len,
+	    " failed, error %d: ", error);
+	switch (error) {
+	case EEXIST:
+		len += snprintf(report + len, REPORT_LEN - len,
+		    "cpu already %s", ps ? ps : "?");
+		break;
+	case ESRCH:
+		len += snprintf(report + len, REPORT_LEN - len,
+		    "cpu not found");
+		break;
+	case EINVAL:
+	case EALREADY:
+		break;
+	case EPERM:
+		len += snprintf(report + len, REPORT_LEN - len,
+		    "insufficient privilege (0x%x)", id);
+		break;
+	case EBUSY:
+		switch (newstate) {
+		case P_ONLINE:
+			/*
+			 * This return comes from mp_cpu_start -
+			 * we cannot 'start' the boot CPU.
+			 */
+			len += snprintf(report + len, REPORT_LEN - len,
+			    "already running");
+			break;
+		case P_POWEROFF:
+			len += snprintf(report + len, REPORT_LEN - len,
+			    "bound lwps?");
+			break;
+		default:
+			break;
+		}
+	default:
+		break;
+	}
+
+	cmn_err(CE_CONT, "%s\n", report);
+	kmem_free(report, REPORT_LEN);
+}
+
+static void
+vcpu_config(void *arg)
+{
+	int id = (int)(uintptr_t)arg;
+	int error;
+	char dir[16];
+	char *state;
+
+	if ((uint_t)id >= max_ncpus) {
+		cmn_err(CE_WARN,
+		    "vcpu_config: cpu%d does not fit in this domain", id);
+		return;
+	}
+
+	(void) snprintf(dir, sizeof (dir), "cpu/%d", id);
+	state = kmem_alloc(MAXPATHLEN, KM_SLEEP);
+	if (xenbus_scanf(XBT_NULL, dir, "availability", "%s", state) == 0) {
+		if (strcmp(state, "online") == 0) {
+			error = vcpu_config_poweron(id);
+			vcpu_config_report(id, P_ONLINE, error);
+		} else if (strcmp(state, "offline") == 0) {
+			error = vcpu_config_poweroff(id);
+			vcpu_config_report(id, P_POWEROFF, error);
+		} else {
+			cmn_err(CE_WARN,
+			    "cpu%d: unknown target state '%s'", id, state);
+		}
+	} else
+		cmn_err(CE_WARN,
+		    "cpu%d: unable to read target state from xenstore", id);
+
+	kmem_free(state, MAXPATHLEN);
+}
+
+/*ARGSUSED*/
+static void
+vcpu_config_event(struct xenbus_watch *watch, const char **vec, uint_t len)
+{
+	const char *path = vec[XS_WATCH_PATH];
+	processorid_t id;
+	char *s;
+
+	if ((s = strstr(path, "cpu/")) != NULL &&
+	    sscanf(s, "cpu/%d", &id) == 1) {
+		/*
+		 * Run the virtual CPU configuration on a separate thread to
+		 * avoid blocking on this event for too long (and for now,
+		 * to ensure configuration requests are serialized.)
+		 */
+		(void) taskq_dispatch(cpu_config_tq,
+		    vcpu_config, (void *)(uintptr_t)id, 0);
+	}
+}
+
+static int
+xen_vcpu_initialize(processorid_t id, vcpu_guest_context_t *vgc)
+{
+	int err;
+
+	if ((err = HYPERVISOR_vcpu_op(VCPUOP_initialise, id, vgc)) != 0) {
+		char *str;
+		int level = CE_WARN;
+
+		switch (err) {
+		case -X_EINVAL:
+			/*
+			 * This interface squashes multiple error sources
+			 * to one error code.  In particular, an X_EINVAL
+			 * code can mean:
+			 *
+			 * -	the vcpu id is out of range
+			 * -	cs or ss are in ring 0
+			 * -	cr3 is wrong
+			 * -	an entry in the new gdt is above the
+			 *	reserved entry
+			 * -	a frame underneath the new gdt is bad
+			 */
+			str = "something is wrong :(";
+			break;
+		case -X_ENOENT:
+			str = "no such cpu";
+			break;
+		case -X_ENOMEM:
+			str = "no mem to copy ctxt";
+			break;
+		case -X_EFAULT:
+			str = "bad address";
+			break;
+		case -X_EEXIST:
+			/*
+			 * Hmm.  This error is returned if the vcpu has already
+			 * been initialized once before in the lifetime of this
+			 * domain.  This is a logic error in the kernel.
+			 */
+			level = CE_PANIC;
+			str = "already initialized";
+			break;
+		default:
+			level = CE_PANIC;
+			str = "<unexpected>";
+			break;
+		}
+
+		cmn_err(level, "vcpu%d: failed to init: error %d: %s",
+		    id, -err, str);
+	}
+	return (err);
+}
+
+long
+xen_vcpu_up(processorid_t id)
+{
+	long err;
+
+	if ((err = HYPERVISOR_vcpu_op(VCPUOP_up, id, NULL)) != 0) {
+		char *str;
+
+		switch (err) {
+		case -X_ENOENT:
+			str = "no such cpu";
+			break;
+		case -X_EINVAL:
+			/*
+			 * Perhaps this is diagnostic overkill.
+			 */
+			if (HYPERVISOR_vcpu_op(VCPUOP_is_up, id, NULL) < 0)
+				str = "bad cpuid";
+			else
+				str = "not initialized";
+			break;
+		default:
+			str = "<unexpected>";
+			break;
+		}
+
+		printf("vcpu%d: failed to start: error %d: %s\n",
+		    id, -(int)err, str);
+		return (EBFONT);	/* deliberately silly */
+	}
+	return (err);
+}
+
+long
+xen_vcpu_down(processorid_t id)
+{
+	long err;
+
+	if ((err = HYPERVISOR_vcpu_op(VCPUOP_down, id, NULL)) != 0) {
+		/*
+		 * X_ENOENT:	no such cpu
+		 * X_EINVAL:	bad cpuid
+		 */
+		panic("vcpu%d: failed to stop: error %d", id, -(int)err);
+	}
+
+	return (err);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/xen_machdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,1078 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/* derived from netbsd's xen_machdep.c 1.1.2.1 */
+
+/*
+ *
+ * Copyright (c) 2004 Christian Limpach.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. This section intentionally left blank.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Section 3 of the above license was updated in response to bug 6379571.
+ */
+
+#include <sys/types.h>
+#include <sys/cmn_err.h>
+#include <sys/trap.h>
+#include <sys/segments.h>
+#include <sys/sunddi.h>		/* for ddi_strtoul */
+#include <sys/hypervisor.h>
+#include <sys/xen_mmu.h>
+#include <sys/machsystm.h>
+#include <sys/promif.h>
+#include <sys/bootconf.h>
+#include <sys/bootinfo.h>
+#include <sys/cpr.h>
+#include <sys/taskq.h>
+#include <sys/uadmin.h>
+#include <sys/evtchn_impl.h>
+#include <sys/archsystm.h>
+#include <xen/sys/xenbus_impl.h>
+#include <sys/mach_mmu.h>
+#include <vm/hat_i86.h>
+#include <sys/gnttab.h>
+#include <sys/reboot.h>
+#include <sys/stack.h>
+#include <sys/clock.h>
+#include <sys/bitmap.h>
+#include <sys/processor.h>
+#include <sys/xen_errno.h>
+#include <sys/xpv_panic.h>
+#include <sys/smp_impldefs.h>
+#include <sys/cpu.h>
+#include <sys/balloon_impl.h>
+#include <sys/ddi.h>
+
+/*
+ * Hypervisor-specific utility routines - these can be invoked from the
+ * normal control flow.  It might be useful to partition these into
+ * different files, but let's see how it looks before we get too
+ * carried away with that idea.
+ */
+
+/*
+ * In the current absence of any useful way to debug domains that are hung
+ * whilst suspending, we have a more clumsy approach...
+ */
+#ifdef DEBUG
+#define	SUSPEND_DEBUG if (xen_suspend_debug) xen_printf
+#else
+#define	SUSPEND_DEBUG(...)
+#endif
+
+int cpr_debug;
+cpuset_t cpu_suspend_set;
+cpuset_t cpu_suspend_lost_set;
+volatile int xen_suspending_cpus;
+static int xen_suspend_debug;
+
+void
+xen_set_callback(void (*func)(void), uint_t type, uint_t flags)
+{
+	struct callback_register cb;
+
+	bzero(&cb, sizeof (cb));
+#if defined(__amd64)
+	cb.address = (ulong_t)func;
+#elif defined(__i386)
+	cb.address.cs = KCS_SEL;
+	cb.address.eip = (ulong_t)func;
+#endif
+	cb.type = type;
+	cb.flags = flags;
+
+	/*
+	 * XXPV always ignore return value for NMI
+	 */
+	if (HYPERVISOR_callback_op(CALLBACKOP_register, &cb) != 0 &&
+	    type != CALLBACKTYPE_nmi)
+		panic("HYPERVISOR_callback_op failed");
+}
+
+void
+xen_init_callbacks(void)
+{
+	/*
+	 * register event (interrupt) handler.
+	 */
+	xen_set_callback(xen_callback, CALLBACKTYPE_event, 0);
+
+	/*
+	 * failsafe handler.
+	 */
+	xen_set_callback(xen_failsafe_callback, CALLBACKTYPE_failsafe,
+	    CALLBACKF_mask_events);
+
+	/*
+	 * NMI handler.
+	 */
+	xen_set_callback(nmiint, CALLBACKTYPE_nmi, 0);
+
+	/*
+	 * system call handler
+	 * XXPV move to init_cpu_syscall?
+	 */
+#if defined(__amd64)
+	xen_set_callback(sys_syscall, CALLBACKTYPE_syscall,
+	    CALLBACKF_mask_events);
+#endif	/* __amd64 */
+}
+
+
+/*
+ * cmn_err() followed by a 1/4 second delay; this gives the
+ * logging service a chance to flush messages and helps avoid
+ * intermixing output from prom_printf().
+ * XXPV: doesn't exactly help us on UP though.
+ */
+/*PRINTFLIKE2*/
+void
+cpr_err(int ce, const char *fmt, ...)
+{
+	va_list adx;
+
+	va_start(adx, fmt);
+	vcmn_err(ce, fmt, adx);
+	va_end(adx);
+	drv_usecwait(MICROSEC >> 2);
+}
+
+void
+xen_suspend_devices(void)
+{
+	int rc;
+
+	SUSPEND_DEBUG("xen_suspend_devices\n");
+
+	if ((rc = cpr_suspend_devices(ddi_root_node())) != 0)
+		panic("failed to suspend devices: %d", rc);
+}
+
+void
+xen_resume_devices(void)
+{
+	int rc;
+
+	SUSPEND_DEBUG("xen_resume_devices\n");
+
+	if ((rc = cpr_resume_devices(ddi_root_node(), 0)) != 0)
+		panic("failed to resume devices: %d", rc);
+}
+
+/*
+ * The list of mfn pages is out of date.  Recompute it.
+ * XXPV: can we race against another suspend call? Think not.
+ */
+static void
+rebuild_mfn_list(void)
+{
+	int i = 0;
+	size_t sz;
+	size_t off;
+	pfn_t pfn;
+
+	SUSPEND_DEBUG("rebuild_mfn_list\n");
+
+	sz = ((mfn_count * sizeof (mfn_t)) + MMU_PAGEOFFSET) & MMU_PAGEMASK;
+
+	for (off = 0; off < sz; off += MMU_PAGESIZE) {
+		size_t j = mmu_btop(off);
+		if (((j * sizeof (mfn_t)) & MMU_PAGEOFFSET) == 0) {
+			pfn = hat_getpfnum(kas.a_hat,
+			    (caddr_t)&mfn_list_pages[j]);
+			mfn_list_pages_page[i++] = pfn_to_mfn(pfn);
+		}
+
+		pfn = hat_getpfnum(kas.a_hat, (caddr_t)mfn_list + off);
+		mfn_list_pages[j] = pfn_to_mfn(pfn);
+	}
+
+	pfn = hat_getpfnum(kas.a_hat, (caddr_t)mfn_list_pages_page);
+	HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list
+	    = pfn_to_mfn(pfn);
+}
+
+static void
+suspend_cpus(void)
+{
+	int i;
+
+	SUSPEND_DEBUG("suspend_cpus\n");
+
+	xen_suspending_cpus = 1;
+
+	pause_cpus(NULL);
+
+	SUSPEND_DEBUG("waiting for offline CPUs\n");
+
+	/*
+	 * For us to proceed safely, all CPUs except the current one must be
+	 * present in cpu_suspend_set.  Running CPUs will participate in
+	 * pause_cpus(), and eventually reach mach_cpu_pause().  Powered-off
+	 * VCPUs will already be in the set, again in mach_cpu_pause().
+	 * Finally, offline CPUs will be sitting in mach_cpu_idle().
+	 */
+	while (!CPUSET_ISEQUAL(mp_cpus, cpu_suspend_set))
+		SMT_PAUSE();
+
+	for (i = 1; i < ncpus; i++) {
+		if (!CPU_IN_SET(cpu_suspend_lost_set, i)) {
+			SUSPEND_DEBUG("xen_vcpu_down %d\n", i);
+			(void) xen_vcpu_down(i);
+		}
+
+		mach_cpucontext_reset(cpu[i]);
+	}
+}
+
+static void
+resume_cpus(void)
+{
+	int i;
+
+	xen_suspending_cpus = 0;
+
+	for (i = 1; i < ncpus; i++) {
+		if (cpu[i] == NULL)
+			continue;
+
+		if (!CPU_IN_SET(cpu_suspend_lost_set, i)) {
+			SUSPEND_DEBUG("xen_vcpu_up %d\n", i);
+			mach_cpucontext_restore(cpu[i]);
+			(void) xen_vcpu_up(i);
+		}
+	}
+
+	start_cpus();
+}
+
+/*
+ * Top level routine to direct suspend/resume of a domain.
+ */
+void
+xen_suspend_domain(void)
+{
+	extern void rtcsync(void);
+	extern hrtime_t hres_last_tick;
+	mfn_t start_info_mfn;
+	ulong_t flags;
+	pfn_t pfn;
+	int i;
+
+	/*
+	 * XXPV - Are we definitely OK to suspend by the time we've connected
+	 * the handler?
+	 */
+
+	cpr_err(CE_NOTE, "Domain suspending for save/migrate");
+
+	SUSPEND_DEBUG("xen_suspend_domain\n");
+
+	/*
+	 * suspend interrupts and devices
+	 * XXPV - we use suspend/resume for both save/restore domains (like sun
+	 * cpr) and for migration.  Would be nice to know the difference if
+	 * possible.  For save/restore where down time may be a long time, we
+	 * may want to do more of the things that cpr does.  (i.e. notify user
+	 * processes, shrink memory footprint for faster restore, etc.)
+	 */
+	xen_suspend_devices();
+	SUSPEND_DEBUG("xenbus_suspend\n");
+	xenbus_suspend();
+
+	pfn = hat_getpfnum(kas.a_hat, (caddr_t)xen_info);
+	start_info_mfn = pfn_to_mfn(pfn);
+
+	/*
+	 * XXPV: cpu hotplug can hold this under a xenbus watch. Are we safe
+	 * wrt xenbus being suspended here?
+	 */
+	mutex_enter(&cpu_lock);
+
+	/*
+	 * Suspend must be done on vcpu 0, as no context for other CPUs is
+	 * saved.
+	 *
+	 * XXPV - add to taskq API ?
+	 */
+	thread_affinity_set(curthread, 0);
+	kpreempt_disable();
+
+	SUSPEND_DEBUG("xen_start_migrate\n");
+	xen_start_migrate();
+	if (ncpus > 1)
+		suspend_cpus();
+
+	/*
+	 * We can grab the ec_lock as it's a spinlock with a high SPL. Hence
+	 * any holder would have dropped it to get through suspend_cpus().
+	 */
+	mutex_enter(&ec_lock);
+
+	/*
+	 * From here on in, we can't take locks.
+	 */
+	SUSPEND_DEBUG("ec_suspend\n");
+	ec_suspend();
+	SUSPEND_DEBUG("gnttab_suspend\n");
+	gnttab_suspend();
+
+	flags = intr_clear();
+
+	xpv_time_suspend();
+
+	/*
+	 * Currently, the hypervisor incorrectly fails to bring back
+	 * powered-down VCPUs.  Thus we need to record any powered-down VCPUs
+	 * to prevent any attempts to operate on them.  But we have to do this
+	 * *after* the very first time we do ec_suspend().
+	 */
+	for (i = 1; i < ncpus; i++) {
+		if (cpu[i] == NULL)
+			continue;
+
+		if (cpu_get_state(cpu[i]) == P_POWEROFF)
+			CPUSET_ATOMIC_ADD(cpu_suspend_lost_set, i);
+	}
+
+	/*
+	 * The dom0 save/migrate code doesn't automatically translate
+	 * these into PFNs, but expects them to be, so we do it here.
+	 * We don't use mfn_to_pfn() because so many OS services have
+	 * been disabled at this point.
+	 */
+	xen_info->store_mfn = mfn_to_pfn_mapping[xen_info->store_mfn];
+	xen_info->console.domU.mfn =
+	    mfn_to_pfn_mapping[xen_info->console.domU.mfn];
+
+	if (CPU->cpu_m.mcpu_vcpu_info->evtchn_upcall_mask == 0) {
+		prom_printf("xen_suspend_domain(): "
+		    "CPU->cpu_m.mcpu_vcpu_info->evtchn_upcall_mask not set\n");
+		(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+	}
+
+	if (HYPERVISOR_update_va_mapping((uintptr_t)HYPERVISOR_shared_info,
+	    0, UVMF_INVLPG)) {
+		prom_printf("xen_suspend_domain(): "
+		    "HYPERVISOR_update_va_mapping() failed\n");
+		(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+	}
+
+	SUSPEND_DEBUG("HYPERVISOR_suspend\n");
+
+	/*
+	 * At this point we suspend and sometime later resume.
+	 */
+	if (HYPERVISOR_suspend(start_info_mfn)) {
+		prom_printf("xen_suspend_domain(): "
+		    "HYPERVISOR_suspend() failed\n");
+		(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+	}
+
+	/*
+	 * Point HYPERVISOR_shared_info to its new value.
+	 */
+	if (HYPERVISOR_update_va_mapping((uintptr_t)HYPERVISOR_shared_info,
+	    xen_info->shared_info | PT_NOCONSIST | PT_VALID | PT_WRITABLE,
+	    UVMF_INVLPG))
+		(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+
+	if (xen_info->nr_pages != mfn_count) {
+		prom_printf("xen_suspend_domain(): number of pages"
+		    " changed, was 0x%lx, now 0x%lx\n", mfn_count,
+		    xen_info->nr_pages);
+		(void) HYPERVISOR_shutdown(SHUTDOWN_crash);
+	}
+
+	xpv_time_resume();
+
+	cached_max_mfn = 0;
+
+	SUSPEND_DEBUG("gnttab_resume\n");
+	gnttab_resume();
+
+	/* XXPV: add a note that this must be lockless. */
+	SUSPEND_DEBUG("ec_resume\n");
+	ec_resume();
+
+	intr_restore(flags);
+
+	if (ncpus > 1)
+		resume_cpus();
+
+	mutex_exit(&ec_lock);
+	xen_end_migrate();
+	mutex_exit(&cpu_lock);
+
+	/*
+	 * Now we can take locks again.
+	 */
+
+	/*
+	 * Force the tick value used for tv_nsec in hres_tick() to be up to
+	 * date. rtcsync() will reset the hrestime value appropriately.
+	 */
+	hres_last_tick = xpv_gethrtime();
+
+	/*
+	 * XXPV: we need to have resumed the CPUs since this takes locks, but
+	 * can remote CPUs see bad state? Presumably yes. Should probably nest
+	 * taking of todlock inside of cpu_lock, or vice versa, then provide an
+	 * unlocked version.  Probably need to call clkinitf to reset cpu freq
+	 * and re-calibrate if we migrated to a different speed cpu.  Also need
+	 * to make a (re)init_cpu_info call to update processor info structs
+	 * and device tree info.  That remains to be written at the moment.
+	 */
+	rtcsync();
+
+	rebuild_mfn_list();
+
+	SUSPEND_DEBUG("xenbus_resume\n");
+	xenbus_resume();
+	SUSPEND_DEBUG("xenbus_resume_devices\n");
+	xen_resume_devices();
+
+	thread_affinity_clear(curthread);
+	kpreempt_enable();
+
+	SUSPEND_DEBUG("finished xen_suspend_domain\n");
+	cmn_err(CE_NOTE, "domain restore/migrate completed");
+}
+
+/*ARGSUSED*/
+int
+xen_debug_handler(void *arg)
+{
+	debug_enter("External debug event received");
+
+	/*
+	 * If we've not got KMDB loaded, output some stuff difficult to capture
+	 * from a domain core.
+	 */
+	if (!(boothowto & RB_DEBUG)) {
+		shared_info_t *si = HYPERVISOR_shared_info;
+		int i;
+
+		prom_printf("evtchn_pending [ ");
+		for (i = 0; i < 8; i++)
+			prom_printf("%lx ", si->evtchn_pending[i]);
+		prom_printf("]\nevtchn_mask [ ");
+		for (i = 0; i < 8; i++)
+			prom_printf("%lx ", si->evtchn_mask[i]);
+		prom_printf("]\n");
+
+		for (i = 0; i < ncpus; i++) {
+			vcpu_info_t *vcpu = &si->vcpu_info[i];
+			if (cpu[i] == NULL)
+				continue;
+			prom_printf("CPU%d pending %d mask %d sel %lx\n",
+			    i, vcpu->evtchn_upcall_pending,
+			    vcpu->evtchn_upcall_mask,
+			    vcpu->evtchn_pending_sel);
+		}
+	}
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static void
+xen_sysrq_handler(struct xenbus_watch *watch, const char **vec,
+    unsigned int len)
+{
+	xenbus_transaction_t xbt;
+	char key = '\0';
+	int ret;
+
+retry:
+	if (xenbus_transaction_start(&xbt)) {
+		cmn_err(CE_WARN, "failed to start sysrq transaction");
+		return;
+	}
+
+	if ((ret = xenbus_scanf(xbt, "control", "sysrq", "%c", &key)) != 0) {
+		/*
+		 * ENOENT happens in response to our own xenbus_rm.
+		 * XXPV - this happens spuriously on boot?
+		 */
+		if (ret != ENOENT)
+			cmn_err(CE_WARN, "failed to read sysrq: %d", ret);
+		goto out;
+	}
+
+	if ((ret = xenbus_rm(xbt, "control", "sysrq")) != 0) {
+		cmn_err(CE_WARN, "failed to reset sysrq: %d", ret);
+		goto out;
+	}
+
+	if (xenbus_transaction_end(xbt, 0) == EAGAIN)
+		goto retry;
+
+	/*
+	 * Somewhat arbitrary - on Linux this means 'reboot'. We could just
+	 * accept any key, but this might increase the risk of sending a
+	 * harmless sysrq to the wrong domain...
+	 */
+	if (key == 'b')
+		(void) xen_debug_handler(NULL);
+	else
+		cmn_err(CE_WARN, "Ignored sysrq %c", key);
+	return;
+
+out:
+	(void) xenbus_transaction_end(xbt, 1);
+}
+
+taskq_t *xen_shutdown_tq;
+volatile int shutdown_req_active;
+
+#define	SHUTDOWN_INVALID	-1
+#define	SHUTDOWN_POWEROFF	0
+#define	SHUTDOWN_REBOOT		1
+#define	SHUTDOWN_SUSPEND	2
+#define	SHUTDOWN_HALT		3
+#define	SHUTDOWN_MAX		4
+
+#define	SHUTDOWN_TIMEOUT_SECS (60 * 5)
+
+static const char *cmd_strings[SHUTDOWN_MAX] = {
+	"poweroff",
+	"reboot",
+	"suspend",
+	"halt"
+};
+
+static void
+xen_dirty_shutdown(void *arg)
+{
+	int cmd = (uintptr_t)arg;
+
+	cmn_err(CE_WARN, "Externally requested shutdown failed or "
+	    "timed out.\nShutting down.\n");
+
+	switch (cmd) {
+	case SHUTDOWN_HALT:
+	case SHUTDOWN_POWEROFF:
+		(void) kadmin(A_SHUTDOWN, AD_POWEROFF, NULL, kcred);
+		break;
+	case SHUTDOWN_REBOOT:
+		(void) kadmin(A_REBOOT, AD_BOOT, NULL, kcred);
+		break;
+	}
+}
+
+static void
+xen_shutdown(void *arg)
+{
+	nvlist_t *attr_list = NULL;
+	sysevent_t *event = NULL;
+	sysevent_id_t eid;
+	int cmd = (uintptr_t)arg;
+	int err;
+
+	ASSERT(cmd > SHUTDOWN_INVALID && cmd < SHUTDOWN_MAX);
+
+	if (cmd == SHUTDOWN_SUSPEND) {
+		xen_suspend_domain();
+		shutdown_req_active = 0;
+		return;
+	}
+
+	err = nvlist_alloc(&attr_list, NV_UNIQUE_NAME, KM_SLEEP);
+	if (err != DDI_SUCCESS)
+		goto failure;
+
+	err = nvlist_add_string(attr_list, "shutdown", cmd_strings[cmd]);
+	if (err != DDI_SUCCESS)
+		goto failure;
+
+	if ((event = sysevent_alloc("EC_xpvsys", "control", "SUNW:kern:xpv",
+	    SE_SLEEP)) == NULL)
+		goto failure;
+	(void) sysevent_attach_attributes(event,
+	    (sysevent_attr_list_t *)attr_list);
+
+	err = log_sysevent(event, SE_SLEEP, &eid);
+
+	sysevent_detach_attributes(event);
+	sysevent_free(event);
+
+	if (err != 0)
+		goto failure;
+
+	(void) timeout(xen_dirty_shutdown, arg,
+	    SHUTDOWN_TIMEOUT_SECS * drv_usectohz(MICROSEC));
+
+	nvlist_free(attr_list);
+	return;
+
+failure:
+	if (attr_list != NULL)
+		nvlist_free(attr_list);
+	xen_dirty_shutdown(arg);
+}
+
+/*ARGSUSED*/
+static void
+xen_shutdown_handler(struct xenbus_watch *watch, const char **vec,
+	unsigned int len)
+{
+	char *str;
+	xenbus_transaction_t xbt;
+	int err, shutdown_code = SHUTDOWN_INVALID;
+	unsigned int slen;
+
+again:
+	err = xenbus_transaction_start(&xbt);
+	if (err)
+		return;
+	if (xenbus_read(xbt, "control", "shutdown", (void *)&str, &slen)) {
+		(void) xenbus_transaction_end(xbt, 1);
+		return;
+	}
+
+	SUSPEND_DEBUG("%d: xen_shutdown_handler: \"%s\"\n", CPU->cpu_id, str);
+
+	/*
+	 * If this is a watch fired from our write below, check out early to
+	 * avoid an infinite loop.
+	 */
+	if (strcmp(str, "") == 0) {
+		(void) xenbus_transaction_end(xbt, 0);
+		kmem_free(str, slen);
+		return;
+	} else if (strcmp(str, "poweroff") == 0) {
+		shutdown_code = SHUTDOWN_POWEROFF;
+	} else if (strcmp(str, "reboot") == 0) {
+		shutdown_code = SHUTDOWN_REBOOT;
+	} else if (strcmp(str, "suspend") == 0) {
+		shutdown_code = SHUTDOWN_SUSPEND;
+	} else if (strcmp(str, "halt") == 0) {
+		shutdown_code = SHUTDOWN_HALT;
+	} else {
+		printf("Ignoring shutdown request: %s\n", str);
+	}
+
+	/*
+	 * XXPV	Should we check the value of xenbus_write() too, or are all
+	 *	errors automatically folded into xenbus_transaction_end() ??
+	 */
+	(void) xenbus_write(xbt, "control", "shutdown", "");
+	err = xenbus_transaction_end(xbt, 0);
+	if (err == EAGAIN) {
+		SUSPEND_DEBUG("%d: trying again\n", CPU->cpu_id);
+		kmem_free(str, slen);
+		goto again;
+	}
+
+	kmem_free(str, slen);
+	if (shutdown_code != SHUTDOWN_INVALID) {
+		if (shutdown_code == SHUTDOWN_SUSPEND) {
+			while (shutdown_req_active)
+				SMT_PAUSE();
+		}
+
+		shutdown_req_active = 1;
+		(void) taskq_dispatch(xen_shutdown_tq, xen_shutdown,
+		    (void *)(intptr_t)shutdown_code, 0);
+	}
+}
+
+static struct xenbus_watch shutdown_watch;
+static struct xenbus_watch sysrq_watch;
+
+void
+xen_late_startup(void)
+{
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		xen_shutdown_tq = taskq_create("shutdown_taskq", 1,
+		    maxclsyspri - 1, 1, 1, TASKQ_PREPOPULATE);
+		shutdown_watch.node = "control/shutdown";
+		shutdown_watch.callback = xen_shutdown_handler;
+		if (register_xenbus_watch(&shutdown_watch))
+			cmn_err(CE_WARN, "Failed to set shutdown watcher");
+
+		sysrq_watch.node = "control/sysrq";
+		sysrq_watch.callback = xen_sysrq_handler;
+		if (register_xenbus_watch(&sysrq_watch))
+			cmn_err(CE_WARN, "Failed to set sysrq watcher");
+	}
+	balloon_init(xen_info->nr_pages);
+}
+
+#ifdef DEBUG
+#define	XEN_PRINTF_BUFSIZE	1024
+
+char xen_printf_buffer[XEN_PRINTF_BUFSIZE];
+
+/*
+ * Printf function that calls hypervisor directly.  For DomU it only
+ * works when running on a xen hypervisor built with debug on.  Works
+ * always since no I/O ring interaction is needed.
+ */
+/*PRINTFLIKE1*/
+void
+xen_printf(const char *fmt, ...)
+{
+	va_list	ap;
+
+	va_start(ap, fmt);
+	(void) vsnprintf(xen_printf_buffer, XEN_PRINTF_BUFSIZE, fmt, ap);
+	va_end(ap);
+
+	(void) HYPERVISOR_console_io(CONSOLEIO_write,
+	    strlen(xen_printf_buffer), xen_printf_buffer);
+}
+#else
+void
+xen_printf(const char *fmt, ...)
+{
+}
+#endif	/* DEBUG */
+
+/*
+ * Determine helpful version information.
+ *
+ * (And leave a copy around in the data segment so we can look
+ * at them later with e.g. kmdb.)
+ */
+struct xenver {
+	char *xv_ver;
+	char *xv_chgset;
+	char *xv_compiler;
+	char *xv_compile_date;
+	char *xv_compile_by;
+	char *xv_compile_domain;
+	char *xv_caps;
+} xenver;
+
+static char *
+sprintf_alloc(const char *fmt, ...)
+{
+	va_list ap;
+	size_t len;
+	char *p;
+
+	va_start(ap, fmt);
+	len = 1 + vsnprintf(NULL, 0, fmt, ap);
+	p = kmem_alloc(len, KM_SLEEP);
+	(void) vsnprintf(p, len, fmt, ap);
+	va_end(ap);
+	return (p);
+}
+
+void
+xen_version(void)
+{
+	static const char strfmt[] = "%s";
+	static const char xenver_sun[] = "3.0.4-1-xvm";  /* XXPV */
+	union {
+		xen_extraversion_t xver;
+		xen_changeset_info_t chgset;
+		xen_compile_info_t build;
+		xen_capabilities_info_t caps;
+	} data, *src = &data;
+
+	ulong_t ver = HYPERVISOR_xen_version(XENVER_version, 0);
+
+	if (HYPERVISOR_xen_version(XENVER_extraversion, src) == 0) {
+		((char *)(src->xver))[sizeof (src->xver) - 1] = '\0';
+	} else
+		((char *)(src->xver))[0] = '\0';
+
+	xenver.xv_ver = sprintf_alloc("%lu.%lu%s",
+	    BITX(ver, 31, 16), BITX(ver, 15, 0), src->xver);
+
+	if (HYPERVISOR_xen_version(XENVER_changeset, src) == 0) {
+		((char *)(src->chgset))[sizeof (src->chgset) - 1] = '\0';
+		xenver.xv_chgset = sprintf_alloc(strfmt, src->chgset);
+	}
+
+	cmn_err(CE_CONT, "?xen v%s chgset '%s'\n",
+	    xenver.xv_ver, xenver.xv_chgset);
+
+	/*
+	 * XXPV - Solaris guests currently require special version of
+	 * the hypervisor from Sun to function properly called "3.0.4-1-xvm".
+	 * This version is based on "3.0.4-1" plus changes from
+	 * Sun that are a work-in-progress.
+	 *
+	 * This version check will disappear after appropriate fixes
+	 * are accepted upstream.
+	 */
+	if (strcmp(xenver.xv_ver, xenver_sun) != 0) {
+		cmn_err(CE_WARN, "Found xen v%s but need xen v%s",
+		    xenver.xv_ver, xenver_sun);
+		cmn_err(CE_WARN, "The kernel may not function correctly");
+	}
+
+	if (HYPERVISOR_xen_version(XENVER_compile_info, src) == 0) {
+		xenver.xv_compiler = sprintf_alloc(strfmt,
+		    data.build.compiler);
+		xenver.xv_compile_date = sprintf_alloc(strfmt,
+		    data.build.compile_date);
+		xenver.xv_compile_by = sprintf_alloc(strfmt,
+		    data.build.compile_by);
+		xenver.xv_compile_domain = sprintf_alloc(strfmt,
+		    data.build.compile_domain);
+	}
+
+	/*
+	 * Capabilities are a set of space separated ascii strings
+	 * e.g. 'xen-3.1-x86_32p' or 'hvm-3.2-x86_64'
+	 */
+	if (HYPERVISOR_xen_version(XENVER_capabilities, src) == 0) {
+		((char *)(src->caps))[sizeof (src->caps) - 1] = '\0';
+		xenver.xv_caps = sprintf_alloc(strfmt, src->caps);
+	}
+}
+
+/*
+ * Miscellaneous hypercall wrappers with slightly more verbose diagnostics.
+ */
+
+void
+xen_set_gdt(ulong_t *frame_list, int entries)
+{
+	int err;
+	if ((err = HYPERVISOR_set_gdt(frame_list, entries)) != 0) {
+		/*
+		 * X_EINVAL:	reserved entry or bad frames
+		 * X_EFAULT:	bad address
+		 */
+		panic("xen_set_gdt(%p, %d): error %d",
+		    (void *)frame_list, entries, -(int)err);
+	}
+}
+
+void
+xen_set_ldt(user_desc_t *ldt, uint_t nsels)
+{
+	struct mmuext_op	op;
+	long			err;
+
+	op.cmd = MMUEXT_SET_LDT;
+	op.arg1.linear_addr = (uintptr_t)ldt;
+	op.arg2.nr_ents = nsels;
+
+	if ((err = HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF)) != 0) {
+		panic("xen_set_ldt(%p, %d): error %d",
+		    (void *)ldt, nsels, -(int)err);
+	}
+}
+
+void
+xen_stack_switch(ulong_t ss, ulong_t esp)
+{
+	long err;
+
+	if ((err = HYPERVISOR_stack_switch(ss, esp)) != 0) {
+		/*
+		 * X_EPERM:	bad selector
+		 */
+		panic("xen_stack_switch(%lx, %lx): error %d", ss, esp,
+		    -(int)err);
+	}
+}
+
+long
+xen_set_trap_table(trap_info_t *table)
+{
+	long err;
+
+	if ((err = HYPERVISOR_set_trap_table(table)) != 0) {
+		/*
+		 * X_EFAULT:	bad address
+		 * X_EPERM:	bad selector
+		 */
+		panic("xen_set_trap_table(%p): error %d", (void *)table,
+		    -(int)err);
+	}
+	return (err);
+}
+
+#if defined(__amd64)
+void
+xen_set_segment_base(int reg, ulong_t value)
+{
+	long err;
+
+	if ((err = HYPERVISOR_set_segment_base(reg, value)) != 0) {
+		/*
+		 * X_EFAULT:	bad address
+		 * X_EINVAL:	bad type
+		 */
+		panic("xen_set_segment_base(%d, %lx): error %d",
+		    reg, value, -(int)err);
+	}
+}
+#endif	/* __amd64 */
+
+/*
+ * Translate a hypervisor errcode to a Solaris error code.
+ */
+int
+xen_xlate_errcode(int error)
+{
+	switch (-error) {
+
+	/*
+	 * Translate hypervisor errno's into native errno's
+	 */
+
+#define	CASE(num)	case X_##num: error = num; break
+
+	CASE(EPERM);	CASE(ENOENT);	CASE(ESRCH);
+	CASE(EINTR);	CASE(EIO);	CASE(ENXIO);
+	CASE(E2BIG);	CASE(ENOMEM);	CASE(EACCES);
+	CASE(EFAULT);	CASE(EBUSY);	CASE(EEXIST);
+	CASE(ENODEV);	CASE(EISDIR);	CASE(EINVAL);
+	CASE(ENOSPC);	CASE(ESPIPE);	CASE(EROFS);
+	CASE(ENOSYS);	CASE(ENOTEMPTY); CASE(EISCONN);
+	CASE(ENODATA);
+
+#undef CASE
+
+	default:
+		panic("xen_xlate_errcode: unknown error %d", error);
+	}
+
+	return (error);
+}
+
+/*
+ * Raise PS_IOPL on current vcpu to user level.
+ * Caller responsible for preventing kernel preemption.
+ */
+void
+xen_enable_user_iopl(void)
+{
+	physdev_set_iopl_t set_iopl;
+	set_iopl.iopl = 3;		/* user ring 3 */
+	(void) HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
+}
+
+/*
+ * Drop PS_IOPL on current vcpu to kernel level
+ */
+void
+xen_disable_user_iopl(void)
+{
+	physdev_set_iopl_t set_iopl;
+	set_iopl.iopl = 1;		/* kernel pseudo ring 1 */
+	(void) HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
+}
+
+int
+xen_gdt_setprot(cpu_t *cp, uint_t prot)
+{
+	int err;
+#if defined(__amd64)
+	int pt_bits = PT_VALID;
+	if (prot & PROT_WRITE)
+		pt_bits |= PT_WRITABLE;
+#endif
+
+	if ((err = as_setprot(&kas, (caddr_t)cp->cpu_gdt,
+	    MMU_PAGESIZE, prot)) != 0)
+		goto done;
+
+#if defined(__amd64)
+	err = xen_kpm_page(mmu_btop(cp->cpu_m.mcpu_gdtpa), pt_bits);
+#endif
+
+done:
+	if (err) {
+		cmn_err(CE_WARN, "cpu%d: xen_gdt_setprot(%s) failed: error %d",
+		    cp->cpu_id, (prot & PROT_WRITE) ? "writable" : "read-only",
+		    err);
+	}
+
+	return (err);
+}
+
+int
+xen_ldt_setprot(user_desc_t *ldt, size_t lsize, uint_t prot)
+{
+	int err;
+	caddr_t	lva = (caddr_t)ldt;
+#if defined(__amd64)
+	int pt_bits = PT_VALID;
+	pgcnt_t npgs;
+	if (prot & PROT_WRITE)
+		pt_bits |= PT_WRITABLE;
+#endif	/* __amd64 */
+
+	if ((err = as_setprot(&kas, (caddr_t)ldt, lsize, prot)) != 0)
+		goto done;
+
+#if defined(__amd64)
+
+	ASSERT(IS_P2ALIGNED(lsize, PAGESIZE));
+	npgs = mmu_btop(lsize);
+	while (npgs--) {
+		if ((err = xen_kpm_page(hat_getpfnum(kas.a_hat, lva),
+		    pt_bits)) != 0)
+			break;
+		lva += PAGESIZE;
+	}
+#endif	/* __amd64 */
+
+done:
+	if (err) {
+		cmn_err(CE_WARN, "xen_ldt_setprot(%p, %s) failed: error %d",
+		    (void *)lva,
+		    (prot & PROT_WRITE) ? "writable" : "read-only", err);
+	}
+
+	return (err);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/xen_mmu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,475 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/mach_mmu.h>
+#include <sys/machsystm.h>
+#include <sys/cmn_err.h>
+#include <sys/promif.h>
+#include <sys/hypervisor.h>
+#include <sys/bootconf.h>
+#include <sys/ontrap.h>
+#include <sys/rwlock.h>
+#include <sys/sysmacros.h>
+#include <vm/seg_kmem.h>
+#include <vm/kboot_mmu.h>
+#include <vm/hat_pte.h>
+#include <vm/hat.h>
+#include <vm/htable.h>
+#include <vm/hat_i86.h>
+
+start_info_t *xen_info;
+ulong_t mfn_count;
+mfn_t *mfn_list;
+mfn_t *mfn_list_pages;		/* pages that make a table of mfn's */
+				/* that make up the pa_to_ma table */
+mfn_t *mfn_list_pages_page;	/* page of mfn's for mfn_list_pages */
+mfn_t cached_max_mfn;
+uintptr_t xen_virt_start;
+pfn_t *mfn_to_pfn_mapping;
+caddr_t xb_addr;		/* virtual addr for the store_mfn page */
+
+
+/*
+ * Running on the hypervisor, we need to prevent migration while holding
+ * PTE values that we might do PTE2PFN() or pa_to_ma() on, as the
+ * mfn_to_pfn_mapping and mfn_list[] translation tables might change.
+ *
+ * As the suspend process uses the HAT, we need to check we don't already own
+ * the lock as a writer before we try to take it as a reader.
+ */
+#define	NUM_M2P_LOCKS 128
+static struct {
+	krwlock_t m2p_rwlock;
+	char m2p_pad[64 - sizeof (krwlock_t)];	/* 64 byte cache line size */
+} m2p_lock[NUM_M2P_LOCKS];
+
+#define	XM2P_HASH	((uintptr_t)curthread->t_tid & (NUM_M2P_LOCKS - 1))
+
+void
+xen_block_migrate(void)
+{
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) &&
+	    rw_owner(&m2p_lock[XM2P_HASH].m2p_rwlock) != curthread)
+		rw_enter(&m2p_lock[XM2P_HASH].m2p_rwlock, RW_READER);
+}
+
+void
+xen_allow_migrate(void)
+{
+	if (!DOMAIN_IS_INITDOMAIN(xen_info) &&
+	    rw_owner(&m2p_lock[XM2P_HASH].m2p_rwlock) != curthread)
+		rw_exit(&m2p_lock[XM2P_HASH].m2p_rwlock);
+}
+
+void
+xen_start_migrate(void)
+{
+	int i;
+
+	for (i = 0; i < NUM_M2P_LOCKS; ++i)
+		rw_enter(&m2p_lock[i].m2p_rwlock, RW_WRITER);
+}
+
+void
+xen_end_migrate(void)
+{
+	int i;
+
+	for (i = 0; i < NUM_M2P_LOCKS; ++i)
+		rw_exit(&m2p_lock[i].m2p_rwlock);
+}
+
+/*ARGSUSED*/
+void
+set_pteval(paddr_t table, uint_t index, uint_t level, x86pte_t pteval)
+{
+	mmu_update_t t;
+	maddr_t mtable = pa_to_ma(table);
+	int retcnt;
+
+	t.ptr = (mtable + index * pte_size) | MMU_NORMAL_PT_UPDATE;
+	t.val = pteval;
+	if (HYPERVISOR_mmu_update(&t, 1, &retcnt, DOMID_SELF) || retcnt != 1)
+		bop_panic("HYPERVISOR_mmu_update() failed");
+}
+
+/*
+ * The start_info_t and mfn_list are initially mapped in low "boot" memory.
+ * Each has a page aligned address and size. We relocate them up into the
+ * kernel's normal address space at this point in time. We also create
+ * the arrays that let the hypervisor suspend/resume a domain.
+ */
+void
+xen_relocate_start_info(void)
+{
+	maddr_t mach_addr;
+	size_t sz;
+	size_t sz2;
+	offset_t off;
+	uintptr_t addr;
+	uintptr_t old;
+	int i, j;
+
+	/*
+	 * In dom0, we have to account for the console_info structure
+	 * which might immediately follow the start_info in memory.
+	 */
+	sz = sizeof (start_info_t);
+	if (DOMAIN_IS_INITDOMAIN(xen_info) &&
+	    xen_info->console.dom0.info_off >= sizeof (start_info_t)) {
+		sz += xen_info->console.dom0.info_off - sizeof (start_info_t) +
+		    xen_info->console.dom0.info_size;
+	}
+	sz = P2ROUNDUP(sz, MMU_PAGESIZE);
+	addr = (uintptr_t)vmem_alloc(heap_arena, sz, VM_SLEEP);
+	for (off = 0; off < sz; off += MMU_PAGESIZE) {
+		mach_addr = pa_to_ma(pfn_to_pa(va_to_pfn(
+		    (caddr_t)xen_info + off)));
+		kbm_map_ma(mach_addr + off, addr + off, 0);
+	}
+	boot_mapin((caddr_t)addr, sz);
+	old = (uintptr_t)xen_info;
+	xen_info = (start_info_t *)addr;
+	for (off = 0; off < sz; off += MMU_PAGESIZE)
+		kbm_unmap(old + off);
+
+	/*
+	 * Relocate the mfn_list, any number of pages.
+	 */
+	sz = P2ROUNDUP(mfn_count * sizeof (mfn_t), MMU_PAGESIZE);
+	addr = (uintptr_t)vmem_xalloc(heap_arena, sz, MMU_PAGESIZE, 0,
+	    0, 0, 0, VM_SLEEP);
+	for (off = 0; off < sz; off += MMU_PAGESIZE) {
+		mach_addr =
+		    pa_to_ma(pfn_to_pa(va_to_pfn((caddr_t)mfn_list + off)));
+		kbm_map_ma(mach_addr, addr + off, 0);
+	}
+	boot_mapin((caddr_t)addr, sz);
+	old = (uintptr_t)mfn_list;
+	mfn_list = (mfn_t *)addr;
+	xen_info->mfn_list = (mfn_t)addr;
+	for (off = 0; off < sz; off += MMU_PAGESIZE)
+		kbm_unmap(old + off);
+
+	/*
+	 * Create the lists of mfn_list pages needed by suspend/resume.
+	 * Note we skip this for domain 0 as it can't suspend/resume.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		sz2 = P2ROUNDUP(mmu_btop(sz) * sizeof (mfn_t), MMU_PAGESIZE);
+		mfn_list_pages = kmem_zalloc(sz2, VM_SLEEP);
+		mfn_list_pages_page = kmem_zalloc(MMU_PAGESIZE, VM_SLEEP);
+		i = 0;
+		for (off = 0; off < sz; off += MMU_PAGESIZE) {
+			j = mmu_btop(off);
+			if (((j * sizeof (mfn_t)) & MMU_PAGEOFFSET) == 0) {
+				mfn_list_pages_page[i++] =
+				    pfn_to_mfn(va_to_pfn(&mfn_list_pages[j]));
+			}
+			mfn_list_pages[j] =
+			    pfn_to_mfn(va_to_pfn((caddr_t)mfn_list + off));
+		}
+		HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list =
+		    pfn_to_mfn(va_to_pfn(mfn_list_pages_page));
+		HYPERVISOR_shared_info->arch.max_pfn = xen_info->nr_pages;
+	}
+
+	/*
+	 * Remap the shared info (for I/O) into high memory, too.
+	 */
+	sz = MMU_PAGESIZE;
+	addr = (uintptr_t)vmem_alloc(heap_arena, sz, VM_SLEEP);
+	kbm_map_ma(xen_info->shared_info, addr, 0);
+	/* shared info has no PFN so don't do: boot_mapin((caddr_t)addr, sz) */
+	old = (uintptr_t)HYPERVISOR_shared_info;
+	HYPERVISOR_shared_info = (void *)addr;
+	kbm_unmap(old);
+
+	/*
+	 * Remap the console info into high memory, too.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		sz = MMU_PAGESIZE;
+		addr = (uintptr_t)vmem_alloc(heap_arena, sz, VM_SLEEP);
+		kbm_map_ma(pfn_to_pa(xen_info->console.domU.mfn), addr, 0);
+		boot_mapin((caddr_t)addr, sz);
+		old = (uintptr_t)HYPERVISOR_console_page;
+		HYPERVISOR_console_page = (void *)addr;
+		kbm_unmap(old);
+	} else {
+		HYPERVISOR_console_page = NULL;
+	}
+
+	/*
+	 * On domUs we need to have the xenbus page (store_mfn) mapped into
+	 * the kernel. This is referenced as xb_addr.
+	 */
+	if (!DOMAIN_IS_INITDOMAIN(xen_info)) {
+		xb_addr = vmem_alloc(heap_arena, MMU_PAGESIZE, VM_SLEEP);
+		kbm_map_ma(mfn_to_ma(xen_info->store_mfn),
+		    (uintptr_t)xb_addr, 0);
+		boot_mapin(xb_addr, MMU_PAGESIZE);
+	}
+}
+
+/*
+ * Generate the pfn value to use for a foreign mfn.
+ */
+pfn_t
+xen_assign_pfn(mfn_t mfn)
+{
+	pfn_t pfn;
+
+#ifdef DEBUG
+	/*
+	 * make sure this MFN isn't in our list of MFNs
+	 */
+	on_trap_data_t otd;
+	uint_t	on_trap_ready = (t0.t_stk != NULL);
+
+	if (on_trap_ready) {
+		if (on_trap(&otd, OT_DATA_ACCESS) == 0) {
+			pfn = mfn_to_pfn_mapping[mfn];
+			if (pfn < mfn_count && mfn_list[pfn] == mfn)
+				panic("xen_assign_pfn() mfn belongs to us");
+		}
+		no_trap();
+	}
+#endif /* DEBUG */
+
+	if (mfn == MFN_INVALID)
+		panic("xen_assign_pfn(MFN_INVALID) not allowed");
+	pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN;
+	if (pfn == mfn)
+		panic("xen_assign_pfn(mfn) PFN_IS_FOREIGN_MFN bit already set");
+	return (pfn);
+}
+
+void
+xen_release_pfn(pfn_t pfn)
+{
+	if (pfn == PFN_INVALID)
+		panic("xen_release_pfn(PFN_INVALID) not allowed");
+	if ((pfn & PFN_IS_FOREIGN_MFN) == 0)
+		panic("mfn high bit not set");
+}
+
+uint_t
+pfn_is_foreign(pfn_t pfn)
+{
+	if (pfn == PFN_INVALID)
+		return (0);
+	return ((pfn & PFN_IS_FOREIGN_MFN) != 0);
+}
+
+pfn_t
+pte2pfn(x86pte_t pte, level_t l)
+{
+	mfn_t mfn = PTE2MFN(pte, l);
+
+	if ((pte & PT_SOFTWARE) >= PT_FOREIGN)
+		return ((pfn_t)mfn | PFN_IS_FOREIGN_MFN);
+	return (mfn_to_pfn(mfn));
+}
+
+mfn_t
+pfn_to_mfn(pfn_t pfn)
+{
+	if (pfn == PFN_INVALID)
+		panic("pfn_to_mfn(PFN_INVALID) not allowed");
+
+	if (pfn & PFN_IS_FOREIGN_MFN)
+		return (pfn & ~PFN_IS_FOREIGN_MFN);
+
+	if (pfn >= mfn_count)
+		panic("pfn_to_mfn(): illegal PFN 0x%lx", pfn);
+
+	return (mfn_list[pfn]);
+}
+
+/*
+ * This routine translates an MFN back into the corresponding PFN value.
+ * It has to be careful since the mfn_to_pfn_mapping[] might fault
+ * as that table is sparse. It also has to check for non-faulting, but out of
+ * range that exceed the table.
+ */
+pfn_t
+mfn_to_pfn(mfn_t mfn)
+{
+	pfn_t pfn;
+	on_trap_data_t otd;
+	uint_t	on_trap_ready = (t0.t_stk != NULL);
+
+	/*
+	 * Cleared at a suspend or migrate
+	 */
+	if (cached_max_mfn == 0)
+		cached_max_mfn =
+		    HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL);
+
+	if (cached_max_mfn < mfn)
+		return ((pfn_t)mfn | PFN_IS_FOREIGN_MFN);
+
+	if (on_trap_ready && on_trap(&otd, OT_DATA_ACCESS)) {
+		pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN;
+	} else {
+		pfn = mfn_to_pfn_mapping[mfn];
+
+		if (pfn == PFN_INVALID || pfn >= mfn_count ||
+		    pfn_to_mfn(pfn) != mfn)
+			pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN;
+	}
+
+	if (on_trap_ready)
+		no_trap();
+
+	/*
+	 * If khat_running is set then we should be checking
+	 * in domUs that migration is blocked while using the
+	 * mfn_to_pfn_mapping[] table.
+	 */
+	ASSERT(!khat_running || DOMAIN_IS_INITDOMAIN(xen_info) ||
+	    rw_read_held(&m2p_lock[XM2P_HASH].m2p_rwlock));
+
+	return (pfn);
+}
+
+/*
+ * From a pseudo-physical address, find the corresponding machine address.
+ */
+maddr_t
+pa_to_ma(paddr_t pa)
+{
+	mfn_t mfn = pfn_to_mfn(mmu_btop(pa));
+
+	if (mfn == MFN_INVALID)
+		panic("pa_to_ma() got MFN_INVALID");
+	return (mfn_to_ma(mfn) + (pa & MMU_PAGEOFFSET));
+}
+
+/*
+ * From a machine address, find the corresponding pseudo-physical address.
+ */
+paddr_t
+ma_to_pa(maddr_t ma)
+{
+	pfn_t pfn = mfn_to_pfn(mmu_btop(ma));
+
+	if (pfn == PFN_INVALID)
+		panic("ma_to_pa() got PFN_INVALID");
+	return (pfn_to_pa(pfn) + (ma & MMU_PAGEOFFSET));
+}
+
+/*
+ * When calling reassign_pfn(), the page must be (at least) read locked
+ * to make sure swrand does not try to grab it.
+ */
+#ifdef DEBUG
+#define	CHECK_PAGE_LOCK(pfn)	{			\
+	page_t *pp = page_numtopp_nolock(pfn);		\
+	if ((pp != NULL) && (!PAGE_LOCKED(pp))) {	\
+		panic("reassign_pfn() called with unlocked page (pfn 0x%lx)", \
+		    pfn);				\
+	}						\
+}
+#else	/* DEBUG */
+#define	CHECK_PAGE_LOCK(pfn)
+#endif	/* DEBUG */
+
+/*
+ * Reassign a new machine page to back a physical address.
+ */
+void
+reassign_pfn(pfn_t pfn, mfn_t mfn)
+{
+	int mmu_update_return;
+	mmu_update_t t;
+	extern void update_contig_pfnlist(pfn_t, mfn_t, mfn_t);
+
+	ASSERT(pfn != PFN_INVALID);
+	ASSERT(!pfn_is_foreign(pfn));
+
+	ASSERT(pfn < mfn_count);
+	update_contig_pfnlist(pfn, mfn_list[pfn], mfn);
+	if (mfn == MFN_INVALID) {
+		CHECK_PAGE_LOCK(pfn);
+		if (kpm_vbase != NULL && xen_kpm_page(pfn, 0) < 0)
+			panic("reassign_pfn(): failed to remove kpm mapping");
+		mfn_list[pfn] = mfn;
+		return;
+	}
+
+	/*
+	 * Verify that previously given away pages are still page locked.
+	 */
+	if (mfn_list[pfn] == MFN_INVALID) {
+		CHECK_PAGE_LOCK(pfn);
+	}
+	mfn_list[pfn] = mfn;
+
+	t.ptr = mfn_to_ma(mfn) | MMU_MACHPHYS_UPDATE;
+	t.val = pfn;
+
+	if (HYPERVISOR_mmu_update(&t, 1, &mmu_update_return, DOMID_SELF))
+		panic("HYPERVISOR_mmu_update() failed");
+	ASSERT(mmu_update_return == 1);
+
+	if (kpm_vbase != NULL && xen_kpm_page(pfn, PT_VALID | PT_WRITABLE) < 0)
+		panic("reassign_pfn(): failed to enable kpm mapping");
+}
+
+/*
+ * XXPV code to work around problems with GNTTABOP_map_grant_ref
+ * Hopefully we can remove this when GNTTABOP_map_grant_ref is fixed.
+ */
+void
+xen_fix_foreign(uint64_t va)
+{
+	uintptr_t v = va;
+	htable_t *ht;
+	uint_t entry;
+	x86pte_t pte;
+
+	/*
+	 * Look up the PTE for VA. If it is not marked foreign,
+	 * add the appropriate soft bits and reinstall the new PTE.
+	 */
+	ht = htable_getpage(kas.a_hat, v, &entry);
+	if (ht == NULL) {
+		panic("xen_fix_foreign(va=0x%p) htable not found", (void *)v);
+		return;
+	}
+	pte = x86pte_get(ht, entry);
+	if ((pte & PT_SOFTWARE) < PT_FOREIGN) {
+		pte |= PT_FOREIGN;
+		if (HYPERVISOR_update_va_mapping(v, pte, UVMF_NONE) != 0)
+			panic("xen_fix_foreign(va=0x%p) failed, pte=" FMT_PTE,
+			    (void *)v, pte);
+	}
+	htable_release(ht);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/xpv_panic.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,976 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/clock.h>
+#include <sys/psm.h>
+#include <sys/archsystm.h>
+#include <sys/machsystm.h>
+#include <sys/compress.h>
+#include <sys/modctl.h>
+#include <sys/trap.h>
+#include <sys/panic.h>
+#include <sys/regset.h>
+#include <sys/frame.h>
+#include <sys/kobj.h>
+#include <sys/apic.h>
+#include <sys/dumphdr.h>
+#include <sys/mem.h>
+#include <sys/x86_archext.h>
+#include <sys/xpv_panic.h>
+#include <sys/boot_console.h>
+#include <sys/bootsvcs.h>
+#include <sys/consdev.h>
+#include <vm/hat_pte.h>
+#include <vm/hat_i86.h>
+
+/* XXX: need to add a PAE version too, if we ever support both PAE and non */
+#if defined(__i386)
+#define	XPV_FILENAME	"/boot/xen-syms"
+#else
+#define	XPV_FILENAME	"/boot/amd64/xen-syms"
+#endif
+#define	XPV_MODNAME	"xpv"
+
+int xpv_panicking = 0;
+
+struct module *xpv_module;
+struct modctl *xpv_modctl;
+
+#define	ALIGN(x, a)	((a) == 0 ? (uintptr_t)(x) : \
+	(((uintptr_t)(x) + (uintptr_t)(a) - 1l) & ~((uintptr_t)(a) - 1l)))
+
+/* Pointer to the xpv_panic_info structure handed to us by Xen.  */
+static struct panic_info *xpv_panic_info = NULL;
+
+/* Timer support */
+#define	NSEC_SHIFT 5
+#define	T_XPV_TIMER	0xd1
+#define	XPV_TIMER_INTERVAL	1000	/* 1000 microseconds */
+static uint32_t *xpv_apicadr = NULL;
+static uint_t	nsec_scale;
+
+/* IDT support */
+#pragma	align	16(xpv_panic_idt)
+static gate_desc_t	xpv_panic_idt[NIDT];	/* interrupt descriptor table */
+
+/* Xen pagetables mapped into our HAT's ptable windows */
+static pfn_t ptable_pfn[MAX_NUM_LEVEL];
+
+/* Number of MMU_PAGESIZE pages we're adding to the Solaris dump */
+static int xpv_dump_pages;
+
+/*
+ * Some commonly used values that we don't want to recompute over and over.
+ */
+static int xpv_panic_nptes[MAX_NUM_LEVEL];
+static ulong_t xpv_panic_cr3;
+static uintptr_t xpv_end;
+
+static void xpv_panic_console_print(const char *fmt, ...);
+static void (*xpv_panic_printf)(const char *, ...) = xpv_panic_console_print;
+
+#define	CONSOLE_BUF_SIZE	256
+static char console_buffer[CONSOLE_BUF_SIZE];
+static boolean_t use_polledio;
+
+static void
+xpv_panic_putc(int m)
+{
+	struct cons_polledio *c = cons_polledio;
+
+	/* This really shouldn't happen */
+	if (console == CONS_HYPERVISOR)
+		return;
+
+	if (use_polledio == B_TRUE)
+		c->cons_polledio_putchar(c->cons_polledio_argument, m);
+	else
+		bcons_putchar(m);
+}
+
+static void
+xpv_panic_puts(char *msg)
+{
+	char *m;
+
+	dump_timeleft = dump_timeout;
+	for (m = msg; *m; m++)
+		xpv_panic_putc((int)*m);
+}
+
+static void
+xpv_panic_console_print(const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+	(void) vsnprintf(console_buffer, sizeof (console_buffer), fmt, ap);
+	va_end(ap);
+
+	xpv_panic_puts(console_buffer);
+}
+
+static void
+xpv_panic_map(int level, pfn_t pfn)
+{
+	x86pte_t pte, *pteptr;
+
+	/*
+	 * The provided pfn represents a level 'level' page table.  Map it
+	 * into the 'level' slot in the list of page table windows.
+	 */
+	pteptr = (x86pte_t *)PWIN_PTE_VA(level);
+	pte = pfn_to_pa(pfn) | PT_VALID;
+
+	XPV_ALLOW_PAGETABLE_UPDATES();
+	if (mmu.pae_hat)
+		*pteptr = pte;
+	else
+		*(x86pte32_t *)pteptr = pte;
+	XPV_DISALLOW_PAGETABLE_UPDATES();
+
+	mmu_tlbflush_entry(PWIN_VA(level));
+}
+
+/*
+ * Walk the page tables to find the pfn mapped by the given va.
+ */
+static pfn_t
+xpv_va_walk(uintptr_t *vaddr)
+{
+	int l, idx;
+	pfn_t pfn;
+	x86pte_t pte;
+	x86pte_t *ptep;
+	uintptr_t va = *vaddr;
+	uintptr_t scan_va;
+	caddr_t ptable_window;
+	static pfn_t toplevel_pfn;
+	static uintptr_t lastva;
+
+	/*
+	 * If we do anything other than a simple scan through memory, don't
+	 * trust the mapped page tables.
+	 */
+	if (va != lastva + MMU_PAGESIZE)
+		for (l = mmu.max_level; l >= 0; l--)
+			ptable_pfn[l] = PFN_INVALID;
+
+	toplevel_pfn = mmu_btop(xpv_panic_cr3);
+
+	while (va < xpv_end && va >= *vaddr) {
+		/* Find the lowest table with any entry for va */
+		pfn = toplevel_pfn;
+		for (l = mmu.max_level; l >= 0; l--) {
+			if (ptable_pfn[l] != pfn) {
+				xpv_panic_map(l, pfn);
+				ptable_pfn[l] = pfn;
+			}
+
+			/*
+			 * Search this pagetable for any mapping to an
+			 * address >= va.
+			 */
+			ptable_window = PWIN_VA(l);
+			if (l == mmu.max_level && mmu.pae_hat)
+				ptable_window +=
+				    (xpv_panic_cr3 & MMU_PAGEOFFSET);
+
+			idx = (va >> LEVEL_SHIFT(l)) & (xpv_panic_nptes[l] - 1);
+			scan_va = va;
+			while (idx < xpv_panic_nptes[l] && scan_va < xpv_end &&
+			    scan_va >= *vaddr) {
+				ptep = (x86pte_t *)(ptable_window +
+				    (idx << mmu.pte_size_shift));
+				pte = GET_PTE(ptep);
+				if (pte & PTE_VALID)
+					break;
+				idx++;
+				scan_va += mmu.level_size[l];
+			}
+			va = scan_va;
+
+			/*
+			 * See if we've hit the end of the range.
+			 */
+			if (scan_va >= xpv_end || scan_va < *vaddr) {
+				va = scan_va;
+				break;
+			}
+
+			/*
+			 * If there are no valid mappings in this table, we
+			 * can skip to the end of the VA range it covers.
+			 */
+			if (idx == xpv_panic_nptes[l]) {
+				va = NEXT_ENTRY_VA(va, l + 1);
+				break;
+			}
+
+			/*
+			 * If this mapping is for a pagetable, we drop down
+			 * to the next level in the hierarchy and look for
+			 * a mapping in it.
+			 */
+			pfn = PTE2MFN(pte, l);
+			if (!PTE_ISPAGE(pte, l))
+				continue;
+
+			/*
+			 * The APIC page is magic.  Nothing to see here;
+			 * move along.
+			 */
+			if (((uintptr_t)xpv_apicadr & MMU_PAGEMASK) ==
+			    (va & MMU_PAGEMASK)) {
+				va += MMU_PAGESIZE;
+				break;
+			}
+
+			/* We also want to skip the Xen version of KPM */
+			if (va >= (uintptr_t)xpv_panic_info->pi_ram_start &&
+			    va < (uintptr_t)xpv_panic_info->pi_ram_end) {
+				va = (uintptr_t)xpv_panic_info->pi_ram_end;
+				break;
+			}
+
+			/*
+			 * The Xen panic code only handles small pages.  If
+			 * this mapping is for a large page, we need to
+			 * identify the consituent page that covers the
+			 * specific VA we were looking for.
+			 */
+			if (l > 0) {
+				if (l > 1)
+					panic("Xen panic can't cope with "
+					    "giant pages.");
+				idx = (va >> LEVEL_SHIFT(0)) &
+				    (xpv_panic_nptes[0] - 1);
+				pfn += idx;
+			}
+
+			*vaddr = va;
+			lastva = va;
+			return (pfn | PFN_IS_FOREIGN_MFN);
+		}
+	}
+	return (PFN_INVALID);
+}
+
+/*
+ * Walk through the Xen VA space, finding pages that are mapped in.
+ *
+ * These pages all have MFNs rather than PFNs, meaning they may be outside
+ * the physical address space the kernel knows about, or they may collide
+ * with PFNs the kernel is using.
+ *
+ * The obvious trick of just adding the PFN_IS_FOREIGN_MFN bit to the MFNs
+ * to avoid collisions doesn't work.  The pages need to be written to disk
+ * in PFN-order or savecore gets confused.  We can't allocate memory to
+ * contruct a sorted pfn->VA reverse mapping, so we have to write the pages
+ * to disk in VA order.
+ *
+ * To square this circle, we simply make up PFNs for each of Xen's pages.
+ * We assign each mapped page a fake PFN in ascending order.  These fake
+ * PFNs each have the FOREIGN bit set, ensuring that they fall outside the
+ * range of Solaris PFNs written by the kernel.
+ */
+int
+dump_xpv_addr()
+{
+	uintptr_t va;
+	mem_vtop_t mem_vtop;
+
+	xpv_dump_pages = 0;
+	va = xen_virt_start;
+
+	while (xpv_va_walk(&va) != PFN_INVALID) {
+		mem_vtop.m_as = &kas;
+		mem_vtop.m_va = (void *)va;
+		mem_vtop.m_pfn = (pfn_t)xpv_dump_pages | PFN_IS_FOREIGN_MFN;
+
+		dumpvp_write(&mem_vtop, sizeof (mem_vtop_t));
+		xpv_dump_pages++;
+
+		va += MMU_PAGESIZE;
+	}
+
+	/*
+	 * Add the shared_info page.  This page actually ends up in the
+	 * dump twice: once for the Xen va and once for the Solaris va.
+	 * This isn't ideal, but we don't know the address Xen is using for
+	 * the page, so we can't share it.
+	 */
+	mem_vtop.m_as = &kas;
+	mem_vtop.m_va = HYPERVISOR_shared_info;
+	mem_vtop.m_pfn = (pfn_t)xpv_dump_pages | PFN_IS_FOREIGN_MFN;
+	dumpvp_write(&mem_vtop, sizeof (mem_vtop_t));
+	xpv_dump_pages++;
+
+	return (xpv_dump_pages);
+}
+
+void
+dump_xpv_pfn()
+{
+	pfn_t pfn;
+	int cnt;
+
+	for (cnt = 0; cnt < xpv_dump_pages; cnt++) {
+		pfn = (pfn_t)cnt | PFN_IS_FOREIGN_MFN;
+		dumpvp_write(&pfn, sizeof (pfn));
+	}
+}
+
+int
+dump_xpv_data(void *dump_cbuf)
+{
+	uintptr_t va;
+	uint32_t csize;
+	int cnt = 0;
+
+	/*
+	 * XXX: we should probably run this data through a UE check.  The
+	 * catch is that the UE code relies on on_trap() and getpfnum()
+	 * working.
+	 */
+	va = xen_virt_start;
+
+	while (xpv_va_walk(&va) != PFN_INVALID) {
+		csize = (uint32_t)compress((void *)va, dump_cbuf, PAGESIZE);
+		dumpvp_write(&csize, sizeof (uint32_t));
+		dumpvp_write(dump_cbuf, csize);
+		if (dump_ioerr) {
+			dumphdr->dump_flags &= ~DF_COMPLETE;
+			return (cnt);
+		}
+		cnt++;
+		va += MMU_PAGESIZE;
+	}
+
+	/*
+	 * Finally, dump the shared_info page
+	 */
+	csize = (uint32_t)compress((void *)HYPERVISOR_shared_info, dump_cbuf,
+	    PAGESIZE);
+	dumpvp_write(&csize, sizeof (uint32_t));
+	dumpvp_write(dump_cbuf, csize);
+	if (dump_ioerr)
+		dumphdr->dump_flags &= ~DF_COMPLETE;
+	cnt++;
+
+	return (cnt);
+}
+
+static void *
+showstack(void *fpreg, int xpv_only)
+{
+	struct frame *fpp;
+	ulong_t off;
+	char *sym;
+	uintptr_t pc, fp, lastfp;
+	uintptr_t minaddr = min(KERNELBASE, xen_virt_start);
+
+	fp = (uintptr_t)fpreg;
+	if (fp < minaddr) {
+		xpv_panic_printf("Bad frame ptr: 0x%p\n", fpreg);
+		return (fpreg);
+	}
+
+	do {
+		fpp = (struct frame *)fp;
+		pc = fpp->fr_savpc;
+
+		if ((xpv_only != 0) &&
+		    (fp > xpv_end || fp < xen_virt_start))
+			break;
+		if ((sym = kobj_getsymname(pc, &off)) != NULL)
+			xpv_panic_printf("%08lx %s:%s+%lx\n", fp,
+			    mod_containing_pc((caddr_t)pc), sym, off);
+		else if ((pc >= xen_virt_start) && (pc <= xpv_end))
+			xpv_panic_printf("%08lx 0x%lx (in Xen)\n", fp, pc);
+		else
+			xpv_panic_printf("%08lx %lx\n", fp, pc);
+
+		lastfp = fp;
+		fp = fpp->fr_savfp;
+
+		/*
+		 * Xen marks an exception frame by inverting the frame
+		 * pointer.
+		 */
+		if (fp < lastfp) {
+			if ((~fp > minaddr) && ((~fp) ^ lastfp) < 0xfff)
+				fp = ~fp;
+		}
+	} while (fp > lastfp);
+	return ((void *)fp);
+}
+
+void *
+xpv_traceback(void *fpreg)
+{
+	return (showstack(fpreg, 1));
+}
+
+#if defined(__amd64)
+static void
+xpv_panic_hypercall(ulong_t call)
+{
+	panic("Illegally issued hypercall %d during panic!\n", (int)call);
+}
+#endif
+
+void
+xpv_die(struct regs *rp)
+{
+	struct panic_trap_info ti;
+	struct cregs creg;
+
+	ti.trap_regs = rp;
+	ti.trap_type = rp->r_trapno;
+
+	curthread->t_panic_trap = &ti;
+	if (ti.trap_type == T_PGFLT) {
+		getcregs(&creg);
+		ti.trap_addr = (caddr_t)creg.cr_cr2;
+		panic("Fatal pagefault at 0x%lx.  fault addr=0x%p  rp=0x%p",
+		    rp->r_pc, ti.trap_addr, rp);
+	} else {
+		ti.trap_addr = (caddr_t)rp->r_pc;
+		panic("Fatal trap %ld at 0x%lx.  rp=0x%p", rp->r_trapno,
+		    rp->r_pc, rp);
+	}
+}
+
+/*
+ * Build IDT to handle a Xen panic
+ */
+static void
+switch_to_xpv_panic_idt()
+{
+	int i;
+	desctbr_t idtr;
+	gate_desc_t *idt = xpv_panic_idt;
+	selector_t cs = get_cs_register();
+
+	for (i = 0; i < 32; i++)
+		set_gatesegd(&idt[i], &xpv_invaltrap, cs, SDT_SYSIGT, TRP_XPL);
+
+	set_gatesegd(&idt[T_ZERODIV], &xpv_div0trap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_SGLSTP], &xpv_dbgtrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_NMIFLT], &xpv_nmiint, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_BOUNDFLT], &xpv_boundstrap, cs, SDT_SYSIGT,
+	    TRP_XPL);
+	set_gatesegd(&idt[T_ILLINST], &xpv_invoptrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_NOEXTFLT], &xpv_ndptrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_TSSFLT], &xpv_invtsstrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_SEGFLT], &xpv_segnptrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_STKFLT], &xpv_stktrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_GPFLT], &xpv_gptrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_PGFLT], &xpv_pftrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_EXTERRFLT], &xpv_ndperr, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_ALIGNMENT], &xpv_achktrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_MCE], &xpv_mcetrap, cs, SDT_SYSIGT, TRP_XPL);
+	set_gatesegd(&idt[T_SIMDFPE], &xpv_xmtrap, cs, SDT_SYSIGT, TRP_XPL);
+
+	/*
+	 * We have no double fault handler.  Any single fault represents a
+	 * catastrophic failure for us, so there is no attempt to handle
+	 * them cleanly: we just print a message and reboot.  If we
+	 * encounter a second fault while doing that, there is nothing
+	 * else we can do.
+	 */
+
+	/*
+	 * Be prepared to absorb any stray device interrupts received
+	 * while writing the core to disk.
+	 */
+	for (i = 33; i < NIDT; i++)
+		set_gatesegd(&idt[i], &xpv_surprise_intr, cs, SDT_SYSIGT,
+		    TRP_XPL);
+
+	/* The one interrupt we expect to get is from the APIC timer.  */
+	set_gatesegd(&idt[T_XPV_TIMER], &xpv_timer_trap, cs, SDT_SYSIGT,
+	    TRP_XPL);
+
+	idtr.dtr_base = (uintptr_t)xpv_panic_idt;
+	idtr.dtr_limit = sizeof (xpv_panic_idt) - 1;
+	wr_idtr(&idtr);
+
+#if defined(__amd64)
+	/* Catch any hypercalls. */
+	wrmsr(MSR_AMD_LSTAR, (uintptr_t)xpv_panic_hypercall);
+	wrmsr(MSR_AMD_CSTAR, (uintptr_t)xpv_panic_hypercall);
+#endif
+}
+
+static void
+xpv_apic_clkinit()
+{
+	uint_t		apic_ticks = 0;
+
+	/*
+	 * Measure how many APIC ticks there are within a fixed time
+	 * period.  We're going to be fairly coarse here.  This timer is
+	 * just being used to detect a stalled panic, so as long as we have
+	 * the right order of magnitude, everything should be fine.
+	 */
+	xpv_apicadr[APIC_SPUR_INT_REG] = AV_UNIT_ENABLE | APIC_SPUR_INTR;
+	xpv_apicadr[APIC_LOCAL_TIMER] = AV_MASK;
+	xpv_apicadr[APIC_INT_VECT0] = AV_MASK;	/* local intr reg 0 */
+
+	xpv_apicadr[APIC_DIVIDE_REG] = 0;
+	xpv_apicadr[APIC_INIT_COUNT] = APIC_MAXVAL;
+	drv_usecwait(XPV_TIMER_INTERVAL);
+	apic_ticks = APIC_MAXVAL - xpv_apicadr[APIC_CURR_COUNT];
+
+	/*
+	 * apic_ticks now represents roughly how many apic ticks comprise
+	 * one timeout interval.  Program the timer to send us an interrupt
+	 * every time that interval expires.
+	 */
+	xpv_apicadr[APIC_LOCAL_TIMER] = T_XPV_TIMER | AV_TIME;
+	xpv_apicadr[APIC_INIT_COUNT] = apic_ticks;
+	xpv_apicadr[APIC_EOI_REG] = 0;
+}
+
+void
+xpv_timer_tick(void)
+{
+	static int ticks = 0;
+
+	if (ticks++ >= MICROSEC / XPV_TIMER_INTERVAL) {
+		ticks = 0;
+		if (dump_timeleft && (--dump_timeleft == 0))
+			panic("Xen panic timeout\n");
+	}
+	xpv_apicadr[APIC_EOI_REG] = 0;
+}
+
+void
+xpv_interrupt(void)
+{
+#ifdef	DEBUG
+	static int cnt = 0;
+
+	if (cnt++ < 10)
+		xpv_panic_printf("Unexpected interrupt received.\n");
+	if ((cnt < 1000) && ((cnt % 100) == 0))
+		xpv_panic_printf("%d unexpected interrupts received.\n", cnt);
+#endif
+
+	xpv_apicadr[APIC_EOI_REG] = 0;
+}
+
+/*
+ * Managing time in panic context is trivial.  We only have a single CPU,
+ * we never get rescheduled, we never get suspended.  We just need to
+ * convert clock ticks into nanoseconds.
+ */
+static hrtime_t
+xpv_panic_gethrtime(void)
+{
+	hrtime_t tsc, hrt;
+	unsigned int *l = (unsigned int *)&(tsc);
+
+	tsc = __rdtsc_insn();
+	hrt = (mul32(l[1], nsec_scale) << NSEC_SHIFT) +
+	    (mul32(l[0], nsec_scale) >> (32 - NSEC_SHIFT));
+
+	return (hrt);
+}
+
+static void
+xpv_panic_time_init()
+{
+	nsec_scale =
+	    CPU->cpu_m.mcpu_vcpu_info->time.tsc_to_system_mul >> NSEC_SHIFT;
+
+	gethrtimef = xpv_panic_gethrtime;
+}
+
+static void
+xpv_panicsys(struct regs *rp, char *fmt, ...)
+{
+	extern void panicsys(const char *, va_list, struct regs *, int);
+	va_list alist;
+
+	va_start(alist, fmt);
+	panicsys(fmt, alist, rp, 1);
+	va_end(alist);
+}
+
+void
+xpv_do_panic(void *arg)
+{
+	struct panic_info *pip = (struct panic_info *)arg;
+	int l;
+	struct cregs creg;
+#if defined(__amd64)
+	extern uintptr_t postbootkernelbase;
+#endif
+
+	if (xpv_panicking++ > 0)
+		panic("multiple calls to xpv_do_panic()");
+
+	/*
+	 * Indicate to the underlying panic framework that a panic has been
+	 * initiated.  This is ordinarily done as part of vpanic().  Since
+	 * we already have all the register state saved by the hypervisor,
+	 * we skip that and jump straight into the panic processing code.
+	 */
+	(void) panic_trigger(&panic_quiesce);
+
+#if defined(__amd64)
+	/*
+	 * bzero() and bcopy() get unhappy when asked to operate on
+	 * addresses outside of the kernel.  At this point Xen is really a
+	 * part of the kernel, so we update the routines' notion of where
+	 * the kernel starts.
+	 */
+	postbootkernelbase = xen_virt_start;
+#endif
+
+#if defined(HYPERVISOR_VIRT_END)
+	xpv_end = HYPERVISOR_VIRT_END;
+#else
+	xpv_end = (uintptr_t)UINTPTR_MAX - sizeof (uintptr_t);
+#endif
+
+	/*
+	 * If we were redirecting console output to the hypervisor, we have
+	 * to stop.
+	 */
+	use_polledio = B_FALSE;
+	if (console == CONS_HYPERVISOR) {
+		bcons_device_change(CONS_HYPERVISOR);
+	} else if (cons_polledio != NULL &&
+	    cons_polledio->cons_polledio_putchar != NULL)  {
+		if (cons_polledio->cons_polledio_enter != NULL)
+			cons_polledio->cons_polledio_enter(
+			    cons_polledio->cons_polledio_argument);
+		use_polledio = 1;
+	}
+
+	/* Make sure we handle all console output from here on. */
+	sysp->bsvc_putchar = xpv_panic_putc;
+
+	/*
+	 * If we find an unsupported panic_info structure, there's not much
+	 * we can do other than complain, plow on, and hope for the best.
+	 */
+	if (pip->pi_version != PANIC_INFO_VERSION)
+		xpv_panic_printf("Warning: Xen is using an unsupported "
+		    "version of the panic_info structure.\n");
+
+	xpv_panic_info = pip;
+
+	/*
+	 * Make sure we are running on the Solaris %gs.  The Xen panic code
+	 * should already have set up the GDT properly.
+	 */
+	xpv_panic_resetgs();
+#if defined(__amd64)
+	wrmsr(MSR_AMD_GSBASE, (uint64_t)&cpus[0]);
+#endif
+
+	xpv_panic_time_init();
+
+	/*
+	 * Switch to our own IDT, avoiding any accidental returns to Xen
+	 * world.
+	 */
+	switch_to_xpv_panic_idt();
+
+	/*
+	 * Initialize the APIC timer, which is used to detect a hung dump
+	 * attempt.
+	 */
+	xpv_apicadr = pip->pi_apic;
+	xpv_apic_clkinit();
+
+	/*
+	 * Set up a few values that we'll need repeatedly.
+	 */
+	getcregs(&creg);
+	xpv_panic_cr3 = creg.cr_cr3;
+	for (l = mmu.max_level; l >= 0; l--)
+		xpv_panic_nptes[l] = mmu.ptes_per_table;
+#ifdef __i386
+	if (mmu.pae_hat)
+		xpv_panic_nptes[mmu.max_level] = 4;
+#endif
+
+	/* Add the fake Xen module to the module list */
+	if (xpv_module != NULL) {
+		extern int last_module_id;
+
+		xpv_modctl->mod_id = last_module_id++;
+		xpv_modctl->mod_next = &modules;
+		xpv_modctl->mod_prev = modules.mod_prev;
+		modules.mod_prev->mod_next = xpv_modctl;
+		modules.mod_prev = xpv_modctl;
+	}
+	xpv_panic_printf = printf;
+	xpv_panicsys((struct regs *)pip->pi_regs, pip->pi_panicstr);
+	xpv_panic_printf("Failed to reboot following panic.\n");
+	for (;;)
+		;
+}
+
+/*
+ * Set up the necessary data structures to pretend that the Xen hypervisor
+ * is a loadable module, allowing mdb to find the Xen symbols in a crash
+ * dump.  Since these symbols all map to VA space Solaris doesn't normally
+ * have access to, we don't link these structures into the kernel's lists
+ * until/unless we hit a Xen panic.
+ *
+ * The observant reader will note a striking amount of overlap between this
+ * code and that found in krtld.  While it would be handy if we could just
+ * ask krtld to do this work for us, it's not that simple.  Among the
+ * complications: we're not actually loading the text here (grub did it at
+ * boot), the .text section is writable, there are no relocations to do,
+ * none of the module text/data is in readable memory, etc.  Training krtld
+ * to deal with this weird module is as complicated, and more risky, than
+ * reimplementing the necessary subset of it here.
+ */
+static void
+init_xen_module()
+{
+	struct _buf *file = NULL;
+	struct module *mp;
+	struct modctl *mcp;
+	int i, shn;
+	Shdr *shp, *ctf_shp;
+	char *names = NULL;
+	size_t n, namesize, text_align, data_align;
+#if defined(__amd64)
+	const char machine = EM_AMD64;
+#else
+	const char machine = EM_386;
+#endif
+
+	/* Allocate and init the module structure */
+	mp = kmem_zalloc(sizeof (*mp), KM_SLEEP);
+	mp->filename = kobj_zalloc(strlen(XPV_FILENAME) + 1, KM_SLEEP);
+	(void) strcpy(mp->filename, XPV_FILENAME);
+
+	/* Allocate and init the modctl structure */
+	mcp = kmem_zalloc(sizeof (*mcp), KM_SLEEP);
+	mcp->mod_modname = kobj_zalloc(strlen(XPV_MODNAME) + 1, KM_SLEEP);
+	(void) strcpy(mcp->mod_modname, XPV_MODNAME);
+	mcp->mod_filename = kobj_zalloc(strlen(XPV_FILENAME) + 1, KM_SLEEP);
+	(void) strcpy(mcp->mod_filename, XPV_FILENAME);
+	mcp->mod_inprogress_thread = (kthread_id_t)-1;
+	mcp->mod_ref = 1;
+	mcp->mod_loaded = 1;
+	mcp->mod_loadcnt = 1;
+	mcp->mod_mp = mp;
+
+	/*
+	 * Try to open a Xen image that hasn't had its symbol and CTF
+	 * information stripped off.
+	 */
+	file = kobj_open_file(XPV_FILENAME);
+	if (file == (struct _buf *)-1) {
+		file = NULL;
+		goto err;
+	}
+
+	/*
+	 * Read the header and ensure that this is an ELF file for the
+	 * proper ISA.  If it's not, somebody has done something very
+	 * stupid.  Why bother?  See Mencken.
+	 */
+	if (kobj_read_file(file, (char *)&mp->hdr, sizeof (mp->hdr), 0) < 0)
+		goto err;
+	for (i = 0; i < SELFMAG; i++)
+		if (mp->hdr.e_ident[i] != ELFMAG[i])
+			goto err;
+	if ((mp->hdr.e_ident[EI_DATA] != ELFDATA2LSB) ||
+	    (mp->hdr.e_machine != machine))
+		goto err;
+
+	/* Read in the section headers */
+	n = mp->hdr.e_shentsize * mp->hdr.e_shnum;
+	mp->shdrs = kmem_zalloc(n, KM_SLEEP);
+	if (kobj_read_file(file, mp->shdrs, n, mp->hdr.e_shoff) < 0)
+		goto err;
+
+	/* Read the section names */
+	shp = (Shdr *)(mp->shdrs + mp->hdr.e_shstrndx * mp->hdr.e_shentsize);
+	namesize = shp->sh_size;
+	names = kmem_zalloc(shp->sh_size, KM_SLEEP);
+	if (kobj_read_file(file, names, shp->sh_size, shp->sh_offset) < 0)
+		goto err;
+
+	/*
+	 * Fill in the text and data size fields.
+	 */
+	ctf_shp = NULL;
+	text_align = data_align = 0;
+	for (shn = 1; shn < mp->hdr.e_shnum; shn++) {
+		shp = (Shdr *)(mp->shdrs + shn * mp->hdr.e_shentsize);
+
+		/* Sanity check the offset of the section name */
+		if (shp->sh_name >= namesize)
+			continue;
+
+		/* If we find the symtab section, remember it for later. */
+		if (shp->sh_type == SHT_SYMTAB) {
+			mp->symtbl_section = shn;
+			mp->symhdr = shp;
+			continue;
+		}
+
+		/* If we find the CTF section, remember it for later. */
+		if ((shp->sh_size != 0) &&
+		    (strcmp(names + shp->sh_name, ".SUNW_ctf") == 0)) {
+			ctf_shp = shp;
+			continue;
+		}
+
+		if (!(shp->sh_flags & SHF_ALLOC))
+			continue;
+
+		/*
+		 * Xen marks its text section as writable, so we need to
+		 * look for the name - not just the flag.
+		 */
+		if ((strcmp(&names[shp->sh_name], ".text") != NULL) &&
+		    (shp->sh_flags & SHF_WRITE) != 0) {
+			if (shp->sh_addralign > data_align)
+				data_align = shp->sh_addralign;
+			mp->data_size = ALIGN(mp->data_size, data_align);
+			mp->data_size += ALIGN(shp->sh_size, 8);
+			if (mp->data == NULL || mp->data > (char *)shp->sh_addr)
+				mp->data = (char *)shp->sh_addr;
+		} else {
+			if (shp->sh_addralign > text_align)
+				text_align = shp->sh_addralign;
+			mp->text_size = ALIGN(mp->text_size, text_align);
+			mp->text_size += ALIGN(shp->sh_size, 8);
+			if (mp->text == NULL || mp->text > (char *)shp->sh_addr)
+				mp->text = (char *)shp->sh_addr;
+		}
+	}
+	kmem_free(names, namesize);
+	names = NULL;
+	mcp->mod_text = mp->text;
+	mcp->mod_text_size = mp->text_size;
+
+	/*
+	 * If we have symbol table and string table sections, read them in
+	 * now.  If we don't, we just plow on.  We'll still get a valid
+	 * core dump, but finding anything useful will be just a bit
+	 * harder.
+	 *
+	 * Note: we don't bother with a hash table.  We'll never do a
+	 * symbol lookup unless we crash, and then mdb creates its own.  We
+	 * also don't try to perform any relocations.  Xen should be loaded
+	 * exactly where the ELF file indicates, and the symbol information
+	 * in the file should be complete and correct already.  Static
+	 * linking ain't all bad.
+	 */
+	if ((mp->symhdr != NULL) && (mp->symhdr->sh_link < mp->hdr.e_shnum)) {
+		mp->strhdr = (Shdr *)
+		    (mp->shdrs + mp->symhdr->sh_link * mp->hdr.e_shentsize);
+		mp->nsyms = mp->symhdr->sh_size / mp->symhdr->sh_entsize;
+
+		/* Allocate space for the symbol table and strings.  */
+		mp->symsize = mp->symhdr->sh_size +
+		    mp->nsyms * sizeof (symid_t) + mp->strhdr->sh_size;
+		mp->symspace = kmem_zalloc(mp->symsize, KM_SLEEP);
+		mp->symtbl = mp->symspace;
+		mp->strings = (char *)(mp->symtbl + mp->symhdr->sh_size);
+
+		if ((kobj_read_file(file, mp->symtbl,
+		    mp->symhdr->sh_size, mp->symhdr->sh_offset) < 0) ||
+		    (kobj_read_file(file, mp->strings,
+		    mp->strhdr->sh_size, mp->strhdr->sh_offset) < 0))
+			goto err;
+	}
+
+	/*
+	 * Read in the CTF section
+	 */
+	if ((ctf_shp != NULL) && ((moddebug & MODDEBUG_NOCTF) == 0)) {
+		mp->ctfdata = kmem_zalloc(shp->sh_size, KM_SLEEP);
+		mp->ctfsize = ctf_shp->sh_size;
+		if (kobj_read_file(file, mp->ctfdata, mp->ctfsize,
+		    ctf_shp->sh_offset) < 0)
+			goto err;
+	}
+
+	kobj_close_file(file);
+
+	xpv_module = mp;
+	xpv_modctl = mcp;
+	return;
+
+err:
+	cmn_err(CE_WARN, "Failed to initialize xpv module.");
+	if (file != NULL)
+		kobj_close_file(file);
+
+	kmem_free(mp->filename, strlen(XPV_FILENAME) + 1);
+	if (mp->shdrs != NULL)
+		kmem_free(mp->shdrs, mp->hdr.e_shentsize * mp->hdr.e_shnum);
+	if (mp->symspace != NULL)
+		kmem_free(mp->symspace, mp->symsize);
+	if (mp->ctfdata != NULL)
+		kmem_free(mp->ctfdata, mp->ctfsize);
+	kmem_free(mp, sizeof (*mp));
+	kmem_free(mcp->mod_filename, strlen(XPV_FILENAME) + 1);
+	kmem_free(mcp->mod_modname, strlen(XPV_MODNAME) + 1);
+	kmem_free(mcp, sizeof (*mcp));
+	if (names != NULL)
+		kmem_free(names, namesize);
+}
+
+void
+xpv_panic_init()
+{
+	xen_platform_op_t op;
+	int i;
+
+	ASSERT(DOMAIN_IS_INITDOMAIN(xen_info));
+
+	for (i = 0; i < mmu.num_level; i++)
+		ptable_pfn[i] = PFN_INVALID;
+
+	/* Let Xen know where to jump if/when it panics. */
+	op.cmd = XENPF_panic_init;
+	op.interface_version = XENPF_INTERFACE_VERSION;
+	op.u.panic_init.panic_addr = (unsigned long)xpv_panic_hdlr;
+
+	(void) HYPERVISOR_platform_op(&op);
+
+	init_xen_module();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/os/xpv_timestamp.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,173 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/clock.h>
+#include <sys/panic.h>
+#include <sys/atomic.h>
+#include <sys/hypervisor.h>
+
+#include <sys/archsystm.h>
+
+/*
+ * On the hypervisor, we have a virtualized system time based upon the
+ * information provided for each VCPU, which is updated every time it is
+ * scheduled onto a real CPU.  Thus, none of the traditional code in
+ * i86pc/os/timestamp.c applies, our gethrtime() implementation is run through
+ * the PSM, and there is no scaling step to apply.
+ *
+ * However, the platform does not guarantee monotonicity; thus we have to fake
+ * this up, which is a deeply unpleasant thing to have to do.
+ *
+ * Note that the virtualized interface still relies on the current TSC to
+ * calculate the time in nanoseconds since the VCPU was scheduled, and is thus
+ * subject to all the problems with that.  For the most part, the hypervisor is
+ * supposed to deal with them.
+ *
+ * Another wrinkle involves suspend/resume/migration.  If we come back and time
+ * is apparently less, we may have resumed on a different machine or on the
+ * same machine after a reboot.  In this case we need to maintain an addend to
+ * ensure time continues reasonably.  Otherwise we could end up taking a very
+ * long time to expire cyclics in the heap.  Thus we have two functions:
+ *
+ * xpv_getsystime()
+ *
+ *	The unadulterated system time from the hypervisor.  This is only to be
+ *	used when programming the hypervisor (setting a timer or calculating
+ *	the TOD).
+ *
+ * xpv_gethrtime()
+ *
+ *	This is the monotonic hrtime counter to be used by everything else such
+ *	as the cyclic subsystem.  We should never pass an hrtime directly into
+ *	a hypervisor interface, as hrtime_addend may well be non-zero.
+ */
+
+static volatile hrtime_t hrtime_last;
+static int hrtime_fake_mt = 1;
+static hrtime_t hrtime_suspend_time;
+static hrtime_t hrtime_addend;
+
+/*
+ * These functions are used in DTrace probe context, and must be removed from
+ * fbt consideration.  Currently fbt ignores all weak symbols, so this will
+ * achieve that.
+ */
+#pragma weak xpv_gethrtime = dtrace_xpv_gethrtime
+#pragma weak xpv_getsystime = dtrace_xpv_getsystime
+#pragma weak dtrace_gethrtime = dtrace_xpv_gethrtime
+#pragma weak tsc_read = dtrace_xpv_gethrtime
+
+hrtime_t
+dtrace_xpv_getsystime(void)
+{
+	vcpu_time_info_t *src;
+	vcpu_time_info_t __vti, *dst = &__vti;
+	uint64_t tsc_delta;
+	kthread_t *t = curthread;
+	uint64_t tsc;
+	hrtime_t result;
+
+	/*
+	 * This stops us from wandering off the virtual cpu.
+	 */
+	t->t_preempt++;
+
+	src = &CPU->cpu_m.mcpu_vcpu_info->time;
+
+	/*
+	 * Loop until version has not been changed during our update, and a Xen
+	 * update is not under way (lowest bit is set).
+	 */
+	do {
+		dst->version = src->version;
+
+		membar_consumer();
+
+		dst->tsc_timestamp = src->tsc_timestamp;
+		dst->system_time = src->system_time;
+		dst->tsc_to_system_mul = src->tsc_to_system_mul;
+		dst->tsc_shift = src->tsc_shift;
+
+		/*
+		 * Note that this use of the -actual- TSC register
+		 * should probably be the SOLE one in the system on this
+		 * paravirtualized platform.
+		 */
+		tsc = __rdtsc_insn();
+		tsc_delta = tsc - dst->tsc_timestamp;
+
+		membar_consumer();
+
+	} while ((src->version & 1) | (dst->version ^ src->version));
+
+	if (dst->tsc_shift >= 0)
+		tsc_delta <<= dst->tsc_shift;
+	else if (dst->tsc_shift < 0)
+		tsc_delta >>= -dst->tsc_shift;
+
+	result = dst->system_time +
+	    ((uint64_t)(tsc_delta * (uint64_t)dst->tsc_to_system_mul) >> 32);
+
+	t->t_preempt--;
+
+	return (result);
+}
+
+hrtime_t
+dtrace_xpv_gethrtime(void)
+{
+	hrtime_t result = xpv_getsystime() + hrtime_addend;
+
+	if (hrtime_fake_mt) {
+		hrtime_t last;
+		do {
+			last = hrtime_last;
+			if (result < last)
+				result = last + 1;
+		} while (atomic_cas_64((volatile uint64_t *)&hrtime_last,
+		    last, result) != last);
+	}
+
+	return (result);
+}
+
+void
+xpv_time_suspend(void)
+{
+	hrtime_suspend_time = xpv_getsystime();
+}
+
+void
+xpv_time_resume(void)
+{
+	hrtime_t delta = xpv_getsystime() - hrtime_suspend_time;
+
+	if (delta < 0)
+		hrtime_addend += -delta;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/pci-ide/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,92 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the pci-ide "drv"
+#	kernel module.
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= pci-ide
+OBJECTS		= $(PCIIDE_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(PCIIDE_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+CONF_SRCDIR	= $(UTSBASE)/common/io/pci-ide
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY) $(CONFMOD)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
+
+#
+#	Overrides.
+#
+DEBUG_FLGS	=
+DEBUG_DEFS	+= $(DEBUG_FLGS)
+
+INC_PATH	+= -I$(UTSBASE)/common/io/pci-ide
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/pci/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,97 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the PCI nexus driver
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= pci
+OBJECTS		= $(PCINEXUS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(PCINEXUS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# depends on misc/pci_autoconfig misc/pcihp
+#
+LDFLAGS		+= -dy -Nmisc/pcihp
+
+#
+# Name of the module is needed by the source, to distinguish from other
+# PCI/PCI-express nexi
+#
+CFLAGS		+= -D_MODULE_NAME="\"$(MODULE)\""
+LINTFLAGS	+= -D_MODULE_NAME="\"$(MODULE)\""
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_SUSPICIOUS_COMPARISON
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/pcie/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the kernel/misc/pcie module
+#	for PCI-E Error handling support in PCI-E nexus drivers.
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= pcie
+OBJECTS		= $(PCI_E_MISC_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(PCI_E_MISC_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_MISC_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/privcmd/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,85 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the privcmd
+#	driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= privcmd
+OBJECTS		= $(PRIVCMD_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(PRIVCMD_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/rootnex/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,90 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the rootnex driver
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= rootnex
+OBJECTS		= $(ROOTNEX_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(ROOTNEX_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Overrides.
+#
+LDFLAGS		+= -dy
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,74 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+UTSBASE = ../..
+
+#
+# include global definitions
+#
+include ../Makefile.i86xpv
+
+#
+# Override defaults.
+#
+FILEMODE = 644
+
+HDRS=  \
+	balloon.h	\
+	hypervisor.h	\
+	machprivregs.h	\
+	xen_errno.h	\
+	xen_mmu.h \
+	xpv_impl.h
+
+ROOTHDRS=	$(HDRS:%=$(USR_PSM_ISYS_DIR)/%)
+
+ROOTDIR=	$(ROOT)/usr/share/src
+ROOTDIRS=	$(ROOTDIR)/uts $(ROOTDIR)/uts/$(PLATFORM)
+
+ROOTLINK=	$(ROOTDIR)/uts/$(PLATFORM)/sys
+LINKDEST=	../../../../platform/$(PLATFORM)/include/sys
+
+CHECKHDRS=	$(HDRS:%.h=%.check)
+
+.KEEP_STATE:
+
+.PARALLEL:	$(CHECKHDRS) $(ROOTHDRS)
+
+install_h:	$(ROOTDIRS) .WAIT $(ROOTHDRS) $(ROOTLINK)
+
+check:		$(CHECKHDRS)
+
+$(ROOTDIRS):
+	$(INS.dir.root.bin)
+
+$(ROOTLINK):	$(ROOTDIRS)
+	-$(RM) -r $@; $(SYMLINK) $(LINKDEST) $@ $(CHOWNLINK) $(CHGRPLINK)
+
+FRC:
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/balloon.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,57 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_BALLOON_H
+#define	_SYS_BALLOON_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	BALLOON_DEV_NAME	"balloon"
+#define	BALLOON_PATHNAME	"xen/" BALLOON_DEV_NAME
+
+#define	BALLOON_DRIVER_NAME	"balloon"
+
+#define	BLN_IOCTL_BASE		('B' << 24) | ('A' << 16)
+
+/*
+ * To return the desired value.  These defines are copied in balloon.py
+ * in the hypervisor gate, so woe befall anyone who changes these.
+ */
+#define	BLN_IOCTL_CURRENT	(BLN_IOCTL_BASE | 0x1)
+#define	BLN_IOCTL_TARGET	(BLN_IOCTL_BASE | 0x2)
+#define	BLN_IOCTL_LOW		(BLN_IOCTL_BASE | 0x3)
+#define	BLN_IOCTL_HIGH		(BLN_IOCTL_BASE | 0x4)
+#define	BLN_IOCTL_LIMIT		(BLN_IOCTL_BASE | 0x5)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_BALLOON_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/balloon_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,76 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_BALLOON_IMPL_H
+#define	_SYS_BALLOON_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/balloon.h>
+#include <sys/types.h>
+#include <vm/page.h>
+#include <sys/xen_mmu.h>	/* to get typedef of mfn_t */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This file contains interfaces for both the balloon kernel thread
+ * and the balloon driver.  The balloon device is installed under /dev/xen,
+ * and can be used with the ioctl values in balloon.h to get the balloon
+ * memory status.
+ */
+
+/* balloon thread declarations */
+void balloon_init(pgcnt_t);
+size_t balloon_values(int);
+void balloon_drv_added(int64_t);
+void balloon_drv_subtracted(int64_t);
+long balloon_alloc_pages(uint_t, mfn_t *);
+long balloon_free_pages(uint_t, mfn_t *, caddr_t, pfn_t *);
+long balloon_replace_pages(uint_t, page_t **, uint_t, uint_t, mfn_t *);
+
+/* balloon driver information */
+#define	BALLOON_MINOR		0
+
+/*
+ * Critical stats for the balloon thread.  All values are in pages.
+ */
+typedef struct {
+	pgcnt_t bln_current_pages;	/* current reservation */
+	pgcnt_t bln_new_target;		/* target value for reservation */
+	pgcnt_t bln_max_pages;	/* first pfn for which we don't have a page_t */
+	pgcnt_t bln_low;	/* lowest value of reservation since boot */
+	pgcnt_t bln_high;	/* highest value of reservation since boot */
+	spgcnt_t bln_hv_pages;	/* number of total pages given to hypervisor */
+	spgcnt_t bln_hard_limit;	/* domain's max-mem limit */
+} bln_stats_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_BALLOON_IMPL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/cpr_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,59 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_CPR_IMPL_H
+#define	_SYS_CPR_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+
+#ifndef _ASM
+
+#include <sys/machparam.h>
+#include <sys/vnode.h>
+#include <sys/pte.h>
+
+
+typedef uint64_t cpr_ptr;
+typedef uint64_t cpr_ext;
+
+struct cpr_map_info {
+	cpr_ptr	virt;
+	cpr_ext	phys;
+	uint_t	size;
+};
+
+#endif /* _ASM */
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _SYS_CPR_IMPL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/domcaps_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,54 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_DOMCAPS_IMPL_H
+#define	_SYS_DOMCAPS_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * /dev names:
+ *	/dev/xen/			- containing directory
+ *		capabilities		- domain properties
+ */
+
+#define	DOMCAPS_DRIVER_NAME	"domcaps"
+
+#define	DOMCAPS_MINOR		0
+
+#define	DOMCAPS_DEV_NAME	"capabilities"
+#define	DOMCAPS_PATHNAME	"xen/" DOMCAPS_DEV_NAME
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DOMCAPS_IMPL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/evtchn_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,202 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * evtchn.h (renamed to evtchn_impl.h)
+ *
+ * Communication via Xen event channels.
+ * Also definitions for the device that demuxes notifications to userspace.
+ *
+ * Copyright (c) 2004-2005, K A Fraser
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _SYS_EVTCHN_H
+#define	_SYS_EVTCHN_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+#include <sys/privregs.h>
+#include <sys/systm.h>
+#include <sys/traptrace.h>
+#include <sys/ddi_intr.h>
+#include <sys/ddi_intr_impl.h>
+#include <sys/avintr.h>
+#include <sys/cpuvar.h>
+#include <sys/hypervisor.h>
+
+/* evtchn binding types */
+#define	IRQT_UNBOUND	0	/* unassigned irq */
+#define	IRQT_PIRQ	1	/* IRQ from phys hdw device */
+#define	IRQT_VIRQ	2	/* Virtual IRQ from Xen */
+#define	IRQT_IPI	3	/* Inter VCPU interrupt IRQ */
+#define	IRQT_EVTCHN	4	/* Virtual device IRQ */
+#define	IRQT_DEV_EVTCHN	5	/* Special evtchn device IRQ */
+
+#define	SET_EVTCHN_BIT(bit, arrayp) \
+	((arrayp)[bit >> EVTCHN_SHIFT] |= \
+	(1ul << ((bit) & ((1ul << EVTCHN_SHIFT) - 1))))
+#define	CLEAR_EVTCHN_BIT(bit, arrayp) \
+	((arrayp)[bit >> EVTCHN_SHIFT] &= \
+		~((1ul << ((bit) & ((1ul << EVTCHN_SHIFT) - 1)))))
+#define	TEST_EVTCHN_BIT(bit, arrayp) \
+	((arrayp)[bit >> EVTCHN_SHIFT] & \
+		(1ul << ((bit) & ((1ul << EVTCHN_SHIFT) - 1))))
+
+/* Xen will never allocate port zero for any purpose. */
+#define	INVALID_EVTCHN	0
+
+/* XXPV - should these defines be somewhere else? xenos.h perhaps? */
+
+#define	IPL_DEBUG	15	/* domain debug interrupt */
+#define	IPL_CONS	9
+#define	IPL_VIF		6
+#define	IPL_VBD		5
+#define	IPL_EVTCHN	1
+
+#define	PIRQ_BASE	0	/* base of pirq range */
+#define	NR_PIRQS	256	/* Number of supported physical irqs */
+#define	DYNIRQ_BASE	(PIRQ_BASE + NR_PIRQS) /* base of dynamic irq range */
+#define	NR_DYNIRQS	256	/* Number of dynamic irqs */
+#define	NR_IRQS		(NR_PIRQS + NR_DYNIRQS) /* total irq count */
+
+#define	PIRQ_TO_IRQ(pirq)	((pirq) + PIRQ_BASE)
+#define	IRQ_TO_PIRQ(irq)	((irq) - PIRQ_BASE)
+
+#define	DYNIRQ_TO_IRQ(dirq)	((dirq) + DYNIRQ_BASE)
+#define	IRQ_TO_DYNIRQ(irq)	((irq) - DYNIRQ_BASE)
+
+#if defined(_LP64)
+#define	EVTCHN_SHIFT	6	/* log2(NBBY * sizeof (ulong_t)) */
+#else
+#define	EVTCHN_SHIFT	5	/* log2(NBBY * sizeof (ulong_t)) */
+#endif
+
+#define	INVALID_IRQ -1
+
+extern int ec_dev_irq;
+extern volatile int ec_dev_mbox;
+extern kmutex_t ec_lock;
+
+typedef struct mec_info {
+	ushort_t mi_evtchns[NCPU];	/* event channels for this IRQ */
+	short mi_irq;			/* the IRQ, or INVALID_IRQ */
+	char mi_shared;			/* one evtchn for all CPUs? */
+} mec_info_t;
+
+/*
+ * Careful: ii_ipl is /only/ set if there's a handler for this IRQ.
+ */
+typedef struct irq_info {
+	union {
+		ushort_t evtchn;	/* event channel */
+		ushort_t index;		/* index to next table if mec */
+	} ii_u;
+	uchar_t ii_type;		/* IRQ type as above */
+	union {
+		uchar_t ipl;		/* IPL of IRQ, != 0 => has handler */
+		uchar_t	has_handler;	/* alternate name for ipl */
+	} ii_u2;
+} irq_info_t;
+
+extern void ec_init(void);
+extern void ec_init_debug_irq(void);
+extern void ec_suspend(void);
+extern void ec_resume(void);
+extern void ec_wait_on_evtchn(int, int (*)(void *), void *);
+extern void ec_wait_on_ipi(int, int (*)(void *), void *);
+
+extern void ec_setup_pirq(int, int, cpuset_t);
+extern int ec_probe_pirq(int);
+extern void ec_set_irq_affinity(int, cpuset_t);
+extern int ec_set_irq_priority(int, int);
+
+extern int ec_bind_ipi_to_irq(int, int);
+extern void ec_bind_cpu_ipis(int);
+extern int ec_bind_evtchn_to_irq(int);
+extern int ec_bind_virq_to_irq(int, int);
+extern void ec_unbind_irq(int irq);
+
+extern void ec_send_ipi(int, int);
+extern void ec_try_ipi(int, int);
+extern void ec_clear_irq(int);
+extern void ec_unmask_irq(int);
+extern void ec_try_unmask_irq(int);
+extern int ec_block_irq(int);
+extern void ec_unpend_irq(int);
+extern int ec_irq_needs_rebind(int, int);
+extern int ec_irq_rebindable(int);
+extern int ec_pending_irq(unsigned int);
+extern void ec_enable_irq(unsigned int);
+extern void ec_disable_irq(unsigned int);
+
+extern int xen_bind_interdomain(int, int, int *);
+extern int xen_bind_virq(unsigned int, processorid_t, int *);
+extern int xen_alloc_unbound_evtchn(int, int *);
+extern void ec_bind_vcpu(int, int);
+
+extern int ec_mask_evtchn(unsigned int);
+extern void ec_unmask_evtchn(unsigned int);
+extern void ec_clear_evtchn(unsigned int);
+
+extern void ec_notify_via_evtchn(unsigned int);
+
+/*
+ * /dev/xen/evtchn handling.
+ */
+extern void ec_irq_add_evtchn(int, int);
+extern void ec_irq_rm_evtchn(int, int);
+extern int ec_dev_alloc_irq(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_EVTCHN_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/gnttab.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,152 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_GNTTAB_H
+#define	_SYS_GNTTAB_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * gnttab.h
+ *
+ * Two sets of functionality:
+ * 1. Granting foreign access to our memory reservation.
+ * 2. Accessing others' memory reservations via grant references.
+ * (i.e., mechanisms for both sender and recipient of grant references)
+ *
+ * Copyright (c) 2004-2005, K A Fraser
+ * Copyright (c) 2005, Christopher Clark
+ *
+ * This file may be distributed separately from the Linux kernel, or
+ * incorporated into other software packages, subject to the following license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <sys/hypervisor.h>
+#include <xen/public/grant_table.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */
+#ifdef __ia64__
+#define	NR_GRANT_FRAMES 1
+#else
+#define	NR_GRANT_FRAMES 4
+#endif
+
+struct gnttab_free_callback {
+	struct gnttab_free_callback *next;
+	void (*fn)(void *);
+	void *arg;
+	uint16_t count;
+};
+
+/*
+ * For i86xpv the "frames" in grant table terminology are really MFNs.
+ */
+typedef mfn_t gnttab_frame_t;
+#define	FRAME_TO_MA(f)	((maddr_t)(f) << PAGESHIFT)
+
+int gnttab_grant_foreign_access(domid_t, gnttab_frame_t, int readonly);
+
+/*
+ * End access through the given grant reference, iff the grant entry is no
+ * longer in use.  Return 1 if the grant entry was freed, 0 if it is still in
+ * use.
+ */
+int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly);
+
+/*
+ * Eventually end access through the given grant reference, and once that
+ * access has been ended, free the given page too.  Access will be ended
+ * immediately iff the grant entry is not in use, otherwise it will happen
+ * some time later.  page may be 0, in which case no freeing will occur.
+ */
+void gnttab_end_foreign_access(grant_ref_t ref, int readonly,
+	gnttab_frame_t page);
+
+int gnttab_grant_foreign_transfer(domid_t domid);
+
+gnttab_frame_t gnttab_end_foreign_transfer_ref(grant_ref_t ref);
+gnttab_frame_t gnttab_end_foreign_transfer(grant_ref_t ref);
+
+int gnttab_query_foreign_access(grant_ref_t ref);
+
+/*
+ * operations on reserved batches of grant references
+ */
+int gnttab_alloc_grant_references(uint16_t count, grant_ref_t *pprivate_head);
+
+void gnttab_free_grant_reference(grant_ref_t ref);
+
+void gnttab_free_grant_references(grant_ref_t head);
+
+int gnttab_claim_grant_reference(grant_ref_t *pprivate_head);
+
+void gnttab_release_grant_reference(grant_ref_t *private_head,
+	grant_ref_t release);
+
+void gnttab_request_free_callback(struct gnttab_free_callback *callback,
+	void (*fn)(void *), void *arg, uint16_t count);
+
+void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
+	gnttab_frame_t frame, int readonly);
+
+void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid);
+
+#define	gnttab_map_vaddr(map) ((void *)(map.host_virt_addr))
+
+/*
+ * framework
+ */
+void gnttab_init(void);
+void gnttab_suspend(void);
+void gnttab_resume(void);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* _SYS_GNTTAB_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/hypervisor.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,222 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ *
+ * Communication to/from hypervisor.
+ *
+ * Copyright (c) 2002-2004, K A Fraser
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this source file (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy, modify,
+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _SYS_HYPERVISOR_H
+#define	_SYS_HYPERVISOR_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/xpv_impl.h>
+#include <sys/xen_errno.h>
+
+#if !defined(_ASM)
+
+#include <sys/processor.h>
+#include <sys/cpuvar.h>
+#include <sys/xen_mmu.h>
+#include <sys/systm.h>
+#include <xen/public/callback.h>
+#include <xen/public/event_channel.h>
+#include <xen/public/grant_table.h>
+#include <xen/public/io/blkif.h>
+#include <xen/public/io/xenbus.h>
+#include <xen/public/memory.h>
+#include <xen/public/nmi.h>
+#include <xen/public/physdev.h>
+#include <xen/public/sched.h>
+#include <xen/public/sysctl.h>
+#include <xen/public/platform.h>
+#include <xen/public/vcpu.h>
+#include <xen/public/version.h>
+#include <xen/public/acm_ops.h>
+#include <xen/public/hvm/params.h>
+
+extern shared_info_t *HYPERVISOR_shared_info;
+extern void *HYPERVISOR_console_page;
+
+/* -- move these definitions elsewhere -- */
+
+extern int xen_debug_handler(void *);
+extern void xen_printf(const char *, ...) __KPRINTFLIKE(1);
+#pragma rarely_called(xen_printf)
+
+extern void xen_callback(void);
+extern void xen_failsafe_callback(void);
+
+extern hrtime_t xpv_gethrtime(void);
+extern hrtime_t xpv_getsystime(void);
+
+extern void xpv_time_suspend(void);
+extern void xpv_time_resume(void);
+
+extern void xen_version(void);
+
+extern void mach_cpucontext_reset(cpu_t *);
+extern void mach_cpucontext_restore(cpu_t *);
+
+extern cpuset_t cpu_suspend_set;
+extern cpuset_t cpu_suspend_lost_set;
+extern volatile int xen_suspending_cpus;
+
+extern int xen_gdt_setprot(cpu_t *, uint_t);
+extern int xen_ldt_setprot(user_desc_t *, size_t, uint_t);
+
+/*
+ * Wrappered versions of the hypercalls that diagnose/panic on failure
+ */
+extern void xen_set_gdt(ulong_t *, int);
+extern void xen_set_ldt(user_desc_t *, uint_t);
+extern void xen_stack_switch(ulong_t, ulong_t);
+extern long xen_set_trap_table(trap_info_t *);
+
+#if defined(__amd64)
+extern void xen_set_segment_base(int, ulong_t);
+#endif	/* __amd64 */
+extern long xen_vcpu_up(processorid_t);
+extern long xen_vcpu_down(processorid_t);
+extern void xen_enable_user_iopl(void);
+extern void xen_disable_user_iopl(void);
+
+/*
+ * A quick way to ask if we're DOM0 or not ..
+ */
+#define	DOMAIN_IS_INITDOMAIN(info)	\
+	(((info)->flags & SIF_INITDOMAIN) == SIF_INITDOMAIN)
+
+#define	DOMAIN_IS_PRIVILEGED(info)	\
+	(((info)->flags & SIF_PRIVILEGED) == SIF_PRIVILEGED)
+
+/*
+ * start of day information passed up from the hypervisor
+ */
+extern start_info_t *xen_info;
+
+extern long __hypercall0(int);
+extern long __hypercall1(int, ulong_t);
+extern long __hypercall2(int, ulong_t, ulong_t);
+extern long __hypercall3(int, ulong_t, ulong_t, ulong_t);
+extern long __hypercall4(int, ulong_t, ulong_t, ulong_t, ulong_t);
+extern long __hypercall5(int, ulong_t, ulong_t, ulong_t, ulong_t, ulong_t);
+
+extern int __hypercall0_int(int);
+extern int __hypercall1_int(int, ulong_t);
+extern int __hypercall2_int(int, ulong_t, ulong_t);
+extern int __hypercall3_int(int, ulong_t, ulong_t, ulong_t);
+extern int __hypercall4_int(int, ulong_t, ulong_t, ulong_t, ulong_t);
+extern int __hypercall5_int(int, ulong_t, ulong_t, ulong_t, ulong_t, ulong_t);
+
+extern long HYPERVISOR_set_trap_table(trap_info_t *);
+extern int HYPERVISOR_mmu_update(mmu_update_t *, int, int *, domid_t);
+extern long HYPERVISOR_set_gdt(ulong_t *, int);
+extern long HYPERVISOR_stack_switch(ulong_t, ulong_t);
+#if defined(__amd64)
+extern long HYPERVISOR_set_callbacks(ulong_t, ulong_t, ulong_t);
+#else
+extern long HYPERVISOR_set_callbacks(ulong_t, ulong_t, ulong_t, ulong_t);
+#endif
+extern long HYPERVISOR_fpu_taskswitch(int);
+/* *** __HYPERVISOR_sched_op_compat *** OBSOLETED */
+extern long HYPERVISOR_platform_op(xen_platform_op_t *);
+/* *** __HYPERVISOR_set_debugreg *** NOT IMPLEMENTED */
+/* *** __HYPERVISOR_get_debugreg *** NOT IMPLEMENTED */
+extern long HYPERVISOR_update_descriptor(maddr_t, uint64_t);
+extern long HYPERVISOR_memory_op(int, void *);
+extern long HYPERVISOR_multicall(void *, uint_t);
+extern int HYPERVISOR_update_va_mapping(ulong_t, uint64_t, ulong_t);
+extern long HYPERVISOR_set_timer_op(uint64_t);
+/* *** __HYPERVISOR_event_channel_op_compat *** OBSOLETED */
+extern long HYPERVISOR_xen_version(int, void *);
+extern long HYPERVISOR_console_io(int, int, char *);
+/* *** __HYPERVISOR_physdev_op_compat *** OBSOLETED */
+extern long HYPERVISOR_grant_table_op(unsigned int, void *, unsigned int);
+extern long HYPERVISOR_vm_assist(unsigned int, unsigned int);
+extern int HYPERVISOR_update_va_mapping_otherdomain(ulong_t,
+    uint64_t, ulong_t, domid_t);
+/* *** __HYPERVISOR_iret *** IN i86xpv/sys/machprivregs.h */
+extern long HYPERVISOR_vcpu_op(int, int, void *);
+#if defined(__amd64)
+extern long HYPERVISOR_set_segment_base(int, ulong_t);
+#endif	/* __amd64 */
+extern int HYPERVISOR_mmuext_op(struct mmuext_op *, int, uint_t *, domid_t);
+extern long HYPERVISOR_acm_op(int cmd, void *);
+extern long HYPERVISOR_nmi_op(int cmd, void *);
+extern long HYPERVISOR_sched_op(int, void *);
+extern long HYPERVISOR_callback_op(int, void *);
+/* *** __HYPERVISOR_xenoprof_op *** NOT IMPLEMENTED */
+extern long HYPERVISOR_event_channel_op(int, void *); /* does return long */
+extern long HYPERVISOR_physdev_op(int, void *);
+extern long HYPERVISOR_hvm_op(int cmd, void *);
+extern long HYPERVISOR_sysctl(xen_sysctl_t *);
+extern long HYPERVISOR_domctl(xen_domctl_t *domctl);
+/* *** __HYPERVISOR_kexec_op *** NOT IMPLEMENTED */
+
+
+/*
+ * HYPERCALL HELPER ROUTINES
+ *    These don't have their own unique hypercalls.
+ */
+extern long HYPERVISOR_yield(void);
+extern long HYPERVISOR_block(void);
+extern long HYPERVISOR_shutdown(uint_t);
+extern long HYPERVISOR_poll(evtchn_port_t *, uint_t, uint64_t);
+extern long HYPERVISOR_suspend(ulong_t);
+
+#endif /* !_ASM */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_HYPERVISOR_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/machprivregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,536 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_MACHPRIVREGS_H
+#define	_SYS_MACHPRIVREGS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/hypervisor.h>
+
+/*
+ * Platform dependent instruction sequences for manipulating
+ * privileged state
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * CLI and STI are quite complex to virtualize!
+ */
+
+#if defined(__amd64)
+
+#define	CURVCPU(r)					\
+	movq	%gs:CPU_VCPU_INFO, r
+
+#define	CURTHREAD(r)					\
+	movq	%gs:CPU_THREAD, r
+
+#elif defined(__i386)
+
+#define	CURVCPU(r)					\
+	movl	%gs:CPU_VCPU_INFO, r
+
+#define	CURTHREAD(r)					\
+	movl	%gs:CPU_THREAD, r
+
+#endif	/* __i386 */
+
+#define	XEN_TEST_EVENT_PENDING(r)			\
+	testb	$0xff, VCPU_INFO_EVTCHN_UPCALL_PENDING(r)
+
+#define	XEN_SET_UPCALL_MASK(r)				\
+	movb	$1, VCPU_INFO_EVTCHN_UPCALL_MASK(r)
+
+#define	XEN_GET_UPCALL_MASK(r, mask)			\
+	movb	VCPU_INFO_EVTCHN_UPCALL_MASK(r), mask
+
+#define	XEN_TEST_UPCALL_MASK(r)				\
+	testb	$1, VCPU_INFO_EVTCHN_UPCALL_MASK(r)
+
+#define	XEN_CLEAR_UPCALL_MASK(r)			\
+	ASSERT_UPCALL_MASK_IS_SET;			\
+	movb	$0, VCPU_INFO_EVTCHN_UPCALL_MASK(r)
+
+#ifdef DEBUG
+
+/*
+ * Much logic depends on the upcall mask being set at
+ * various points in the code; use this macro to validate.
+ *
+ * Need to use CURVCPU(r) to establish the vcpu pointer.
+ */
+#if defined(__amd64)
+
+#define	ASSERT_UPCALL_MASK_IS_SET			\
+	pushq	%r11;					\
+	CURVCPU(%r11);					\
+	XEN_TEST_UPCALL_MASK(%r11);			\
+	jne	6f;					\
+	cmpl	$0, stistipanic(%rip);			\
+	jle	6f;					\
+	movl	$-1, stistipanic(%rip);			\
+	movq	stistimsg(%rip), %rdi;			\
+	xorl	%eax, %eax;				\
+	call	panic;					\
+6:	pushq	%rax;					\
+	pushq	%rbx;					\
+	movl	%gs:CPU_ID, %eax;			\
+	leaq	.+0(%rip), %r11;			\
+	leaq	laststi(%rip), %rbx;			\
+	movq	%r11, (%rbx, %rax, 8);			\
+	popq	%rbx;					\
+	popq	%rax;					\
+	popq	%r11
+
+#define	SAVE_CLI_LOCATION				\
+	pushq	%rax;					\
+	pushq	%rbx;					\
+	pushq	%rcx;					\
+	movl	%gs:CPU_ID, %eax;			\
+	leaq	.+0(%rip), %rcx;			\
+	leaq	lastcli, %rbx;				\
+	movq	%rcx, (%rbx, %rax, 8);			\
+	popq	%rcx;					\
+	popq	%rbx;					\
+	popq	%rax;					\
+
+#elif defined(__i386)
+
+#define	ASSERT_UPCALL_MASK_IS_SET			\
+	pushl	%ecx;					\
+	CURVCPU(%ecx);					\
+	XEN_TEST_UPCALL_MASK(%ecx);			\
+	jne	6f;					\
+	cmpl	$0, stistipanic;			\
+	jle	6f;					\
+	movl	$-1, stistipanic;			\
+	movl	stistimsg, %ecx;			\
+	pushl	%ecx;					\
+	call	panic;					\
+6:	pushl	%eax;					\
+	pushl	%ebx;					\
+	movl	%gs:CPU_ID, %eax;			\
+	leal	.+0, %ecx;				\
+	leal	laststi, %ebx;				\
+	movl	%ecx, (%ebx, %eax, 4);			\
+	popl	%ebx;					\
+	popl	%eax;					\
+	popl	%ecx
+
+#define	SAVE_CLI_LOCATION				\
+	pushl	%eax;					\
+	pushl	%ebx;					\
+	pushl	%ecx;					\
+	movl	%gs:CPU_ID, %eax;			\
+	leal	.+0, %ecx;				\
+	leal	lastcli, %ebx;				\
+	movl	%ecx, (%ebx, %eax, 4);			\
+	popl	%ecx;					\
+	popl	%ebx;					\
+	popl	%eax;					\
+
+#endif	/* __i386 */
+
+#else	/* DEBUG */
+
+#define	ASSERT_UPCALL_MASK_IS_SET	/* empty */
+#define	SAVE_CLI_LOCATION		/* empty */
+
+#endif	/* DEBUG */
+
+#define	KPREEMPT_DISABLE(t)				\
+	addb	$1, T_PREEMPT(t)
+
+#define	KPREEMPT_ENABLE_NOKP(t)				\
+	subb	$1, T_PREEMPT(t)
+
+#define	CLI(r)						\
+	CURTHREAD(r);					\
+	KPREEMPT_DISABLE(r);				\
+	CURVCPU(r);					\
+	XEN_SET_UPCALL_MASK(r);				\
+	SAVE_CLI_LOCATION;				\
+	CURTHREAD(r);					\
+	KPREEMPT_ENABLE_NOKP(r)
+
+#define	CLIRET(r, ret)					\
+	CURTHREAD(r);					\
+	KPREEMPT_DISABLE(r);				\
+	CURVCPU(r);					\
+	XEN_GET_UPCALL_MASK(r, ret);			\
+	XEN_SET_UPCALL_MASK(r);				\
+	SAVE_CLI_LOCATION;				\
+	CURTHREAD(r);					\
+	KPREEMPT_ENABLE_NOKP(r)
+
+/*
+ * We use the fact that HYPERVISOR_block will clear the upcall mask
+ * for us and then give us an upcall if there is a pending event
+ * to achieve getting a callback on this cpu without the danger of
+ * being preempted and migrating to another cpu between the upcall
+ * enable and the callback delivery.
+ */
+#if defined(__amd64)
+
+#define	STI_CLOBBER		/* clobbers %rax, %rdi, %r11 */		\
+	CURVCPU(%r11);							\
+	ASSERT_UPCALL_MASK_IS_SET;					\
+	movw	$0x100, %ax;	/* assume mask set, pending clear */	\
+	movw	$0, %di;	/* clear mask and pending */		\
+	lock;								\
+	cmpxchgw %di, VCPU_INFO_EVTCHN_UPCALL_PENDING(%r11);		\
+	jz	7f;		/* xchg worked, we're done */		\
+	movl	$__HYPERVISOR_sched_op, %eax; /* have pending upcall */	\
+	movl	$SCHEDOP_block, %edi;					\
+	pushq	%rsi;	/* hypercall clobbers C param regs plus r10 */	\
+	pushq	%rcx;							\
+	pushq	%rdx;							\
+	pushq	%r8;							\
+	pushq	%r9;							\
+	pushq	%r10;							\
+	TRAP_INSTR;	/* clear upcall mask, force upcall */ 		\
+	popq	%r10;							\
+	popq	%r9;							\
+	popq	%r8;							\
+	popq	%rdx;							\
+	popq	%rcx;							\
+	popq	%rsi;							\
+7:
+
+#define	STI								\
+	pushq	%r11;							\
+	pushq	%rdi;							\
+	pushq	%rax;							\
+	STI_CLOBBER;	/* clobbers %r11, %rax, %rdi */			\
+	popq	%rax;							\
+	popq	%rdi;							\
+	popq	%r11
+
+#elif defined(__i386)
+
+#define	STI_CLOBBER		/* clobbers %eax, %ebx, %ecx */		\
+	CURVCPU(%ecx);							\
+	ASSERT_UPCALL_MASK_IS_SET;					\
+	movw	$0x100, %ax;	/* assume mask set, pending clear */	\
+	movw	$0, %bx;	/* clear mask and pending */		\
+	lock;								\
+	cmpxchgw %bx, VCPU_INFO_EVTCHN_UPCALL_PENDING(%ecx);		\
+	jz	7f;		/* xchg worked, we're done */		\
+	movl	$__HYPERVISOR_sched_op, %eax; /* have pending upcall */	\
+	movl	$SCHEDOP_block, %ebx;					\
+	TRAP_INSTR;		/* clear upcall mask, force upcall */	\
+7:
+
+#define	STI						\
+	pushl	%eax;					\
+	pushl	%ebx;					\
+	pushl	%ecx;					\
+	STI_CLOBBER;	/* clobbers %eax, %ebx, %ecx */	\
+	popl	%ecx;					\
+	popl	%ebx;					\
+	popl	%eax
+
+#endif	/* __i386 */
+
+/*
+ * Map the PS_IE bit to the hypervisor's event mask bit
+ * To -set- the event mask, we have to do a CLI
+ * To -clear- the event mask, we have to do a STI
+ * (with all the accompanying pre-emption and callbacks, ick)
+ *
+ * And vice versa.
+ */
+
+#if defined(__amd64)
+
+#define	IE_TO_EVENT_MASK(rtmp, rfl)		\
+	testq	$PS_IE, rfl;			\
+	jnz	4f;				\
+	CLI(rtmp);				\
+	jmp	5f;				\
+4:	STI;					\
+5:
+
+#define	EVENT_MASK_TO_IE(rtmp, rfl)		\
+	andq	$_BITNOT(PS_IE), rfl;		\
+	CURVCPU(rtmp);				\
+	XEN_TEST_UPCALL_MASK(rtmp);		\
+	jnz	1f;				\
+	orq	$PS_IE, rfl;			\
+1:
+
+#elif defined(__i386)
+
+#define	IE_TO_EVENT_MASK(rtmp, rfl)		\
+	testl	$PS_IE, rfl;			\
+	jnz	4f;				\
+	CLI(rtmp);				\
+	jmp	5f;				\
+4:	STI;					\
+5:
+
+#define	EVENT_MASK_TO_IE(rtmp, rfl)		\
+	andl	$_BITNOT(PS_IE), rfl;		\
+	CURVCPU(rtmp);				\
+	XEN_TEST_UPCALL_MASK(rtmp);		\
+	jnz	1f;				\
+	orl	$PS_IE, rfl;			\
+1:
+
+#endif	/* __i386 */
+
+/*
+ * Used to re-enable interrupts in the body of exception handlers
+ */
+
+#if defined(__amd64)
+
+#define	ENABLE_INTR_FLAGS		\
+	pushq	$F_ON;			\
+	popfq;				\
+	STI
+
+#elif defined(__i386)
+
+#define	ENABLE_INTR_FLAGS		\
+	pushl	$F_ON;			\
+	popfl;				\
+	STI
+
+#endif	/* __i386 */
+
+/*
+ * Virtualize IRET and SYSRET
+ */
+
+#if defined(__amd64)
+
+#if defined(DEBUG)
+
+/*
+ * Die nastily with a #ud trap if we are about to switch to user
+ * mode in HYPERVISOR_IRET and RUPDATE_PENDING is set.
+ */
+#define	__ASSERT_NO_RUPDATE_PENDING			\
+	pushq	%r15;					\
+	cmpw	$KCS_SEL, 0x10(%rsp);			\
+	je	1f;					\
+	movq	%gs:CPU_THREAD, %r15;			\
+	movq	T_LWP(%r15), %r15;			\
+	testb	$0x1, PCB_RUPDATE(%r15);		\
+	je	1f;					\
+	ud2;						\
+1:	popq	%r15
+
+#else	/* DEBUG */
+
+#define	__ASSERT_NO_RUPDATE_PENDING
+
+#endif	/* DEBUG */
+
+/*
+ * Switching from guest kernel to user mode.
+ * flag == VGCF_IN_SYSCALL => return via sysret
+ * flag == 0 => return via iretq
+ *
+ * See definition in public/arch-x86_64.h. Stack going in must be:
+ * rax, r11, rcx, flags, rip, cs, rflags, rsp, ss.
+ */
+#define	HYPERVISOR_IRET(flag)			\
+	__ASSERT_NO_RUPDATE_PENDING;		\
+	pushq	$flag;				\
+	pushq	%rcx;				\
+	pushq	%r11;				\
+	pushq	%rax;				\
+	movl	$__HYPERVISOR_iret, %eax;	\
+	syscall;				\
+	ud2	/* die nastily if we return! */
+
+#define	IRET	HYPERVISOR_IRET(0)
+#define	SYSRETQ	HYPERVISOR_IRET(VGCF_IN_SYSCALL)
+#define	SYSRETL	ud2		/* 32-bit syscall/sysret not supported */
+#define	SWAPGS	/* empty - handled in hypervisor */
+
+#elif defined(__i386)
+
+/*
+ * Switching from guest kernel to user mode.
+ * See definition in public/arch-x86_32.h. Stack going in must be:
+ * eax, flags, eip, cs, eflags, esp, ss.
+ */
+#define	HYPERVISOR_IRET				\
+	pushl	%eax;				\
+	movl	$__HYPERVISOR_iret, %eax;	\
+	int	$0x82;				\
+	ud2	/* die nastily if we return! */
+
+#define	IRET	HYPERVISOR_IRET
+#define	SYSRET	ud2		/* 32-bit syscall/sysret not supported */
+
+#endif	/* __i386 */
+
+
+/*
+ * Xen 3.x wedges the current value of upcall_mask into unused byte of
+ * saved %cs on stack at the time of passing through a trap or interrupt
+ * gate.  Since Xen also updates PS_IE in %[e,r]lags as well, we always
+ * mask off the saved upcall mask so the kernel and/or tools like debuggers
+ * will not be confused about bits set in reserved portions of %cs slot.
+ *
+ * See xen/include/public/arch-x86_[32,64].h:cpu_user_regs_t for details.
+ */
+#if defined(__amd64)
+
+#define	CLEAN_CS	movb	$0, REGOFF_CS+4(%rsp)
+
+#elif defined(__i386)
+
+#define	CLEAN_CS	movb	$0, REGOFF_CS+2(%esp)
+
+#endif	/* __i386 */
+
+/*
+ * All exceptions for amd64 have %r11 and %rcx on the stack.
+ * Just pop them back into their appropriate registers and
+ * let it get saved as is running native.
+ */
+#if defined(__amd64)
+
+#define	XPV_TRAP_POP	\
+	popq	%rcx;	\
+	popq	%r11
+
+#define	XPV_TRAP_PUSH	\
+	pushq	%r11;	\
+	pushq	%rcx
+
+#endif	/* __amd64 */
+
+
+/*
+ * Macros for saving the original segment registers and restoring them
+ * for fast traps.
+ */
+#if defined(__amd64)
+
+/*
+ * Smaller versions of INTR_PUSH and INTR_POP for fast traps.
+ * The following registers have been pushed onto the stack by
+ * hardware at this point:
+ *
+ *	greg_t	r_rip;
+ *	greg_t	r_cs;
+ *	greg_t	r_rfl;
+ *	greg_t	r_rsp;
+ *	greg_t	r_ss;
+ *
+ * This handler is executed both by 32-bit and 64-bit applications.
+ * 64-bit applications allow us to treat the set (%rdi, %rsi, %rdx,
+ * %rcx, %r8, %r9, %r10, %r11, %rax) as volatile across function calls.
+ * However, 32-bit applications only expect (%eax, %edx, %ecx) to be volatile
+ * across a function call -- in particular, %esi and %edi MUST be saved!
+ *
+ * We could do this differently by making a FAST_INTR_PUSH32 for 32-bit
+ * programs, and FAST_INTR_PUSH for 64-bit programs, but it doesn't seem
+ * particularly worth it.
+ *
+ */
+#define	FAST_INTR_PUSH			\
+	INTGATE_INIT_KERNEL_FLAGS;	\
+	popq	%rcx;			\
+	popq	%r11;			\
+	subq    $REGOFF_RIP, %rsp;	\
+	movq    %rsi, REGOFF_RSI(%rsp);	\
+	movq    %rdi, REGOFF_RDI(%rsp);	\
+	CLEAN_CS
+
+#define	FAST_INTR_POP			\
+	movq    REGOFF_RSI(%rsp), %rsi;	\
+	movq    REGOFF_RDI(%rsp), %rdi;	\
+	addq    $REGOFF_RIP, %rsp
+
+#define	FAST_INTR_RETURN		\
+	ASSERT_UPCALL_MASK_IS_SET;	\
+	HYPERVISOR_IRET(0)
+
+#elif defined(__i386)
+
+#define	FAST_INTR_PUSH			\
+	cld;				\
+	__SEGREGS_PUSH			\
+	__SEGREGS_LOAD_KERNEL		\
+
+#define	FAST_INTR_POP			\
+	__SEGREGS_POP
+
+#define	FAST_INTR_RETURN		\
+	IRET
+
+#endif	/* __i386 */
+
+/*
+ * Handling the CR0.TS bit for floating point handling.
+ *
+ * When the TS bit is *set*, attempts to touch the floating
+ * point hardware will result in a #nm trap.
+ */
+#if defined(__amd64)
+
+#define	STTS(rtmp)				\
+	pushq	%rdi;				\
+	movl	$1, %edi;			\
+	call	HYPERVISOR_fpu_taskswitch;	\
+	popq	%rdi
+
+#define	CLTS					\
+	pushq	%rdi;				\
+	xorl	%edi, %edi;			\
+	call	HYPERVISOR_fpu_taskswitch;	\
+	popq	%rdi
+
+#elif defined(__i386)
+
+#define	STTS(r)					\
+	pushl	$1;				\
+	call	HYPERVISOR_fpu_taskswitch;	\
+	addl	$4, %esp
+
+#define	CLTS					\
+	pushl	$0;				\
+	call	HYPERVISOR_fpu_taskswitch;	\
+	addl	$4, %esp
+
+#endif	/* __i386 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_MACHPRIVREGS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/privcmd_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,61 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_PRIVCMD_IMPL_H
+#define	_SYS_PRIVCMD_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * /dev names:
+ *	/dev/xen/			- containing directory
+ *		privcmd			- privileged commands
+ */
+
+#define	PRIVCMD_DRIVER_NAME	"privcmd"
+
+#define	PRIVCMD_NODE		"privcmd"
+#define	PRIVCMD_MINOR		0
+
+#define	PRIVCMD_DEV_NAME	"privcmd"
+#define	PRIVCMD_PATHNAME	"xen/" PRIVCMD_DEV_NAME
+
+#if defined(_KERNEL)
+
+extern int do_privcmd_hypercall(void *, int, cred_t *, int *);
+
+#endif	/* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_PRIVCMD_IMPL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/xen_errno.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,95 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_XEN_ERRNO_H
+#define	_SYS_XEN_ERRNO_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Xen errno's for HYPERVISOR calls
+ *
+ * XXPV	This is maintained by hand :(
+ *
+ * Unfortunately native Xen currently uses the same namespace as the Solaris
+ * errno namespace but with (some) different numeric values.
+ *
+ * This set of errno values match Xen 3.0.3; sigh.
+ *
+ * In a better world, Xen would make it's namespace explicitly different
+ * e.g. something like below.
+ */
+
+#define	X_EPERM		1
+#define	X_ENOENT	2
+#define	X_ESRCH		3
+#define	X_EINTR		4
+#define	X_EIO		5
+#define	X_ENXIO		6
+#define	X_E2BIG		7
+
+#define	X_ENOMEM	12
+#define	X_EACCES	13
+#define	X_EFAULT	14
+
+#define	X_EBUSY		16
+#define	X_EEXIST	17
+
+#define	X_ENODEV	19
+#define	X_EISDIR	21
+#define	X_EINVAL	22
+
+#define	X_ENOSPC	28
+#define	X_ESPIPE	29
+#define	X_EROFS		30
+
+#define	X_ENOSYS	38
+#define	X_ENOTEMPTY	39
+
+#define	X_ENODATA	61
+
+#define	X_EISCONN	106
+
+#ifndef	_ASM
+#if defined(_KERNEL)
+/*
+ * Error code translation routine to translate xen error codes to
+ * Solaris error codes.  Xen returns negative error codes which this
+ * routine will translate to a positive one.
+ */
+extern int xen_xlate_errcode(int);
+#endif	/* _KERNEL */
+#endif	/* _ASM */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XEN_ERRNO_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/xen_mmu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,133 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_XEN_MMU_H
+#define	_SYS_XEN_MMU_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Platform-dependent MMU routines and types for the hypervisor.
+ *
+ * WARNING: this header file is used by both dboot and i86pc, so don't go using
+ * normal kernel headers.
+ */
+
+#if (defined(_BOOT) && defined(_BOOT_TARGET_amd64)) || \
+	(!defined(_BOOT) && defined(__amd64))
+#define	__target_amd64
+#endif
+
+#ifdef __target_amd64
+
+#define	IN_HYPERVISOR_VA(va) \
+	((va) >= HYPERVISOR_VIRT_START && (va) < HYPERVISOR_VIRT_END)
+
+#else
+
+#define	IN_HYPERVISOR_VA(va) ((va) >= xen_virt_start)
+
+/*
+ * Do this to help catch any uses.
+ */
+#undef	HYPERVISOR_VIRT_START
+#undef	machine_to_phys_mapping
+
+#endif
+
+#undef __target_amd64
+
+typedef uint64_t maddr_t;
+
+paddr_t ma_to_pa(maddr_t);
+maddr_t pa_to_ma(paddr_t);
+#define	mfn_to_ma(mfn)	((maddr_t)(mfn) << MMU_PAGESHIFT)
+
+extern uintptr_t xen_virt_start;
+extern pfn_t *mfn_to_pfn_mapping;
+
+#ifndef _BOOT
+
+/*
+ * On the hypervisor we need:
+ * - a way to map a machine address (ie, not pseudo-physical).
+ * - to relocate initial hypervisor data structures into kernel VA range.
+ * - a way to translate between physical addresses and machine addresses.
+ * - a way to change the machine address behind a physical address.
+ */
+typedef ulong_t mfn_t;
+
+extern mfn_t *mfn_list;
+extern mfn_t *mfn_list_pages;
+extern mfn_t *mfn_list_pages_page;
+extern ulong_t mfn_count;
+extern mfn_t cached_max_mfn;
+
+/*
+ * locks for mfn_list[] and machine_to_phys_mapping[] when migration / suspend
+ * events happen
+ */
+extern void xen_block_migrate(void);
+extern void xen_allow_migrate(void);
+extern void xen_start_migrate(void);
+extern void xen_end_migrate(void);
+
+/*
+ * Conversion between machine (hardware) addresses and pseudo-physical
+ * addresses.
+ */
+pfn_t mfn_to_pfn(mfn_t);
+mfn_t pfn_to_mfn(pfn_t);
+
+struct page;
+
+void xen_relocate_start_info(void);
+
+/*
+ * interfaces to create/destroy pfn_t values for devices or foreign memory
+ *
+ * xen_assign_pfn() creates (or looks up) a local pfn value to use for things
+ * like a foreign domain memory mfn or a device mfn.
+ *
+ * xen_release_pfn() destroys the association between a pfn and foreign mfn.
+ */
+pfn_t xen_assign_pfn(mfn_t mfn);
+void xen_release_pfn(pfn_t);
+uint_t pfn_is_foreign(pfn_t);
+void reassign_pfn(pfn_t pfn, mfn_t mfn);
+
+#define	MFN_INVALID	(-(mfn_t)1)
+
+#endif /* !_BOOT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XEN_MMU_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/xpv_impl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,48 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_XPV_IMPL_H
+#define	_SYS_XPV_IMPL_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(_ASM)
+#include <sys/types.h>
+#endif
+
+#define	__XEN_INTERFACE_VERSION__	__XEN_LATEST_INTERFACE_VERSION__
+
+#include <xen/public/xen.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_XPV_IMPL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/sys/xpv_panic.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,62 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_XPV_PANIC_H
+#define	_SYS_XPV_PANIC_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void xpv_panic_sti();
+extern void xpv_panic_halt();
+extern void xpv_panic_getcrs(ulong_t *);
+extern void xpv_panic_setcr3(ulong_t);
+extern void xpv_panic_reload_cr3();
+extern ulong_t xpv_panic_resetgs();
+extern void xpv_panic_init();
+extern void xpv_panic_hdlr();
+extern void *xpv_traceback(void *);
+
+extern void xpv_div0trap(), xpv_dbgtrap(), xpv_nmiint(), xpv_brktrap();
+extern void xpv_ovflotrap(), xpv_boundstrap(), xpv_invoptrap();
+extern void xpv_ndptrap(), xpv_syserrtrap(), xpv_invaltrap();
+extern void xpv_invtsstrap(), xpv_segnptrap(), xpv_stktrap();
+extern void xpv_gptrap(), xpv_pftrap(), xpv_ndperr();
+extern void xpv_overrun(), xpv_resvtrap();
+extern void xpv_achktrap(), xpv_mcetrap();
+extern void xpv_xmtrap(), xpv_timer_trap(), xpv_surprise_intr();
+
+extern int dump_xpv_addr();
+extern void dump_xpv_pfn();
+extern int dump_xpv_data(void *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SYS_XPV_PANIC_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/unix/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,212 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of unix (and unix.o).
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+UNIX		= unix
+DBOOT		= dboot
+
+OBJECTS		= $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
+		  $(CORE_OBJS:%=$(OBJS_DIR)/%) \
+		  $(KRTLD_OBJS:%=$(OBJS_DIR)/%) \
+		  $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
+
+LINTS		= $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
+		  $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
+		  $(KRTLD_OBJS:%.o=$(LINTS_DIR)/%.ln) \
+		  $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
+		  $(LINTS_DIR)/vers.ln \
+		  $(LINTS_DIR)/modstubs.ln
+
+ROOTMODULE	= $(ROOT_PSM_KERN_DIR)/$(UNIX)
+
+UNIX_BIN	= $(OBJS_DIR)/$(UNIX)
+
+LIBS		= $(GENLIB)
+
+GENUNIX		= genunix
+GENUNIX_DIR	= ../../intel/$(GENUNIX)
+
+LIBOPTS		= -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
+
+CTFEXTRAOBJS	= $(OBJS_DIR)/vers.o
+
+DBOOT_OBJS_DIR	= dboot/$(OBJS_DIR)
+DBOOT_OBJECTS	= $(DBOOT_OBJS:%=$(DBOOT_OBJS_DIR)/%)
+DBOOT_BIN	= $(DBOOT_OBJS_DIR)/$(DBOOT)
+DBOOT_O		= $(OBJS_DIR)/$(DBOOT).o
+DBOOT_S		= $(DBOOT_O:%.o=%.s)
+DBOOT_LINTS	= $(DBOOT_OBJS:%.o=$(DBOOT_OBJS_DIR)/%.ln)
+DBOOT_LINT	= $(LINT_$(MACH)_$(CLASS))
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(UNIX_BIN)
+LINT_TARGET	= $(LINT_LIB) $(DBOOT_LINT_LIB)
+INSTALL_TARGET	= $(UNIX_BIN) $(ROOTMODULE)
+
+#
+#	This is UNIX_DIR. Use a short path.
+#
+UNIX_DIR	= .
+
+#
+#	Overrides
+#
+CLEANFILES	+=		\
+	$(UNIX_O) $(MODSTUBS_O)	\
+	$(OBJS_DIR)/vers.c $(OBJS_DIR)/vers.o \
+	$(DTRACESTUBS_O) $(DTRACESTUBS)
+
+CLEANFILES	+=		\
+	$(DBOOT_O) $(DBOOT_S)	\
+	$(DBOOT_OBJECTS)	\
+	$(DBOOT_BIN)
+
+CLOBBERFILES	= $(CLEANFILES) $(UNIX_BIN)
+CLEANLINTFILES	+= $(LINT_LIB) $(DBOOT_LINT_LIB) $(DBOOT_LINTS)
+
+# instr_size needs a special header
+$(OBJS_DIR)/instr_size.o :=	EXTRA_OPTIONS	= -I$(SRC)/common/dis/i386
+$(OBJS_DIR)/instr_size.ln :=	EXTRA_OPTIONS	= -I$(SRC)/common/dis/i386
+
+CFLAGS += -DDIS_MEM
+
+#
+# For now, disable these lint checks; maintainers should endeavor
+# to investigate and remove these for maximum lint coverage.
+# Please do not carry these forward to new Makefiles.
+#
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+LINTTAGS	+= -erroff=E_SUSPICIOUS_COMPARISON
+LINTTAGS	+= -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+LINTTAGS	+= -erroff=E_STATIC_UNUSED
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def: $(DEF_DEPS)
+
+all: $(ALL_DEPS)
+
+clean: $(CLEAN_DEPS)
+
+clobber: $(CLOBBER_DEPS)
+
+lint: $(LINT_DEPS)
+
+clean.lint: $(CLEAN_LINT_DEPS)
+
+install: $(INSTALL_DEPS)
+
+MAPFILE_32 = $(MAPFILE)
+MAPFILE_64 = $(MAPFILE).amd64
+
+MAPFILE_NAME = $(MAPFILE_$(CLASS))
+
+$(UNIX_BIN):	$(UNIX_O) $(MODSTUBS_O) $(MAPFILE_NAME) \
+		$(GENLIB) $(DTRACESTUBS) $(DBOOT_O)
+	$(LD) -dy -b -o $@ -e dboot_image -znointerp -M $(MAPFILE_NAME) \
+	    $(UNIX_O) $(DBOOT_O) $(MODSTUBS_O) $(LIBOPTS) \
+	    $(DTRACESTUBS)
+	$(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
+	$(POST_PROCESS)
+
+$(UNIX_O):	$(OBJECTS) $(OBJS_DIR)/vers.o
+	$(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
+
+$(DBOOT_BIN):	$(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS) dboot/Mapfile.dboot
+	$(LD) -dn -e _start -M dboot/Mapfile.dboot \
+		-o $(DBOOT_BIN) $(DBOOT_OBJECTS)
+
+$(DBOOT_O):	$(DBOOT_BIN)
+	@echo "	.data"					> $(DBOOT_S)
+	@echo "	.globl	dboot_image"			>> $(DBOOT_S)
+	@echo "dboot_image:"				>> $(DBOOT_S)
+	$(ELFEXTRACT) $(DBOOT_BIN)			>> $(DBOOT_S)
+	$(COMPILE.s) -o $(DBOOT_O) $(DBOOT_S)
+
+$(DBOOT_OBJS_DIR):
+	-@mkdir -p $@ 2> /dev/null
+
+#
+#	Special rules for generating assym.h for inclusion in assembly files.
+#
+$(DSF_DIR)/$(OBJS_DIR)/assym.h $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h:	FRC
+	@cd $(DSF_DIR); $(MAKE) all.targ
+
+$(GENLIB): FRC
+	@(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
+	@pwd
+
+#
+#	The global lint target builds the kernel lint library (llib-lunix.ln)
+#	which is equivalent to a lint of /unix.o. Then all kernel modules for
+#	this architecture are linted against the kernel lint library.
+#
+#	Note:	lint errors in the kernel lint library will be repeated for
+#		each module. It is important that the kernel lint library
+#		be clean to keep the textual output to a reasonable level.
+#
+
+$(LINT_LIB):	$(LINT_LIB_DIR) $(LINTS)
+	@-$(ECHO) "\n$(UNIX): (library construction):"
+	@$(LINT) -o$(UNIX) $(LINTFLAGS) $(LINTS)
+	@$(MV) $(@F) $@
+
+$(DBOOT_LINT_LIB):	$(LINT_LIB_DIR) $(DBOOT_LINTS)
+	@-$(ECHO) "\n$(DBOOT): (library construction):"
+	@$(LINT) -o$(DBOOT) $(DBOOT_LINTFLAGS) $(DBOOT_LINTS)
+	@$(MV) $(@F) $@
+
+lintlib:	$(LINT_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,42 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+
+dboot = LOAD ?NRWXO V0x40800000 P0x40800000 A0x1000;
+#
+# Make sure that dboot_xen.s`_start is the first thing in the dboot
+# .text segment, since when we boot that's where the boot loader will
+# start execution
+#
+dboot : .text : *dboot_xen.o;
+dboot : $PROGBITS ?A;
+dboot : $NOBITS ?A;
+
+otherstuff : ?A;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/vm/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+# uts/i86xpv/vm/Makefile
+#
+# Compilation of .c files in this directory is driven by Makefiles in i86xpv.
+# This file only serves to install header files.
+#
+UTSBASE = ../..
+
+#
+# include global definitions
+#
+include ../Makefile.i86xpv
+
+#
+# Override defaults.
+#
+FILEMODE = 644
+
+HDRS=		seg_mf.h
+
+ROOTHDRS=	$(HDRS:%=$(USR_PSM_IVM_DIR)/%)
+
+ROOTDIR=	$(ROOT)/usr/share/src
+ROOTDIRS=	$(ROOTDIR)/uts $(ROOTDIR)/uts/$(PLATFORM)
+
+ROOTLINK=	$(ROOTDIR)/uts/$(PLATFORM)/vm
+LINKDEST=	../../../../platform/$(PLATFORM)/include/vm
+
+CHECKHDRS=	$(HDRS:%.h=%.check)
+
+.KEEP_STATE:
+
+.PARALLEL: $(CHECKHDRS) $(ROOTHDRS)
+
+install_h: $(ROOTDIRS) .WAIT $(ROOTHDRS) $(ROOTLINK)
+
+check:	$(CHECKHDRS)
+
+#
+# install rules
+#
+$(USR_PSM_IVM_DIR)/%: ../vm/% $(USR_PSM_IVM_DIR)
+	$(INS.file)
+
+$(ROOTDIRS):
+	$(INS.dir.root.bin)
+
+# -r because this used to be a directory and is now a link.
+$(ROOTLINK):    $(ROOTDIRS)
+	-$(RM) -r $@; $(SYMLINK) $(LINKDEST) $@ $(CHOWNLINK) $(CHGRPLINK)
+
+CLEANFILES=
+
+CLOBBERFILES=
+
+CLEANLINTFILES=
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/vm/seg_mf.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,563 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Machine frame segment driver.  This segment driver allows dom0 processes to
+ * map pages of other domains or Xen (e.g. during save/restore).  ioctl()s on
+ * the privcmd driver provide the MFN values backing each mapping, and we map
+ * them into the process's address space at this time.  Demand-faulting is not
+ * supported by this driver due to the requirements upon some of the ioctl()s.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/vmsystm.h>
+#include <sys/mman.h>
+#include <sys/errno.h>
+#include <sys/kmem.h>
+#include <sys/cmn_err.h>
+#include <sys/vnode.h>
+#include <sys/conf.h>
+#include <sys/debug.h>
+#include <sys/lgrp.h>
+#include <sys/hypervisor.h>
+
+#include <vm/page.h>
+#include <vm/hat.h>
+#include <vm/as.h>
+#include <vm/seg.h>
+
+#include <vm/hat_pte.h>
+#include <vm/seg_mf.h>
+
+#include <sys/fs/snode.h>
+
+#define	VTOCVP(vp)	(VTOS(vp)->s_commonvp)
+
+#define	mfatob(n)	((n) * sizeof (mfn_t))
+
+struct segmf_data {
+	kmutex_t	lock;
+	struct vnode	*vp;
+	uchar_t		prot;
+	uchar_t		maxprot;
+	size_t		softlockcnt;
+	domid_t		domid;
+	mfn_t		*mfns;
+};
+
+static struct seg_ops segmf_ops;
+
+static struct segmf_data *
+segmf_data_zalloc(struct seg *seg)
+{
+	struct segmf_data *data = kmem_zalloc(sizeof (*data), KM_SLEEP);
+
+	mutex_init(&data->lock, "segmf.lock", MUTEX_DEFAULT, NULL);
+	seg->s_ops = &segmf_ops;
+	seg->s_data = data;
+	return (data);
+}
+
+int
+segmf_create(struct seg *seg, void *args)
+{
+	struct segmf_crargs *a = args;
+	struct segmf_data *data;
+	struct as *as = seg->s_as;
+	pgcnt_t i, npages = seg_pages(seg);
+	int error;
+
+	hat_map(as->a_hat, seg->s_base, seg->s_size, HAT_MAP);
+
+	data = segmf_data_zalloc(seg);
+	data->vp = specfind(a->dev, VCHR);
+	data->prot = a->prot;
+	data->maxprot = a->maxprot;
+
+	data->mfns = kmem_alloc(mfatob(npages), KM_SLEEP);
+	for (i = 0; i < npages; i++)
+		data->mfns[i] = MFN_INVALID;
+
+	error = VOP_ADDMAP(VTOCVP(data->vp), 0, as, seg->s_base, seg->s_size,
+	    data->prot, data->maxprot, MAP_SHARED, CRED());
+
+	if (error != 0)
+		hat_unload(as->a_hat,
+		    seg->s_base, seg->s_size, HAT_UNLOAD_UNMAP);
+	return (error);
+}
+
+/*
+ * Duplicate a seg and return new segment in newseg.
+ */
+static int
+segmf_dup(struct seg *seg, struct seg *newseg)
+{
+	struct segmf_data *data = seg->s_data;
+	struct segmf_data *ndata;
+	pgcnt_t npages = seg_pages(newseg);
+
+	ndata = segmf_data_zalloc(newseg);
+
+	VN_HOLD(data->vp);
+	ndata->vp = data->vp;
+	ndata->prot = data->prot;
+	ndata->maxprot = data->maxprot;
+	ndata->domid = data->domid;
+
+	ndata->mfns = kmem_alloc(mfatob(npages), KM_SLEEP);
+	bcopy(data->mfns, ndata->mfns, mfatob(npages));
+
+	return (VOP_ADDMAP(VTOCVP(ndata->vp), 0, newseg->s_as,
+	    newseg->s_base, newseg->s_size, ndata->prot, ndata->maxprot,
+	    MAP_SHARED, CRED()));
+}
+
+/*
+ * We only support unmapping the whole segment, and we automatically unlock
+ * what we previously soft-locked.
+ */
+static int
+segmf_unmap(struct seg *seg, caddr_t addr, size_t len)
+{
+	struct segmf_data *data = seg->s_data;
+	offset_t off;
+
+	if (addr < seg->s_base || addr + len > seg->s_base + seg->s_size ||
+	    (len & PAGEOFFSET) || ((uintptr_t)addr & PAGEOFFSET))
+		panic("segmf_unmap");
+
+	if (addr != seg->s_base || len != seg->s_size)
+		return (ENOTSUP);
+
+	hat_unload(seg->s_as->a_hat, addr, len,
+	    HAT_UNLOAD_UNMAP | HAT_UNLOAD_UNLOCK);
+
+	off = (offset_t)seg_page(seg, addr);
+
+	ASSERT(data->vp != NULL);
+
+	(void) VOP_DELMAP(VTOCVP(data->vp), off, seg->s_as, addr, len,
+	    data->prot, data->maxprot, MAP_SHARED, CRED());
+
+	seg_free(seg);
+	return (0);
+}
+
+static void
+segmf_free(struct seg *seg)
+{
+	struct segmf_data *data = seg->s_data;
+	pgcnt_t npages = seg_pages(seg);
+
+	kmem_free(data->mfns, mfatob(npages));
+	VN_RELE(data->vp);
+	mutex_destroy(&data->lock);
+	kmem_free(data, sizeof (*data));
+}
+
+static int segmf_faultpage_debug = 0;
+
+/*ARGSUSED*/
+static int
+segmf_faultpage(struct hat *hat, struct seg *seg, caddr_t addr,
+    enum fault_type type, uint_t prot)
+{
+	struct segmf_data *data = seg->s_data;
+	uint_t hat_flags = HAT_LOAD_NOCONSIST;
+	mfn_t mfn;
+	x86pte_t pte;
+
+	mfn = data->mfns[seg_page(seg, addr)];
+
+	ASSERT(mfn != MFN_INVALID);
+
+	if (type == F_SOFTLOCK) {
+		mutex_enter(&freemem_lock);
+		data->softlockcnt++;
+		mutex_exit(&freemem_lock);
+		hat_flags |= HAT_LOAD_LOCK;
+	} else
+		hat_flags |= HAT_LOAD;
+
+	if (segmf_faultpage_debug > 0) {
+		uprintf("segmf_faultpage: addr %p domid %x mfn %lx prot %x\n",
+		    (void *)addr, data->domid, mfn, prot);
+		segmf_faultpage_debug--;
+	}
+
+	/*
+	 * Ask the HAT to load a throwaway mapping to page zero, then
+	 * overwrite it with our foreign domain mapping. It gets removed
+	 * later via hat_unload()
+	 */
+	hat_devload(hat, addr, MMU_PAGESIZE, (pfn_t)0,
+	    PROT_READ | HAT_UNORDERED_OK, hat_flags);
+
+	pte = mmu_ptob((x86pte_t)mfn) | PT_VALID | PT_USER | PT_FOREIGN;
+	if (prot & PROT_WRITE)
+		pte |= PT_WRITABLE;
+
+	if (HYPERVISOR_update_va_mapping_otherdomain((uintptr_t)addr, pte,
+	    UVMF_INVLPG | UVMF_ALL, data->domid) != 0) {
+		hat_flags = HAT_UNLOAD_UNMAP;
+
+		if (type == F_SOFTLOCK) {
+			hat_flags |= HAT_UNLOAD_UNLOCK;
+			mutex_enter(&freemem_lock);
+			data->softlockcnt--;
+			mutex_exit(&freemem_lock);
+		}
+
+		hat_unload(hat, addr, MMU_PAGESIZE, hat_flags);
+		return (FC_MAKE_ERR(EFAULT));
+	}
+
+	return (0);
+}
+
+static int
+seg_rw_to_prot(enum seg_rw rw)
+{
+	switch (rw) {
+	case S_READ:
+		return (PROT_READ);
+	case S_WRITE:
+		return (PROT_WRITE);
+	case S_EXEC:
+		return (PROT_EXEC);
+	case S_OTHER:
+	default:
+		break;
+	}
+	return (PROT_READ | PROT_WRITE | PROT_EXEC);
+}
+
+static void
+segmf_softunlock(struct hat *hat, struct seg *seg, caddr_t addr, size_t len)
+{
+	struct segmf_data *data = seg->s_data;
+
+	hat_unlock(hat, addr, len);
+
+	mutex_enter(&freemem_lock);
+	ASSERT(data->softlockcnt >= btopr(len));
+	data->softlockcnt -= btopr(len);
+	mutex_exit(&freemem_lock);
+
+	if (data->softlockcnt == 0) {
+		struct as *as = seg->s_as;
+
+		if (AS_ISUNMAPWAIT(as)) {
+			mutex_enter(&as->a_contents);
+			if (AS_ISUNMAPWAIT(as)) {
+				AS_CLRUNMAPWAIT(as);
+				cv_broadcast(&as->a_cv);
+			}
+			mutex_exit(&as->a_contents);
+		}
+	}
+}
+
+static int
+segmf_fault_range(struct hat *hat, struct seg *seg, caddr_t addr, size_t len,
+    enum fault_type type, enum seg_rw rw)
+{
+	struct segmf_data *data = seg->s_data;
+	int error = 0;
+	caddr_t a;
+
+	if ((data->prot & seg_rw_to_prot(rw)) == 0)
+		return (FC_PROT);
+
+	/* loop over the address range handling each fault */
+
+	for (a = addr; a < addr + len; a += PAGESIZE) {
+		error = segmf_faultpage(hat, seg, a, type, data->prot);
+		if (error != 0)
+			break;
+	}
+
+	if (error != 0 && type == F_SOFTLOCK) {
+		size_t done = (size_t)(a - addr);
+
+		/*
+		 * Undo what's been done so far.
+		 */
+		if (done > 0)
+			segmf_softunlock(hat, seg, addr, done);
+	}
+
+	return (error);
+}
+
+/*
+ * We never demand-fault for seg_mf.
+ */
+/*ARGSUSED*/
+static int
+segmf_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len,
+    enum fault_type type, enum seg_rw rw)
+{
+	return (FC_MAKE_ERR(EFAULT));
+}
+
+/*ARGSUSED*/
+static int
+segmf_faulta(struct seg *seg, caddr_t addr)
+{
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
+segmf_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
+{
+	return (EINVAL);
+}
+
+/*ARGSUSED*/
+static int
+segmf_checkprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
+{
+	return (EINVAL);
+}
+
+/*ARGSUSED*/
+static int
+segmf_kluster(struct seg *seg, caddr_t addr, ssize_t delta)
+{
+	return (-1);
+}
+
+/*ARGSUSED*/
+static int
+segmf_sync(struct seg *seg, caddr_t addr, size_t len, int attr, uint_t flags)
+{
+	return (0);
+}
+
+/*
+ * XXPV	Hmm.  Should we say that mf mapping are "in core?"
+ */
+
+/*ARGSUSED*/
+static size_t
+segmf_incore(struct seg *seg, caddr_t addr, size_t len, char *vec)
+{
+	size_t v;
+
+	for (v = 0, len = (len + PAGEOFFSET) & PAGEMASK; len;
+	    len -= PAGESIZE, v += PAGESIZE)
+		*vec++ = 1;
+	return (v);
+}
+
+/*ARGSUSED*/
+static int
+segmf_lockop(struct seg *seg, caddr_t addr,
+    size_t len, int attr, int op, ulong_t *lockmap, size_t pos)
+{
+	return (0);
+}
+
+static int
+segmf_getprot(struct seg *seg, caddr_t addr, size_t len, uint_t *protv)
+{
+	struct segmf_data *data = seg->s_data;
+	pgcnt_t pgno = seg_page(seg, addr + len) - seg_page(seg, addr) + 1;
+
+	if (pgno != 0) {
+		do
+			protv[--pgno] = data->prot;
+		while (pgno != 0)
+			;
+	}
+	return (0);
+}
+
+static u_offset_t
+segmf_getoffset(struct seg *seg, caddr_t addr)
+{
+	return (addr - seg->s_base);
+}
+
+/*ARGSUSED*/
+static int
+segmf_gettype(struct seg *seg, caddr_t addr)
+{
+	return (MAP_SHARED);
+}
+
+/*ARGSUSED1*/
+static int
+segmf_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp)
+{
+	struct segmf_data *data = seg->s_data;
+
+	*vpp = VTOCVP(data->vp);
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
+segmf_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav)
+{
+	return (0);
+}
+
+/*ARGSUSED*/
+static void
+segmf_dump(struct seg *seg)
+{}
+
+/*ARGSUSED*/
+static int
+segmf_pagelock(struct seg *seg, caddr_t addr, size_t len,
+    struct page ***ppp, enum lock_type type, enum seg_rw rw)
+{
+	return (ENOTSUP);
+}
+
+/*ARGSUSED*/
+static int
+segmf_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
+{
+	return (ENOTSUP);
+}
+
+static int
+segmf_getmemid(struct seg *seg, caddr_t addr, memid_t *memid)
+{
+	struct segmf_data *data = seg->s_data;
+
+	memid->val[0] = (uintptr_t)VTOCVP(data->vp);
+	memid->val[1] = (uintptr_t)seg_page(seg, addr);
+	return (0);
+}
+
+/*ARGSUSED*/
+static lgrp_mem_policy_info_t *
+segmf_getpolicy(struct seg *seg, caddr_t addr)
+{
+	return (NULL);
+}
+
+/*ARGSUSED*/
+static int
+segmf_capable(struct seg *seg, segcapability_t capability)
+{
+	return (0);
+}
+
+/*
+ * Add a set of contiguous foreign MFNs to the segment. soft-locking them.  The
+ * pre-faulting is necessary due to live migration; in particular we must
+ * return an error in response to IOCTL_PRIVCMD_MMAPBATCH rather than faulting
+ * later on a bad MFN.  Whilst this isn't necessary for the other MMAP
+ * ioctl()s, we lock them too, as they should be transitory.
+ */
+int
+segmf_add_mfns(struct seg *seg, caddr_t addr, mfn_t mfn,
+    pgcnt_t pgcnt, domid_t domid)
+{
+	struct segmf_data *data = seg->s_data;
+	pgcnt_t base = seg_page(seg, addr);
+	faultcode_t fc;
+	pgcnt_t i;
+	int error = 0;
+
+	if (seg->s_ops != &segmf_ops)
+		return (EINVAL);
+
+	/*
+	 * Don't mess with dom0.
+	 *
+	 * Only allow the domid to be set once for the segment.
+	 * After that attempts to add mappings to this segment for
+	 * other domains explicitly fails.
+	 */
+
+	if (domid == 0 || domid == DOMID_SELF)
+		return (EACCES);
+
+	mutex_enter(&data->lock);
+
+	if (data->domid == 0)
+		data->domid = domid;
+
+	if (data->domid != domid) {
+		error = EINVAL;
+		goto out;
+	}
+
+	base = seg_page(seg, addr);
+
+	for (i = 0; i < pgcnt; i++)
+		data->mfns[base + i] = mfn++;
+
+	fc = segmf_fault_range(seg->s_as->a_hat, seg, addr,
+	    pgcnt * MMU_PAGESIZE, F_SOFTLOCK, S_OTHER);
+
+	if (fc != 0) {
+		error = fc_decode(fc);
+		for (i = 0; i < pgcnt; i++)
+			data->mfns[base + i] = MFN_INVALID;
+	}
+
+out:
+	mutex_exit(&data->lock);
+	return (error);
+}
+
+static struct seg_ops segmf_ops = {
+	segmf_dup,
+	segmf_unmap,
+	segmf_free,
+	segmf_fault,
+	segmf_faulta,
+	segmf_setprot,
+	segmf_checkprot,
+	(int (*)())segmf_kluster,
+	(size_t (*)(struct seg *))NULL,	/* swapout */
+	segmf_sync,
+	segmf_incore,
+	segmf_lockop,
+	segmf_getprot,
+	segmf_getoffset,
+	segmf_gettype,
+	segmf_getvp,
+	segmf_advise,
+	segmf_dump,
+	segmf_pagelock,
+	segmf_setpagesize,
+	segmf_getmemid,
+	segmf_getpolicy,
+	segmf_capable
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/vm/seg_mf.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,53 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_VM_SEG_MF_H
+#define	_VM_SEG_MF_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/types.h>
+#include <vm/seg.h>
+#include <sys/hypervisor.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct segmf_crargs {
+	dev_t		dev;
+	uchar_t		prot;
+	uchar_t		maxprot;
+};
+
+extern int segmf_create(struct seg *, void *);
+extern int segmf_add_mfns(struct seg *, caddr_t, mfn_t, pgcnt_t, domid_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VM_SEG_MF_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xdb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/xdb/Makefile
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	i86xpv architecture dependent
+#
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xdb
+OBJECTS		= $(XDB_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XDB_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xdf/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,88 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/xdf/Makefile
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	i86xpv architecture dependent
+#
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xdf
+OBJECTS		= $(XDF_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XDF_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+# Overrides
+LDFLAGS		+= -dy -Nmisc/cmlb
+
+LINTTAGS	+= -erroff=E_SUSPICIOUS_COMPARISON
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xenbus/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,87 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/xenbus/Makefile
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xenbus
+#	xenstore driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xenbus
+OBJECTS		= $(XENBUS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XENBUS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xencons/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,90 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/xencons/Makefile
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xencons
+#	console driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xencons
+OBJECTS		= $(XENCONS_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XENCONS_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+CONF_SRCDIR	= $(UTSBASE)/common/xen/io
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
+
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xnb/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,98 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xnb
+#	network driver support module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xnb
+OBJECTS		= $(XNB_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XNB_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_MISC_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Module depends on VNIC.
+#
+LDFLAGS		+= -dy -N drv/vnic
+
+#
+# use Solaris specific code in xen public header files
+#
+CFLAGS		+= -D_SOLARIS
+LINTFLAGS	+= -D_SOLARIS
+
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xnbe/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,94 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xnbe
+#	network driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xnbe
+OBJECTS		= $(XNBE_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XNBE_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Driver depends on MAC and IP.
+#
+#LDFLAGS		+= -dy -N misc/mac -N drv/ip
+
+#
+# use Solaris specific code in xen public header files
+#
+CFLAGS		+= -D_SOLARIS
+LINTFLAGS	+= -D_SOLARIS
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xnbo/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,94 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xnbo
+#	network driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xnbo
+OBJECTS		= $(XNBO_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XNBO_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Driver depends on xnb and mac.
+#
+LDFLAGS		+= -dy -N misc/xnb -N misc/mac
+
+#
+# use Solaris specific code in xen public header files
+#
+CFLAGS		+= -D_SOLARIS
+LINTFLAGS	+= -D_SOLARIS
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xnbu/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,94 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xnbu
+#	network driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xnbu
+OBJECTS		= $(XNBU_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XNBU_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Driver depends on xnb and mac.
+#
+LDFLAGS		+= -dy -N misc/xnb -N misc/mac
+
+#
+# use Solaris specific code in xen public header files
+#
+CFLAGS		+= -D_SOLARIS
+LINTFLAGS	+= -D_SOLARIS
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xnf/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,100 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# uts/i86xpv/xnf/Makefile
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xve
+#	network driver kernel module.
+#
+#	i86xpv architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xnf
+OBJECTS		= $(XNF_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XNF_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+# Driver depends on MAC & IP
+#
+LDFLAGS		+= -dy -N misc/mac -N drv/ip
+
+#
+# use Solaris specific code in xen public header files
+#
+CFLAGS		+= -D_SOLARIS
+LINTFLAGS	+= -D_SOLARIS
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xpv_autoconfig/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xpv autoconfiguration
+#	kernel module.
+#
+#	i86xpv platform dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xpv_autoconfig
+OBJECTS		= $(XPV_AUTOCONFIG_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XPV_AUTOCONFIG_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_MISC_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xpv_psm/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,99 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xpv_psm mach
+#	kernel module.
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xpv_psm
+OBJECTS		= $(XPV_PSM_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XPV_PSM_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_MACH_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Overrides.
+#
+DEBUG_FLGS	=
+DEBUG_DEFS	+= $(DEBUG_FLGS)
+
+#
+#
+# Depends on ACPI CA interpreter
+#
+LDFLAGS		+= -dy -N misc/acpica
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+LINTTAGS	+= -erroff=E_SUSPICIOUS_COMPARISON
+
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xpvd/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,85 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xpvd nexus driver
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xpvd
+OBJECTS		= $(XPVD_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XPVD_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xpvtod/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,84 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of xpvtod kernel module.
+#
+#	i86xpv implementation architecture dependent
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xpvtod
+OBJECTS		= $(XPVTOD_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XPVTOD_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_TOD_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/i86xpv/xsvc/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,94 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the xsvc driver kernel
+#	module.
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= xsvc
+OBJECTS		= $(XSVC_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(XSVC_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_PSM_DRV_DIR)/$(MODULE)
+CONF_SRCDIR	= $(UTSBASE)/i86pc/io/xsvc
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/i86xpv/Makefile.i86xpv
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY) $(SRC_CONFILE)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
+
+#
+#	Dependency
+#
+LDFLAGS		+= -dy
+
+#
+#	Override defaults to build a unique, local modstubs.o.
+#
+MODSTUBS_DIR	 = $(OBJS_DIR)
+CLEANFILES	+= $(MODSTUBS_O)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/i86xpv/Makefile.targ
+
--- a/usr/src/uts/intel/Makefile.files	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/Makefile.files	Tue Sep 18 15:46:43 2007 -0700
@@ -47,7 +47,6 @@
 	float.o		\
 	fpu.o		\
 	i86_subr.o	\
-	lwp_private.o	\
 	lock_prim.o	\
 	ovbcopy.o	\
 	polled_io.o	\
@@ -71,6 +70,7 @@
 	archdep.o	\
 	getcontext.o	\
 	install_utrap.o	\
+	lwp_private.o	\
 	prom_enter.o	\
 	prom_exit.o	\
 	prom_panic.o	\
@@ -130,6 +130,7 @@
 BSCV_OBJS += bscv.o
 CMDK_OBJS += cmdk.o
 CMLB_OBJS += cmlb.o
+CPUNEX_OBJS += cpunex.o
 DADK_OBJS += dadk.o
 DNET_OBJS += dnet.o mii.o
 FD_OBJS += fd.o
--- a/usr/src/uts/intel/Makefile.intel.shared	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/Makefile.intel.shared	Tue Sep 18 15:46:43 2007 -0700
@@ -227,6 +227,7 @@
 DRV_KMODS	+= conskbd
 DRV_KMODS	+= consms
 DRV_KMODS	+= cpuid
+DRV_KMODS	+= cpunex
 DRV_KMODS	+= crypto
 DRV_KMODS	+= cryptoadm
 DRV_KMODS	+= devinfo
@@ -314,6 +315,7 @@
 DRV_KMODS	+= ucode
 DRV_KMODS	+= vgatext
 DRV_KMODS	+= vni
+DRV_KMODS	+= vnic
 DRV_KMODS	+= wc
 DRV_KMODS	+= winlock
 DRV_KMODS	+= wpi
--- a/usr/src/uts/intel/amd64/ml/mach_offsets.in	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/amd64/ml/mach_offsets.in	Tue Sep 18 15:46:43 2007 -0700
@@ -34,6 +34,16 @@
 
 #define	SIZES	1
 
+
+\
+\ XXPV	This seems to be needed to avoid a namespace collisions with
+\	some other header file in the list below.
+\
+
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+
 #include <sys/types.h>
 #include <sys/bootsvcs.h>
 #include <sys/systm.h>
@@ -156,3 +166,12 @@
 	rm_temp_gdt_lim		TEMPGDTOFF
 	rm_temp_idt_lim		TEMPIDTOFF
 	rm_longmode64_addr	LM64OFF
+
+#if defined(__xpv)
+
+vcpu_info
+	evtchn_upcall_pending	VCPU_INFO_EVTCHN_UPCALL_PENDING
+	evtchn_upcall_mask	VCPU_INFO_EVTCHN_UPCALL_MASK
+	arch.cr2		VCPU_INFO_ARCH_CR2
+
+#endif	/* __xpv */
--- a/usr/src/uts/intel/amd64/sys/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/amd64/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -31,6 +31,7 @@
 
 HDRS=	\
 	kdi_regs.h \
+	privmregs.h \
 	privregs.h
 
 ROOTINCISA= $(ROOT)/usr/include/amd64
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/amd64/sys/privmregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,67 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_AMD64_SYS_PRIVMREGS_H
+#define	_AMD64_SYS_PRIVMREGS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(__amd64)
+#error	"non-amd64 code depends on amd64 privileged header!"
+#endif
+
+#ifndef _ASM
+
+#define	PM_GREGS (1 << 0)
+#define	PM_CRREGS (1 << 1)
+#define	PM_DRREGS (1 << 2)
+
+/*
+ * This structure is intended to represent a complete machine state for a CPU,
+ * when that information is available.  It is only for use internally between
+ * KMDB and the kernel, or within MDB.  Note that this isn't yet finished.
+ */
+typedef struct privmregs {
+	ulong_t pm_flags;
+	/* general registers */
+	struct regs pm_gregs;
+	/* cr0-8 */
+	ulong_t pm_cr[8];
+	/* dr0-8 */
+	ulong_t pm_dr[8];
+} privmregs_t;
+
+#endif /* !_ASM */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !_AMD64_SYS_PRIVMREGS_H */
--- a/usr/src/uts/intel/amd64/sys/privregs.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/amd64/sys/privregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -119,7 +119,15 @@
 #include <sys/machprivregs.h>
 #include <sys/pcb.h>
 
-#ifdef DEBUG
+/*
+ * We can not safely sample {fs,gs}base on the hypervisor. The rdmsr
+ * instruction triggers a #gp fault which is emulated in the hypervisor
+ * on behalf of the guest. This is normally ok but if the guest is in
+ * the special failsafe handler it must not fault again or the hypervisor
+ * will kill the domain. We could use something different than INTR_PUSH
+ * in xen_failsafe_callback but for now we will not sample them.
+ */
+#if defined(DEBUG) && !defined(__xpv)
 #define	__SAVE_BASES				\
 	movl    $MSR_AMD_FSBASE, %ecx;          \
 	rdmsr;                                  \
@@ -252,17 +260,17 @@
 	uint64_t value;
 
 	__asm__ __volatile__(
-		"movq %%cr8, %0"
-		: "=r" (value));
+	    "movq %%cr8, %0"
+	    : "=r" (value));
 	return (value);
 }
 
 extern __inline__ void setcr8(ulong_t value)
 {
 	__asm__ __volatile__(
-		"movq %0, %%cr8"
-		: /* no output */
-		: "r" (value));
+	    "movq %0, %%cr8"
+	    : /* no output */
+	    : "r" (value));
 }
 
 #else
--- a/usr/src/uts/intel/asm/clock.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/asm/clock.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -49,7 +48,9 @@
 	    : "cc");
 }
 
-extern __inline__ hrtime_t tsc_read(void)
+#if defined(__xpv)
+
+extern __inline__ hrtime_t __rdtsc_insn(void)
 {
 #if defined(__amd64)
 	uint32_t lobits, hibits;
@@ -70,6 +71,25 @@
 #endif
 }
 
+#else /* __xpv */
+
+/*
+ * rdtsc may not exist on 32-bit, so we don't have an inline for it.
+ */
+#if defined(__amd64)
+extern __inline__ hrtime_t tsc_read(void)
+{
+	uint32_t lobits, hibits;
+
+	__asm__ __volatile__(
+	    "rdtsc"
+	    : "=a" (lobits), "=d" (hibits));
+	return (lobits | ((hrtime_t)hibits << 32));
+}
+#endif /* __amd64 */
+
+#endif /* __xpv */
+
 #endif	/* !__lint && __GNUC__ */
 
 #ifdef	__cplusplus
--- a/usr/src/uts/intel/asm/cpu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/asm/cpu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -42,6 +42,8 @@
 	    "pause");
 }
 
+#if !defined(__xpv)
+
 extern __inline__ void cli(void)
 {
 	__asm__ __volatile__(
@@ -60,6 +62,8 @@
 	    "sti; hlt");
 }
 
+#endif /* !__xpv */
+
 #endif	/* __i386 || defined(__amd64) */
 
 #if defined(__amd64)
@@ -67,41 +71,45 @@
 extern __inline__ void __set_ds(selector_t value)
 {
 	__asm__ __volatile__(
-	"movw	%0, %%ds"
-	: /* no output */
-	: "r" (value));
+	    "movw	%0, %%ds"
+	    : /* no output */
+	    : "r" (value));
 }
 
 extern __inline__ void __set_es(selector_t value)
 {
 	__asm__ __volatile__(
-	"movw	%0, %%es"
-	: /* no output */
-	: "r" (value));
+	    "movw	%0, %%es"
+	    : /* no output */
+	    : "r" (value));
 }
 
 extern __inline__ void __set_fs(selector_t value)
 {
 	__asm__ __volatile__(
-	"movw	%0, %%fs"
-	: /* no output */
-	: "r" (value));
+	    "movw	%0, %%fs"
+	    : /* no output */
+	    : "r" (value));
 }
 
 extern __inline__ void __set_gs(selector_t value)
 {
 	__asm__ __volatile__(
-	"movw	%0, %%gs"
-	: /* no output */
-	: "r" (value));
+	    "movw	%0, %%gs"
+	    : /* no output */
+	    : "r" (value));
 }
 
+#if !defined(__xpv)
+
 extern __inline__ void __swapgs(void)
 {
 	__asm__ __volatile__(
-	"mfence; swapgs");
+	    "mfence; swapgs");
 }
 
+#endif /* !__xpv */
+
 #endif	/* __amd64 */
 
 #endif	/* !__lint && __GNUC__ */
--- a/usr/src/uts/intel/asm/mmu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/asm/mmu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -35,7 +34,7 @@
 extern "C" {
 #endif
 
-#if !defined(__lint) && defined(__GNUC__)
+#if defined(__GNUC__) && !defined(__xpv)
 
 #if defined(__amd64)
 
@@ -44,17 +43,17 @@
 	uint64_t value;
 
 	__asm__ __volatile__(
-		"movq %%cr3, %0"
-		: "=r" (value));
+	    "movq %%cr3, %0"
+	    : "=r" (value));
 	return (value);
 }
 
 extern __inline__ void setcr3(ulong_t value)
 {
 	__asm__ __volatile__(
-		"movq %0, %%cr3"
-		: /* no output */
-		: "r" (value));
+	    "movq %0, %%cr3"
+	    : /* no output */
+	    : "r" (value));
 }
 
 extern __inline__ void reload_cr3(void)
@@ -69,17 +68,17 @@
 	uint32_t value;
 
 	__asm__ __volatile__(
-		"movl %%cr3, %0"
-		: "=r" (value));
+	    "movl %%cr3, %0"
+	    : "=r" (value));
 	return (value);
 }
 
 extern __inline__ void setcr3(ulong_t value)
 {
 	__asm__ __volatile__(
-		"movl %0, %%cr3"
-		: /* no output */
-		: "r" (value));
+	    "movl %0, %%cr3"
+	    : /* no output */
+	    : "r" (value));
 }
 
 extern __inline__ void reload_cr3(void)
@@ -89,7 +88,7 @@
 
 #endif
 
-#endif /* !__lint && __GNUC__ */
+#endif /* __GNUC__ && !__xpv */
 
 #ifdef __cplusplus
 }
--- a/usr/src/uts/intel/brand/lx/lx_brand_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/brand/lx/lx_brand_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -93,7 +93,7 @@
 	addq	%r15, %rax
 	movq	32(%rsp), %rsp		/* restore user stack pointer */
 	xchgq	(%rsp), %rax		/* swap %rax and return addr */
-	iretq
+	jmp	nopop_sys_rtt_syscall32
 
 .lx_brand_int80_trace:
 	/*
@@ -123,7 +123,7 @@
 	SET_SIZE(lx_brand_int80_disable)
 
 
-#else
+#elif defined(__i386)
 	/*
 	 * %eax - syscall number
 	 *
@@ -137,7 +137,7 @@
 	 *    | 40 | EFLAGS register			|
 	 *    | 36 | user's %cs				|
 	 *    | 32 | user's %eip			|
-	 *    | 28 | 'scatch space'			|
+	 *    | 28 | 'scratch space'			|
 	 *    | 24 | user's %ebx			|
 	 *    | 20 | user's %gs selector		|
 	 *    | 16 | kernel's %gs selector		|
@@ -169,7 +169,7 @@
 	popl	%ebx				/* restore %ebx */
 	addl	$32, %esp
 	xchgl	(%esp), %eax			/* swap %eax and return addr */
-	iret
+	jmp	nopop_sys_rtt_syscall
 
 .lx_brand_int80_trace:
 	movl	L_TRACEHANDLER(%ebx), %ebx	/* load trace handler address */
@@ -201,5 +201,5 @@
 	ret
 	SET_SIZE(lx_brand_int80_disable)
 
-#endif	/* __amd64 */
+#endif	/* __i386 */
 #endif	/* __lint */
--- a/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -162,7 +162,7 @@
 	 */
 	movq	24(%r15), %rcx	/* user-space handler == proc_data for sn1 */
 	movq	(%r15), %r15	/* Restore scratch register */
-	sysret
+	jmp	nopop_sys_syscall32_sysretl
 9:
 	popq	%r15
 	retq
@@ -189,7 +189,7 @@
 	 */
 	movq	24(%r15), %rcx	/* user-space handler == proc_data for sn1 */
 	movq	(%r15), %r15	/* Restore scratch register */
-	sysretq
+	jmp	nopop_sys_syscall_sysretq
 9:
 	popq	%r15
 	retq
@@ -251,7 +251,7 @@
 	popq	%rax		/* Restore scratch register		*/
 	popq	%r15		/* Restore scratch register		*/
 	movq	32(%rsp), %rsp	/* Remove all callback stuff from stack	*/
-	iretq
+	jmp	nopop_sys_rtt_syscall32
 9:
 	popq	%r15
 	retq
@@ -310,7 +310,7 @@
 
 	popl	%ebx		/* Restore scratch register 		*/
 	addl	$32, %esp	/* Remove all callback stuff from stack	*/
-	iret
+	jmp	nopop_sys_rtt_syscall
 9:
 	popl	%ebx
 	ret
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/cpunex/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,80 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+#	This makefile drives the production of the CPU nexus driver
+#	in x86 systems
+#
+
+#
+#	Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE		= ../..
+
+#
+#	Define the module and object file sets.
+#
+MODULE		= cpunex
+OBJECTS		= $(CPUNEX_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(CPUNEX_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
+
+#
+#	Include common rules.
+#
+include $(UTSBASE)/intel/Makefile.intel
+
+#
+#	Define targets
+#
+ALL_TARGET	= $(BINARY)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE)
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/intel/Makefile.targ
--- a/usr/src/uts/intel/ia32/ml/desctbls_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/ml/desctbls_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -165,6 +165,10 @@
     selector_t ss)
 {}
 
+selector_t
+get_cs_register()
+{ return (0); }
+
 #else	/* __lint */
 
 	/*
@@ -193,6 +197,12 @@
 	ret
 	SET_SIZE(load_segment_registers)
 
+	ENTRY_NP(get_cs_register)
+	movq	$0, %rax
+	movw	%cs, %rax
+	ret
+	SET_SIZE(get_cs_register)
+
 #endif	/* __lint */
 #elif defined(__i386)
 
@@ -205,6 +215,10 @@
     selector_t fs, selector_t gs, selector_t ss)
 {}
 
+selector_t
+get_cs_register()
+{ return ((selector_t) 0); }
+
 #else	/* __lint */
 
 	ENTRY_NP(load_segment_registers)
@@ -229,6 +243,12 @@
 	ret
 	SET_SIZE(load_segment_registers)
 
+	ENTRY_NP(get_cs_register)
+	movl	$0, %eax
+	movw	%cs, %ax
+	ret
+	SET_SIZE(get_cs_register)
+
 #endif	/* __lint */
 #endif	/* __i386 */
 
@@ -243,12 +263,6 @@
 rd_ldtr(void)
 { return (0); }
 
-#if defined(__amd64)
-void
-clr_ldt_sregs(void)
-{}
-#endif
-
 #else	/* __lint */
 
 #if defined(__amd64)
@@ -265,44 +279,6 @@
 	ret
 	SET_SIZE(rd_ldtr)
 
-	/*
-	 * Make sure any stale ldt selectors are cleared by loading
-	 * KDS_SEL (kernel %ds gdt selector). This is necessary
-	 * since the kernel does not use %es, %fs and %ds. %cs and
-	 * %ss are necessary and setup by the kernel along with %gs
-	 * to point to current cpu struct. If we take a kmdb breakpoint
-	 * in the kernel and resume with a stale ldt selector kmdb
-	 * would #gp fault if it points to a ldt in the context of
-	 * another process.
-	 *
-	 * WARNING: Nocona and AMD have different behaviour about storing
-	 * the null selector into %fs and %gs while in long mode. On AMD
-	 * chips fsbase and gsbase is not cleared. But on nocona storing
-	 * null selector into %fs or %gs has the side effect of clearing
-	 * fsbase or gsbase. For that reason we use KDS_SEL which has
-	 * consistent behavoir between AMD and Nocona.
-	 */
-	ENTRY_NP(clr_ldt_sregs)
-
-	/*
-	 * Save GSBASE before resetting %gs to KDS_SEL
-	 * then restore GSBASE.
-	 */
-	cli
-	movq	%rbx, %rdi
-	movw	$KDS_SEL, %bx
-        movl    $MSR_AMD_GSBASE, %ecx
-        rdmsr
-        movw    %bx, %gs
-	wrmsr
-	sti
-	movw	%bx, %ds
-	movw	%bx, %es
-	movw	%bx, %fs
-	movq	%rdi, %rbx
-	ret
-	SET_SIZE(clr_ldt_sregs)
-
 #elif defined(__i386)
 
 	ENTRY_NP(wr_ldtr)
--- a/usr/src/uts/intel/ia32/ml/exception.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/ml/exception.s	Tue Sep 18 15:46:43 2007 -0700
@@ -71,8 +71,33 @@
  * generate an error code. This is so the rest
  * of the kernel can expect a consistent stack
  * from from any exception.
+ *
+ * Note that for all exceptions for amd64
+ * %r11 and %rcx are on the stack. Just pop
+ * them back into their appropriate registers and let
+ * it get saved as is running native.
  */
 
+#if defined(__xpv) && defined(__amd64)
+
+#define	NPTRAP_NOERR(trapno)	\
+	pushq	$0;		\
+	pushq	$trapno	
+
+#define	TRAP_NOERR(trapno)	\
+	XPV_TRAP_POP;		\
+	NPTRAP_NOERR(trapno)
+
+/*
+ * error code already pushed by hw
+ * onto stack.
+ */
+#define	TRAP_ERR(trapno)	\
+	XPV_TRAP_POP;		\
+	pushq	$trapno	
+
+#else /* __xpv && __amd64 */
+
 #define	TRAP_NOERR(trapno)	\
 	push	$0;		\
 	push	$trapno	
@@ -86,6 +111,8 @@
 #define	TRAP_ERR(trapno)	\
 	push	$trapno	
 
+#endif	/* __xpv && __amd64 */
+
 
 	/*
 	 * #DE
@@ -105,6 +132,7 @@
 	TRAP_NOERR(T_SGLSTP)	/* $1 */
 
 #if defined(__amd64)
+#if !defined(__xpv)		/* no sysenter support yet */
 	/*
 	 * If we get here as a result of single-stepping a sysenter
 	 * instruction, we suddenly find ourselves taking a #db
@@ -136,24 +164,46 @@
 	jne	1f
 	SWAPGS
 1:	popq	%r11
+#endif	/* !__xpv */
 
 	INTR_PUSH
+#if defined(__xpv)
+	movl	$6, %edi
+	call	kdi_dreg_get
+	movq	%rax, %r15		/* %db6 -> %r15 */
+	movl	$6, %edi
+	movl	$0, %esi
+	call	kdi_dreg_set		/* 0 -> %db6 */
+#else
 	movq	%db6, %r15
 	xorl	%eax, %eax
 	movq	%rax, %db6
+#endif
 
 #elif defined(__i386)
 
 	INTR_PUSH
+#if defined(__xpv)
+	pushl	$6
+	call	kdi_dreg_get
+	addl	$4, %esp
+	movl	%eax, %esi		/* %dr6 -> %esi */
+	pushl	$0
+	pushl	$6
+	call	kdi_dreg_set		/* 0 -> %dr6 */
+	addl	$8, %esp
+#else
 	movl	%db6, %esi
 	xorl	%eax, %eax
 	movl	%eax, %db6
+#endif
 #endif	/* __i386 */
 
 	jmp	cmntrap_pushed
 	SET_SIZE(dbgtrap)
 
 #if defined(__amd64)
+#if !defined(__xpv)
 
 /*
  * Macro to set the gsbase or kgsbase to the address of the struct cpu
@@ -205,6 +255,11 @@
 	movq	REGOFF_RBP(%rsp), %rbp;					\
 	addq	$REGOFF_TRAPNO, %rsp	/* pop stack */
 
+#else	/* __xpv */
+
+#define	SET_CPU_GSBASE	/* noop on the hypervisor */
+
+#endif	/* __xpv */
 #endif	/* __amd64 */
 
 
@@ -212,6 +267,8 @@
 
 	/*
 	 * #NMI
+	 *
+	 * XXPV: See 6532669.
 	 */
 	ENTRY_NP(nmiint)
 	TRAP_NOERR(T_NMIFLT)	/* $2 */
@@ -276,6 +333,7 @@
 	ENTRY_NP(brktrap)
 
 #if defined(__amd64)
+	XPV_TRAP_POP
 	cmpw	$KCS_SEL, 8(%rsp)
 	jne	bp_user
 
@@ -319,9 +377,14 @@
 
 	ENTRY_NP(invoptrap)
 
+	XPV_TRAP_POP
+
 	cmpw	$KCS_SEL, 8(%rsp)
 	jne	ud_user
 
+#if defined(__xpv)
+	movb	$0, 12(%rsp)		/* clear saved upcall_mask from %cs */
+#endif
 	push	$0			/* error code -- zero for #UD */
 ud_kernel:
 	push	$0xdddd			/* a dummy trap number */
@@ -448,6 +511,9 @@
 	jne	8f
 
 	addl	$4, %esp
+#if defined(__xpv)
+	movb	$0, 6(%esp)		/* clear saved upcall_mask from %cs */
+#endif	/* __xpv */
 	pusha
 	pushl	%eax			/* push %eax -- may be return value */
 	pushl	%esp			/* push stack pointer */
@@ -555,6 +621,68 @@
 	/*
 	 * #NM
 	 */
+#if defined(__xpv)
+
+	ENTRY_NP(ndptrap)
+	/*
+	 * (On the hypervisor we must make a hypercall so we might as well
+	 * save everything and handle as in a normal trap.)
+	 */
+	TRAP_NOERR(T_NOEXTFLT)	/* $7 */
+	INTR_PUSH
+	
+	/*
+	 * We want to do this quickly as every lwp using fp will take this
+	 * after a context switch -- we do the frequent path in ndptrap_frstor
+	 * below; for all other cases, we let the trap code handle it
+	 */
+	LOADCPU(%rbx)			/* swapgs handled in hypervisor */
+	cmpl	$0, fpu_exists(%rip)
+	je	.handle_in_trap		/* let trap handle no fp case */
+	movq	CPU_THREAD(%rbx), %r15	/* %r15 = curthread */
+	movl	$FPU_EN, %ebx
+	movq	T_LWP(%r15), %r15	/* %r15 = lwp */
+	testq	%r15, %r15
+	jz	.handle_in_trap		/* should not happen? */
+#if LWP_PCB_FPU	!= 0
+	addq	$LWP_PCB_FPU, %r15	/* &lwp->lwp_pcb.pcb_fpu */
+#endif
+	testl	%ebx, PCB_FPU_FLAGS(%r15)
+	jz	.handle_in_trap		/* must be the first fault */
+	CLTS
+	andl	$_BITNOT(FPU_VALID), PCB_FPU_FLAGS(%r15)
+#if FPU_CTX_FPU_REGS != 0
+	addq	$FPU_CTX_FPU_REGS, %r15
+#endif
+	/*
+	 * the label below is used in trap.c to detect FP faults in
+	 * kernel due to user fault.
+	 */
+	ALTENTRY(ndptrap_frstor)
+	fxrstor	(%r15)
+	cmpw	$KCS_SEL, REGOFF_CS(%rsp)
+	je	.return_to_kernel
+
+	ASSERT_UPCALL_MASK_IS_SET
+	USER_POP
+	IRET				/* return to user mode */
+	/*NOTREACHED*/
+
+.return_to_kernel:
+	INTR_POP
+	IRET
+	/*NOTREACHED*/
+
+.handle_in_trap:
+	INTR_POP
+	pushq	$0			/* can not use TRAP_NOERR */
+	pushq	$T_NOEXTFLT
+	jmp	cmninttrap
+	SET_SIZE(ndptrap_frstor)
+	SET_SIZE(ndptrap)
+
+#else	/* __xpv */
+
 	ENTRY_NP(ndptrap)
 	/*
 	 * We want to do this quickly as every lwp using fp will take this
@@ -608,6 +736,8 @@
 	SET_SIZE(ndptrap_frstor)
 	SET_SIZE(ndptrap)
 
+#endif	/* __xpv */
+
 #elif defined(__i386)
 
 	ENTRY_NP(ndptrap)
@@ -669,6 +799,7 @@
 
 #endif	/* __i386 */
 
+#if !defined(__xpv)
 #if defined(__amd64)
 
 	/*
@@ -676,17 +807,16 @@
 	 */
 	ENTRY_NP(syserrtrap)
 	pushq	$T_DBLFLT
-
 	SET_CPU_GSBASE
 
 	/*
-	 * We share this handler with kmdb (if kmdb is loaded).  As such, we may
-	 * have reached this point after encountering a #df in kmdb.  If that
-	 * happens, we'll still be on kmdb's IDT.  We need to switch back to this
-	 * CPU's IDT before proceeding.  Furthermore, if we did arrive here from
-	 * kmdb, kmdb is probably in a very sickly state, and shouldn't be
-	 * entered from the panic flow.  We'll suppress that entry by setting
-	 * nopanicdebug.
+	 * We share this handler with kmdb (if kmdb is loaded).  As such, we
+	 * may have reached this point after encountering a #df in kmdb.  If
+	 * that happens, we'll still be on kmdb's IDT.  We need to switch back
+	 * to this CPU's IDT before proceeding.  Furthermore, if we did arrive
+	 * here from kmdb, kmdb is probably in a very sickly state, and
+	 * shouldn't be entered from the panic flow.  We'll suppress that
+	 * entry by setting nopanicdebug.
 	 */
 	pushq	%rax
 	subq	$DESCTBR_SIZE, %rsp
@@ -732,14 +862,15 @@
 	cli				/* disable interrupts */
 
 	/*
-	 * We share this handler with kmdb (if kmdb is loaded).  As such, we may
-	 * have reached this point after encountering a #df in kmdb.  If that
-	 * happens, we'll still be on kmdb's IDT.  We need to switch back to this
-	 * CPU's IDT before proceeding.  Furthermore, if we did arrive here from
-	 * kmdb, kmdb is probably in a very sickly state, and shouldn't be
-	 * entered from the panic flow.  We'll suppress that entry by setting
-	 * nopanicdebug.
+	 * We share this handler with kmdb (if kmdb is loaded).  As such, we
+	 * may have reached this point after encountering a #df in kmdb.  If
+	 * that happens, we'll still be on kmdb's IDT.  We need to switch back
+	 * to this CPU's IDT before proceeding.  Furthermore, if we did arrive
+	 * here from kmdb, kmdb is probably in a very sickly state, and
+	 * shouldn't be entered from the panic flow.  We'll suppress that
+	 * entry by setting nopanicdebug.
 	 */
+
 	subl	$DESCTBR_SIZE, %esp
 	movl	%gs:CPU_IDT, %eax
 	sidt	(%esp)
@@ -845,6 +976,7 @@
 	SET_SIZE(syserrtrap)
 
 #endif	/* __i386 */
+#endif	/* !__xpv */
 
 	ENTRY_NP(overrun)
 	push	$0
@@ -896,6 +1028,17 @@
 	ENTRY_NP(pftrap)
 	TRAP_ERR(T_PGFLT)	/* $14 already have error code on stack */
 	INTR_PUSH
+#if defined(__xpv)
+
+#if defined(__amd64)
+	movq	%gs:CPU_VCPU_INFO, %r15
+	movq	VCPU_INFO_ARCH_CR2(%r15), %r15	/* vcpu[].arch.cr2 */
+#elif defined(__i386)
+	movl	%gs:CPU_VCPU_INFO, %esi
+	movl	VCPU_INFO_ARCH_CR2(%esi), %esi	/* vcpu[].arch.cr2 */
+#endif	/* __i386 */
+
+#else	/* __xpv */
 
 #if defined(__amd64)
 	movq	%cr2, %r15
@@ -903,6 +1046,7 @@
 	movl	%cr2, %esi
 #endif	/* __i386 */
 
+#endif	/* __xpv */
 	jmp	cmntrap_pushed
 	SET_SIZE(pftrap)
 
@@ -1056,8 +1200,15 @@
 	 * Instead we should push a real (soft?) error code
 	 * on the stack and #gp handler could know about fasttraps?
 	 */
+	XPV_TRAP_POP
+
 	subq	$2, (%rsp)	/* XXX int insn 2-bytes */
 	pushq	$_CONST(_MUL(T_FASTTRAP, GATE_DESC_SIZE) + 2)
+
+#if defined(__xpv)
+	pushq	%r11
+	pushq	%rcx
+#endif
 	jmp	gptrap
 	SET_SIZE(fasttrap)
 
@@ -1096,6 +1247,7 @@
 	 * XXX a constant would be nicer.
 	 */
 	ENTRY_NP(fast_null)
+	XPV_TRAP_POP
 	orq	$PS_C, 24(%rsp)	/* set carry bit in user flags */
 	IRET
 	/*NOTREACHED*/
--- a/usr/src/uts/intel/ia32/ml/i86_subr.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/ml/i86_subr.s	Tue Sep 18 15:46:43 2007 -0700
@@ -472,6 +472,7 @@
 getcr3(void)
 { return (0); }
 
+#if !defined(__xpv)
 /* ARGSUSED */
 void
 setcr3(ulong_t val)
@@ -480,6 +481,7 @@
 void
 reload_cr3(void)
 {}
+#endif
 
 ulong_t
 getcr4(void)
@@ -518,7 +520,12 @@
 	SET_SIZE(setcr0)
 
         ENTRY(getcr2)
+#if defined(__xpv)
+	movq	%gs:CPU_VCPU_INFO, %rax
+	movq	VCPU_INFO_ARCH_CR2(%rax), %rax
+#else
         movq    %cr2, %rax
+#endif
         ret
 	SET_SIZE(getcr2)
 
@@ -527,6 +534,8 @@
 	ret
 	SET_SIZE(getcr3)
 
+#if !defined(__xpv)
+
         ENTRY(setcr3)
         movq    %rdi, %cr3
         ret
@@ -538,6 +547,8 @@
 	ret
 	SET_SIZE(reload_cr3)
 
+#endif	/* __xpv */
+
 	ENTRY(getcr4)
 	movq	%cr4, %rax
 	ret
@@ -572,7 +583,12 @@
 	SET_SIZE(setcr0)
 
         ENTRY(getcr2)
+#if defined(__xpv)
+	movl	%gs:CPU_VCPU_INFO, %eax
+	movl	VCPU_INFO_ARCH_CR2(%eax), %eax
+#else
         movl    %cr2, %eax
+#endif
         ret
 	SET_SIZE(getcr2)
 
@@ -581,6 +597,8 @@
 	ret
 	SET_SIZE(getcr3)
 
+#if !defined(__xpv)
+
         ENTRY(setcr3)
         movl    4(%esp), %eax
         movl    %eax, %cr3
@@ -593,6 +611,8 @@
 	ret
 	SET_SIZE(reload_cr3)
 
+#endif	/* __xpv */
+
 	ENTRY(getcr4)
 	movl    %cr4, %eax
 	ret
@@ -664,6 +684,12 @@
 #endif	/* __i386 */
 #endif	/* __lint */
 
+#if defined(__xpv)
+	/*
+	 * Defined in C
+	 */
+#else
+
 #if defined(__lint)
 
 /*ARGSUSED*/
@@ -746,19 +772,51 @@
 	return (0);
 }
 
+void
+patch_tsc(void)
+{}
+
 #else	/* __lint */
 
+#if defined(__amd64)
+
 	ENTRY_NP(tsc_read)
 	rdtsc
-#if defined(__amd64)
 	shlq	$32, %rdx
 	orq	%rdx, %rax
-#endif
 	ret
 	SET_SIZE(tsc_read)
 
+#else  /* __i386 */
+
+	/*
+	 * To cope with processors that do not implement the rdtsc instruction,
+	 * we patch the kernel to use rdtsc if that feature is detected on the
+	 * CPU.  On an unpatched kernel, tsc_read() just returns zero.
+	 */
+	ENTRY_NP(patch_tsc)
+	movw	_rdtsc_bytes, %cx
+	movw	%cx, _tsc_patch_point
+	ret
+_rdtsc_bytes:
+	rdtsc
+	SET_SIZE(patch_tsc)
+
+	ENTRY_NP(tsc_read)
+	xorl	%eax, %eax
+	xorl	%edx, %edx
+	.globl _tsc_patch_point
+_tsc_patch_point:
+	nop; nop
+	ret
+	SET_SIZE(tsc_read)
+
+#endif /* __i386 */
+
 #endif	/* __lint */
 
+#endif	/* __xpv */
+
 /*
  * Insert entryp after predp in a doubly linked list.
  */
@@ -1809,6 +1867,23 @@
 	ENTRY(clear_int_flag)
 	pushfq
 	popq	%rax
+#if defined(__xpv)
+	leaq	xpv_panicking, %rdi
+	movl	(%rdi), %edi
+	cmpl	$0, %edi
+	jne	2f
+	CLIRET(%rdi, %dl)	/* returns event mask in %dl */
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	andq    $_BITNOT(PS_IE), %rax
+	testb	$1, %dl
+	jnz	1f
+	orq	$PS_IE, %rax
+1:
+	ret
+2:
+#endif
 	CLI(%rdi)
 	ret
 	SET_SIZE(clear_int_flag)
@@ -1820,6 +1895,23 @@
 	ENTRY(clear_int_flag)
 	pushfl
 	popl	%eax
+#if defined(__xpv)
+	leal	xpv_panicking, %edx
+	movl	(%edx), %edx
+	cmpl	$0, %edx
+	jne	2f
+	CLIRET(%edx, %cl)	/* returns event mask in %cl */
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	andl    $_BITNOT(PS_IE), %eax
+	testb	$1, %cl
+	jnz	1f
+	orl	$PS_IE, %eax
+1:
+	ret
+2:
+#endif
 	CLI(%edx)
 	ret
 	SET_SIZE(clear_int_flag)
@@ -1953,6 +2045,19 @@
 	ENTRY(restore_int_flag)
 	pushq	%rdi
 	popfq
+#if defined(__xpv)
+	leaq	xpv_panicking, %rsi
+	movl	(%rsi), %esi
+	cmpl	$0, %esi
+	jne	1f
+	/*
+	 * Since we're -really- running unprivileged, our attempt
+	 * to change the state of the IF bit will be ignored.
+	 * The virtual IF bit is tweaked by CLI and STI.
+	 */
+	IE_TO_EVENT_MASK(%rsi, %rdi)
+1:
+#endif
 	ret
 	SET_SIZE(restore_int_flag)
 	SET_SIZE(intr_restore)
@@ -1964,6 +2069,19 @@
 	movl	4(%esp), %eax
 	pushl	%eax
 	popfl
+#if defined(__xpv)
+	leal	xpv_panicking, %edx
+	movl	(%edx), %edx
+	cmpl	$0, %edx
+	jne	1f
+	/*
+	 * Since we're -really- running unprivileged, our attempt
+	 * to change the state of the IF bit will be ignored.
+	 * The virtual IF bit is tweaked by CLI and STI.
+	 */
+	IE_TO_EVENT_MASK(%edx, %eax)
+1:
+#endif
 	ret
 	SET_SIZE(restore_int_flag)
 	SET_SIZE(intr_restore)
@@ -2012,7 +2130,23 @@
 	ENTRY(dtrace_interrupt_disable)
 	pushfq
 	popq	%rax
+#if defined(__xpv)
+	leaq	xpv_panicking, %rdi
+	movl	(%rdi), %edi
+	cmpl	$0, %edi
+	jne	1f
+	CLIRET(%rdi, %dl)	/* returns event mask in %dl */
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	andq    $_BITNOT(PS_IE), %rax
+	testb	$1, %dl
+	jnz	1f
+	orq	$PS_IE, %rax
+1:
+#else
 	CLI(%rdx)
+#endif
 	ret
 	SET_SIZE(dtrace_interrupt_disable)
 
@@ -2021,7 +2155,23 @@
 	ENTRY(dtrace_interrupt_disable)
 	pushfl
 	popl	%eax
+#if defined(__xpv)
+	leal	xpv_panicking, %edx
+	movl	(%edx), %edx
+	cmpl	$0, %edx
+	jne	1f
+	CLIRET(%edx, %cl)	/* returns event mask in %cl */
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	andl    $_BITNOT(PS_IE), %eax
+	testb	$1, %cl
+	jnz	1f
+	orl	$PS_IE, %eax
+1:
+#else
 	CLI(%edx)
+#endif
 	ret
 	SET_SIZE(dtrace_interrupt_disable)
 
@@ -2042,6 +2192,18 @@
 	ENTRY(dtrace_interrupt_enable)
 	pushq	%rdi
 	popfq
+#if defined(__xpv)
+	leaq	xpv_panicking, %rdx
+	movl	(%rdx), %edx
+	cmpl	$0, %edx
+	jne	1f
+	/*
+	 * Since we're -really- running unprivileged, our attempt
+	 * to change the state of the IF bit will be ignored. The
+	 * virtual IF bit is tweaked by CLI and STI.
+	 */
+	IE_TO_EVENT_MASK(%rdx, %rdi)
+#endif
 	ret
 	SET_SIZE(dtrace_interrupt_enable)
 
@@ -2051,6 +2213,18 @@
 	movl	4(%esp), %eax
 	pushl	%eax
 	popfl
+#if defined(__xpv)
+	leal	xpv_panicking, %edx
+	movl	(%edx), %edx
+	cmpl	$0, %edx
+	jne	1f
+	/*
+	 * Since we're -really- running unprivileged, our attempt
+	 * to change the state of the IF bit will be ignored. The
+	 * virtual IF bit is tweaked by CLI and STI.
+	 */
+	IE_TO_EVENT_MASK(%edx, %eax)
+#endif
 	ret
 	SET_SIZE(dtrace_interrupt_enable)
 
@@ -2674,6 +2848,33 @@
 #if defined(__amd64)
 
 	ENTRY_NP(getcregs)
+#if defined(__xpv)
+	/*
+	 * Only a few of the hardware control registers or descriptor tables
+	 * are directly accessible to us, so just zero the structure.
+	 *
+	 * XXPV	Perhaps it would be helpful for the hypervisor to return
+	 *	virtualized versions of these for post-mortem use.
+	 *	(Need to reevaluate - perhaps it already does!)
+	 */
+	pushq	%rdi		/* save *crp */
+	movq	$CREGSZ, %rsi
+	call	bzero
+	popq	%rdi
+
+	/*
+	 * Dump what limited information we can
+	 */
+	movq	%cr0, %rax
+	movq	%rax, CREG_CR0(%rdi)	/* cr0 */
+	movq	%cr2, %rax
+	movq	%rax, CREG_CR2(%rdi)	/* cr2 */
+	movq	%cr3, %rax
+	movq	%rax, CREG_CR3(%rdi)	/* cr3 */
+	movq	%cr4, %rax
+	movq	%rax, CREG_CR4(%rdi)	/* cr4 */
+
+#else	/* __xpv */
 
 #define	GETMSR(r, off, d)	\
 	movl	$r, %ecx;	\
@@ -2702,6 +2903,7 @@
 	movq	%rax, CREG_CR8(%rdi)	/* cr8 */
 	GETMSR(MSR_AMD_KGSBASE, CREG_KGSBASE, %rdi)
 	GETMSR(MSR_AMD_EFER, CREG_EFER, %rdi)
+#endif	/* __xpv */
 	ret
 	SET_SIZE(getcregs)
 
@@ -2710,6 +2912,36 @@
 #elif defined(__i386)
 
 	ENTRY_NP(getcregs)
+#if defined(__xpv)
+	/*
+	 * Only a few of the hardware control registers or descriptor tables
+	 * are directly accessible to us, so just zero the structure.
+	 *
+	 * XXPV	Perhaps it would be helpful for the hypervisor to return
+	 *	virtualized versions of these for post-mortem use.
+	 *	(Need to reevaluate - perhaps it already does!)
+	 */
+	movl	4(%esp), %edx
+	pushl	$CREGSZ
+	pushl	%edx
+	call	bzero
+	addl	$8, %esp
+	movl	4(%esp), %edx
+
+	/*
+	 * Dump what limited information we can
+	 */
+	movl	%cr0, %eax
+	movl	%eax, CREG_CR0(%edx)	/* cr0 */
+	movl	%cr2, %eax
+	movl	%eax, CREG_CR2(%edx)	/* cr2 */
+	movl	%cr3, %eax
+	movl	%eax, CREG_CR3(%edx)	/* cr3 */
+	movl	%cr4, %eax
+	movl	%eax, CREG_CR4(%edx)	/* cr4 */
+
+#else	/* __xpv */
+
 	movl	4(%esp), %edx
 	movw	$0, CREG_GDT+6(%edx)
 	movw	$0, CREG_IDT+6(%edx)
@@ -2731,6 +2963,7 @@
 .nocr4:
 	movl	$0, CREG_CR4(%edx)
 .skip:
+#endif
 	ret
 	SET_SIZE(getcregs)
 
@@ -3080,6 +3313,16 @@
 	movl	%edx, REGOFF_CS(%esp)
 	pushfl
 	popl	%ecx
+#if defined(__xpv)
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	CURTHREAD(%edx)
+	KPREEMPT_DISABLE(%edx)
+	EVENT_MASK_TO_IE(%edx, %ecx)
+	CURTHREAD(%edx)
+	KPREEMPT_ENABLE_NOKP(%edx)
+#endif
 	movl	%ecx, REGOFF_EFL(%esp)
 	movl	$0, REGOFF_UESP(%esp)
 #if !defined(__GNUC_AS__)
@@ -3768,6 +4011,20 @@
 	ENTRY(getflags)
 	pushfq
 	popq	%rax
+#if defined(__xpv)
+	CURTHREAD(%rdi)
+	KPREEMPT_DISABLE(%rdi)
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	CURVCPU(%r11)
+	andq    $_BITNOT(PS_IE), %rax
+	XEN_TEST_UPCALL_MASK(%r11)
+	jnz	1f
+	orq	$PS_IE, %rax
+1:
+	KPREEMPT_ENABLE_NOKP(%rdi)
+#endif
 	ret
 	SET_SIZE(getflags)
 
@@ -3776,6 +4033,20 @@
 	ENTRY(getflags)
 	pushfl
 	popl	%eax
+#if defined(__xpv)
+	CURTHREAD(%ecx)
+	KPREEMPT_DISABLE(%ecx)
+	/*
+	 * Synthesize the PS_IE bit from the event mask bit
+	 */
+	CURVCPU(%edx)
+	andl    $_BITNOT(PS_IE), %eax
+	XEN_TEST_UPCALL_MASK(%edx)
+	jnz	1f
+	orl	$PS_IE, %eax
+1:
+	KPREEMPT_ENABLE_NOKP(%ecx)
+#endif
 	ret
 	SET_SIZE(getflags)
 
--- a/usr/src/uts/intel/ia32/ml/swtch.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/ml/swtch.s	Tue Sep 18 15:46:43 2007 -0700
@@ -128,6 +128,40 @@
 	movq	P_AS(hatp), scratch_reg;		\
 	movq	A_HAT(scratch_reg), hatp
 
+#if defined (__xpv)
+
+#define	TSC_READ()					\
+	call	tsc_read;				\
+	movq	%rax, %r14;
+
+#else
+
+#define	TSC_READ()					\
+	rdtsc;						\
+	shlq	$32, %rdx;				\
+	movl	%eax, %r14d;				\
+	orq	%rdx, %r14
+
+#endif
+
+/*
+ * If we are resuming an interrupt thread, store a timestamp in the thread
+ * structure.  If an interrupt occurs between tsc_read() and its subsequent
+ * store, the timestamp will be stale by the time it is stored.  We can detect
+ * this by doing a compare-and-swap on the thread's timestamp, since any
+ * interrupt occurring in this window will put a new timestamp in the thread's
+ * t_intr_start field.
+ */
+#define	STORE_INTR_START(thread_t)			\
+	testw	$T_INTR_THREAD, T_FLAGS(thread_t);	\
+	jz	1f;					\
+0:							\
+	TSC_READ();					\
+	movq	T_INTR_START(thread_t), %rax;		\
+	cmpxchgq %r14, T_INTR_START(thread_t);		\
+	jnz	0b;					\
+1:
+
 #elif defined (__i386)
 
 /*
@@ -172,6 +206,31 @@
 	movl	P_AS(hatp), scratch_reg;		\
 	movl	A_HAT(scratch_reg), hatp
 
+/*
+ * If we are resuming an interrupt thread, store a timestamp in the thread
+ * structure.  If an interrupt occurs between tsc_read() and its subsequent
+ * store, the timestamp will be stale by the time it is stored.  We can detect
+ * this by doing a compare-and-swap on the thread's timestamp, since any
+ * interrupt occurring in this window will put a new timestamp in the thread's
+ * t_intr_start field.
+ */
+#define	STORE_INTR_START(thread_t)			\
+	testw	$T_INTR_THREAD, T_FLAGS(thread_t);	\
+	jz	1f;					\
+	pushl	%ecx;					\
+0:							\
+	pushl	T_INTR_START(thread_t);			\
+	pushl	T_INTR_START+4(thread_t);		\
+	call	tsc_read;				\
+	movl	%eax, %ebx;				\
+	movl	%edx, %ecx;				\
+	popl	%edx;					\
+	popl	%eax;					\
+	cmpxchg8b T_INTR_START(thread_t);		\
+	jnz	0b;					\
+	popl	%ecx;					\
+1:
+
 #endif	/* __amd64 */
 
 #if defined(__lint)
@@ -299,7 +358,13 @@
 	movq	CPU_TSS(%r13), %r14
 	movq	T_STACK(%r12), %rax
 	addq	$REGSIZE+MINFRAME, %rax	/* to the bottom of thread stack */
+#if !defined(__xpv)
 	movq	%rax, TSS_RSP0(%r14)
+#else
+	movl	$KDS_SEL, %edi
+	movq	%rax, %rsi
+	call	HYPERVISOR_stack_switch
+#endif	/* __xpv */
 
 	movq	%r12, CPU_THREAD(%r13)	/* set CPU's thread pointer */
 	xorl	%ebp, %ebp		/* make $<threadlist behave better */
@@ -328,36 +393,8 @@
 	call	restorepctx
 .norestorepctx:
 	
-	/*
-	 * If we are resuming an interrupt thread, store a timestamp 
-	 * in the thread structure.
-	 */
-	testw	$T_INTR_THREAD, T_FLAGS(%r12)
-	jz	1f
+	STORE_INTR_START(%r12)
 
-0:
-	/*
-	 * If an interrupt occurs between the rdtsc instruction and its
-	 * subsequent store, the timestamp will be stale by the time it is
-	 * stored. We can detect this by doing a compare-and-swap on the
-	 * thread's timestamp, since any interrupt occurring in this window
-	 * will put a new timestamp in the thread's t_intr_start field.
-	 */
-	movq	T_INTR_START(%r12), %rcx
-	rdtsc
-
-	/*
-	 * After rdtsc:
-	 *     High 32 bits of TC are in %edx
-	 *     Low 32 bits of TC are in %eax
-	 */
-	shlq	$32, %rdx
-	movl	%eax, %r14d
-	orq	%rdx, %r14
-	movq	%rcx, %rax
-	cmpxchgq %r14, T_INTR_START(%r12)
-	jnz	0b
-1:
 	/*
 	 * Restore non-volatile registers, then have spl0 return to the
 	 * resuming thread's PC after first setting the priority as low as
@@ -484,7 +521,14 @@
 	 */
 	movl	CPU_TSS(%esi), %ecx
 	addl	$REGSIZE+MINFRAME, %eax	/* to the bottom of thread stack */
+#if !defined(__xpv)
 	movl	%eax, TSS_ESP0(%ecx)
+#else
+	pushl	%eax
+	pushl	$KDS_SEL
+	call	HYPERVISOR_stack_switch
+	addl	$8, %esp
+#endif	/* __xpv */
 
 	movl	%edi, CPU_THREAD(%esi)	/* set CPU's thread pointer */
 	xorl	%ebp, %ebp		/* make $<threadlist behave better */
@@ -516,34 +560,8 @@
 	addl	$4, %esp		/* restore stack pointer */
 .norestorepctx:
 
-	/*
-	 * If we are resuming an interrupt thread, store a timestamp 
-	 * in the thread structure.
-	 */
-	testw	$T_INTR_THREAD, T_FLAGS(%edi)
-	jz	1f
-	pushl	%ecx
-0:
-	/*
-	 * If an interrupt occurs between the rdtsc instruction and its
-	 * subsequent store, the timestamp will be stale by the time it is
-	 * stored. We can detect this by doing a compare-and-swap on the
-	 * thread's timestamp, since any interrupt occurring in this window
-	 * will put a new timestamp in the thread's t_intr_start field.
-	 */
-	pushl	T_INTR_START(%edi)
-	pushl	T_INTR_START+4(%edi)
-	.globl	_tsc_patch15
-_tsc_patch15:
-	nop; nop			/* patched to rdtsc if available */
-	movl	%eax, %ebx
-	movl	%edx, %ecx
-	popl	%edx
-	popl	%eax
-	cmpxchg8b T_INTR_START(%edi)
-	jnz	0b
-	popl	%ecx
-1:
+	STORE_INTR_START(%edi)
+
 	/*
 	 * Restore non-volatile registers, then have spl0 return to the
 	 * resuming thread's PC after first setting the priority as low as
@@ -607,6 +625,14 @@
 	movq	%gs:CPU_THREAD, %r13	/* %r13 = curthread */
 
 	/* clean up the fp unit. It might be left enabled */
+
+#if defined(__xpv)		/* XXPV XXtclayton */
+	/*
+	 * Remove this after bringup.
+	 * (Too many #gp's for an instrumented hypervisor.)
+	 */
+	STTS(%rax)
+#else
 	movq	%cr0, %rax
 	testq	$CR0_TS, %rax
 	jnz	.zfpu_disabled		/* if TS already set, nothing to do */
@@ -615,6 +641,8 @@
 	movq	%rax, %cr0
 .zfpu_disabled:
 
+#endif	/* __xpv */
+
 	/* 
 	 * Temporarily switch to the idle thread's stack so that the zombie
 	 * thread's stack can be reclaimed by the reaper.
@@ -761,36 +789,9 @@
 	xorl	%eax, %eax
 	xchgb	%al, T_LOCK(%r13)
 
-	/*
-	 * If we are resuming an interrupt thread, store a timestamp in
-	 * the thread structure.
-	 */
-	testw	$T_INTR_THREAD, T_FLAGS(%r12)
-	jz	1f
-0:
-	/*
-	 * If an interrupt occurs between the rdtsc instruction and its
-	 * subsequent store, the timestamp will be stale by the time it is
-	 * stored. We can detect this by doing a compare-and-swap on the
-	 * thread's timestamp, since any interrupt occurring in this window
-	 * will put a new timestamp in the thread's t_intr_start field.
-	 */
-	movq	T_INTR_START(%r12), %rcx
-	rdtsc
+	STORE_INTR_START(%r12)
 
 	/*
-	 * After rdtsc:
-	 *     High 32 bits of TC are in %edx
-	 *     Low 32 bits of TC are in %eax
-	 */
-	shlq	$32, %rdx
-	movl	%eax, %r14d
-	orq	%rdx, %r14
-	movq	%rcx, %rax
-	cmpxchgq %r14, T_INTR_START(%r12)
-	jnz	0b
-1:
-	/*
 	 * Restore non-volatile registers, then have spl0 return to the
 	 * resuming thread's PC after first setting the priority as low as
 	 * possible and blocking all interrupt threads that may be active.
@@ -837,32 +838,8 @@
 	xorl	%eax,%eax
 	xchgb	%al, T_LOCK(%esi)
 
-	/*
-	 * If we are resuming an interrupt thread, store a timestamp in
-	 * the thread structure.
-	 */
-	testw	$T_INTR_THREAD, T_FLAGS(%edi)
-	jz	1f
-0:
-	/*
-	 * If an interrupt occurs between the rdtsc instruction and its
-	 * subsequent store, the timestamp will be stale by the time it is
-	 * stored. We can detect this by doing a compare-and-swap on the
-	 * thread's timestamp, since any interrupt occurring in this window
-	 * will put a new timestamp in the thread's t_intr_start field.
-	 */
-	pushl	T_INTR_START(%edi)
-	pushl	T_INTR_START+4(%edi)
-	.globl	_tsc_patch16
-_tsc_patch16:
-	nop; nop			/* patched to rdtsc if available */
-	movl	%eax, %ebx
-	movl	%edx, %ecx
-	popl	%edx
-	popl	%eax
-	cmpxchg8b T_INTR_START(%edi)
-	jnz	0b
-1:
+	STORE_INTR_START(%edi)
+
 	/*
 	 * Restore non-volatile registers, then have spl0 return to the
 	 * resuming thread's PC after first setting the priority as low as
--- a/usr/src/uts/intel/ia32/os/archdep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/archdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -588,15 +588,35 @@
  * Since struct regs stores each 16-bit segment register as a 32-bit greg_t, we
  * also explicitly zero the top 16 bits since they may be coming from the
  * user's address space via setcontext(2) or /proc.
+ *
+ * Note about null selector. When running on the hypervisor if we allow a
+ * process to set its %cs to null selector with RPL of 0 the hypervisor will
+ * crash the domain. If running on bare metal we would get a #gp fault and
+ * be able to kill the process and continue on. Therefore we make sure to
+ * force RPL to SEL_UPL even for null selector when setting %cs.
  */
 
+#if defined(IS_CS) || defined(IS_NOT_CS)
+#error	"IS_CS and IS_NOT_CS already defined"
+#endif
+
+#define	IS_CS		1
+#define	IS_NOT_CS	0
+
 /*ARGSUSED*/
 static greg_t
-fix_segreg(greg_t sr, model_t datamodel)
+fix_segreg(greg_t sr, int iscs, model_t datamodel)
 {
 	kthread_t *t = curthread;
 
 	switch (sr &= 0xffff) {
+
+	case 0:
+		if (iscs == IS_CS)
+			return (0 | SEL_UPL);
+		else
+			return (0);
+
 #if defined(__amd64)
 	/*
 	 * If lwp attempts to switch data model then force their
@@ -604,13 +624,13 @@
 	 */
 	case U32CS_SEL:
 		if (datamodel == DATAMODEL_NATIVE)
-			return (0);
+			return (0 | SEL_UPL);
 		else
 			return (sr);
 
 	case UCS_SEL:
 		if (datamodel == DATAMODEL_ILP32)
-			return (0);
+			return (0 | SEL_UPL);
 #elif defined(__i386)
 	case UCS_SEL:
 #endif
@@ -618,7 +638,7 @@
 	case UDS_SEL:
 	case LWPFS_SEL:
 	case LWPGS_SEL:
-	case 0:
+	case SEL_UPL:
 		return (sr);
 	default:
 		break;
@@ -628,20 +648,34 @@
 	 * Allow this process's brand to do any necessary segment register
 	 * manipulation.
 	 */
-	if (PROC_IS_BRANDED(t->t_procp) && BRMOP(t->t_procp)->b_fixsegreg)
-		return (BRMOP(t->t_procp)->b_fixsegreg(sr, datamodel));
+	if (PROC_IS_BRANDED(t->t_procp) && BRMOP(t->t_procp)->b_fixsegreg) {
+		greg_t bsr = BRMOP(t->t_procp)->b_fixsegreg(sr, datamodel);
+
+		if (bsr == 0 && iscs == IS_CS)
+			return (0 | SEL_UPL);
+		else
+			return (bsr);
+	}
 
 	/*
 	 * Force it into the LDT in ring 3 for 32-bit processes, which by
 	 * default do not have an LDT, so that any attempt to use an invalid
-	 * selector will reference the (non-existant) LDT, and cause a #gp fault
-	 * for the process.
+	 * selector will reference the (non-existant) LDT, and cause a #gp
+	 * fault for the process.
 	 *
 	 * 64-bit processes get the null gdt selector since they
 	 * are not allowed to have a private LDT.
 	 */
 #if defined(__amd64)
-	return (datamodel == DATAMODEL_ILP32 ? (sr | SEL_TI_LDT | SEL_UPL) : 0);
+	if (datamodel == DATAMODEL_ILP32) {
+		return (sr | SEL_TI_LDT | SEL_UPL);
+	} else {
+		if (iscs == IS_CS)
+			return (0 | SEL_UPL);
+		else
+			return (0);
+	}
+
 #elif defined(__i386)
 	return (sr | SEL_TI_LDT | SEL_UPL);
 #endif
@@ -706,8 +740,8 @@
 		 */
 		pcb->pcb_fsbase = grp[REG_FSBASE];
 		pcb->pcb_gsbase = grp[REG_GSBASE];
-		pcb->pcb_fs = fix_segreg(grp[REG_FS], datamodel);
-		pcb->pcb_gs = fix_segreg(grp[REG_GS], datamodel);
+		pcb->pcb_fs = fix_segreg(grp[REG_FS], IS_NOT_CS, datamodel);
+		pcb->pcb_gs = fix_segreg(grp[REG_GS], IS_NOT_CS, datamodel);
 
 		/*
 		 * Ensure that we go out via update_sregs
@@ -729,30 +763,22 @@
 		rp->r_err = (uint32_t)grp[REG_ERR];
 		rp->r_rip = (uint32_t)grp[REG_RIP];
 
-		/*
-		 * The kernel uses %cs to determine if it is dealing with
-		 * another part of the kernel or with a userland application.
-		 * Specifically, it tests the privilege bits. For this reason,
-		 * we must prevent user apps from ending up with a NULL selector
-		 * in %cs. Instead, we'll use index 0 into the GDT but with the
-		 * privilege bits set to usermode.
-		 */
-		rp->r_cs = fix_segreg(grp[REG_CS], datamodel) | SEL_UPL;
-		rp->r_ss = fix_segreg(grp[REG_DS], datamodel);
+		rp->r_cs = fix_segreg(grp[REG_CS], IS_CS, datamodel);
+		rp->r_ss = fix_segreg(grp[REG_DS], IS_NOT_CS, datamodel);
 
 		rp->r_rsp = (uint32_t)grp[REG_RSP];
 
 		if (thisthread)
 			kpreempt_disable();
 
-		pcb->pcb_ds = fix_segreg(grp[REG_DS], datamodel);
-		pcb->pcb_es = fix_segreg(grp[REG_ES], datamodel);
+		pcb->pcb_ds = fix_segreg(grp[REG_DS], IS_NOT_CS, datamodel);
+		pcb->pcb_es = fix_segreg(grp[REG_ES], IS_NOT_CS, datamodel);
 
 		/*
 		 * (See fsbase/gsbase commentary above)
 		 */
-		pcb->pcb_fs = fix_segreg(grp[REG_FS], datamodel);
-		pcb->pcb_gs = fix_segreg(grp[REG_GS], datamodel);
+		pcb->pcb_fs = fix_segreg(grp[REG_FS], IS_NOT_CS, datamodel);
+		pcb->pcb_gs = fix_segreg(grp[REG_GS], IS_NOT_CS, datamodel);
 
 		/*
 		 * Ensure that we go out via update_sregs
@@ -782,12 +808,12 @@
 	 */
 	bcopy(grp, &rp->r_gs, sizeof (gregset_t));
 
-	rp->r_cs = fix_segreg(rp->r_cs, datamodel);
-	rp->r_ss = fix_segreg(rp->r_ss, datamodel);
-	rp->r_ds = fix_segreg(rp->r_ds, datamodel);
-	rp->r_es = fix_segreg(rp->r_es, datamodel);
-	rp->r_fs = fix_segreg(rp->r_fs, datamodel);
-	rp->r_gs = fix_segreg(rp->r_gs, datamodel);
+	rp->r_cs = fix_segreg(rp->r_cs, IS_CS, datamodel);
+	rp->r_ss = fix_segreg(rp->r_ss, IS_NOT_CS, datamodel);
+	rp->r_ds = fix_segreg(rp->r_ds, IS_NOT_CS, datamodel);
+	rp->r_es = fix_segreg(rp->r_es, IS_NOT_CS, datamodel);
+	rp->r_fs = fix_segreg(rp->r_fs, IS_NOT_CS, datamodel);
+	rp->r_gs = fix_segreg(rp->r_gs, IS_NOT_CS, datamodel);
 
 #endif	/* __i386 */
 }
@@ -1140,6 +1166,7 @@
 	if (!panicstr)
 		printf("traceback: %%fp = %p\n", (void *)fp);
 
+	fp = (struct frame *)plat_traceback(fpreg);
 	if ((uintptr_t)fp < KERNELBASE)
 		goto out;
 
@@ -1222,6 +1249,7 @@
 
 	kpreempt_enable();
 
+	fp = (struct frame *)plat_traceback(fpreg);
 	if ((uintptr_t)fp < KERNELBASE)
 		goto out;
 
--- a/usr/src/uts/intel/ia32/os/desctbls.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/desctbls.c	Tue Sep 18 15:46:43 2007 -0700
@@ -82,15 +82,24 @@
 #include <sys/kdi.h>
 #include <sys/mach_mmu.h>
 #include <sys/systm.h>
+
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#include <vm/as.h>
+#endif
+
 #include <sys/promif.h>
 #include <sys/bootinfo.h>
 #include <vm/kboot_mmu.h>
+#include <vm/hat_pte.h>
 
 /*
  * cpu0 and default tables and structures.
  */
 user_desc_t	*gdt0;
+#if !defined(__xpv)
 desctbr_t	gdt0_default_r;
+#endif
 
 #pragma	align	16(idt0)
 gate_desc_t	idt0[NIDT]; 		/* interrupt descriptor table */
@@ -107,12 +116,20 @@
 #endif	/* __i386 */
 
 user_desc_t	zero_udesc;		/* base zero user desc native procs */
-system_desc_t	zero_sdesc;
+user_desc_t	null_udesc;		/* null user descriptor */
+system_desc_t	null_sdesc;		/* null system descriptor */
 
 #if defined(__amd64)
 user_desc_t	zero_u32desc;		/* 32-bit compatibility procs */
 #endif	/* __amd64 */
 
+#if defined(__amd64)
+user_desc_t	ucs_on;
+user_desc_t	ucs_off;
+user_desc_t	ucs32_on;
+user_desc_t	ucs32_off;
+#endif	/* __amd64 */
+
 #pragma	align	16(dblfault_stack0)
 char		dblfault_stack0[DEFAULTSTKSZ];
 
@@ -248,6 +265,18 @@
 	dp->ssd_gran = 0;	/* force byte units */
 }
 
+void *
+get_ssd_base(system_desc_t *dp)
+{
+	uintptr_t	base;
+
+	base = (uintptr_t)dp->ssd_lobase |
+	    (uintptr_t)dp->ssd_midbase << 16 |
+	    (uintptr_t)dp->ssd_hibase << (16 + 8) |
+	    (uintptr_t)dp->ssd_hi64base << (16 + 8 + 8);
+	return ((void *)base);
+}
+
 #elif defined(__i386)
 
 void
@@ -268,6 +297,17 @@
 	dp->ssd_gran = 0;	/* force byte units */
 }
 
+void *
+get_ssd_base(system_desc_t *dp)
+{
+	uintptr_t	base;
+
+	base = (uintptr_t)dp->ssd_lobase |
+	    (uintptr_t)dp->ssd_midbase << 16 |
+	    (uintptr_t)dp->ssd_hibase << (16 + 8);
+	return ((void *)base);
+}
+
 #endif	/* __i386 */
 
 /*
@@ -291,9 +331,11 @@
 	 * for double faults. All other traps use the CPL = 0
 	 * (tss_rsp0) stack.
 	 */
+#if !defined(__xpv)
 	if (type == T_DBLFLT)
 		dp->sgd_ist = 1;
 	else
+#endif
 		dp->sgd_ist = 0;
 
 	dp->sgd_type = type;
@@ -319,6 +361,110 @@
 
 #endif	/* __i386 */
 
+/*
+ * Updates a single user descriptor in the the GDT of the current cpu.
+ * Caller is responsible for preventing cpu migration.
+ */
+
+void
+gdt_update_usegd(uint_t sidx, user_desc_t *udp)
+{
+#if defined(__xpv)
+
+	uint64_t dpa = CPU->cpu_m.mcpu_gdtpa + sizeof (*udp) * sidx;
+
+	if (HYPERVISOR_update_descriptor(pa_to_ma(dpa), *(uint64_t *)udp))
+		panic("gdt_update_usegd: HYPERVISOR_update_descriptor");
+
+#else	/* __xpv */
+
+	CPU->cpu_gdt[sidx] = *udp;
+
+#endif	/* __xpv */
+}
+
+/*
+ * Writes single descriptor pointed to by udp into a processes
+ * LDT entry pointed to by ldp.
+ */
+int
+ldt_update_segd(user_desc_t *ldp, user_desc_t *udp)
+{
+#if defined(__xpv)
+
+	uint64_t dpa;
+
+	dpa = mmu_ptob(hat_getpfnum(kas.a_hat, (caddr_t)ldp)) |
+	    ((uintptr_t)ldp & PAGEOFFSET);
+
+	/*
+	 * The hypervisor is a little more restrictive about what it
+	 * supports in the LDT.
+	 */
+	if (HYPERVISOR_update_descriptor(pa_to_ma(dpa), *(uint64_t *)udp) != 0)
+		return (EINVAL);
+
+#else	/* __xpv */
+
+	*ldp = *udp;
+
+#endif	/* __xpv */
+	return (0);
+}
+
+#if defined(__xpv)
+
+/*
+ * Converts hw format gate descriptor into pseudo-IDT format for the hypervisor.
+ * Returns true if a valid entry was written.
+ */
+int
+xen_idt_to_trap_info(uint_t vec, gate_desc_t *sgd, void *ti_arg)
+{
+	trap_info_t *ti = ti_arg;	/* XXPV	Aargh - segments.h comment */
+
+	/*
+	 * skip holes in the IDT
+	 */
+	if (GATESEG_GETOFFSET(sgd) == 0)
+		return (0);
+
+	ASSERT(sgd->sgd_type == SDT_SYSIGT);
+	ti->vector = vec;
+	TI_SET_DPL(ti, sgd->sgd_dpl);
+
+	/*
+	 * Is this an interrupt gate?
+	 */
+	if (sgd->sgd_type == SDT_SYSIGT) {
+		/* LINTED */
+		TI_SET_IF(ti, 1);
+	}
+	ti->cs = sgd->sgd_selector;
+#if defined(__amd64)
+	ti->cs |= SEL_KPL;	/* force into ring 3. see KCS_SEL  */
+#endif
+	ti->address = GATESEG_GETOFFSET(sgd);
+	return (1);
+}
+
+/*
+ * Convert a single hw format gate descriptor and write it into our virtual IDT.
+ */
+void
+xen_idt_write(gate_desc_t *sgd, uint_t vec)
+{
+	trap_info_t trapinfo[2];
+
+	bzero(trapinfo, sizeof (trapinfo));
+	if (xen_idt_to_trap_info(vec, sgd, &trapinfo[0]) == 0)
+		return;
+	if (xen_set_trap_table(trapinfo) != 0)
+		panic("xen_idt_write: xen_set_trap_table() failed");
+}
+
+#endif	/* __xpv */
+
 #if defined(__amd64)
 
 /*
@@ -363,6 +509,15 @@
 	    SEL_UPL, SDP_PAGES, SDP_OP32);
 
 	/*
+	 * See gdt_ucode32() and gdt_ucode_native().
+	 */
+	ucs_on = ucs_off = gdt[GDT_UCODE];
+	ucs_off.usd_p = 0;	/* forces #np fault */
+
+	ucs32_on = ucs32_off = gdt[GDT_U32CODE];
+	ucs32_off.usd_p = 0;	/* forces #np fault */
+
+	/*
 	 * 32 and 64 bit data segments can actually share the same descriptor.
 	 * In long mode only the present bit is checked but all other fields
 	 * are loaded. But in compatibility mode all fields are interpreted
@@ -372,6 +527,8 @@
 	set_usegd(&gdt[GDT_UDATA], SDP_SHORT, NULL, -1, SDT_MEMRWA, SEL_UPL,
 	    SDP_PAGES, SDP_OP32);
 
+#if !defined(__xpv)
+
 	/*
 	 * The 64-bit kernel has no default LDT. By default, the LDT descriptor
 	 * in the GDT is 0.
@@ -383,6 +540,8 @@
 	set_syssegd((system_desc_t *)&gdt[GDT_KTSS], &ktss0,
 	    sizeof (ktss0) - 1, SDT_SYSTSS, SEL_KPL);
 
+#endif	/* !__xpv */
+
 	/*
 	 * Initialize fs and gs descriptors for 32 bit processes.
 	 * Only attributes and limits are initialized, the effective
@@ -412,6 +571,81 @@
 	    SDP_PAGES, SDP_OP32);
 }
 
+#if defined(__xpv)
+
+static user_desc_t *
+init_gdt(void)
+{
+	uint64_t gdtpa;
+	ulong_t ma[1];		/* XXPV should be a memory_t */
+	ulong_t addr;
+
+#if !defined(__lint)
+	/*
+	 * Our gdt is never larger than a single page.
+	 */
+	ASSERT((sizeof (*gdt0) * NGDT) <= PAGESIZE);
+#endif
+	gdt0 = (user_desc_t *)BOP_ALLOC(bootops, (caddr_t)GDT_VA,
+	    PAGESIZE, PAGESIZE);
+	if (gdt0 == NULL)
+		panic("init_gdt: BOP_ALLOC failed");
+	bzero(gdt0, PAGESIZE);
+
+	init_gdt_common(gdt0);
+
+	/*
+	 * XXX Since we never invoke kmdb until after the kernel takes
+	 * over the descriptor tables why not have it use the kernel's
+	 * selectors?
+	 */
+	if (boothowto & RB_DEBUG) {
+		set_usegd(&gdt0[GDT_B32DATA], SDP_LONG, NULL, -1, SDT_MEMRWA,
+		    SEL_KPL, SDP_PAGES, SDP_OP32);
+		set_usegd(&gdt0[GDT_B64CODE], SDP_LONG, NULL, -1, SDT_MEMERA,
+		    SEL_KPL, SDP_PAGES, SDP_OP32);
+	}
+
+	/*
+	 * Clear write permission for page containing the gdt and install it.
+	 */
+	gdtpa = pfn_to_pa(va_to_pfn(gdt0));
+	ma[0] = (ulong_t)(pa_to_ma(gdtpa) >> PAGESHIFT);
+	kbm_read_only((uintptr_t)gdt0, gdtpa);
+	xen_set_gdt(ma, NGDT);
+
+	/*
+	 * Reload the segment registers to use the new GDT.
+	 * On 64-bit, fixup KCS_SEL to be in ring 3.
+	 * See KCS_SEL in segments.h.
+	 */
+	load_segment_registers((KCS_SEL | SEL_KPL), KFS_SEL, KGS_SEL, KDS_SEL);
+
+	/*
+	 *  setup %gs for kernel
+	 */
+	xen_set_segment_base(SEGBASE_GS_KERNEL, (ulong_t)&cpus[0]);
+
+	/*
+	 * XX64 We should never dereference off "other gsbase" or
+	 * "fsbase".  So, we should arrange to point FSBASE and
+	 * KGSBASE somewhere truly awful e.g. point it at the last
+	 * valid address below the hole so that any attempts to index
+	 * off them cause an exception.
+	 *
+	 * For now, point it at 8G -- at least it should be unmapped
+	 * until some 64-bit processes run.
+	 */
+	addr = 0x200000000ul;
+	xen_set_segment_base(SEGBASE_FS, addr);
+	xen_set_segment_base(SEGBASE_GS_USER, addr);
+	xen_set_segment_base(SEGBASE_GS_USER_SEL, 0);
+
+	return (gdt0);
+}
+
+#else	/* __xpv */
+
 static user_desc_t *
 init_gdt(void)
 {
@@ -479,6 +713,8 @@
 	return (gdt0);
 }
 
+#endif	/* __xpv */
+
 #elif defined(__i386)
 
 static void
@@ -515,6 +751,8 @@
 	set_usegd(&gdt[GDT_UDATA], NULL, -1, SDT_MEMRWA, SEL_UPL, SDP_PAGES,
 	    SDP_OP32);
 
+#if !defined(__xpv)
+
 	/*
 	 * TSS for T_DBLFLT (double fault) handler
 	 */
@@ -527,6 +765,8 @@
 	set_syssegd((system_desc_t *)&gdt[GDT_KTSS], &ktss0,
 	    sizeof (ktss0) - 1, SDT_SYSTSS, SEL_KPL);
 
+#endif	/* !__xpv */
+
 	/*
 	 * %gs selector for kernel
 	 */
@@ -559,6 +799,59 @@
 	    SDP_BYTES, SDP_OP32);
 }
 
+#if defined(__xpv)
+
+static user_desc_t *
+init_gdt(void)
+{
+	uint64_t gdtpa;
+	ulong_t ma[1];		/* XXPV should be a memory_t */
+
+#if !defined(__lint)
+	/*
+	 * Our gdt is never larger than a single page.
+	 */
+	ASSERT((sizeof (*gdt0) * NGDT) <= PAGESIZE);
+#endif
+	gdt0 = (user_desc_t *)BOP_ALLOC(bootops, (caddr_t)GDT_VA,
+	    PAGESIZE, PAGESIZE);
+	if (gdt0 == NULL)
+		panic("init_gdt: BOP_ALLOC failed");
+	bzero(gdt0, PAGESIZE);
+
+	init_gdt_common(gdt0);
+	gdtpa = pfn_to_pa(va_to_pfn(gdt0));
+
+	/*
+	 * XXX Since we never invoke kmdb until after the kernel takes
+	 * over the descriptor tables why not have it use the kernel's
+	 * selectors?
+	 */
+	if (boothowto & RB_DEBUG) {
+		set_usegd(&gdt0[GDT_B32DATA], NULL, -1, SDT_MEMRWA, SEL_KPL,
+		    SDP_PAGES, SDP_OP32);
+		set_usegd(&gdt0[GDT_B32CODE], NULL, -1, SDT_MEMERA, SEL_KPL,
+		    SDP_PAGES, SDP_OP32);
+	}
+
+	/*
+	 * Clear write permission for page containing the gdt and install it.
+	 */
+	ma[0] = (ulong_t)(pa_to_ma(gdtpa) >> PAGESHIFT);
+	kbm_read_only((uintptr_t)gdt0, gdtpa);
+	xen_set_gdt(ma, NGDT);
+
+	/*
+	 * Reload the segment registers to use the new GDT
+	 */
+	load_segment_registers(
+	    KCS_SEL, KDS_SEL, KDS_SEL, KFS_SEL, KGS_SEL, KDS_SEL);
+
+	return (gdt0);
+}
+
+#else	/* __xpv */
+
 static user_desc_t *
 init_gdt(void)
 {
@@ -612,6 +905,7 @@
 	return (gdt0);
 }
 
+#endif	/* __xpv */
 #endif	/* __i386 */
 
 /*
@@ -631,71 +925,80 @@
 static void
 init_idt_common(gate_desc_t *idt)
 {
-	set_gatesegd(&idt[T_ZERODIV], &div0trap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_SGLSTP], &dbgtrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_NMIFLT], &nmiint, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_BPTFLT], &brktrap, KCS_SEL, SDT_SYSIGT, SEL_UPL);
-	set_gatesegd(&idt[T_OVFLW], &ovflotrap, KCS_SEL, SDT_SYSIGT, SEL_UPL);
+	set_gatesegd(&idt[T_ZERODIV], &div0trap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_SGLSTP], &dbgtrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_NMIFLT], &nmiint, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_BPTFLT], &brktrap, KCS_SEL, SDT_SYSIGT, TRP_UPL);
+	set_gatesegd(&idt[T_OVFLW], &ovflotrap, KCS_SEL, SDT_SYSIGT, TRP_UPL);
 	set_gatesegd(&idt[T_BOUNDFLT], &boundstrap, KCS_SEL, SDT_SYSIGT,
-	    SEL_KPL);
-	set_gatesegd(&idt[T_ILLINST], &invoptrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_NOEXTFLT], &ndptrap,  KCS_SEL, SDT_SYSIGT, SEL_KPL);
+	    TRP_KPL);
+	set_gatesegd(&idt[T_ILLINST], &invoptrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_NOEXTFLT], &ndptrap,  KCS_SEL, SDT_SYSIGT, TRP_KPL);
 
 	/*
 	 * double fault handler.
+	 *
+	 * Note that on the hypervisor a guest does not receive #df faults.
+	 * Instead a failsafe event is injected into the guest if its selectors
+	 * and/or stack is in a broken state. See xen_failsafe_callback.
 	 */
+#if !defined(__xpv)
 #if defined(__amd64)
-	set_gatesegd(&idt[T_DBLFLT], &syserrtrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+
+	set_gatesegd(&idt[T_DBLFLT], &syserrtrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+
 #elif defined(__i386)
+
 	/*
 	 * task gate required.
 	 */
-	set_gatesegd(&idt[T_DBLFLT], NULL, DFTSS_SEL, SDT_SYSTASKGT, SEL_KPL);
+	set_gatesegd(&idt[T_DBLFLT], NULL, DFTSS_SEL, SDT_SYSTASKGT, TRP_KPL);
 
 #endif	/* __i386 */
+#endif	/* !__xpv */
 
 	/*
 	 * T_EXTOVRFLT coprocessor-segment-overrun not supported.
 	 */
 
-	set_gatesegd(&idt[T_TSSFLT], &invtsstrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_SEGFLT], &segnptrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_STKFLT], &stktrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_GPFLT], &gptrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_PGFLT], &pftrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_EXTERRFLT], &ndperr, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+	set_gatesegd(&idt[T_TSSFLT], &invtsstrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_SEGFLT], &segnptrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_STKFLT], &stktrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_GPFLT], &gptrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_PGFLT], &pftrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_EXTERRFLT], &ndperr, KCS_SEL, SDT_SYSIGT, TRP_KPL);
 	set_gatesegd(&idt[T_ALIGNMENT], &achktrap, KCS_SEL, SDT_SYSIGT,
-	    SEL_KPL);
-	set_gatesegd(&idt[T_MCE], &mcetrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
-	set_gatesegd(&idt[T_SIMDFPE], &xmtrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+	    TRP_KPL);
+	set_gatesegd(&idt[T_MCE], &mcetrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
+	set_gatesegd(&idt[T_SIMDFPE], &xmtrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
 
 	/*
 	 * install "int80" handler at, well, 0x80.
 	 */
-	set_gatesegd(&idt0[T_INT80], &sys_int80, KCS_SEL, SDT_SYSIGT, SEL_UPL);
+	set_gatesegd(&idt0[T_INT80], &sys_int80, KCS_SEL, SDT_SYSIGT, TRP_UPL);
 
 	/*
 	 * install fast trap handler at 210.
 	 */
-	set_gatesegd(&idt[T_FASTTRAP], &fasttrap, KCS_SEL, SDT_SYSIGT, SEL_UPL);
+	set_gatesegd(&idt[T_FASTTRAP], &fasttrap, KCS_SEL, SDT_SYSIGT, TRP_UPL);
 
 	/*
 	 * System call handler.
 	 */
 #if defined(__amd64)
 	set_gatesegd(&idt[T_SYSCALLINT], &sys_syscall_int, KCS_SEL, SDT_SYSIGT,
-	    SEL_UPL);
+	    TRP_UPL);
 
 #elif defined(__i386)
 	set_gatesegd(&idt[T_SYSCALLINT], &sys_call, KCS_SEL, SDT_SYSIGT,
-	    SEL_UPL);
+	    TRP_UPL);
 #endif	/* __i386 */
 
 	/*
 	 * Install the DTrace interrupt handler for the pid provider.
 	 */
 	set_gatesegd(&idt[T_DTRACE_RET], &dtrace_ret, KCS_SEL,
-	    SDT_SYSIGT, SEL_UPL);
+	    SDT_SYSIGT, TRP_UPL);
 
 	/*
 	 * Prepare interposing descriptors for the branded "int80"
@@ -705,22 +1008,35 @@
 	brand_tbl[0].ih_inum = T_INT80;
 	brand_tbl[0].ih_default_desc = idt0[T_INT80];
 	set_gatesegd(&(brand_tbl[0].ih_interp_desc), &brand_sys_int80, KCS_SEL,
-	    SDT_SYSIGT, SEL_UPL);
+	    SDT_SYSIGT, TRP_UPL);
 
 	brand_tbl[1].ih_inum = T_SYSCALLINT;
 	brand_tbl[1].ih_default_desc = idt0[T_SYSCALLINT];
 
 #if defined(__amd64)
 	set_gatesegd(&(brand_tbl[1].ih_interp_desc), &brand_sys_syscall_int,
-	    KCS_SEL, SDT_SYSIGT, SEL_UPL);
+	    KCS_SEL, SDT_SYSIGT, TRP_UPL);
 #elif defined(__i386)
 	set_gatesegd(&(brand_tbl[1].ih_interp_desc), &brand_sys_call,
-	    KCS_SEL, SDT_SYSIGT, SEL_UPL);
+	    KCS_SEL, SDT_SYSIGT, TRP_UPL);
 #endif	/* __i386 */
 
 	brand_tbl[2].ih_inum = 0;
 }
 
+#if defined(__xpv)
+
+static void
+init_idt(gate_desc_t *idt)
+{
+	/*
+	 * currently nothing extra for the hypervisor
+	 */
+	init_idt_common(idt);
+}
+
+#else	/* __xpv */
+
 static void
 init_idt(gate_desc_t *idt)
 {
@@ -735,13 +1051,13 @@
 	 * unsupported and reserved.
 	 */
 	for (i = 0; i < NIDT; i++)
-		set_gatesegd(&idt[i], &resvtrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+		set_gatesegd(&idt[i], &resvtrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
 
 	/*
 	 * 20-31 reserved
 	 */
 	for (i = 20; i < 32; i++)
-		set_gatesegd(&idt[i], &invaltrap, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+		set_gatesegd(&idt[i], &invaltrap, KCS_SEL, SDT_SYSIGT, TRP_KPL);
 
 	/*
 	 * interrupts 32 - 255
@@ -752,7 +1068,7 @@
 		if (ivctptr == NULL)
 			panic("kobj_getsymvalue(%s) failed", ivctname);
 
-		set_gatesegd(&idt[i], ivctptr, KCS_SEL, SDT_SYSIGT, SEL_KPL);
+		set_gatesegd(&idt[i], ivctptr, KCS_SEL, SDT_SYSIGT, TRP_KPL);
 	}
 
 	/*
@@ -762,6 +1078,8 @@
 	init_idt_common(idt);
 }
 
+#endif	/* __xpv */
+
 /*
  * The kernel does not deal with LDTs unless a user explicitly creates
  * one. Under normal circumstances, the LDTR contains 0. Any process attempting
@@ -771,9 +1089,14 @@
 static void
 init_ldt(void)
 {
+#if defined(__xpv)
+	xen_set_ldt(NULL, 0);
+#else
 	wr_ldtr(0);
+#endif
 }
 
+#if !defined(__xpv)
 #if defined(__amd64)
 
 static void
@@ -850,6 +1173,50 @@
 }
 
 #endif	/* __i386 */
+#endif	/* !__xpv */
+
+#if defined(__xpv)
+
+void
+init_desctbls(void)
+{
+	uint_t vec;
+	user_desc_t *gdt;
+
+	/*
+	 * Setup and install our GDT.
+	 */
+	gdt = init_gdt();
+
+	/*
+	 * Store static pa of gdt to speed up pa_to_ma() translations
+	 * on lwp context switches.
+	 */
+	ASSERT(IS_P2ALIGNED((uintptr_t)gdt, PAGESIZE));
+	CPU->cpu_m.mcpu_gdt = gdt;
+	CPU->cpu_m.mcpu_gdtpa = pfn_to_pa(va_to_pfn(gdt));
+
+	/*
+	 * Setup and install our IDT.
+	 */
+	init_idt(&idt0[0]);
+	for (vec = 0; vec < NIDT; vec++)
+		xen_idt_write(&idt0[vec], vec);
+
+	CPU->cpu_m.mcpu_idt = idt0;
+
+	/*
+	 * set default kernel stack
+	 */
+	xen_stack_switch(KDS_SEL,
+	    (ulong_t)&dblfault_stack0[sizeof (dblfault_stack0)]);
+
+	xen_init_callbacks();
+
+	init_ldt();
+}
+
+#else	/* __xpv */
 
 void
 init_desctbls(void)
@@ -887,8 +1254,12 @@
 	init_ldt();
 }
 
+#endif	/* __xpv */
+
 /*
  * In the early kernel, we need to set up a simple GDT to run on.
+ *
+ * XXPV	Can dboot use this too?  See dboot_gdt.s
  */
 void
 init_boot_gdt(user_desc_t *bgdt)
@@ -914,16 +1285,39 @@
 void
 brand_interpositioning_enable(void)
 {
-	int i;
+	gate_desc_t	*idt = CPU->cpu_idt;
+	int 		i;
+
+	ASSERT(curthread->t_preempt != 0 || getpil() >= DISP_LEVEL);
 
-	for (i = 0; brand_tbl[i].ih_inum; i++)
-		CPU->cpu_idt[brand_tbl[i].ih_inum] =
-		    brand_tbl[i].ih_interp_desc;
+	for (i = 0; brand_tbl[i].ih_inum; i++) {
+		idt[brand_tbl[i].ih_inum] = brand_tbl[i].ih_interp_desc;
+#if defined(__xpv)
+		xen_idt_write(&idt[brand_tbl[i].ih_inum],
+		    brand_tbl[i].ih_inum);
+#endif
+	}
 
 #if defined(__amd64)
-	wrmsr(MSR_AMD_LSTAR, (uintptr_t)brand_sys_syscall);
-	wrmsr(MSR_AMD_CSTAR, (uintptr_t)brand_sys_syscall32);
+#if defined(__xpv)
+
+	/*
+	 * Currently the hypervisor only supports 64-bit syscalls via
+	 * syscall instruction. The 32-bit syscalls are handled by
+	 * interrupt gate above.
+	 */
+	xen_set_callback(brand_sys_syscall, CALLBACKTYPE_syscall,
+	    CALLBACKF_mask_events);
+
+#else
+
+	if (x86_feature & X86_ASYSC) {
+		wrmsr(MSR_AMD_LSTAR, (uintptr_t)brand_sys_syscall);
+		wrmsr(MSR_AMD_CSTAR, (uintptr_t)brand_sys_syscall32);
+	}
+
 #endif
+#endif	/* __amd64 */
 
 	if (x86_feature & X86_SEP)
 		wrmsr(MSR_INTC_SEP_EIP, (uintptr_t)brand_sys_sysenter);
@@ -937,16 +1331,37 @@
 void
 brand_interpositioning_disable(void)
 {
+	gate_desc_t	*idt = CPU->cpu_idt;
 	int i;
 
-	for (i = 0; brand_tbl[i].ih_inum; i++)
-		CPU->cpu_idt[brand_tbl[i].ih_inum] =
-		    brand_tbl[i].ih_default_desc;
+	ASSERT(curthread->t_preempt != 0 || getpil() >= DISP_LEVEL);
+
+	for (i = 0; brand_tbl[i].ih_inum; i++) {
+		idt[brand_tbl[i].ih_inum] = brand_tbl[i].ih_default_desc;
+#if defined(__xpv)
+		xen_idt_write(&idt[brand_tbl[i].ih_inum],
+		    brand_tbl[i].ih_inum);
+#endif
+	}
 
 #if defined(__amd64)
-	wrmsr(MSR_AMD_LSTAR, (uintptr_t)sys_syscall);
-	wrmsr(MSR_AMD_CSTAR, (uintptr_t)sys_syscall32);
+#if defined(__xpv)
+
+	/*
+	 * See comment above in brand_interpositioning_enable.
+	 */
+	xen_set_callback(sys_syscall, CALLBACKTYPE_syscall,
+	    CALLBACKF_mask_events);
+
+#else
+
+	if (x86_feature & X86_ASYSC) {
+		wrmsr(MSR_AMD_LSTAR, (uintptr_t)sys_syscall);
+		wrmsr(MSR_AMD_CSTAR, (uintptr_t)sys_syscall32);
+	}
+
 #endif
+#endif	/* __amd64 */
 
 	if (x86_feature & X86_SEP)
 		wrmsr(MSR_INTC_SEP_EIP, (uintptr_t)sys_sysenter);
--- a/usr/src/uts/intel/ia32/os/fpu.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/fpu.c	Tue Sep 18 15:46:43 2007 -0700
@@ -369,6 +369,7 @@
 		return (1); /* error */
 	}
 
+#if !defined(__xpv)	/* XXPV	Is this ifdef needed now? */
 	/*
 	 * A paranoid cross-check: for the SSE case, ensure that %cr4 is
 	 * configured to enable fully fledged (%xmm) fxsave/fxrestor on
@@ -377,6 +378,7 @@
 	ASSERT((fp_kind == __FP_SSE && (getcr4() & CR4_OSFXSR) == CR4_OSFXSR) ||
 	    (fp_kind != __FP_SSE &&
 	    (getcr4() & (CR4_OSXMMEXCPT|CR4_OSFXSR)) == 0));
+#endif
 
 	if (fp->fpu_flags & FPU_EN) {
 		/* case 2 */
@@ -402,6 +404,7 @@
 int
 fpextovrflt(struct regs *rp)
 {
+#if !defined(__xpv)		/* XXPV	Do we need this ifdef either */
 	ulong_t cur_cr0;
 
 	ASSERT(fp_kind != FP_NO);
@@ -409,6 +412,7 @@
 	cur_cr0 = getcr0();
 	fpinit();		/* initialize the FPU hardware */
 	setcr0(cur_cr0);
+#endif
 	sti();
 	return (1); 		/* error, send SIGSEGV signal to the thread */
 }
--- a/usr/src/uts/intel/ia32/os/sundep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/sundep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -90,6 +90,10 @@
 #include <sys/x86_archext.h>
 #include <sys/segments.h>
 #include <sys/ontrap.h>
+#include <sys/cpu.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 /*
  * Compare the version of boot that boot says it is against
@@ -294,8 +298,8 @@
 	rp->r_ps = PSL_USER;
 
 	/*
-	 * For 64-bit lwps, we allow null %fs selector value, and null
-	 * %gs selector to point anywhere in the address space using
+	 * For 64-bit lwps, we allow one magic %fs selector value, and one
+	 * magic %gs selector to point anywhere in the address space using
 	 * %fsbase and %gsbase behind the scenes.  libc uses %fs to point
 	 * at the ulwp_t structure.
 	 *
@@ -437,6 +441,7 @@
 #define	VALID_LWP_DESC(udp) ((udp)->usd_type == SDT_MEMRWA && \
 	    (udp)->usd_p == 1 && (udp)->usd_dpl == SEL_UPL)
 
+/*ARGSUSED*/
 void
 lwp_segregs_save(klwp_t *lwp)
 {
@@ -466,16 +471,18 @@
 	}
 #endif	/* __amd64 */
 
+#if !defined(__xpv)	/* XXPV not sure if we can re-read gdt? */
 	ASSERT(bcmp(&CPU->cpu_gdt[GDT_LWPFS], &lwp->lwp_pcb.pcb_fsdesc,
 	    sizeof (lwp->lwp_pcb.pcb_fsdesc)) == 0);
 	ASSERT(bcmp(&CPU->cpu_gdt[GDT_LWPGS], &lwp->lwp_pcb.pcb_gsdesc,
 	    sizeof (lwp->lwp_pcb.pcb_gsdesc)) == 0);
+#endif
 }
 
 #if defined(__amd64)
 
 /*
- * Update the segment registers with new values from the pcb
+ * Update the segment registers with new values from the pcb.
  *
  * We have to do this carefully, and in the following order,
  * in case any of the selectors points at a bogus descriptor.
@@ -495,6 +502,29 @@
 
 	if (!on_trap(&otd, OT_SEGMENT_ACCESS)) {
 
+#if defined(__xpv)
+		/*
+		 * On the hyervisor this is easy. The hypercall below will
+		 * swapgs and load %gs with the user selector. If the user
+		 * selector is bad the hypervisor will catch the fault and
+		 * load %gs with the null selector instead. Either way the
+		 * kernel's gsbase is not damaged.
+		 */
+		kgsbase = (ulong_t)CPU;
+		if (HYPERVISOR_set_segment_base(SEGBASE_GS_USER_SEL,
+		    pcb->pcb_gs) != 0) {
+				no_trap();
+				return (1);
+		}
+
+		rp->r_gs = pcb->pcb_gs;
+		ASSERT((cpu_t *)kgsbase == CPU);
+
+#else	/* __xpv */
+
+		/*
+		 * A little more complicated running native.
+		 */
 		kgsbase = (ulong_t)CPU;
 		__set_gs(pcb->pcb_gs);
 
@@ -505,7 +535,7 @@
 		 *
 		 * We've just mucked up the kernel's gsbase.  Oops.  In
 		 * particular we can't take any traps at all.  Make the newly
-		 * computed gsbase be the hidden gs via __swapgs , and fix
+		 * computed gsbase be the hidden gs via __swapgs, and fix
 		 * the kernel's gsbase back again. Later, when we return to
 		 * userland we'll swapgs again restoring gsbase just loaded
 		 * above.
@@ -518,6 +548,8 @@
 		 */
 		wrmsr(MSR_AMD_GSBASE, kgsbase);
 
+#endif	/* __xpv */
+
 		/*
 		 * Only override the descriptor base address if
 		 * r_gs == LWPGS_SEL or if r_gs == NULL. A note on
@@ -535,8 +567,17 @@
 		 * libc. This should be ripped out at some point in the
 		 * future.
 		 */
-		if (pcb->pcb_gs == LWPGS_SEL || pcb->pcb_gs == 0)
+		if (pcb->pcb_gs == LWPGS_SEL || pcb->pcb_gs == 0) {
+#if defined(__xpv)
+			if (HYPERVISOR_set_segment_base(SEGBASE_GS_USER,
+			    pcb->pcb_gsbase)) {
+				no_trap();
+				return (1);
+			}
+#else
 			wrmsr(MSR_AMD_KGSBASE, pcb->pcb_gsbase);
+#endif
+		}
 
 		__set_ds(pcb->pcb_ds);
 		rp->r_ds = pcb->pcb_ds;
@@ -550,8 +591,17 @@
 		/*
 		 * Same as for %gs
 		 */
-		if (pcb->pcb_fs == LWPFS_SEL || pcb->pcb_fs == 0)
+		if (pcb->pcb_fs == LWPFS_SEL || pcb->pcb_fs == 0) {
+#if defined(__xpv)
+			if (HYPERVISOR_set_segment_base(SEGBASE_FS,
+			    pcb->pcb_fsbase)) {
+				no_trap();
+				return (1);
+			}
+#else
 			wrmsr(MSR_AMD_FSBASE, pcb->pcb_fsbase);
+#endif
+		}
 
 	} else {
 		cli();
@@ -560,6 +610,52 @@
 	no_trap();
 	return (rc);
 }
+
+/*
+ * Make sure any stale selectors are cleared from the segment registers
+ * by putting KDS_SEL (the kernel's default %ds gdt selector) into them.
+ * This is necessary because the kernel itself does not use %es, %fs, nor
+ * %ds. (%cs and %ss are necessary, and are set up by the kernel - along with
+ * %gs - to point to the current cpu struct.) If we enter kmdb while in the
+ * kernel and resume with a stale ldt or brandz selector sitting there in a
+ * segment register, kmdb will #gp fault if the stale selector points to,
+ * for example, an ldt in the context of another process.
+ *
+ * WARNING: Intel and AMD chips behave differently when storing
+ * the null selector into %fs and %gs while in long mode. On AMD
+ * chips fsbase and gsbase are not cleared. But on Intel chips, storing
+ * a null selector into %fs or %gs has the side effect of clearing
+ * fsbase or gsbase. For that reason we use KDS_SEL, which has
+ * consistent behavor between AMD and Intel.
+ *
+ * Caller responsible for preventing cpu migration.
+ */
+void
+reset_sregs(void)
+{
+	ulong_t kgsbase = (ulong_t)CPU;
+
+	ASSERT(curthread->t_preempt != 0 || getpil() >= DISP_LEVEL);
+
+	cli();
+	__set_gs(KGS_SEL);
+
+	/*
+	 * restore kernel gsbase
+	 */
+#if defined(__xpv)
+	xen_set_segment_base(SEGBASE_GS_KERNEL, kgsbase);
+#else
+	wrmsr(MSR_AMD_GSBASE, kgsbase);
+#endif
+
+	sti();
+
+	__set_ds(KDS_SEL);
+	__set_es(0 | SEL_KPL);	/* selector RPL not ring 0 on hypervisor */
+	__set_fs(KFS_SEL);
+}
+
 #endif	/* __amd64 */
 
 #ifdef _SYSCALL32_IMPL
@@ -572,19 +668,17 @@
  * %cs) it will fault immediately. This also allows us to simplify
  * assertions and checks in the kernel.
  */
+
 static void
 gdt_ucode_model(model_t model)
 {
-	cpu_t *cpu;
-
 	kpreempt_disable();
-	cpu = CPU;
 	if (model == DATAMODEL_NATIVE) {
-		cpu->cpu_gdt[GDT_UCODE].usd_p = 1;
-		cpu->cpu_gdt[GDT_U32CODE].usd_p = 0;
+		gdt_update_usegd(GDT_UCODE, &ucs_on);
+		gdt_update_usegd(GDT_U32CODE, &ucs32_off);
 	} else {
-		cpu->cpu_gdt[GDT_U32CODE].usd_p = 1;
-		cpu->cpu_gdt[GDT_UCODE].usd_p = 0;
+		gdt_update_usegd(GDT_U32CODE, &ucs32_on);
+		gdt_update_usegd(GDT_UCODE, &ucs_off);
 	}
 	kpreempt_enable();
 }
@@ -599,7 +693,6 @@
 lwp_segregs_restore(klwp_t *lwp)
 {
 	pcb_t *pcb = &lwp->lwp_pcb;
-	cpu_t *cpu = CPU;
 
 	ASSERT(VALID_LWP_DESC(&pcb->pcb_fsdesc));
 	ASSERT(VALID_LWP_DESC(&pcb->pcb_gsdesc));
@@ -608,8 +701,8 @@
 	gdt_ucode_model(DATAMODEL_NATIVE);
 #endif
 
-	cpu->cpu_gdt[GDT_LWPFS] = pcb->pcb_fsdesc;
-	cpu->cpu_gdt[GDT_LWPGS] = pcb->pcb_gsdesc;
+	gdt_update_usegd(GDT_LWPFS, &pcb->pcb_fsdesc);
+	gdt_update_usegd(GDT_LWPGS, &pcb->pcb_gsdesc);
 
 }
 
@@ -626,8 +719,8 @@
 	ASSERT(VALID_LWP_DESC(&lwp->lwp_pcb.pcb_gsdesc));
 
 	gdt_ucode_model(DATAMODEL_ILP32);
-	cpu->cpu_gdt[GDT_LWPFS] = pcb->pcb_fsdesc;
-	cpu->cpu_gdt[GDT_LWPGS] = pcb->pcb_gsdesc;
+	gdt_update_usegd(GDT_LWPFS, &pcb->pcb_fsdesc);
+	gdt_update_usegd(GDT_LWPGS, &pcb->pcb_gsdesc);
 }
 
 #endif	/* _SYSCALL32_IMPL */
--- a/usr/src/uts/intel/ia32/os/sysi86.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/sysi86.c	Tue Sep 18 15:46:43 2007 -0700
@@ -63,10 +63,15 @@
 #include <sys/cmn_err.h>
 #include <sys/segments.h>
 #include <sys/clock.h>
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#include <sys/note.h>
+#endif
 
-static void setup_ldt(proc_t *pp);
-static void *ldt_map(proc_t *pp, uint_t seli);
-static void ldt_free(proc_t *pp);
+static void ldt_alloc(proc_t *, uint_t);
+static void ldt_free(proc_t *);
+static void ldt_dup(proc_t *, proc_t *);
+static void ldt_grow(proc_t *, uint_t);
 
 /*
  * sysi86 System Call
@@ -100,7 +105,16 @@
 			if (newpl > oldpl && (error =
 			    secpolicy_sys_config(CRED(), B_FALSE)) != 0)
 				return (set_errno(error));
+#if defined(__xpv)
+			kpreempt_disable();
+			installctx(curthread, NULL, xen_disable_user_iopl,
+			    xen_enable_user_iopl, NULL, NULL,
+			    xen_disable_user_iopl, NULL);
+			xen_enable_user_iopl();
+			kpreempt_enable();
+#else
 			rp->r_ps ^= oldpl ^ newpl;
+#endif
 		} else
 			error = EINVAL;
 		break;
@@ -265,6 +279,8 @@
 ssd_to_usd(struct ssd *ssd, user_desc_t *usd)
 {
 
+	ASSERT(bcmp(usd, &null_udesc, sizeof (*usd)) == 0);
+
 	USEGD_SETBASE(usd, ssd->bo);
 	USEGD_SETLIMIT(usd, ssd->ls);
 
@@ -279,28 +295,37 @@
 	ASSERT(usd->usd_dpl == SEL_UPL);
 
 	/*
+	 * 64-bit code selectors are never allowed in the LDT.
+	 * Reserved bit is always 0 on 32-bit sytems.
+	 */
+#if defined(__amd64)
+	usd->usd_long = 0;
+#else
+	usd->usd_reserved = 0;
+#endif
+
+	/*
 	 * set avl, DB and granularity bits.
 	 */
 	usd->usd_avl = ssd->acc2;
-
-#if defined(__amd64)
-	usd->usd_long = ssd->acc2 >> 1;
-#else
-	usd->usd_reserved = ssd->acc2 >> 1;
-#endif
-
 	usd->usd_def32 = ssd->acc2 >> (1 + 1);
 	usd->usd_gran = ssd->acc2 >> (1 + 1 + 1);
 }
 
+
+#if defined(__i386)
+
 static void
 ssd_to_sgd(struct ssd *ssd, gate_desc_t *sgd)
 {
 
+	ASSERT(bcmp(sgd, &null_sdesc, sizeof (*sgd)) == 0);
+
 	sgd->sgd_looffset = ssd->bo;
 	sgd->sgd_hioffset = ssd->bo >> 16;
 
 	sgd->sgd_selector = ssd->ls;
+
 	/*
 	 * set type, dpl and present bits.
 	 */
@@ -309,22 +334,24 @@
 	sgd->sgd_p = ssd->acc1 >> 7;
 	ASSERT(sgd->sgd_type == SDT_SYSCGT);
 	ASSERT(sgd->sgd_dpl == SEL_UPL);
+	sgd->sgd_stkcpy = 0;
+}
 
-#if defined(__i386)	/* reserved, ignored in amd64 */
-	sgd->sgd_stkcpy = 0;
-#endif
-}
+#endif	/* __i386 */
 
 /*
  * Load LDT register with the current process's LDT.
  */
-void
+static void
 ldt_load(void)
 {
-	/*
-	 */
+#if defined(__xpv)
+	xen_set_ldt(get_ssd_base(&curproc->p_ldt_desc),
+	    curproc->p_ldtlimit + 1);
+#else
 	*((system_desc_t *)&CPU->cpu_gdt[GDT_LDT]) = curproc->p_ldt_desc;
 	wr_ldtr(ULDT_SEL);
+#endif
 }
 
 /*
@@ -334,8 +361,12 @@
 void
 ldt_unload(void)
 {
-	CPU->cpu_gdt[GDT_LDT] = zero_udesc;
+#if defined(__xpv)
+	xen_set_ldt(NULL, 0);
+#else
+	*((system_desc_t *)&CPU->cpu_gdt[GDT_LDT]) = null_sdesc;
 	wr_ldtr(0);
+#endif
 }
 
 /*ARGSUSED*/
@@ -363,7 +394,7 @@
 	 *	the context of the wine process and do not have our
 	 *	ldtr register pointing to the private ldt.
 	 */
-	clr_ldt_sregs();
+	reset_sregs();
 #endif
 
 	ldt_unload();
@@ -453,8 +484,10 @@
 setdscr(struct ssd *ssd)
 {
 	ushort_t seli; 		/* selector index */
-	user_desc_t *dscrp;	/* descriptor pointer */
+	user_desc_t *ldp;	/* descriptor pointer */
+	user_desc_t ndesc;	/* new descriptor */
 	proc_t	*pp = ttoproc(curthread);
+	int	rc = 0;
 
 	/*
 	 * LDT segments: executable and data at DPL 3 only.
@@ -469,6 +502,7 @@
 	if (seli >= MAXNLDT || seli < LDT_UDBASE)
 		return (EINVAL);
 
+	ndesc = null_udesc;
 	mutex_enter(&pp->p_ldtlock);
 
 	/*
@@ -476,8 +510,7 @@
 	 * private LDT for it.
 	 */
 	if (pp->p_ldt == NULL) {
-		kpreempt_disable();
-		setup_ldt(pp);
+		ldt_alloc(pp, seli);
 
 		/*
 		 * Now that this process has a private LDT, the use of
@@ -492,23 +525,22 @@
 		 * thread to take the slow path (which doesn't make use
 		 * of sysenter or sysexit) back out.
 		 */
-
+		kpreempt_disable();
 		ldt_installctx(pp, NULL);
-
 		cpu_fast_syscall_disable(NULL);
-
 		ASSERT(curthread->t_post_sys != 0);
-		wr_ldtr(ULDT_SEL);
 		kpreempt_enable();
-	}
+
+	} else if (seli > pp->p_ldtlimit) {
 
-	if (ldt_map(pp, seli) == NULL) {
-		mutex_exit(&pp->p_ldtlock);
-		return (ENOMEM);
+		/*
+		 * Increase size of ldt to include seli.
+		 */
+		ldt_grow(pp, seli);
 	}
 
 	ASSERT(seli <= pp->p_ldtlimit);
-	dscrp = &pp->p_ldt[seli];
+	ldp = &pp->p_ldt[seli];
 
 	/*
 	 * On the 64-bit kernel, this is where things get more subtle.
@@ -604,9 +636,9 @@
 	 * If acc1 is zero, clear the descriptor (including the 'present' bit)
 	 */
 	if (ssd->acc1 == 0) {
-		bzero(dscrp, sizeof (*dscrp));
+		rc  = ldt_update_segd(ldp, &null_udesc);
 		mutex_exit(&pp->p_ldtlock);
-		return (0);
+		return (rc);
 	}
 
 	/*
@@ -634,188 +666,223 @@
 	 * Set up a code or data user segment descriptor.
 	 */
 	if (SI86SSD_ISUSEG(ssd)) {
-		ssd_to_usd(ssd, dscrp);
+		ssd_to_usd(ssd, &ndesc);
+		rc = ldt_update_segd(ldp, &ndesc);
 		mutex_exit(&pp->p_ldtlock);
-		return (0);
+		return (rc);
 	}
 
+#if defined(__i386)
 	/*
-	 * Allow a call gate only if the destination is in the LDT.
+	 * Allow a call gate only if the destination is in the LDT
+	 * and the system is running in 32-bit legacy mode.
+	 *
+	 * In long mode 32-bit call gates are redefined as 64-bit call
+	 * gates and the hw enforces that the target code selector
+	 * of the call gate must be 64-bit selector. A #gp fault is
+	 * generated if otherwise. Since we do not allow 32-bit processes
+	 * to switch themselves to 64-bits we never allow call gates
+	 * on 64-bit system system.
 	 */
 	if (SI86SSD_TYPE(ssd) == SDT_SYSCGT && SELISLDT(ssd->ls)) {
-		ssd_to_sgd(ssd, (gate_desc_t *)dscrp);
+
+
+		ssd_to_sgd(ssd, (gate_desc_t *)&ndesc);
+		rc = ldt_update_segd(ldp, &ndesc);
 		mutex_exit(&pp->p_ldtlock);
-		return (0);
+		return (rc);
 	}
+#endif	/* __i386 */
 
 	mutex_exit(&pp->p_ldtlock);
 	return (EINVAL);
 }
 
 /*
- * Allocate a private LDT for this process and initialize it with the
- * default entries.
+ * Allocate new LDT for process just large enough to contain seli.
+ * Note we allocate and grow LDT in PAGESIZE chunks. We do this
+ * to simplify the implementation and because on the hypervisor it's
+ * required, since the LDT must live on pages that have PROT_WRITE
+ * removed and which are given to the hypervisor.
  */
 static void
-setup_ldt(proc_t *pp)
+ldt_alloc(proc_t *pp, uint_t seli)
 {
-	user_desc_t *ldtp;	/* descriptor pointer */
-	pgcnt_t npages = btopr(MAXNLDT * sizeof (user_desc_t));
+	user_desc_t	*ldt;
+	size_t		ldtsz;
+	uint_t		nsels;
 
-	/*
-	 * Allocate maximum virtual space we need for this LDT.
-	 */
-	ldtp = vmem_alloc(heap_arena, ptob(npages), VM_SLEEP);
+	ASSERT(MUTEX_HELD(&pp->p_ldtlock));
+	ASSERT(pp->p_ldt == NULL);
+	ASSERT(pp->p_ldtlimit == 0);
 
 	/*
-	 * Allocate the minimum number of physical pages for LDT.
+	 * Allocate new LDT just large enough to contain seli.
 	 */
-	(void) segkmem_xalloc(NULL, ldtp, MINNLDT * sizeof (user_desc_t),
-	    VM_SLEEP, 0, segkmem_page_create, NULL);
+	ldtsz = P2ROUNDUP((seli + 1) * sizeof (user_desc_t), PAGESIZE);
+	nsels = ldtsz / sizeof (user_desc_t);
+	ASSERT(nsels >= MINNLDT && nsels <= MAXNLDT);
 
-	bzero(ldtp, ptob(btopr(MINNLDT * sizeof (user_desc_t))));
-
-	kpreempt_disable();
+	ldt = kmem_zalloc(ldtsz, KM_SLEEP);
+	ASSERT(IS_P2ALIGNED(ldt, PAGESIZE));
 
-	/* Update proc structure. XXX - need any locks here??? */
-
-	set_syssegd(&pp->p_ldt_desc, ldtp, MINNLDT * sizeof (user_desc_t) - 1,
-	    SDT_SYSLDT, SEL_KPL);
+#if defined(__xpv)
+	if (xen_ldt_setprot(ldt, ldtsz, PROT_READ))
+		panic("ldt_alloc:xen_ldt_setprot(PROT_READ) failed");
+#endif
 
-	pp->p_ldtlimit = MINNLDT - 1;
-	pp->p_ldt = ldtp;
-	if (pp == curproc)
-		*((system_desc_t *)&CPU->cpu_gdt[GDT_LDT]) = pp->p_ldt_desc;
+	pp->p_ldt = ldt;
+	pp->p_ldtlimit = nsels - 1;
+	set_syssegd(&pp->p_ldt_desc, ldt, ldtsz - 1, SDT_SYSLDT, SEL_KPL);
 
-	kpreempt_enable();
+	if (pp == curproc) {
+		kpreempt_disable();
+		ldt_load();
+		kpreempt_enable();
+	}
 }
 
-/*
- * Map the page corresponding to the selector entry. If the page is
- * already mapped then it simply returns with the pointer to the entry.
- * Otherwise it allocates a physical page for it and returns the pointer
- * to the entry.  Returns 0 for errors.
- */
-static void *
-ldt_map(proc_t *pp, uint_t seli)
-{
-	caddr_t ent0_addr = (caddr_t)&pp->p_ldt[0];
-	caddr_t ent_addr = (caddr_t)&pp->p_ldt[seli];
-	volatile caddr_t page = (caddr_t)((uintptr_t)ent0_addr & (~PAGEOFFSET));
-	caddr_t epage = (caddr_t)((uintptr_t)ent_addr & (~PAGEOFFSET));
-	on_trap_data_t otd;
-
-	ASSERT(pp->p_ldt != NULL);
-
-	if (seli <= pp->p_ldtlimit)
-		return (ent_addr);
-
-	/*
-	 * We are increasing the size of the process's LDT.
-	 * Make sure this and all intervening pages are mapped.
-	 */
-	while (page <= epage) {
-		if (!on_trap(&otd, OT_DATA_ACCESS))
-			(void) *(volatile int *)page;	/* peek at the page */
-		else {		/* Allocate a physical page */
-			(void) segkmem_xalloc(NULL, page, PAGESIZE, VM_SLEEP, 0,
-			    segkmem_page_create, NULL);
-			bzero(page, PAGESIZE);
-		}
-		no_trap();
-		page += PAGESIZE;
-	}
-
-	/* XXX - need any locks to update proc_t or gdt ??? */
-
-	ASSERT(curproc == pp);
-
-	kpreempt_disable();
-	pp->p_ldtlimit = seli;
-	SYSSEGD_SETLIMIT(&pp->p_ldt_desc, (seli+1) * sizeof (user_desc_t) -1);
-
-	ldt_load();
-	kpreempt_enable();
-
-	return (ent_addr);
-}
-
-/*
- * Free up the kernel memory used for LDT of this process.
- */
 static void
 ldt_free(proc_t *pp)
 {
-	on_trap_data_t otd;
-	caddr_t start, end;
-	volatile caddr_t addr;
+	user_desc_t	*ldt;
+	size_t		ldtsz;
 
 	ASSERT(pp->p_ldt != NULL);
 
 	mutex_enter(&pp->p_ldtlock);
-	start = (caddr_t)pp->p_ldt; /* beginning of the LDT */
-	end = start + (pp->p_ldtlimit * sizeof (user_desc_t));
+	ldt = pp->p_ldt;
+	ldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t);
+
+	ASSERT(IS_P2ALIGNED(ldtsz, PAGESIZE));
 
-	/* Free the physical page(s) used for mapping LDT */
-	for (addr = start; addr <= end; addr += PAGESIZE) {
-		if (!on_trap(&otd, OT_DATA_ACCESS)) {
-			/* peek at the address */
-			(void) *(volatile int *)addr;
-			segkmem_free(NULL, addr, PAGESIZE);
-		}
-	}
-	no_trap();
+	pp->p_ldt = NULL;
+	pp->p_ldtlimit = 0;
+	pp->p_ldt_desc = null_sdesc;
+	mutex_exit(&pp->p_ldtlock);
 
-	/* Free up the virtual address space used for this LDT */
-	vmem_free(heap_arena, pp->p_ldt,
-	    ptob(btopr(MAXNLDT * sizeof (user_desc_t))));
-	kpreempt_disable();
-	pp->p_ldt = NULL;
-	pp->p_ldt_desc = zero_sdesc;
-	pp->p_ldtlimit = 0;
+	if (pp == curproc) {
+		kpreempt_disable();
+		ldt_unload();
+		kpreempt_enable();
+	}
 
-	if (pp == curproc)
-		ldt_unload();
-	kpreempt_enable();
-	mutex_exit(&pp->p_ldtlock);
+#if defined(__xpv)
+	/*
+	 * We are not allowed to make the ldt writable until after
+	 * we tell the hypervisor to unload it.
+	 */
+	if (xen_ldt_setprot(ldt, ldtsz, PROT_READ | PROT_WRITE))
+		panic("ldt_free:xen_ldt_setprot(PROT_READ|PROT_WRITE) failed");
+#endif
+
+	kmem_free(ldt, ldtsz);
 }
 
 /*
  * On fork copy new ldt for child.
  */
-void
+static void
 ldt_dup(proc_t *pp, proc_t *cp)
 {
-	on_trap_data_t otd;
-	caddr_t start, end;
-	volatile caddr_t addr, caddr;
-	int	minsize;
+	size_t	ldtsz;
+
+	ASSERT(pp->p_ldt != NULL);
+	ASSERT(cp != curproc);
 
-	ASSERT(pp->p_ldt);
+	/*
+	 * I assume the parent's ldt can't increase since we're in a fork.
+	 */
+	mutex_enter(&pp->p_ldtlock);
+	mutex_enter(&cp->p_ldtlock);
+
+	ldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t);
+
+	ldt_alloc(cp, pp->p_ldtlimit);
 
-	setup_ldt(cp);
+#if defined(__xpv)
+	/*
+	 * Make child's ldt writable so it can be copied into from
+	 * parent's ldt. This works since ldt_alloc above did not load
+	 * the ldt since its for the child process. If we tried to make
+	 * an LDT writable that is loaded in hw the setprot operation
+	 * would fail.
+	 */
+	if (xen_ldt_setprot(cp->p_ldt, ldtsz, PROT_READ | PROT_WRITE))
+		panic("ldt_dup:xen_ldt_setprot(PROT_READ|PROT_WRITE) failed");
+#endif
+
+	bcopy(pp->p_ldt, cp->p_ldt, ldtsz);
 
-	mutex_enter(&pp->p_ldtlock);
-	cp->p_ldtlimit = pp->p_ldtlimit;
-	SYSSEGD_SETLIMIT(&cp->p_ldt_desc,
-	    (pp->p_ldtlimit+1) * sizeof (user_desc_t) -1);
-	start = (caddr_t)pp->p_ldt; /* beginning of the LDT */
-	end = start + (pp->p_ldtlimit * sizeof (user_desc_t));
-	caddr = (caddr_t)cp->p_ldt; /* child LDT start */
+#if defined(__xpv)
+	if (xen_ldt_setprot(cp->p_ldt, ldtsz, PROT_READ))
+		panic("ldt_dup:xen_ldt_setprot(PROT_READ) failed");
+#endif
+	mutex_exit(&cp->p_ldtlock);
+	mutex_exit(&pp->p_ldtlock);
+
+}
+
+static void
+ldt_grow(proc_t *pp, uint_t seli)
+{
+	user_desc_t	*oldt, *nldt;
+	uint_t		nsels;
+	size_t		oldtsz, nldtsz;
+
+	ASSERT(MUTEX_HELD(&pp->p_ldtlock));
+	ASSERT(pp->p_ldt != NULL);
+	ASSERT(pp->p_ldtlimit != 0);
 
-	minsize = ((MINNLDT * sizeof (user_desc_t)) + PAGESIZE) & ~PAGEOFFSET;
-	/* Walk thru the physical page(s) used for parent's LDT */
-	for (addr = start; addr <= end; addr += PAGESIZE, caddr += PAGESIZE) {
-		if (!on_trap(&otd, OT_DATA_ACCESS)) {
-			(void) *(volatile int *)addr; /* peek at the address */
-			/* allocate a page if necessary */
-			if (caddr >= ((caddr_t)cp->p_ldt + minsize)) {
-				(void) segkmem_xalloc(NULL, caddr, PAGESIZE,
-				    VM_SLEEP, 0, segkmem_page_create, NULL);
-			}
-			bcopy(addr, caddr, PAGESIZE);
-		}
-	}
-	no_trap();
-	mutex_exit(&pp->p_ldtlock);
+	/*
+	 * Allocate larger LDT just large enough to contain seli.
+	 */
+	nldtsz = P2ROUNDUP((seli + 1) * sizeof (user_desc_t), PAGESIZE);
+	nsels = nldtsz / sizeof (user_desc_t);
+	ASSERT(nsels >= MINNLDT && nsels <= MAXNLDT);
+	ASSERT(nsels > pp->p_ldtlimit);
+
+	oldt = pp->p_ldt;
+	oldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t);
+
+	nldt = kmem_zalloc(nldtsz, KM_SLEEP);
+	ASSERT(IS_P2ALIGNED(nldt, PAGESIZE));
+
+	bcopy(oldt, nldt, oldtsz);
+
+	/*
+	 * unload old ldt.
+	 */
+	kpreempt_disable();
+	ldt_unload();
+	kpreempt_enable();
+
+#if defined(__xpv)
+
+	/*
+	 * Make old ldt writable and new ldt read only.
+	 */
+	if (xen_ldt_setprot(oldt, oldtsz, PROT_READ | PROT_WRITE))
+		panic("ldt_grow:xen_ldt_setprot(PROT_READ|PROT_WRITE) failed");
+
+	if (xen_ldt_setprot(nldt, nldtsz, PROT_READ))
+		panic("ldt_grow:xen_ldt_setprot(PROT_READ) failed");
+#endif
+
+	pp->p_ldt = nldt;
+	pp->p_ldtlimit = nsels - 1;
+
+	/*
+	 * write new ldt segment descriptor.
+	 */
+	set_syssegd(&pp->p_ldt_desc, nldt, nldtsz - 1, SDT_SYSLDT, SEL_KPL);
+
+	/*
+	 * load the new ldt.
+	 */
+	kpreempt_disable();
+	ldt_load();
+	kpreempt_enable();
+
+	kmem_free(oldt, oldtsz);
 }
--- a/usr/src/uts/intel/ia32/sys/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -33,6 +33,7 @@
 	asm_linkage.h	\
 	kdi_regs.h	\
 	machtypes.h	\
+	privmregs.h	\
 	privregs.h	\
 	psw.h		\
 	pte.h		\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/ia32/sys/privmregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,67 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_IA32_SYS_PRIVMREGS_H
+#define	_IA32_SYS_PRIVMREGS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(__i386)
+#error	"non-i386 code depends on i386 privileged header!"
+#endif
+
+#ifndef _ASM
+
+#define	PM_GREGS (1 << 0)
+#define	PM_CRREGS (1 << 1)
+#define	PM_DRREGS (1 << 2)
+
+/*
+ * This structure is intended to represent a complete machine state for a CPU,
+ * when that information is available.  It is only for use internally between
+ * KMDB and the kernel, or within MDB.  Note that this isn't yet finished.
+ */
+typedef struct privmregs {
+	ulong_t pm_flags;
+	/* general registers */
+	struct regs pm_gregs;
+	/* cr0-8 */
+	ulong_t pm_cr[8];
+	/* dr0-8 */
+	ulong_t pm_dr[8];
+} privmregs_t;
+
+#endif /* !_ASM */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !_IA32_SYS_PRIVMREGS_H */
--- a/usr/src/uts/intel/ia32/sys/traptrace.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/sys/traptrace.h	Tue Sep 18 15:46:43 2007 -0700
@@ -173,8 +173,14 @@
  * Note that this macro defines label "9".
  * Also captures curthread on exit of loop.
  */
+#if defined(__xpv)
+#define	__GETCR2(_mov, reg)			\
+	_mov	%gs:CPU_VCPU_INFO, reg;		\
+	_mov	VCPU_INFO_ARCH_CR2(reg), reg
+#else
 #define	__GETCR2(_mov, reg)			\
 	_mov	%cr2, reg
+#endif
 
 #if defined(__amd64)
 
--- a/usr/src/uts/intel/ia32/syscall/lwp_private.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/ia32/syscall/lwp_private.c	Tue Sep 18 15:46:43 2007 -0700
@@ -94,7 +94,8 @@
 			rval = pcb->pcb_fs = LWPFS_SEL;
 		}
 		if (thisthread)
-			CPU->cpu_gdt[GDT_LWPFS] = pcb->pcb_fsdesc;
+			gdt_update_usegd(GDT_LWPFS, &pcb->pcb_fsdesc);
+
 		pcb->pcb_fsbase = base;
 		break;
 	case _LWP_GSBASE:
@@ -108,7 +109,8 @@
 			rval = pcb->pcb_gs = LWPGS_SEL;
 		}
 		if (thisthread)
-			CPU->cpu_gdt[GDT_LWPGS] = pcb->pcb_gsdesc;
+			gdt_update_usegd(GDT_LWPGS, &pcb->pcb_gsdesc);
+
 		pcb->pcb_gsbase = base;
 		break;
 	default:
@@ -128,14 +130,16 @@
 		set_usegd(&pcb->pcb_fsdesc, (void *)base, -1,
 		    SDT_MEMRWA, SEL_UPL, SDP_PAGES, SDP_OP32);
 		if (thisthread)
-			CPU->cpu_gdt[GDT_LWPFS] = pcb->pcb_fsdesc;
+			gdt_update_usegd(GDT_LWPFS, &pcb->pcb_fsdesc);
+
 		rval = rp->r_fs = LWPFS_SEL;
 		break;
 	case _LWP_GSBASE:
 		set_usegd(&pcb->pcb_gsdesc, (void *)base, -1,
 		    SDT_MEMRWA, SEL_UPL, SDP_PAGES, SDP_OP32);
 		if (thisthread)
-			CPU->cpu_gdt[GDT_LWPGS] = pcb->pcb_gsdesc;
+			gdt_update_usegd(GDT_LWPGS, &pcb->pcb_gsdesc);
+
 		rval = rp->r_gs = LWPGS_SEL;
 		break;
 	default:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/io/cpunex.c	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,197 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+/*
+ * CPU nexus driver
+ */
+
+#include	<sys/types.h>
+#include	<sys/param.h>
+#include	<sys/conf.h>
+#include	<sys/devops.h>
+#include	<sys/modctl.h>
+#include	<sys/cmn_err.h>
+#include	<sys/ddi.h>
+#include	<sys/sunddi.h>
+#include	<sys/sunndi.h>
+
+static int cpunex_attach(dev_info_t *, ddi_attach_cmd_t);
+static int cpunex_detach(dev_info_t *, ddi_detach_cmd_t);
+static int cpunex_bus_ctl(dev_info_t *, dev_info_t *, ddi_ctl_enum_t,
+    void *, void *);
+
+static struct bus_ops cpunex_bus_ops = {
+	BUSO_REV,
+	nullbusmap,
+	NULL,
+	NULL,
+	NULL,
+	i_ddi_map_fault,
+	ddi_no_dma_map,
+	ddi_no_dma_allochdl,
+	ddi_no_dma_freehdl,
+	ddi_no_dma_bindhdl,
+	ddi_no_dma_unbindhdl,
+	ddi_no_dma_flush,
+	ddi_no_dma_win,
+	ddi_no_dma_mctl,
+	cpunex_bus_ctl,
+	ddi_bus_prop_op,
+};
+
+static struct dev_ops cpunex_ops = {
+	DEVO_REV,
+	0,
+	ddi_no_info,
+	nulldev,
+	nulldev,
+	cpunex_attach,
+	cpunex_detach,
+	nodev,
+	NULL,
+	&cpunex_bus_ops,
+	NULL
+};
+
+static struct modldrv modldrv = {
+	&mod_driverops,
+	"cpu nexus driver v1.0",
+	&cpunex_ops
+};
+
+static struct modlinkage modlinkage = {
+	MODREV_1,
+	&modldrv,
+	NULL
+};
+
+/*
+ * cpunex_bus_ctl()
+ *    This routine implements nexus bus ctl operations. Of importance are
+ *    DDI_CTLOPS_REPORTDEV, DDI_CTLOPS_INITCHILD, DDI_CTLOPS_UNINITCHILD
+ *    and DDI_CTLOPS_POWER. For DDI_CTLOPS_INITCHILD, it tries to lookup
+ *    reg property on the child node and builds and sets the name.
+ */
+static int
+cpunex_bus_ctl(dev_info_t *dip, dev_info_t *rdip, ddi_ctl_enum_t op, void *arg,
+    void *result)
+{
+	switch (op) {
+		case DDI_CTLOPS_REPORTDEV: {
+			dev_info_t *pdip = ddi_get_parent(rdip);
+			cmn_err(CE_CONT, "?%s%d at %s%d",
+			    ddi_node_name(rdip), ddi_get_instance(rdip),
+			    ddi_node_name(pdip), ddi_get_instance(pdip));
+			return (DDI_SUCCESS);
+		}
+
+		case DDI_CTLOPS_INITCHILD: {
+			dev_info_t *cdip = (dev_info_t *)arg;
+			int i;
+			char caddr[MAXNAMELEN];
+
+			i = ddi_prop_get_int(DDI_DEV_T_ANY, cdip,
+			    DDI_PROP_DONTPASS, "reg", -1);
+
+			if (i == -1) {
+				cmn_err(CE_NOTE, "!%s(%d): \"reg\" property "
+				    "not found", ddi_node_name(cdip),
+				    ddi_get_instance(cdip));
+				return (DDI_NOT_WELL_FORMED);
+			}
+
+			(void) sprintf(caddr, "%d", i);
+			ddi_set_name_addr(cdip, caddr);
+
+			return (DDI_SUCCESS);
+		}
+
+		case DDI_CTLOPS_UNINITCHILD: {
+			ddi_prop_remove_all((dev_info_t *)arg);
+			ddi_set_name_addr((dev_info_t *)arg, NULL);
+			return (DDI_SUCCESS);
+		}
+
+		default: {
+			return (ddi_ctlops(dip, rdip, op, arg, result));
+		}
+	}
+}
+
+/*ARGSUSED*/
+static int
+cpunex_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
+{
+	switch (cmd) {
+	case DDI_ATTACH:
+	case DDI_RESUME:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+/*ARGSUSED*/
+static int
+cpunex_detach(dev_info_t *dip, ddi_detach_cmd_t cmd)
+{
+	switch (cmd) {
+	case DDI_DETACH:
+	case DDI_SUSPEND:
+		break;
+	default:
+		return (DDI_FAILURE);
+	}
+
+	return (DDI_SUCCESS);
+}
+
+int
+_init(void)
+{
+	int error;
+
+	error = mod_install(&modlinkage);
+	return (error);
+}
+
+int
+_fini(void)
+{
+	int error;
+
+	error = mod_remove(&modlinkage);
+	return (error);
+}
+
+int
+_info(struct modinfo *modinfop)
+{
+	return (mod_info(&modlinkage, modinfop));
+}
--- a/usr/src/uts/intel/io/i8254.c	Mon Sep 17 23:00:44 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*	Copyright (c) 1990, 1991 UNIX System Laboratories, Inc.	*/
-/*	Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T	*/
-/*	  All Rights Reserved  	*/
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include <sys/types.h>
-#include <sys/dl.h>
-#include <sys/param.h>
-#include <sys/pit.h>
-#include <sys/inline.h>
-#include <sys/machlock.h>
-#include <sys/avintr.h>
-#include <sys/smp_impldefs.h>
-#include <sys/archsystm.h>
-#include <sys/systm.h>
-#include <sys/machsystm.h>
-
-#define	PIT_COUNTDOWN	(PIT_READMODE | PIT_NDIVMODE)
-#define	MICROCOUNT	0x2000
-
-void
-microfind(void)
-{
-	uint64_t max, count = MICROCOUNT;
-
-	/*
-	 * The algorithm tries to guess a loop count for tenmicrosec such
-	 * that found will be 0xf000 PIT counts, but because it is only a
-	 * rough guess there is no guarantee that tenmicrosec will take
-	 * exactly 0xf000 PIT counts. min is set initially to 0xe000 and
-	 * represents the number of PIT counts that must elapse in
-	 * tenmicrosec for microfind to calculate the correct loop count for
-	 * tenmicrosec. The algorith will successively set count to better
-	 * approximations until the number of PIT counts elapsed are greater
-	 * than min. Ideally the first guess should be correct, but as cpu's
-	 * become faster MICROCOUNT may have to be increased to ensure
-	 * that the first guess for count is correct. There is no harm
-	 * leaving MICRCOUNT at 0x2000, the results will be correct, it just
-	 * may take longer to calculate the correct value for the loop
-	 * count used by tenmicrosec. In some cases min may be reset as the
-	 * algorithm progresses in order to facilitate faster cpu's.
-	 */
-	unsigned long found, min = 0xe000;
-	ulong_t s;
-	unsigned char status;
-
-	s = clear_int_flag();		/* disable interrupts */
-
-	/*CONSTCOND*/
-	while (1) {
-
-		/*
-		 * microdata is the loop count used in tenmicrosec. The first
-		 * time around microdata is set to 1 to make tenmicrosec
-		 * return quickly. The purpose of this while loop is to
-		 * warm the cache for the next time around when the number
-		 * of PIT counts are measured.
-		 */
-		microdata = 1;
-
-		/*CONSTCOND*/
-		while (1) {
-			/* Put counter 0 in mode 0 */
-			outb(PITCTL_PORT, PIT_LOADMODE);
-			/* output a count of -1 to counter 0 */
-			outb(PITCTR0_PORT, 0xff);
-			outb(PITCTR0_PORT, 0xff);
-			tenmicrosec();
-
-			/* READ BACK counter 0 to latch status and count */
-			outb(PITCTL_PORT, PIT_READBACK|PIT_READBACKC0);
-
-			/* Read status of counter 0 */
-			status = inb(PITCTR0_PORT);
-
-			/* Read the value left in the counter */
-			found = inb(PITCTR0_PORT) | (inb(PITCTR0_PORT) << 8);
-
-			if (microdata != 1)
-				break;
-
-			microdata = count;
-		}
-
-		/* verify that the counter began the count-down */
-		if (status & (1 << PITSTAT_NULLCNT)) {
-			/* microdata is too small */
-			count = count << 1;
-
-			/*
-			 * If the cpu is so fast that it cannot load the
-			 * counting element of the PIT with a very large
-			 * value for the loop used in tenmicrosec, then
-			 * the algorithm will not work for this cpu.
-			 * It is very unlikely there will ever be such
-			 * an x86.
-			 */
-			if (count > 0x100000000)
-				panic("microfind: cpu is too fast");
-
-			continue;
-		}
-
-		/* verify that the counter did not wrap around */
-		if (status & (1 << PITSTAT_OUTPUT)) {
-			/*
-			 * microdata is too large. Since there are counts
-			 * that would have been appropriate for the PIT
-			 * not to wrap on even a lowly AT, count will never
-			 * decrease to 1.
-			 */
-			count = count >> 1;
-			continue;
-		}
-
-		/* mode 0 is an n + 1 counter */
-		found = 0x10000 - found;
-		if (found > min)
-			break;
-
-		/* verify that the cpu is slow enough to count to 0xf000 */
-		count *= 0xf000;
-		max = 0x100000001 * found;
-
-		/*
-		 * It is possible that at some point cpu's will become
-		 * sufficiently fast such that the PIT will not be able to
-		 * count to 0xf000 within the maximum loop count used in
-		 * tenmicrosec. In that case the loop count in tenmicrosec
-		 * may be set to the maximum value because it is unlikely
-		 * that the cpu will be so fast that tenmicrosec with the
-		 * maximum loop count will take more than ten microseconds.
-		 * If the cpu is indeed too fast for the current
-		 * implementation of tenmicrosec, then there is code below
-		 * intended to catch that situation.
-		 */
-		if (count >= max) {
-			/* cpu is fast, just make it count as high it can */
-			count = 0x100000000;
-			min = 0;
-			continue;
-		}
-
-		/*
-		 * Count in the neighborhood of 0xf000 next time around
-		 * There is no risk of dividing by zero since found is in the
-		 * range of 0x1 to 0x1000.
-		 */
-		count = count / found;
-	}
-
-	/*
-	 * Formula for delaycount is :
-	 *  (loopcount * timer clock speed) / (counter ticks * 1000)
-	 *  Note also that 1000 is for figuring out milliseconds
-	 */
-	count *= PIT_HZ;
-	max = ((uint64_t)found) * 100000;
-	count = count / max;	/* max is never zero */
-
-	if (count >= 0x100000001)
-		/*
-		 * This cpu is too fast for the current implementation of
-		 * tenmicrosec. It is unlikely such a fast x86 will exist.
-		 */
-		panic("microfind: cpu is too fast");
-
-	if (count != 0)
-		microdata = count;
-	else
-		microdata = 1;
-
-	/* Restore timer channel 0 for BIOS use */
-
-	/* write mode to 3, square-wave */
-	outb(PITCTL_PORT, PIT_C0 | PIT_LOADMODE | PIT_SQUAREMODE);
-
-	/* write 16 bits of 0 for initial count */
-	outb(PITCTR0_PORT, 0);
-	outb(PITCTR0_PORT, 0);
-
-	restore_int_flag(s);		/* restore interrupt state */
-}
--- a/usr/src/uts/intel/io/pciex/pcie_error.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/io/pciex/pcie_error.c	Tue Sep 18 15:46:43 2007 -0700
@@ -75,10 +75,16 @@
 		    PCIE_DEVCTL_RO_EN;
 
 /* PCI-Express AER Root Control Register */
+#if defined(__xpv)
+ushort_t	pcie_root_ctrl_default = \
+		    PCIE_ROOTCTL_SYS_ERR_ON_NFE_EN | \
+		    PCIE_ROOTCTL_SYS_ERR_ON_FE_EN;
+#else
 ushort_t	pcie_root_ctrl_default = \
 		    PCIE_ROOTCTL_SYS_ERR_ON_CE_EN | \
 		    PCIE_ROOTCTL_SYS_ERR_ON_NFE_EN | \
 		    PCIE_ROOTCTL_SYS_ERR_ON_FE_EN;
+#endif  /* __xpv */
 
 /* PCI-Express Root Error Command Register */
 ushort_t	pcie_root_error_cmd_default = \
@@ -429,6 +435,7 @@
 	}
 }
 
+/* ARGSUSED */
 static void
 pcie_nvidia_error_init(dev_info_t *child, ddi_acc_handle_t cfg_hdl,
     uint16_t cap_ptr, uint16_t aer_ptr)
@@ -443,6 +450,19 @@
 	    ddi_driver_name(child), rc_ctl,
 	    pci_config_get16(cfg_hdl, NVIDIA_INTR_BCR_OFF + 0x2));
 
+#if defined(__xpv)
+	/*
+	 * When we're booted under the hypervisor we won't receive MSI's, so
+	 * to ensure that uncorrectable errors aren't ignored we set the
+	 * SERR_FAT and SERR_NONFAT bits in the Root Control Register.
+	 */
+	rc_ctl = pci_config_get16(cfg_hdl, cap_ptr + PCIE_ROOTCTL);
+	pci_config_put16(cfg_hdl, cap_ptr + PCIE_ROOTCTL,
+	    rc_ctl | pcie_root_ctrl_default);
+	PCIE_ERROR_DBG("%s: PCIe Root Control Register=0x%x->0x%x\n",
+	    ddi_driver_name(child), rc_ctl,
+	    pci_config_get16(cfg_hdl, cap_ptr + PCIE_ROOTCTL));
+#else
 	rc_ctl = pci_config_get16(cfg_hdl, cap_ptr + PCIE_ROOTCTL);
 	pci_config_put16(cfg_hdl, cap_ptr + PCIE_ROOTCTL,
 	    pcie_serr_disable_flag ? (rc_ctl & ~pcie_root_ctrl_default) :
@@ -469,6 +489,7 @@
 	if (rc_ctl & PCIE_AER_CTL_ECRC_CHECK_CAP)
 		rc_ctl |= PCIE_AER_CTL_ECRC_CHECK_ENA;
 	pci_config_put16(cfg_hdl, aer_ptr + PCIE_AER_CTL, rc_ctl);
+#endif  /* __xpv */
 }
 
 /*
@@ -659,7 +680,7 @@
 			return (PCI_CAP_NEXT_PTR_NULL);
 
 		caps_ptr = P2ALIGN(pci_config_get8(cfg_hdl,
-				(caps_ptr + PCI_CAP_NEXT_PTR)), 4);
+		    (caps_ptr + PCI_CAP_NEXT_PTR)), 4);
 	}
 
 	return (caps_ptr);
--- a/usr/src/uts/intel/kdi/amd64/kdi_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/kdi/amd64/kdi_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -43,6 +43,9 @@
 #include <sys/kdi_regs.h>
 #include <sys/psw.h>
 #include <sys/uadmin.h>
+#ifdef __xpv
+#include <sys/hypervisor.h>
+#endif
 
 #ifdef _ASM
 
@@ -75,8 +78,34 @@
 	movq	%r11, KRS_GDT(%rax);		\
 1:
 
-/* %ss, %rsp, %rflags, %cs, %rip, %err, %trapno already on stack */
+#ifdef __xpv
+
+#define	SAVE_GSBASE(reg) /* nothing */
+#define	RESTORE_GSBASE(reg) /* nothing */
+
+#else
+
+#define	SAVE_GSBASE(base)				\
+	movl	$MSR_AMD_GSBASE, %ecx;			\
+	rdmsr;						\
+	shlq	$32, %rdx;				\
+	orq	%rax, %rdx;				\
+	movq	%rdx, REG_OFF(KDIREG_GSBASE)(base)
 
+#define	RESTORE_GSBASE(base)				\
+	movq	REG_OFF(KDIREG_GSBASE)(base), %rdx;	\
+	movq	%rdx, %rax;				\
+	shrq	$32, %rdx;				\
+	movl	$MSR_AMD_GSBASE, %ecx;			\
+	wrmsr
+
+#endif /* __xpv */
+
+/*
+ * %ss, %rsp, %rflags, %cs, %rip, %err, %trapno are already on the stack.  Note
+ * that on the hypervisor, we skip the save/restore of GSBASE: it's slow, and
+ * unnecessary.
+ */
 #define	KDI_SAVE_REGS(base) \
 	movq	%rdi, REG_OFF(KDIREG_RDI)(base);	\
 	movq	%rsi, REG_OFF(KDIREG_RSI)(base);	\
@@ -105,19 +134,11 @@
 	movq	%rax, REG_OFF(KDIREG_FS)(base);		\
 	movw	%gs, %ax;				\
 	movq	%rax, REG_OFF(KDIREG_GS)(base);		\
-	movl	$MSR_AMD_GSBASE, %ecx;			\
-	rdmsr;						\
-	shlq	$32, %rdx;				\
-	orq	%rax, %rdx;				\
-	movq	%rdx, REG_OFF(KDIREG_GSBASE)(base)
+	SAVE_GSBASE(base)
 
 #define	KDI_RESTORE_REGS(base) \
 	movq	base, %rdi;				\
-	movq	REG_OFF(KDIREG_GSBASE)(%rdi), %rdx;	\
-	movq	%rdx, %rax;				\
-	shrq	$32, %rdx;				\
-	movl	$MSR_AMD_GSBASE, %ecx;			\
-	wrmsr;						\
+	RESTORE_GSBASE(%rdi);				\
 	movq	REG_OFF(KDIREG_ES)(%rdi), %rax;		\
 	movw	%ax, %es;				\
 	movq	REG_OFF(KDIREG_DS)(%rdi), %rax;		\
@@ -139,6 +160,86 @@
 	movq	REG_OFF(KDIREG_RDI)(%rdi), %rdi
 
 /*
+ * Given the address of the current CPU's cpusave area in %rax, the following
+ * macro restores the debugging state to said CPU.  Restored state includes
+ * the debug registers from the global %dr variables, and debugging MSRs from
+ * the CPU save area.  This code would be in a separate routine, but for the
+ * fact that some of the MSRs are jump-sensitive.  As such, we need to minimize
+ * the number of jumps taken subsequent to the update of said MSRs.  We can
+ * remove one jump (the ret) by using a macro instead of a function for the
+ * debugging state restoration code.
+ *
+ * Takes the cpusave area in %rdi as a parameter, clobbers %rax-%rdx
+ */	
+#define	KDI_RESTORE_DEBUGGING_STATE \
+	pushq	%rdi;						\
+	leaq	kdi_drreg(%rip), %r15;				\
+	movl	$7, %edi;					\
+	movq	DR_CTL(%r15), %rsi;				\
+	call	kdi_dreg_set;					\
+								\
+	movl	$6, %edi;					\
+	movq	$KDIREG_DRSTAT_RESERVED, %rsi;			\
+	call	kdi_dreg_set;					\
+								\
+	movl	$0, %edi;					\
+	movq	DRADDR_OFF(0)(%r15), %rsi;			\
+	call	kdi_dreg_set;					\
+	movl	$1, %edi;					\
+	movq	DRADDR_OFF(1)(%r15), %rsi;			\
+	call	kdi_dreg_set;					\
+	movl	$2, %edi;					\
+	movq	DRADDR_OFF(2)(%r15), %rsi;			\
+	call	kdi_dreg_set;					\
+	movl	$3, %edi;					\
+	movq	DRADDR_OFF(3)(%r15), %rsi;			\
+	call	kdi_dreg_set;					\
+	popq	%rdi;						\
+								\
+	/*							\
+	 * Write any requested MSRs.				\
+	 */							\
+	movq	KRS_MSR(%rdi), %rbx;				\
+	cmpq	$0, %rbx;					\
+	je	3f;						\
+1:								\
+	movl	MSR_NUM(%rbx), %ecx;				\
+	cmpl	$0, %ecx;					\
+	je	3f;						\
+								\
+	movl	MSR_TYPE(%rbx), %edx;				\
+	cmpl	$KDI_MSR_WRITE, %edx;				\
+	jne	2f;						\
+								\
+	movq	MSR_VALP(%rbx), %rdx;				\
+	movl	0(%rdx), %eax;					\
+	movl	4(%rdx), %edx;					\
+	wrmsr;							\
+2:								\
+	addq	$MSR_SIZE, %rbx;				\
+	jmp	1b;						\
+3:								\
+	/*							\
+	 * We must not branch after re-enabling LBR.  If	\
+	 * kdi_wsr_wrexit_msr is set, it contains the number	\
+	 * of the MSR that controls LBR.  kdi_wsr_wrexit_valp	\
+	 * contains the value that is to be written to enable	\
+	 * LBR.							\
+	 */							\
+	leaq	kdi_msr_wrexit_msr(%rip), %rcx;			\
+	movl	(%rcx), %ecx;					\
+	cmpl	$0, %ecx;					\
+	je	1f;						\
+								\
+	leaq	kdi_msr_wrexit_valp(%rip), %rdx;		\
+	movq	(%rdx), %rdx;					\
+	movl	0(%rdx), %eax;					\
+	movl	4(%rdx), %edx;					\
+								\
+	wrmsr;							\
+1:
+
+/*
  * Each cpusave buffer has an area set aside for a ring buffer of breadcrumbs.
  * The following macros manage the buffer.
  */
@@ -171,10 +272,6 @@
 
 #endif	/* _ASM */
 
-/*
- * The main entry point for master CPUs.  It also serves as the trap handler
- * for all traps and interrupts taken during single-step.
- */
 #if defined(__lint)
 void
 kdi_cmnint(void)
@@ -188,6 +285,10 @@
 	movq	(%rcx), %rcx
 	SET_SIZE(kdi_nmiint)
 
+	/*
+	 * The main entry point for master CPUs.  It also serves as the trap
+	 * handler for all traps and interrupts taken during single-step.
+	 */
 	ENTRY_NP(kdi_cmnint)
 	ALTENTRY(kdi_master_entry)
 
@@ -199,13 +300,23 @@
 	subq	$REG_OFF(KDIREG_TRAPNO), %rsp
 	KDI_SAVE_REGS(%rsp)
 
+#ifdef __xpv
+	/*
+	 * Clear saved_upcall_mask in unused byte of cs slot on stack.
+	 * It can only confuse things.
+	 */
+	movb	$0, REG_OFF(KDIREG_CS)+4(%rsp)
+#endif
+
+#if !defined(__xpv)
 	/*
 	 * Switch to the kernel's GSBASE.  Neither GSBASE nor the ill-named
 	 * KGSBASE can be trusted, as the kernel may or may not have already
 	 * done a swapgs.  All is not lost, as the kernel can divine the correct
 	 * value for us.  Note that the previous GSBASE is saved in the
 	 * KDI_SAVE_REGS macro to prevent a usermode process's GSBASE from being
-	 * blown away.
+	 * blown away.  On the hypervisor, we don't need to do this, since it's
+	 * ensured we're on our requested kernel GSBASE already.
 	 */
 	subq	$10, %rsp
 	sgdt	(%rsp)
@@ -217,6 +328,7 @@
 	shrq	$32, %rdx
 	movl	$MSR_AMD_GSBASE, %ecx
 	wrmsr
+#endif	/* __xpv */
 
 	GET_CPUSAVE_ADDR	/* %rax = cpusave, %rbx = CPU ID */
 
@@ -355,32 +467,41 @@
 
 #endif	/* __lint */
 
+/*
+ * The state of the world:
+ *
+ * The stack has a complete set of saved registers and segment
+ * selectors, arranged in the kdi_regs.h order.  It also has a pointer
+ * to our cpusave area.
+ *
+ * We need to save, into the cpusave area, a pointer to these saved
+ * registers.  First we check whether we should jump straight back to
+ * the kernel.  If not, we save a few more registers, ready the
+ * machine for debugger entry, and enter the debugger.
+ */
+
 #if !defined(__lint)
 
 	ENTRY_NP(kdi_save_common_state)
 
-	/*
-	 * The state of the world:
-	 *
-	 * The stack has a complete set of saved registers and segment
-	 * selectors, arranged in the kdi_regs.h order.  It also has a pointer
-	 * to our cpusave area.
-	 *
-	 * We need to save, into the cpusave area, a pointer to these saved
-	 * registers.  After that, we save a few more registers, ready the
-	 * machine for debugger entry, and enter the debugger.
-	 */
+	popq	%rdi			/* the cpusave area */
+	movq	%rsp, KRS_GREGS(%rdi)	/* save ptr to current saved regs */
 
-	popq	%rax			/* the cpusave area */
-	movq	%rsp, KRS_GREGS(%rax)	/* save ptr to current saved regs */
+	pushq	%rdi
+	call	kdi_trap_pass
+	cmpq	$1, %rax
+	je	kdi_pass_to_kernel
+	popq	%rax /* cpusave in %rax */
 
 	SAVE_IDTGDT
 
+#if !defined(__xpv)
 	/* Save off %cr0, and clear write protect */
 	movq	%cr0, %rcx
 	movq	%rcx, KRS_CR0(%rax)
 	andq	$_BITNOT(CR0_WP), %rcx
 	movq	%rcx, %cr0
+#endif
 
 	/* Save the debug registers and disable any active watchpoints */
 
@@ -454,9 +575,8 @@
 
 	call	kdi_debugger_entry
 
-	/* Pass cpusave and debugger return code for "call" to resume */
+	/* Pass cpusave to kdi_resume */
 	popq	%rdi
-	movq	%rax, %rsi
 
 	jmp	kdi_resume
 
@@ -465,82 +585,111 @@
 #endif	/* !__lint */
 
 /*
- * Given the address of the current CPU's cpusave area in %rax, the following
- * macro restores the debugging state to said CPU.  Restored state includes
- * the debug registers from the global %dr variables, and debugging MSRs from
- * the CPU save area.  This code would be in a separate routine, but for the
- * fact that some of the MSRs are jump-sensitive.  As such, we need to minimize
- * the number of jumps taken subsequent to the update of said MSRs.  We can
- * remove one jump (the ret) by using a macro instead of a function for the
- * debugging state restoration code.
- *
- * Takes the cpusave area in %rdi as a parameter, clobbers %rax-%rdx
- */	
-#define	KDI_RESTORE_DEBUGGING_STATE \
-	pushq	%rdi;						\
-	leaq	kdi_drreg, %r15;				\
-	movl	$7, %edi;					\
-	movq	DR_CTL(%r15), %rsi;				\
-	call	kdi_dreg_set;					\
-								\
-	movl	$6, %edi;					\
-	movq	$KDIREG_DRSTAT_RESERVED, %rsi;			\
-	call	kdi_dreg_set;					\
-								\
-	movl	$0, %edi;					\
-	movq	DRADDR_OFF(0)(%r15), %rsi;			\
-	call	kdi_dreg_set;					\
-	movl	$1, %edi;					\
-	movq	DRADDR_OFF(1)(%r15), %rsi;			\
-	call	kdi_dreg_set;					\
-	movl	$2, %edi;					\
-	movq	DRADDR_OFF(2)(%r15), %rsi;			\
-	call	kdi_dreg_set;					\
-	movl	$3, %edi;					\
-	movq	DRADDR_OFF(3)(%r15), %rsi;			\
-	call	kdi_dreg_set;					\
-	popq	%rdi;						\
-								\
-	/*							\
-	 * Write any requested MSRs.				\
-	 */							\
-	movq	KRS_MSR(%rdi), %rbx;				\
-	cmpq	$0, %rbx;					\
-	je	3f;						\
-1:								\
-	movl	MSR_NUM(%rbx), %ecx;				\
-	cmpl	$0, %ecx;					\
-	je	3f;						\
-								\
-	movl	MSR_TYPE(%rbx), %edx;				\
-	cmpl	$KDI_MSR_WRITE, %edx;				\
-	jne	2f;						\
-								\
-	movq	MSR_VALP(%rbx), %rdx;				\
-	movl	0(%rdx), %eax;					\
-	movl	4(%rdx), %edx;					\
-	wrmsr;							\
-2:								\
-	addq	$MSR_SIZE, %rbx;				\
-	jmp	1b;						\
-3:								\
-	/*							\
-	 * We must not branch after re-enabling LBR.  If	\
-	 * kdi_wsr_wrexit_msr is set, it contains the number	\
-	 * of the MSR that controls LBR.  kdi_wsr_wrexit_valp	\
-	 * contains the value that is to be written to enable	\
-	 * LBR.							\
-	 */							\
-	movl	kdi_msr_wrexit_msr, %ecx;			\
-	cmpl	$0, %ecx;					\
-	je	1f;						\
-								\
-	movq	kdi_msr_wrexit_valp, %rdx;			\
-	movl	0(%rdx), %eax;					\
-	movl	4(%rdx), %edx;					\
-								\
-	wrmsr;							\
+ * Resume the world.  The code that calls kdi_resume has already
+ * decided whether or not to restore the IDT.
+ */
+#if defined(__lint)
+void
+kdi_resume(void)
+{
+}
+#else	/* __lint */
+
+	/* cpusave in %rdi */
+	ENTRY_NP(kdi_resume)
+
+	/*
+	 * Send this CPU back into the world
+	 */
+#if !defined(__xpv)
+	movq	KRS_CR0(%rdi), %rdx
+	movq	%rdx, %cr0
+#endif
+
+	KDI_RESTORE_DEBUGGING_STATE
+
+	movq	KRS_GREGS(%rdi), %rsp
+	KDI_RESTORE_REGS(%rsp)
+	addq	$REG_OFF(KDIREG_RIP), %rsp	/* Discard state, trapno, err */
+	IRET
+	/*NOTREACHED*/
+	SET_SIZE(kdi_resume)
+
+#endif	/* __lint */
+
+#if !defined(__lint)
+
+	ENTRY_NP(kdi_pass_to_kernel)
+
+	popq	%rdi /* cpusave */
+
+	movq	$KDI_CPU_STATE_NONE, KRS_CPU_STATE(%rdi)
+
+	/*
+	 * Find the trap and vector off the right kernel handler.  The trap
+	 * handler will expect the stack to be in trap order, with %rip being
+	 * the last entry, so we'll need to restore all our regs.  On i86xpv
+	 * we'll need to compensate for XPV_TRAP_POP.
+	 *
+	 * We're hard-coding the three cases where KMDB has installed permanent
+	 * handlers, since after we KDI_RESTORE_REGS(), we don't have registers
+	 * to work with; we can't use a global since other CPUs can easily pass
+	 * through here at the same time.
+	 *
+	 * Note that we handle T_DBGENTR since userspace might have tried it.
+	 */
+	movq	KRS_GREGS(%rdi), %rsp
+	movq	REG_OFF(KDIREG_TRAPNO)(%rsp), %rdi
+	cmpq	$T_SGLSTP, %rdi
+	je	1f
+	cmpq	$T_BPTFLT, %rdi
+	je	2f
+	cmpq	$T_DBGENTR, %rdi
+	je	3f
+	/*
+	 * Hmm, unknown handler.  Somebody forgot to update this when they
+	 * added a new trap interposition... try to drop back into kmdb.
+	 */
+	int	$T_DBGENTR
+	
+#define	CALL_TRAP_HANDLER(name) \
+	KDI_RESTORE_REGS(%rsp); \
+	/* Discard state, trapno, err */ \
+	addq	$REG_OFF(KDIREG_RIP), %rsp; \
+	XPV_TRAP_PUSH; \
+	jmp	%cs:name
+
 1:
+	CALL_TRAP_HANDLER(dbgtrap)
+	/*NOTREACHED*/
+2:
+	CALL_TRAP_HANDLER(brktrap)
+	/*NOTREACHED*/
+3:
+	CALL_TRAP_HANDLER(invaltrap)
+	/*NOTREACHED*/
+
+	SET_SIZE(kdi_pass_to_kernel)
+
+	/*
+	 * A minimal version of mdboot(), to be used by the master CPU only.
+	 */
+	ENTRY_NP(kdi_reboot)
+
+	movl	$AD_BOOT, %edi
+	movl	$A_SHUTDOWN, %esi
+	call	*psm_shutdownf
+#if defined(__xpv)
+	movl	$SHUTDOWN_reboot, %edi
+	call	HYPERVISOR_shutdown
+#else
+	call	reset
+#endif
+	/*NOTREACHED*/
+
+	SET_SIZE(kdi_reboot)
+
+#endif	/* !__lint */
 
 #if defined(__lint)
 /*ARGSUSED*/
@@ -564,90 +713,3 @@
 	SET_SIZE(kdi_cpu_debug_init)
 #endif	/* !__lint */
 
-/*
- * Resume the world.  The code that calls kdi_resume has already
- * decided whether or not to restore the IDT.
- */
-#if defined(__lint)
-void
-kdi_resume(void)
-{
-}
-#else	/* __lint */
-
-	ENTRY_NP(kdi_resume)
-
-	/* cpusave in %rdi, debugger command in %rsi */
-
-	cmpq	$KDI_RESUME_PASS_TO_KERNEL, %rsi
-	je	kdi_pass_to_kernel
-
-	/*
-	 * Send this CPU back into the world
-	 */
-	movq	KRS_CR0(%rdi), %rdx
-	movq	%rdx, %cr0
-
-	KDI_RESTORE_DEBUGGING_STATE
-
-	movq	KRS_GREGS(%rdi), %rsp
-	KDI_RESTORE_REGS(%rsp)
-	addq	$REG_OFF(KDIREG_RIP), %rsp	/* Discard state, trapno, err */
-	IRET
-	/*NOTREACHED*/
-	SET_SIZE(kdi_resume)
-
-#endif	/* __lint */
-
-#if !defined(__lint)
-
-	ENTRY_NP(kdi_pass_to_kernel)
-
-	/* cpusave is still in %rdi */
-	movq	KRS_CR0(%rdi), %rdx
-	movq	%rdx, %cr0
-
-	/*
-	 * When we replaced the kernel's handlers in the IDT, we made note of
-	 * the handlers being replaced, thus allowing us to pass traps directly
-	 * to said handlers here.  We won't have any registers available for use
-	 * after we start popping, and we know we're single-threaded here, so
-	 * we have to use a global to store the handler address.
-	 */
-	movq	KRS_GREGS(%rdi), %rsp
-	movq	REG_OFF(KDIREG_TRAPNO)(%rsp), %rdi
-	call	kdi_kernel_trap2hdlr
-	movq	%rax, kdi_kernel_handler
-
-	/*
-	 * The trap handler will expect the stack to be in trap order, with
-	 * %rip being the last entry.  Our stack is currently in kdi_regs.h
-	 * order, so we'll need to pop (and restore) our way back down.
-	 */
-	KDI_RESTORE_REGS(%rsp)
-	addq	$REG_OFF(KDIREG_RIP), %rsp	/* Discard state, trapno, err */
-
-	jmp	*%cs:kdi_kernel_handler
-	/*NOTREACHED*/
-
-	SET_SIZE(kdi_pass_to_kernel)
-
-	/*
-	 * Reboot the system.  This routine is to be called only by the master
-	 * CPU.
-	 */
-	ENTRY_NP(kdi_reboot)
-
-	movl	$AD_BOOT, %edi
-	movl	$A_SHUTDOWN, %esi
-	call	*psm_shutdownf
-
-	/*
-	 * psm_shutdown didn't work or it wasn't set, try pc_reset.
-	 */
-	call	pc_reset
-	/*NOTREACHED*/
-
-	SET_SIZE(kdi_reboot)
-
-#endif	/* !__lint */
--- a/usr/src/uts/intel/kdi/ia32/kdi_asm.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/kdi/ia32/kdi_asm.s	Tue Sep 18 15:46:43 2007 -0700
@@ -75,6 +75,104 @@
 1:
 
 /*
+ * Given the address of the current CPU's cpusave area in %edi, the following
+ * macro restores the debugging state to said CPU.  Restored state includes
+ * the debug registers from the global %dr variables, and debugging MSRs from
+ * the CPU save area.  This code would be in a separate routine, but for the
+ * fact that some of the MSRs are jump-sensitive.  As such, we need to minimize
+ * the number of jumps taken subsequent to the update of said MSRs.  We can
+ * remove one jump (the ret) by using a macro instead of a function for the
+ * debugging state restoration code.
+ *
+ * Takes the cpusave area in %edi as a parameter, clobbers %eax-%edx
+ */	
+#define	KDI_RESTORE_DEBUGGING_STATE \
+	leal	kdi_drreg, %ebx;				\
+								\
+	pushl	DR_CTL(%ebx);					\
+	pushl	$7;						\
+	call	kdi_dreg_set;					\
+	addl	$8, %esp;					\
+								\
+	pushl	$KDIREG_DRSTAT_RESERVED;				\
+	pushl	$6;						\
+	call	kdi_dreg_set;					\
+	addl	$8, %esp;					\
+								\
+	pushl	DRADDR_OFF(0)(%ebx);				\
+	pushl	$0;						\
+	call	kdi_dreg_set;					\
+	addl	$8, %esp;					\
+								\
+	pushl	DRADDR_OFF(1)(%ebx);				\
+	pushl	$1;						\
+	call	kdi_dreg_set;			 		\
+	addl	$8, %esp;					\
+								\
+	pushl	DRADDR_OFF(2)(%ebx);				\
+	pushl	$2;						\
+	call	kdi_dreg_set;					\
+	addl	$8, %esp;					\
+								\
+	pushl	DRADDR_OFF(3)(%ebx);				\
+	pushl	$3;						\
+	call	kdi_dreg_set;					\
+	addl	$8, %esp;					\
+								\
+	/*							\
+	 * Write any requested MSRs.				\
+	 */							\
+	movl	KRS_MSR(%edi), %ebx;				\
+	cmpl	$0, %ebx;					\
+	je	3f;						\
+1:								\
+	movl	MSR_NUM(%ebx), %ecx;				\
+	cmpl	$0, %ecx;					\
+	je	3f;						\
+								\
+	movl	MSR_TYPE(%ebx), %edx;				\
+	cmpl	$KDI_MSR_WRITE, %edx;				\
+	jne	2f;						\
+								\
+	movl	MSR_VALP(%ebx), %edx;				\
+	movl	0(%edx), %eax;					\
+	movl	4(%edx), %edx;					\
+	wrmsr;							\
+2:								\
+	addl	$MSR_SIZE, %ebx;				\
+	jmp	1b;						\
+3:								\
+	/*							\
+	 * We must not branch after re-enabling LBR.  If	\
+	 * kdi_wsr_wrexit_msr is set, it contains the number	\
+	 * of the MSR that controls LBR.  kdi_wsr_wrexit_valp	\
+	 * contains the value that is to be written to enable	\
+	 * LBR.							\
+	 */							\
+	movl	kdi_msr_wrexit_msr, %ecx;			\
+	cmpl	$0, %ecx;					\
+	je	1f;						\
+								\
+	movl	kdi_msr_wrexit_valp, %edx;			\
+	movl	0(%edx), %eax;					\
+	movl	4(%edx), %edx;					\
+								\
+	wrmsr;							\
+1:
+
+#define	KDI_RESTORE_REGS() \
+	/* Discard savfp and savpc */ \
+	addl	$8, %esp; \
+	popl	%ss; \
+	popl	%gs; \
+	popl	%fs; \
+	popl	%es; \
+	popl	%ds; \
+	popal; \
+	/* Discard trapno and err */ \
+	addl	$8, %esp
+
+/*
  * Each cpusave buffer has an area set aside for a ring buffer of breadcrumbs.
  * The following macros manage the buffer.
  */
@@ -191,6 +289,15 @@
 	 */
 	CLI(%eax)
 
+#if defined(__xpv)
+	/*
+	 * Clear saved_upcall_mask in unused byte of cs slot on stack.
+	 * It can only confuse things.
+	 */
+	movb    $0, REG_OFF(KDIREG_CS)+2(%esp)
+
+#endif
+
 	GET_CPUSAVE_ADDR		/* %eax = cpusave, %ebx = CPU ID */
 
 	ADVANCE_CRUMB_POINTER(%eax, %ecx, %edx)
@@ -347,29 +454,27 @@
 
 #endif	/* __lint */
 
+/*
+ * The state of the world:
+ *
+ * The stack has a complete set of saved registers and segment
+ * selectors, arranged in `struct regs' order (or vice-versa), up to
+ * and including EFLAGS.  It also has a pointer to our cpusave area.
+ *
+ * We need to save a pointer to these saved registers.  We also want
+ * to adjust the saved %esp - it should point just beyond the saved
+ * registers to the last frame of the thread we interrupted.  Finally,
+ * we want to clear out bits 16-31 of the saved selectors, as the
+ * selector pushls don't automatically clear them.
+ */
 #if !defined(__lint)
 
 	ENTRY_NP(kdi_save_common_state)
 
-	/*
-	 * The state of the world:
-	 *
-	 * The stack has a complete set of saved registers and segment
-	 * selectors, arranged in `struct regs' order (or vice-versa), up to
-	 * and including EFLAGS.  It also has a pointer to our cpusave area.
-	 *
-	 * We need to save a pointer to these saved registers.  We also want
-	 * to adjust the saved %esp - it should point just beyond the saved
-	 * registers to the last frame of the thread we interrupted.  Finally,
-	 * we want to clear out bits 16-31 of the saved selectors, as the
-	 * selector pushls don't automatically clear them.
-	 */
 	popl	%eax			/* the cpusave area */
 
 	movl	%esp, KRS_GREGS(%eax)	/* save ptr to current saved regs */
 
-	SAVE_IDTGDT
-
 	addl	$REG_OFF(KDIREG_EFLAGS - KDIREG_EAX), KDIREG_OFF(KDIREG_ESP)(%esp)
 
 	andl	$0xffff, KDIREG_OFF(KDIREG_SS)(%esp)
@@ -378,11 +483,21 @@
 	andl	$0xffff, KDIREG_OFF(KDIREG_ES)(%esp)
 	andl	$0xffff, KDIREG_OFF(KDIREG_DS)(%esp)
 
+	pushl	%eax
+	call	kdi_trap_pass
+	cmpl	$1, %eax
+	je	kdi_pass_to_kernel
+	popl	%eax
+
+	SAVE_IDTGDT
+
+#if !defined(__xpv)
 	/* Save off %cr0, and clear write protect */
 	movl	%cr0, %ecx
 	movl	%ecx, KRS_CR0(%eax)
 	andl	$_BITNOT(CR0_WP), %ecx
 	movl	%ecx, %cr0
+#endif
 	pushl	%edi
 	movl	%eax, %edi
 
@@ -461,8 +576,8 @@
 
 	pushl	%eax
 	call	kdi_debugger_entry
-	pushl	%eax		/* leave cpusave on the stack */
-
+	popl	%eax
+ 
 	jmp	kdi_resume
 
 	SET_SIZE(kdi_save_common_state)
@@ -470,90 +585,139 @@
 #endif	/* !__lint */
 
 /*
- * Given the address of the current CPU's cpusave area in %edi, the following
- * macro restores the debugging state to said CPU.  Restored state includes
- * the debug registers from the global %dr variables, and debugging MSRs from
- * the CPU save area.  This code would be in a separate routine, but for the
- * fact that some of the MSRs are jump-sensitive.  As such, we need to minimize
- * the number of jumps taken subsequent to the update of said MSRs.  We can
- * remove one jump (the ret) by using a macro instead of a function for the
- * debugging state restoration code.
- *
- * Takes the cpusave area in %edi as a parameter, clobbers %eax-%edx
- */	
-#define	KDI_RESTORE_DEBUGGING_STATE \
-	leal	kdi_drreg, %ebx;				\
-								\
-	pushl	DR_CTL(%ebx);					\
-	pushl	$7;						\
-	call	kdi_dreg_set;					\
-	addl	$8, %esp;					\
-								\
-	pushl	$KDIREG_DRSTAT_RESERVED;				\
-	pushl	$6;						\
-	call	kdi_dreg_set;					\
-	addl	$8, %esp;					\
-								\
-	pushl	DRADDR_OFF(0)(%ebx);				\
-	pushl	$0;						\
-	call	kdi_dreg_set;					\
-	addl	$8, %esp;					\
-								\
-	pushl	DRADDR_OFF(1)(%ebx);				\
-	pushl	$1;						\
-	call	kdi_dreg_set;			 		\
-	addl	$8, %esp;					\
-								\
-	pushl	DRADDR_OFF(2)(%ebx);				\
-	pushl	$2;						\
-	call	kdi_dreg_set;					\
-	addl	$8, %esp;					\
-								\
-	pushl	DRADDR_OFF(3)(%ebx);				\
-	pushl	$3;						\
-	call	kdi_dreg_set;					\
-	addl	$8, %esp;					\
-								\
-	/*							\
-	 * Write any requested MSRs.				\
-	 */							\
-	movl	KRS_MSR(%edi), %ebx;				\
-	cmpl	$0, %ebx;					\
-	je	3f;						\
-1:								\
-	movl	MSR_NUM(%ebx), %ecx;				\
-	cmpl	$0, %ecx;					\
-	je	3f;						\
-								\
-	movl	MSR_TYPE(%ebx), %edx;				\
-	cmpl	$KDI_MSR_WRITE, %edx;				\
-	jne	2f;						\
-								\
-	movl	MSR_VALP(%ebx), %edx;				\
-	movl	0(%edx), %eax;					\
-	movl	4(%edx), %edx;					\
-	wrmsr;							\
-2:								\
-	addl	$MSR_SIZE, %ebx;				\
-	jmp	1b;						\
-3:								\
-	/*							\
-	 * We must not branch after re-enabling LBR.  If	\
-	 * kdi_wsr_wrexit_msr is set, it contains the number	\
-	 * of the MSR that controls LBR.  kdi_wsr_wrexit_valp	\
-	 * contains the value that is to be written to enable	\
-	 * LBR.							\
-	 */							\
-	movl	kdi_msr_wrexit_msr, %ecx;			\
-	cmpl	$0, %ecx;					\
-	je	1f;						\
-								\
-	movl	kdi_msr_wrexit_valp, %edx;			\
-	movl	0(%edx), %eax;					\
-	movl	4(%edx), %edx;					\
-								\
-	wrmsr;							\
-1:
+ * Resume the world.  The code that calls kdi_resume has already
+ * decided whether or not to restore the IDT.
+ */
+#if defined(__lint)
+void
+kdi_resume(void)
+{
+}
+#else	/* __lint */
+
+	/* cpusave in %eax */
+	ENTRY_NP(kdi_resume)
+
+	/*
+	 * Send this CPU back into the world
+	 */
+
+#if !defined(__xpv)
+	movl	KRS_CR0(%eax), %edx
+	movl	%edx, %cr0
+#endif
+
+	pushl	%edi
+	movl	%eax, %edi
+
+	KDI_RESTORE_DEBUGGING_STATE
+
+	popl	%edi
+
+#if defined(__xpv)
+	/*
+	 * kmdb might have set PS_T in the saved eflags, so we can't use
+	 * intr_restore, since that restores all of eflags; instead, just
+	 * pick up PS_IE from the saved eflags.
+	 */
+	movl	REG_OFF(KDIREG_EFLAGS)(%esp), %eax
+	testl	$PS_IE, %eax
+	jz	2f
+	STI
+2:
+#endif
+
+	addl	$8, %esp	/* Discard savfp and savpc */
+
+	popl	%ss
+	popl	%gs
+	popl	%fs
+	popl	%es
+	popl	%ds
+	popal
+
+	addl	$8, %esp	/* Discard TRAPNO and ERROR */
+
+	IRET
+
+	SET_SIZE(kdi_resume)
+#endif	/* __lint */
+
+#if !defined(__lint)
+
+	ENTRY_NP(kdi_pass_to_kernel)
+
+	/* pop cpusave, leaving %esp pointing to saved regs */
+	popl	%eax
+
+	movl	$KDI_CPU_STATE_NONE, KRS_CPU_STATE(%eax)
+
+	/*
+	 * Find the trap and vector off the right kernel handler.  The trap
+	 * handler will expect the stack to be in trap order, with %eip being
+	 * the last entry, so we'll need to restore all our regs.
+	 *
+	 * We're hard-coding the three cases where KMDB has installed permanent
+	 * handlers, since after we restore, we don't have registers to work
+	 * with; we can't use a global since other CPUs can easily pass through
+	 * here at the same time.
+	 *
+	 * Note that we handle T_DBGENTR since userspace might have tried it.
+	 */
+	movl	REG_OFF(KDIREG_TRAPNO)(%esp), %eax
+	cmpl	$T_SGLSTP, %eax
+	je	kpass_dbgtrap
+	cmpl	$T_BPTFLT, %eax
+	je	kpass_brktrap
+	cmpl	$T_DBGENTR, %eax
+	je	kpass_invaltrap
+	/*
+	 * Hmm, unknown handler.  Somebody forgot to update this when they
+	 * added a new trap interposition... try to drop back into kmdb.
+	 */
+	int	$T_DBGENTR
+	
+kpass_dbgtrap:
+	KDI_RESTORE_REGS()
+	ljmp	$KCS_SEL, $1f
+1:	jmp	%cs:dbgtrap
+	/*NOTREACHED*/
+
+kpass_brktrap:
+	KDI_RESTORE_REGS()
+	ljmp	$KCS_SEL, $2f
+2:	jmp	%cs:brktrap
+	/*NOTREACHED*/
+
+kpass_invaltrap:
+	KDI_RESTORE_REGS()
+	ljmp	$KCS_SEL, $3f
+3:	jmp	%cs:invaltrap
+	/*NOTREACHED*/
+
+	SET_SIZE(kdi_pass_to_kernel)
+
+	/*
+	 * A minimal version of mdboot(), to be used by the master CPU only.
+	 */
+	ENTRY_NP(kdi_reboot)
+
+	pushl	$AD_BOOT
+	pushl	$A_SHUTDOWN
+	call	*psm_shutdownf
+	addl	$8, %esp
+
+#if defined(__xpv)
+	pushl	$SHUTDOWN_reboot
+	call	HYPERVISOR_shutdown
+#else
+	call	reset
+#endif
+	/*NOTREACHED*/
+
+	SET_SIZE(kdi_reboot)
+
+#endif	/* !__lint */
 
 #if defined(__lint)
 /*ARGSUSED*/
@@ -582,111 +746,3 @@
 	SET_SIZE(kdi_cpu_debug_init)
 #endif	/* !__lint */
 
-/*
- * Resume the world.  The code that calls kdi_resume has already
- * decided whether or not to restore the IDT.
- */
-#if defined(__lint)
-void
-kdi_resume(void)
-{
-}
-#else	/* __lint */
-
-	ENTRY_NP(kdi_resume)
-	popl	%ebx		/* command */
-	popl	%eax		/* cpusave */
-
-	cmpl	$KDI_RESUME_PASS_TO_KERNEL, %ebx
-	je	kdi_pass_to_kernel
-
-	/*
-	 * Send this CPU back into the world
-	 */
-
-	movl	KRS_CR0(%eax), %edx
-	movl	%edx, %cr0
-
-	pushl	%edi
-	movl	%eax, %edi
-
-	KDI_RESTORE_DEBUGGING_STATE
-
-	popl	%edi
-
-	addl	$8, %esp	/* Discard savfp and savpc */
-
-	popl	%ss
-	popl	%gs
-	popl	%fs
-	popl	%es
-	popl	%ds
-	popal
-
-	addl	$8, %esp	/* Discard TRAPNO and ERROR */
-
-	IRET
-
-	SET_SIZE(kdi_resume)
-#endif	/* __lint */
-
-#if !defined(__lint)
-
-	ENTRY_NP(kdi_pass_to_kernel)
-
-	/* cpusave is still in %eax */
-	movl	KRS_CR0(%eax), %edx
-	movl	%edx, %cr0
-
-	/*
-	 * When we replaced the kernel's handlers in the IDT, we made note of
-	 * the handlers being replaced, thus allowing us to pass traps directly
-	 * to said handlers here.  We won't have any registers available for use
-	 * after we start popping, and we know we're single-threaded here, so
-	 * we have to use a global to store the handler address.
-	 */
-	pushl	REG_OFF(KDIREG_TRAPNO)(%esp)
-	call	kdi_kernel_trap2hdlr
-	addl	$4, %esp
-	movl	%eax, kdi_kernel_handler
-
-	/*
-	 * The trap handler will expect the stack to be in trap order, with
-	 * %eip being the last entry.  Our stack is currently in KDIREG_*
-	 * order, so we'll need to pop (and restore) our way back down.
-	 */
-	addl	$8, %esp	/* Discard savfp and savpc */
-	popl	%ss
-	popl	%gs
-	popl	%fs
-	popl	%es
-	popl	%ds
-	popal
-	addl	$8, %esp	/* Discard trapno and err */
-
-	ljmp	$KCS_SEL, $1f
-1:	jmp	*%cs:kdi_kernel_handler
-	/*NOTREACHED*/
-
-	SET_SIZE(kdi_pass_to_kernel)
-
-	/*
-	 * Reboot the system.  This routine is to be called only by the master
-	 * CPU.
-	 */
-	ENTRY_NP(kdi_reboot)
-
-	pushl	$AD_BOOT
-	pushl	$A_SHUTDOWN
-	call	*psm_shutdownf
-	addl	$8, %esp
-
-	/*
-	 * psm_shutdown didn't work or it wasn't set, try pc_reset.
-	 */
-	call	pc_reset
-	/*NOTREACHED*/
-
-	SET_SIZE(kdi_reboot)
-
-#endif	/* !__lint */
--- a/usr/src/uts/intel/kdi/kdi_idt.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/kdi/kdi_idt.c	Tue Sep 18 15:46:43 2007 -0700
@@ -62,10 +62,10 @@
  * This style of activation is much simpler, as the CPUs are already running,
  * and are using their own copy of the kernel's IDT.  We simply interpose upon
  * each CPU's IDT.  We save the handlers we replace, both for deactivation and
- * for passing traps back to the kernel.  Note that for Xen's benefit, we need
- * to xcall to the other CPUs to do this, since we need to actively set the
- * trap entries in its virtual IDT from that vcpu's context rather than just
- * modify the IDT table from the CPU running kdi_activate().
+ * for passing traps back to the kernel.  Note that for the hypervisors'
+ * benefit, we need to xcall to the other CPUs to do this, since we need to
+ * actively set the trap entries in its virtual IDT from that vcpu's context
+ * rather than just modifying the IDT table from the CPU running kdi_activate().
  */
 
 #include <sys/types.h>
@@ -130,10 +130,13 @@
 	uint_t kgs_dpl;
 } kdi_gate_spec_t;
 
+/*
+ * Beware: kdi_pass_to_kernel() has unpleasant knowledge of this list.
+ */
 static const kdi_gate_spec_t kdi_gate_specs[KDI_GATE_NVECS] = {
-	{ T_SGLSTP, SEL_KPL },
-	{ T_BPTFLT, SEL_UPL },
-	{ T_DBGENTR, SEL_KPL }
+	{ T_SGLSTP, TRP_KPL },
+	{ T_BPTFLT, TRP_UPL },
+	{ T_DBGENTR, TRP_KPL }
 };
 
 static gate_desc_t kdi_kgates[KDI_GATE_NVECS];
@@ -154,7 +157,9 @@
 	{ T_BOUNDFLT, 0,	kdi_trap5, NULL },
 	{ T_ILLINST, 0,		kdi_trap6, NULL },
 	{ T_NOEXTFLT, 0,	kdi_trap7, NULL },
+#if !defined(__xpv)
 	{ T_DBLFLT, 0,		syserrtrap, NULL },
+#endif
 	{ T_EXTOVRFLT, 0,	kdi_trap9, NULL },
 	{ T_TSSFLT, 0,		kdi_traperr10, NULL },
 	{ T_SEGFLT, 0,		kdi_traperr11, NULL },
@@ -186,7 +191,7 @@
 			caddr_t hdlr = (caddr_t)id->id_basehdlr +
 			    incr * (i - id->id_low);
 			set_gatesegd(&kdi_idt[i], (void (*)())hdlr, sel,
-			    SDT_SYSIGT, SEL_KPL);
+			    SDT_SYSIGT, TRP_KPL);
 		}
 	}
 }
@@ -265,25 +270,6 @@
 }
 
 /*
- * Used by the code which passes traps back to the kernel to retrieve the
- * address of the kernel's handler for a given trap.  We get this address
- * from the descriptor save area, which we populated when we loaded the
- * debugger (mod-loaded) or initialized the kernel's IDT (boot-loaded).
- */
-uintptr_t
-kdi_kernel_trap2hdlr(int vec)
-{
-	int i;
-
-	for (i = 0; i < KDI_GATE_NVECS; i++) {
-		if (kdi_gate_specs[i].kgs_vec == vec)
-			return (GATESEG_GETOFFSET(&kdi_kgates[i]));
-	}
-
-	return (NULL);
-}
-
-/*
  * Called when we switch to the kernel's IDT.  We need to interpose on the
  * kernel's IDT entries and stop using KMDBCODE_SEL.
  */
@@ -502,7 +488,7 @@
  * prepared to handle the trap, we'll assume there's a problem and will
  * give the user a chance to debug it.
  */
-static int
+int
 kdi_trap_pass(kdi_cpusave_t *cpusave)
 {
 	greg_t tt = cpusave->krs_gregs[KDIREG_TRAPNO];
@@ -524,7 +510,7 @@
 	 * do this.
 	 */
 	if (tt == T_SGLSTP &&
-	    pc == (greg_t)sys_sysenter || pc == (greg_t)brand_sys_sysenter)
+	    (pc == (greg_t)sys_sysenter || pc == (greg_t)brand_sys_sysenter))
 		return (1);
 
 	return (0);
@@ -534,14 +520,9 @@
  * State has been saved, and all CPUs are on the CPU-specific stacks.  All
  * CPUs enter here, and head off into the debugger proper.
  */
-int
+void
 kdi_debugger_entry(kdi_cpusave_t *cpusave)
 {
-	if (kdi_trap_pass(cpusave)) {
-		cpusave->krs_cpu_state = KDI_CPU_STATE_NONE;
-		return (KDI_RESUME_PASS_TO_KERNEL);
-	}
-
 	/*
 	 * BPTFLT gives us control with %eip set to the instruction *after*
 	 * the int 3.  Back it off, so we're looking at the instruction that
@@ -551,5 +532,4 @@
 		cpusave->krs_gregs[KDIREG_PC]--;
 
 	kdi_kmdb_main(cpusave);
-	return (KDI_RESUME);
 }
--- a/usr/src/uts/intel/kdi/kdi_idthdl.s	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/kdi/kdi_idthdl.s	Tue Sep 18 15:46:43 2007 -0700
@@ -70,6 +70,25 @@
  * Generic trap and interrupt handlers.
  */
 
+#if defined(__xpv) && defined(__amd64)
+
+/*
+ * The hypervisor places r11 and rcx on the stack.
+ */
+
+#define	TRAP_NOERR(trapno) \
+	popq	%rcx;		\
+	popq	%r11;		\
+	pushq	$trapno
+
+#define	TRAP_ERR(trapno) 	\
+	popq	%rcx;		\
+	popq	%r11;		\
+	pushq	$0;		\
+	pushq	$trapno
+
+#else
+
 #define	TRAP_NOERR(trapno) 	\
 	push	$trapno
 
@@ -77,6 +96,9 @@
 	push	$0;		\
 	push	$trapno
 
+#endif	/* __xpv && __amd64 */
+
+
 #define	MKIVCT(n) \
 	ENTRY_NP(kdi_ivct/**/n/**/);	\
 	TRAP_ERR(n);			\
--- a/usr/src/uts/intel/os/ddi_arch.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/os/ddi_arch.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -98,11 +97,11 @@
 
 #ifdef	DDI_MAP_DEBUG
 	cmn_err(CE_CONT,
-		"i_ddi_bus_map: <%s,%s> <0x%x, 0x%x, 0x%d> "
-		"offset %d len %d handle 0x%x\n",
-		ddi_get_name(dip), ddi_get_name(rdip),
-		rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
-		offset, len, mp->map_handlep);
+	    "i_ddi_bus_map: <%s,%s> <0x%x, 0x%x, 0x%d> "
+	    "offset %d len %d handle 0x%x\n",
+	    ddi_get_name(dip), ddi_get_name(rdip),
+	    rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
+	    offset, len, mp->map_handlep);
 #endif	/* DDI_MAP_DEBUG */
 
 	/*
@@ -138,11 +137,11 @@
 
 #ifdef	DDI_MAP_DEBUG
 	cmn_err(CE_CONT,
-		"               <%s,%s> <0x%x, 0x%x, 0x%d> "
-		"offset %d len %d\n",
-		ddi_get_name(dip), ddi_get_name(rdip),
-		rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
-		offset, len);
+	    "               <%s,%s> <0x%x, 0x%x, 0x%d> "
+	    "offset %d len %d\n",
+	    ddi_get_name(dip), ddi_get_name(rdip),
+	    rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
+	    offset, len);
 #endif	/* DDI_MAP_DEBUG */
 
 	/*
@@ -318,9 +317,9 @@
 drv_usecwait(clock_t count)
 {
 	int tens = 0;
-	extern int tsc_gethrtime_initted;
+	extern int gethrtime_hires;
 
-	if (tsc_gethrtime_initted) {
+	if (gethrtime_hires) {
 		hrtime_t start, end;
 		hrtime_t waittime;
 
@@ -329,8 +328,8 @@
 			/* in case there are callers depending on the */
 			/* old behaviour */
 			waittime = ((count > 10) ?
-				(((hrtime_t)count / 10) + 1) : 1) *
-				10 * (NANOSEC / MICROSEC);
+			    (((hrtime_t)count / 10) + 1) : 1) *
+			    10 * (NANOSEC / MICROSEC);
 		} else  {
 			waittime = (hrtime_t)count * (NANOSEC / MICROSEC);
 		}
--- a/usr/src/uts/intel/os/driver_aliases	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/os/driver_aliases	Tue Sep 18 15:46:43 2007 -0700
@@ -30,3 +30,6 @@
 mc-amd "pci1022,1102"
 cpunex "cpus"
 cpudrv "cpu"
+xnbe "xnb,ioemu"
+xnbo "xnb,SUNW_mac"
+xnbu "xnb,netfront"
--- a/usr/src/uts/intel/os/minor_perm	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/os/minor_perm	Tue Sep 18 15:46:43 2007 -0700
@@ -145,6 +145,7 @@
 pcn:* 0666 root sys
 rtls:* 0666 root sys
 ath:* 0666 root sys
+vnic:* 0666 root sys
 ipw:* 0666 root sys
 iwi:* 0666 root sys
 pcwl:* 0666 root sys
--- a/usr/src/uts/intel/os/name_to_major	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/os/name_to_major	Tue Sep 18 15:46:43 2007 -0700
@@ -116,6 +116,16 @@
 kssl 185
 mc-amd 186
 tzmon 187
+xpvd 191
+xnf 192
+xdf 193
+xencons 194
+xenbus 195
+privcmd 196
+evtchn 197
+xdb 199
+domcaps 200
+balloon 201
 did 239
 lx_ptm 240
 lx_systrace 241
@@ -126,3 +136,7 @@
 ppm 246
 cpunex 247
 cpudrv 248
+xnbe 249
+xnbo 250
+xnbu 251
+vnic 252
--- a/usr/src/uts/intel/pcbe/opteron_pcbe.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/pcbe/opteron_pcbe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -279,9 +279,9 @@
 	} else if X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_D) {
 		opt_events = opt_events_rev_D;
 	} else if (X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_E) ||
-		X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_F) ||
-		X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_G)) {
-		    opt_events = opt_events_rev_E;
+	    X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_F) ||
+	    X86_CHIPREV_MATCH(rev, X86_CHIPREV_AMD_F_REV_G)) {
+			opt_events = opt_events_rev_E;
 	};
 
 	if (opt_events == NULL)
@@ -329,8 +329,8 @@
 opt_pcbe_cpuref(void)
 {
 	return ("See Chapter 10 of the \"BIOS and Kernel Developer's Guide "
-		"for the AMD Athlon 64 and AMD Opteron Processors,\" "
-		"AMD publication #26094");
+	    "for the AMD Athlon 64 and AMD Opteron Processors,\" "
+	    "AMD publication #26094");
 }
 
 /*ARGSUSED*/
@@ -465,7 +465,7 @@
 						&nullcfgs[2], &nullcfgs[3] };
 	opt_pcbe_config_t	*pcfg = NULL;
 	int			i;
-	uint32_t		curcr4 = getcr4();
+	ulong_t			curcr4 = getcr4();
 
 	/*
 	 * Allow nonprivileged code to read the performance counters if desired.
@@ -515,7 +515,7 @@
 	/*
 	 * Disable non-privileged access to the counter registers.
 	 */
-	setcr4((uint32_t)getcr4() & ~CR4_PCE);
+	setcr4(getcr4() & ~CR4_PCE);
 }
 
 static void
--- a/usr/src/uts/intel/pcbe/p123_pcbe.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/pcbe/p123_pcbe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -690,7 +690,7 @@
 					ptm_flags |= P6_INV;
 			} else if (strncmp(attrs[i].ka_name, "umask", 5) == 0) {
 				if ((attrs[i].ka_val | CPC_P6_PES_UMASK_MASK) !=
-					CPC_P6_PES_UMASK_MASK) {
+				    CPC_P6_PES_UMASK_MASK) {
 					kmem_free(conf,
 					    sizeof (ptm_pcbe_config_t));
 					return (CPC_ATTRIBUTE_OUT_OF_RANGE);
@@ -699,7 +699,7 @@
 				    CPC_P6_PES_UMASK_SHIFT;
 			} else if (strncmp(attrs[i].ka_name, "cmask", 5) == 0) {
 				if ((attrs[i].ka_val | CPC_P6_PES_CMASK_MASK) !=
-					CPC_P6_PES_CMASK_MASK) {
+				    CPC_P6_PES_CMASK_MASK) {
 					kmem_free(conf,
 					    sizeof (ptm_pcbe_config_t));
 					return (CPC_ATTRIBUTE_OUT_OF_RANGE);
@@ -769,7 +769,7 @@
 	ASSERT(pic0->ptm_picno == 0 && pic1->ptm_picno == 1);
 
 	if (ptm_rdpmc_avail) {
-		uint32_t curcr4 = getcr4();
+		ulong_t curcr4 = getcr4();
 		if (kcpc_allow_nonpriv(token))
 			setcr4(curcr4 | CR4_PCE);
 		else
@@ -804,7 +804,7 @@
 		wrmsr(P5_CESR, ALL_STOPPED);
 	else {
 		wrmsr(REG_PERFEVNT0, ALL_STOPPED);
-		setcr4((uint32_t)getcr4() & ~CR4_PCE);
+		setcr4(getcr4() & ~CR4_PCE);
 	}
 }
 
--- a/usr/src/uts/intel/pcbe/p4_pcbe.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/pcbe/p4_pcbe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -791,7 +791,7 @@
 	build_cfgs(cfgs, NULL, token);
 
 	if (p4_rdpmc_avail) {
-		uint32_t curcr4 = getcr4();
+		ulong_t curcr4 = getcr4();
 		if (kcpc_allow_nonpriv(token))
 			setcr4(curcr4 | CR4_PCE);
 		else
--- a/usr/src/uts/intel/sys/Makefile	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -66,6 +66,7 @@
 	old_procfs.h		\
 	pcb.h			\
 	pmem.h			\
+	privmregs.h		\
 	privregs.h		\
 	procfs_isa.h		\
 	prom_emul.h		\
--- a/usr/src/uts/intel/sys/archsystm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/archsystm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -81,6 +81,7 @@
 extern void brand_sys_syscall32();
 extern void brand_sys_syscall_int();
 extern int update_sregs();
+extern void reset_sregs();
 #elif defined(__i386)
 extern void sys_call();
 extern void brand_sys_call();
@@ -175,10 +176,21 @@
 extern int sys_rtt_common(struct regs *);
 extern void fakesoftint(void);
 
+extern void *plat_traceback(void *);
 
+#if defined(__xpv)
+extern void xen_init_callbacks(void);
+extern void xen_set_callback(void (*)(void), uint_t, uint_t);
+extern void xen_printf(const char *, ...);
+#define	cpr_dprintf xen_printf
+extern int xpv_panicking;
+#define	IN_XPV_PANIC() (xpv_panicking > 0)
+#else
 extern void setup_mca(void);
 extern void setup_mtrr(void);
 #define	cpr_dprintf prom_printf
+#define	IN_XPV_PANIC() (__lintzero)
+#endif
 
 #endif /* _KERNEL */
 
--- a/usr/src/uts/intel/sys/bootinfo.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/bootinfo.h	Tue Sep 18 15:46:43 2007 -0700
@@ -89,7 +89,12 @@
 	native_ptr_t	bi_pte_to_pt_window;
 	native_ptr_t	bi_kseg_size;	/* size used for kernel nucleus pages */
 	uint64_t	bi_top_page_table;
+#if defined(__xpv)
+	native_ptr_t	bi_xen_start_info;
+	native_ptr_t	bi_shared_info;		/* VA for shared_info */
+#else
 	native_ptr_t	bi_mb_info;
+#endif
 };
 #pragma pack()
 
--- a/usr/src/uts/intel/sys/cpu.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/cpu.h	Tue Sep 18 15:46:43 2007 -0700
@@ -39,9 +39,15 @@
  */
 #include <sys/bustypes.h>
 #include <sys/inttypes.h>
-#if defined(__GNUC__) && defined(_ASM_INLINES) && defined(_KERNEL)
+
+#if defined(_KERNEL)
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+#if defined(__GNUC__) && defined(_ASM_INLINES)
 #include <asm/cpu.h>
 #endif
+#endif	/* _KERNEL */
 
 #ifdef	__cplusplus
 extern "C" {
@@ -59,7 +65,19 @@
 /*
  * Used to insert cpu-dependent instructions into spin loops
  */
+#if defined(__xpv)
+extern int xpv_panicking;
+#define	SMT_PAUSE()				\
+	{					\
+		if (IN_XPV_PANIC())		\
+			ht_pause();		\
+		else 				\
+			(void) HYPERVISOR_yield();	\
+	}
+
+#else
 #define	SMT_PAUSE()		ht_pause()
+#endif
 
 #endif	/* _KERNEL */
 
--- a/usr/src/uts/intel/sys/kdi_machimpl.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/kdi_machimpl.h	Tue Sep 18 15:46:43 2007 -0700
@@ -110,7 +110,11 @@
 extern void kdi_idt_write(struct gate_desc *, uint_t);
 extern void kdi_idt_sync(void);
 extern void kdi_idt_switch(kdi_cpusave_t *);
+#ifdef __xpv
+extern void kdi_idtr_write(desctbr_t *);
+#else
 #define	kdi_idtr_write(idtr) wr_idtr(idtr)
+#endif
 
 extern void kdi_activate(kdi_main_t, kdi_cpusave_t *, uint_t);
 extern void kdi_deactivate(void);
--- a/usr/src/uts/intel/sys/kdi_regs.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/kdi_regs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -47,9 +47,6 @@
 
 #define	KDI_NCRUMBS	5
 
-#define	KDI_RESUME			0
-#define	KDI_RESUME_PASS_TO_KERNEL	1
-
 #define	KDI_CPU_STATE_NONE		0
 #define	KDI_CPU_STATE_MASTER		1
 #define	KDI_CPU_STATE_SLAVE		2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/sys/privmregs.h	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,43 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef	_SYS_PRIVMREGS_H
+#define	_SYS_PRIVMREGS_H
+
+#pragma ident	"%Z%%M%	%I%	%E% SMI"
+
+#include <sys/privregs.h>
+
+#if defined(__amd64)
+
+#include <amd64/sys/privmregs.h>
+
+#elif defined(__i386)
+
+#include <ia32/sys/privmregs.h>
+
+#endif
+
+#endif	/* _SYS_PRIVMREGS_H */
--- a/usr/src/uts/intel/sys/segments.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/segments.h	Tue Sep 18 15:46:43 2007 -0700
@@ -80,8 +80,49 @@
 #endif
 
 #define	SELTOIDX(s)	((s) >> 3)	/* selector to index */
-#define	SEL_KPL		0		/* kernel privilege level */
+
+/*
+ * SEL_(KPL,UPL,XPL) is the RPL or DPL value for code and data selectors
+ * and their descriptors respectively.
+ *
+ * TRP_(KPL,UPL,XPL) is used to indicate the DPL for system gates only.
+ *
+ * This distinction is important to support para-virt guests on the
+ * 64-bit hypervisor. Both guest kernel and user run in ring 3 and the
+ * hypervisor runs in ring 0. When the kernel creates its trap and
+ * interrupt gates it needs a way to prevent any arbitrary int $n
+ * instruction from entering a gate that is not expected. The hypervisor
+ * allows these gates to have a DPL from 1 to 3. By creating gates
+ * with a DPL below user (ring 3) the int $n will generate a #gp fault
+ * which the hypervisor catches and forwards to the guest.
+ */
+#if defined(__xpv)
+
+#if defined(__amd64)
+
+#define	SEL_XPL		0		/* hypervisor privilege level */
+#define	SEL_KPL		3		/* both kernel and user in ring 3 */
+#define	TRP_KPL		1		/* system gate priv (user blocked) */
+
+#elif defined(__i386)
+
+#define	SEL_XPL		0		/* hypervisor privilege level */
+#define	SEL_KPL		1		/* kernel privilege level */
+#define	TRP_KPL		SEL_KPL		/* system gate priv (user blocked) */
+
+#endif	/* __i386 */
+
+#define	TRP_XPL		0		/* system gate priv (hypervisor) */
+
+#else	/* __xpv */
+
+#define	SEL_KPL		0		/* kernel privilege level on metal */
+#define	TRP_KPL		SEL_KPL		/* system gate priv (user blocked) */
+
+#endif	/* __xpv */
+
 #define	SEL_UPL		3		/* user priority level */
+#define	TRP_UPL		3		/* system gate priv (user allowed) */
 #define	SEL_TI_LDT	4		/* local descriptor table */
 #define	SEL_LDT(s)	(IDXTOSEL(s) | SEL_TI_LDT | SEL_UPL)	/* local sel */
 #define	CPL_MASK	3		/* RPL mask for selector */
@@ -129,7 +170,6 @@
 extern void kmdb_enter(void);
 
 #if defined(__amd64)
-extern void clr_ldt_sregs(void);
 
 /*
  * inlines for update_segregs
@@ -149,6 +189,8 @@
     selector_t, selector_t, selector_t);	/* (alphabetical) */
 #endif	/* __i386 */
 
+selector_t get_cs_register();
+
 #if !defined(__amd64)
 
 /*
@@ -289,6 +331,10 @@
 
 #define	SYSSEGD_SETLIMIT(ssd, lim)	((ssd)->ssd_lolimit = lim,	\
 					(ssd)->ssd_hilimit = lim >> 16)
+
+#define	SYSSEGD_GETLIMIT(ssd)		(((ssd)->ssd_hilimit << 16) |   \
+					(ssd)->ssd_lolimit)
+
 #if !defined(__amd64)
 
 /*
@@ -358,7 +404,20 @@
 extern void set_gatesegd(gate_desc_t *, void (*)(void), selector_t,
     uint_t, uint_t);
 
-void set_syssegd(system_desc_t *, void *, size_t, uint_t, uint_t);
+extern void set_syssegd(system_desc_t *, void *, size_t, uint_t, uint_t);
+
+extern void *get_ssd_base(system_desc_t *);
+
+extern void gdt_update_usegd(uint_t, user_desc_t *);
+
+extern int ldt_update_segd(user_desc_t *, user_desc_t *);
+
+#if defined(__xpv)
+
+extern int xen_idt_to_trap_info(uint_t, gate_desc_t *, void *);
+extern void xen_idt_write(gate_desc_t *, uint_t);
+
+#endif	/* __xen */
 
 void init_boot_gdt(user_desc_t *);
 
@@ -502,20 +561,45 @@
 #define	GDT_LWPGS	56	/* lwp private %gs segment selector */
 #define	GDT_BRANDMIN	57	/* first entry in GDT for brand usage */
 #define	GDT_BRANDMAX	61	/* last entry in GDT for brand usage */
+#if !defined(__xpv)
 #define	NGDT		90	/* number of entries in GDT */
+#else
+#define	NGDT		512	/* single 4K page for the hypervisor */
+#endif
 
 #endif	/* __i386 */
 
 /*
  * Convenient selector definitions.
  */
+
+/*
+ * XXPV	64 bit Xen only allows the guest %cs/%ss be the private ones it
+ * provides, not the ones we create for ourselves.  See FLAT_RING3_CS64 in
+ * public/arch-x86_64.h
+ *
+ * 64-bit Xen runs paravirtual guests in ring 3 but emulates them running in
+ * ring 0 by clearing CPL in %cs value pushed on guest exception stacks.
+ * Therefore we will have KCS_SEL value indicate ring 0 and use that everywhere
+ * in the kernel. But in the few files where we initialize segment registers or
+ * create and update descriptors we will explicity OR in SEL_KPL (ring 3) for
+ * kernel %cs. See desctbls.c for an example.
+ */
+
+#if defined(__xpv) && defined(__amd64)
+#define	KCS_SEL		0xe030		/* FLAT_RING3_CS64 & 0xFFF0 */
+#define	KDS_SEL		0xe02b		/* FLAT_RING3_SS64 */
+#else
 #define	KCS_SEL		SEL_GDT(GDT_KCODE, SEL_KPL)
 #define	KDS_SEL		SEL_GDT(GDT_KDATA, SEL_KPL)
+#endif
+
 #define	UCS_SEL		SEL_GDT(GDT_UCODE, SEL_UPL)
 #if defined(__amd64)
 #define	TEMP_CS64_SEL	SEL_GDT(TEMPGDT_KCODE64, SEL_KPL)
 #define	U32CS_SEL	SEL_GDT(GDT_U32CODE, SEL_UPL)
-#endif	/* __amd64 */
+#endif
+
 #define	UDS_SEL		SEL_GDT(GDT_UDATA, SEL_UPL)
 #define	ULDT_SEL	SEL_GDT(GDT_LDT, SEL_KPL)
 #define	KTSS_SEL	SEL_GDT(GDT_KTSS, SEL_KPL)
@@ -558,8 +642,8 @@
 #define	LDT_ALTSYSCALL	4	/* alternate call gate for system calls */
 #define	LDT_ALTSIGCALL	5	/* EOL me, alternate call gate for sigreturn */
 #define	LDT_UDBASE	6	/* user descriptor base index */
-#define	MINNLDT		64	/* Current min solaris ldt size */
-#define	MAXNLDT		8192	/* max solaris ldt size */
+#define	MINNLDT		512	/* Current min solaris ldt size (1 4K page) */
+#define	MAXNLDT		8192	/* max solaris ldt size (16 4K pages) */
 
 #ifndef	_ASM
 
@@ -569,11 +653,18 @@
 extern	user_desc_t	*gdt0;
 
 extern user_desc_t	zero_udesc;
-extern system_desc_t	zero_sdesc;
+extern user_desc_t	null_udesc;
+extern system_desc_t	null_sdesc;
 
 #if defined(__amd64)
 extern user_desc_t	zero_u32desc;
 #endif
+#if defined(__amd64)
+extern user_desc_t	ucs_on;
+extern user_desc_t	ucs_off;
+extern user_desc_t	ucs32_on;
+extern user_desc_t	ucs32_off;
+#endif  /* __amd64 */
 
 #pragma	align	16(ktss0)
 extern struct tss ktss0;
@@ -583,7 +674,10 @@
 #endif	/* __i386 */
 
 extern void div0trap(), dbgtrap(), nmiint(), brktrap(), ovflotrap();
-extern void boundstrap(), invoptrap(), ndptrap(), syserrtrap();
+extern void boundstrap(), invoptrap(), ndptrap();
+#if !defined(__xpv)
+extern void syserrtrap();
+#endif
 extern void invaltrap(), invtsstrap(), segnptrap(), stktrap();
 extern void gptrap(), pftrap(), ndperr();
 extern void overrun(), resvtrap();
--- a/usr/src/uts/intel/sys/x86_archext.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/intel/sys/x86_archext.h	Tue Sep 18 15:46:43 2007 -0700
@@ -589,15 +589,20 @@
 
 extern void cpuid_get_addrsize(struct cpu *, uint_t *, uint_t *);
 extern uint_t cpuid_get_dtlb_nent(struct cpu *, size_t);
+
+#if !defined(__xpv)
 extern uint32_t *cpuid_mwait_alloc(struct cpu *);
 extern void cpuid_mwait_free(struct cpu *);
+#endif
 
 struct cpu_ucode_info;
 
+#if !defined(__xpv)
 extern void ucode_alloc_space(struct cpu *);
 extern void ucode_free_space(struct cpu *);
 extern void ucode_check(struct cpu *);
 extern void ucode_free();
+#endif
 
 extern uint_t workaround_errata(struct cpu *);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/intel/vnic/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,91 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+# Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+# Define the module and object file sets.
+#
+MODULE		= vnic
+OBJECTS		= $(VNIC_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(VNIC_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
+CONF_SRCDIR	= $(UTSBASE)/common/io/vnic
+
+#
+# Include common rules.
+#
+include $(UTSBASE)/intel/Makefile.intel
+
+#
+# Define targets
+#
+ALL_TARGET	= $(BINARY) $(SRC_CONFILE)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
+
+#
+# Overrides
+#
+CFLAGS		+= $(CCVERBOSE)
+LDFLAGS		+= -dy -Ndrv/dld -Nmisc/mac -Ndrv/ip
+
+#
+# For now, disable these lint checks; maintainers should endeavor
+# to investigate and remove these for maximum lint coverage.
+# Please do not carry these forward to new Makefiles.
+#
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/intel/Makefile.targ
--- a/usr/src/uts/req.flg	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/req.flg	Tue Sep 18 15:46:43 2007 -0700
@@ -25,30 +25,36 @@
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
+#
+# Please KEEP THIS (reasonably) ALPHABETIZED BY FILENAME
+# (to make merging saner)
+#
+
 echo_file usr/src/uts/Makefile
 echo_file usr/src/uts/Makefile.targ
 echo_file usr/src/uts/Makefile.uts
 echo_file usr/src/Targetdirs
 echo_file usr/src/Makefile
-find_files "s.*" usr/src/psm/promif
-find_files "s.*" usr/src/common/atomic
-find_files "s.*" usr/src/common/bignum
-find_files "s.*" usr/src/common/ctf
-find_files "s.*" usr/src/common/exacct
-find_files "s.*" usr/src/common/nvpair
-find_files "s.*" usr/src/common/devid
-find_files "s.*" usr/src/common/pci
-find_files "s.*" usr/src/common/util
-find_files "s.*" usr/src/common/net/wanboot/crypt
-find_files "s.*" usr/src/common/crypto
-find_files "s.*" usr/src/common/avl
+
 # For full builds (open and closed), we want both etc/certs and
 # etc/keys.  For an open source build, there's no etc/keys directory.
 find_files "s.*" usr/src/cmd/cmd-crypto/etc
-find_files "s.*" usr/src/common/mdesc
+find_files "s.*" usr/src/common/acl
+find_files "s.*" usr/src/common/atomic
+find_files "s.*" usr/src/common/avl
+find_files "s.*" usr/src/common/bignum
+find_files "s.*" usr/src/common/crypto
+find_files "s.*" usr/src/common/ctf
+find_files "s.*" usr/src/common/devid
+find_files "s.*" usr/src/common/exacct
 find_files "s.*" usr/src/common/fs
-find_files "s.*" usr/src/common/acl
-find_files "s.*" usr/src/common/zfs
+find_files "s.*" usr/src/common/mapfiles
+find_files "s.*" usr/src/common/mdesc
+find_files "s.*" usr/src/common/net/wanboot/crypt
+find_files "s.*" usr/src/common/nvpair
+find_files "s.*" usr/src/common/pci
 find_files "s.*" usr/src/common/smbios
 find_files "s.*" usr/src/common/tsol
-find_files "s.*" usr/src/common/mapfiles
+find_files "s.*" usr/src/common/util
+find_files "s.*" usr/src/common/zfs
+find_files "s.*" usr/src/psm/promif
--- a/usr/src/uts/sparc/Makefile.sparc.shared	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sparc/Makefile.sparc.shared	Tue Sep 18 15:46:43 2007 -0700
@@ -237,7 +237,7 @@
 DRV_KMODS	+= dld
 DRV_KMODS	+= ipf
 DRV_KMODS	+= rpcib
-DRV_KMODS	+= vni
+DRV_KMODS	+= vni vnic
 DRV_KMODS	+= xge
 DRV_KMODS	+= rds
 DRV_KMODS	+= chxge
--- a/usr/src/uts/sparc/os/minor_perm	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sparc/os/minor_perm	Tue Sep 18 15:46:43 2007 -0700
@@ -169,5 +169,6 @@
 pcan:* 0666 root sys
 vsw:* 0666 root sys
 vnet:* 0666 root sys
+vnic:* 0666 root sys
 physmem:* 0600 root sys
 sdp:sdp 0666 root sys
--- a/usr/src/uts/sparc/os/name_to_major	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sparc/os/name_to_major	Tue Sep 18 15:46:43 2007 -0700
@@ -218,3 +218,4 @@
 physmem 270
 ds_snmp 271
 ds_pri 272
+vnic 273
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/uts/sparc/vnic/Makefile	Tue Sep 18 15:46:43 2007 -0700
@@ -0,0 +1,91 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"%Z%%M%	%I%	%E% SMI"
+#
+
+#
+# Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE	= ../..
+
+#
+# Define the module and object file sets.
+#
+MODULE		= vnic
+OBJECTS		= $(VNIC_OBJS:%=$(OBJS_DIR)/%)
+LINTS		= $(VNIC_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
+CONF_SRCDIR	= $(UTSBASE)/common/io/vnic
+
+#
+# Include common rules.
+#
+include $(UTSBASE)/sparc/Makefile.sparc
+
+#
+# Define targets
+#
+ALL_TARGET	= $(BINARY) $(SRC_CONFILE)
+LINT_TARGET	= $(MODULE).lint
+INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
+
+#
+# Overrides
+#
+CFLAGS		+= $(CCVERBOSE)
+LDFLAGS		+= -dy -Ndrv/dld -Nmisc/mac -Ndrv/ip
+
+#
+# For now, disable these lint checks; maintainers should endeavor
+# to investigate and remove these for maximum lint coverage.
+# Please do not carry these forward to new Makefiles.
+#
+LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
+
+#
+#	Default build targets.
+#
+.KEEP_STATE:
+
+def:		$(DEF_DEPS)
+
+all:		$(ALL_DEPS)
+
+clean:		$(CLEAN_DEPS)
+
+clobber:	$(CLOBBER_DEPS)
+
+lint:		$(LINT_DEPS)
+
+modlintlib:	$(MODLINTLIB_DEPS)
+
+clean.lint:	$(CLEAN_LINT_DEPS)
+
+install:	$(INSTALL_DEPS)
+
+#
+#	Include common targets.
+#
+include $(UTSBASE)/sparc/Makefile.targ
--- a/usr/src/uts/sun4/io/cbe.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4/io/cbe.c	Tue Sep 18 15:46:43 2007 -0700
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -56,7 +56,7 @@
 	return (q * sys_tick_freq + ((r * sys_tick_freq) / NANOSEC));
 }
 
-uint64_t
+static uint64_t
 unscalehrtime(hrtime_t ts)
 {
 	uint64_t unscale = 0;
--- a/usr/src/uts/sun4/os/machdep.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4/os/machdep.c	Tue Sep 18 15:46:43 2007 -0700
@@ -500,7 +500,7 @@
 	for (i = 0; i < PIL_MAX; i++) {
 		knp[i * 2].value.ui64 =
 		    (uint64_t)tick2ns((hrtime_t)knp[i * 2].value.ui64,
-			cpup->cpu_id);
+		    cpup->cpu_id);
 	}
 
 	return (0);
@@ -799,9 +799,9 @@
 
 /*ARGSUSED*/
 int
-plat_mem_valid_page(uintptr_t pageaddr, uio_rw_t rw)
+plat_mem_do_mmio(struct uio *uio, enum uio_rw rw)
 {
-	return (0);
+	return (ENOTSUP);
 }
 
 int
--- a/usr/src/uts/sun4/os/memlist.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4/os/memlist.c	Tue Sep 18 15:46:43 2007 -0700
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -91,6 +90,18 @@
 u_longlong_t	spec_hole_start = 0x80000000000ull;
 u_longlong_t	spec_hole_end = 0xfffff80000000000ull;
 
+pgcnt_t
+num_phys_pages()
+{
+	pgcnt_t npages = 0;
+	struct memlist *mp;
+
+	for (mp = phys_install; mp != NULL; mp = mp->next)
+		npages += mp->size >> PAGESHIFT;
+
+	return (npages);
+}
+
 /*
  * Count the number of available pages and the number of
  * chunks in the list of available memory.
@@ -346,7 +357,7 @@
 				 *	physical memory machines.
 				 */
 				(void) page_hashin(pp, &prom_ppages,
-					(offset_t)pfnum, NULL);
+				    (offset_t)pfnum, NULL);
 
 				if (kcage_on) {
 					ASSERT(pp->p_szc == 0);
--- a/usr/src/uts/sun4/os/startup.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4/os/startup.c	Tue Sep 18 15:46:43 2007 -0700
@@ -627,7 +627,7 @@
 void
 sync_handler(void)
 {
-	struct  trap_info 	ti;
+	struct  panic_trap_info 	ti;
 	int i;
 
 	/*
--- a/usr/src/uts/sun4/os/trap.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4/os/trap.c	Tue Sep 18 15:46:43 2007 -0700
@@ -86,7 +86,7 @@
 static int
 die(unsigned type, struct regs *rp, caddr_t addr, uint_t mmu_fsr)
 {
-	struct trap_info ti;
+	struct panic_trap_info ti;
 
 #ifdef TRAPTRACE
 	TRAPTRACE_FREEZE;
@@ -157,7 +157,7 @@
 	int watchcode;
 	int watchpage;
 	extern faultcode_t pagefault(caddr_t, enum fault_type,
-		enum seg_rw, int);
+	    enum seg_rw, int);
 
 	CPU_STATS_ADDQ(CPU, sys, trap, 1);
 
@@ -194,8 +194,8 @@
 		}
 		type |= T_USER;
 		ASSERT((type == (T_SYS_RTT_PAGE | T_USER)) ||
-			(type == (T_SYS_RTT_ALIGN | T_USER)) ||
-			lwp->lwp_regs == rp);
+		    (type == (T_SYS_RTT_ALIGN | T_USER)) ||
+		    lwp->lwp_regs == rp);
 		mpcb = lwptompcb(lwp);
 		switch (type) {
 		case T_WIN_OVERFLOW + T_USER:
@@ -225,7 +225,7 @@
 	}
 
 	TRACE_1(TR_FAC_TRAP, TR_C_TRAP_HANDLER_ENTER,
-		"C_trap_handler_enter:type %x", type);
+	    "C_trap_handler_enter:type %x", type);
 
 #ifdef	F_DEFERRED
 	/*
@@ -401,7 +401,7 @@
 			on_trap_data_t *otp = curthread->t_ontrap;
 
 			TRACE_0(TR_FAC_TRAP, TR_C_TRAP_HANDLER_EXIT,
-				"C_trap_handler_exit");
+			    "C_trap_handler_exit");
 			TRACE_0(TR_FAC_TRAP, TR_TRAP_END, "trap_end");
 
 			if (otp->ot_prot & OT_DATA_ACCESS) {
@@ -562,10 +562,10 @@
 
 			ASSERT(!(curthread->t_flag & T_WATCHPT));
 			watchpage = (pr_watch_active(p) &&
-				type != T_WIN_OVERFLOW + T_USER &&
-				type != T_WIN_UNDERFLOW + T_USER &&
-				type != T_SYS_RTT_PAGE + T_USER &&
-				pr_is_watchpage(addr, rw));
+			    type != T_WIN_OVERFLOW + T_USER &&
+			    type != T_WIN_UNDERFLOW + T_USER &&
+			    type != T_SYS_RTT_PAGE + T_USER &&
+			    pr_is_watchpage(addr, rw));
 
 			if (!watchpage ||
 			    (sz = instr_size(rp, &vaddr, rw)) <= 0)
@@ -574,7 +574,7 @@
 			    sz, NULL, rw)) != 0) {
 				if (ta) {
 					do_watch_step(vaddr, sz, rw,
-						watchcode, rp->r_pc);
+					    watchcode, rp->r_pc);
 					fault_type = F_INVAL;
 				} else {
 					bzero(&siginfo,	sizeof (siginfo));
@@ -702,7 +702,7 @@
 		} else { /* FC_NOMAP || FC_PROT */
 			siginfo.si_signo = SIGSEGV;
 			siginfo.si_code = (res == FC_NOMAP) ?
-				SEGV_MAPERR : SEGV_ACCERR;
+			    SEGV_MAPERR : SEGV_ACCERR;
 			fault = FLTBOUNDS;
 		}
 		/*
@@ -871,8 +871,8 @@
 			 * a controlled address.
 			 */
 			if (&fpras_chktrap) {
-			    if (fpras_chktrap(rp))
-				goto cleanup;
+				if (fpras_chktrap(rp))
+					goto cleanup;
 			}
 		}
 #if defined(SF_ERRATA_23) || defined(SF_ERRATA_30) /* call ... illegal-insn */
@@ -1082,7 +1082,7 @@
 		 * not be saved on the user stack, either because it
 		 * wasn't resident or because it was misaligned.
 		 */
-	    {
+	{
 		int error;
 		caddr_t sp;
 
@@ -1121,7 +1121,7 @@
 			fault = FLTILL;
 			break;
 		}
-	    }
+	}
 
 		/*
 		 * T_FLUSHW is used when handling a ta 0x3 -- the old flush
@@ -1376,7 +1376,7 @@
 	}
 
 	TRACE_1(TR_FAC_TRAP, TR_C_TRAP_HANDLER_ENTER,
-		"C_fpu_trap_handler_enter:type %x", type);
+	    "C_fpu_trap_handler_enter:type %x", type);
 
 	if (tudebug && tudebugfpe)
 		showregs(type, rp, addr, 0);
--- a/usr/src/uts/sun4u/os/mach_cpu_states.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4u/os/mach_cpu_states.c	Tue Sep 18 15:46:43 2007 -0700
@@ -200,7 +200,8 @@
 	CPU->cpu_m.in_prom = 1;
 	membar_stld();
 
-	for (;;);
+	for (;;)
+		continue;
 }
 
 /*
@@ -263,7 +264,7 @@
 			 * that the current level 14 has been serviced.
 			 */
 			wr_clr_softint((1 << PIL_14) |
-				TICK_INT_MASK | STICK_INT_MASK);
+			    TICK_INT_MASK | STICK_INT_MASK);
 		}
 
 		enable_vec_intr(opstate);
@@ -399,7 +400,7 @@
 
 	uint_t reason = pstate->ptl1_regs.ptl1_g1;
 	uint_t tl = pstate->ptl1_regs.ptl1_trap_regs[0].ptl1_tl;
-	struct trap_info ti = { 0 };
+	struct panic_trap_info ti = { 0 };
 
 	/*
 	 * Use trap_info for a place holder to call panic_savetrap() and
--- a/usr/src/uts/sun4u/os/mach_trap.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4u/os/mach_trap.c	Tue Sep 18 15:46:43 2007 -0700
@@ -79,13 +79,13 @@
 	}
 	if (sfsr) {
 		printf(" on ASI 0x%x E %d CID %d PRIV %d W %d OW %d FV %d",
-			(sfsr & SFSR_ASI) >> SFSR_ASI_SHIFT,
-			(sfsr & SFSR_E) != 0,
-			(sfsr & SFSR_CTX) >> SFSR_CT_SHIFT,
-			(sfsr & SFSR_PR) != 0,
-			(sfsr & SFSR_W) != 0,
-			(sfsr & SFSR_OW) != 0,
-			(sfsr & SFSR_FV) != 0);
+		    (sfsr & SFSR_ASI) >> SFSR_ASI_SHIFT,
+		    (sfsr & SFSR_E) != 0,
+		    (sfsr & SFSR_CTX) >> SFSR_CT_SHIFT,
+		    (sfsr & SFSR_PR) != 0,
+		    (sfsr & SFSR_W) != 0,
+		    (sfsr & SFSR_OW) != 0,
+		    (sfsr & SFSR_FV) != 0);
 	}
 	printf("\n");
 }
@@ -305,7 +305,7 @@
 }
 
 void
-panic_showtrap(struct trap_info *tip)
+panic_showtrap(struct panic_trap_info *tip)
 {
 	ptl1_state_t *pstate = &CPU->cpu_m.ptl1_state;
 	/*
@@ -348,7 +348,7 @@
 }
 
 void
-panic_savetrap(panic_data_t *pdp, struct trap_info *tip)
+panic_savetrap(panic_data_t *pdp, struct panic_trap_info *tip)
 {
 	panic_nv_t *pnv;
 	ptl1_state_t *pstate = &CPU->cpu_m.ptl1_state;
--- a/usr/src/uts/sun4u/sys/machsystm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4u/sys/machsystm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -138,7 +138,7 @@
 extern caddr_t set_trap_table(void);
 extern struct scb trap_table;
 
-struct trap_info {
+struct panic_trap_info {
 	struct regs *trap_regs;
 	uint_t	trap_type;
 	caddr_t trap_addr;
--- a/usr/src/uts/sun4v/os/mach_cpu_states.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4v/os/mach_cpu_states.c	Tue Sep 18 15:46:43 2007 -0700
@@ -307,7 +307,7 @@
 	membar_stld();
 
 	for (;;)
-		;
+		continue;
 }
 
 /*
@@ -531,7 +531,7 @@
 
 	uint_t reason = pstate->ptl1_regs.ptl1_gregs[0].ptl1_g1;
 	uint_t tl = pstate->ptl1_regs.ptl1_trap_regs[0].ptl1_tl;
-	struct trap_info ti = { 0 };
+	struct panic_trap_info ti = { 0 };
 
 	/*
 	 * Use trap_info for a place holder to call panic_savetrap() and
@@ -1045,7 +1045,7 @@
 	clock_t endtick = gettick() + nticks;
 
 	while (gettick() < endtick)
-		;
+		continue;
 }
 
 static void
@@ -1456,10 +1456,9 @@
 
 	if (soft_state_initialized && *string_ra) {
 		rc = hv_soft_state_set(state, *string_ra);
-
 		if (rc != H_EOK) {
-			cmn_err(CE_WARN,
-			    "hv_soft_state_set returned %ld\n", rc);
+			cmn_err(CE_WARN, "hv_soft_state_set returned %ld\n",
+			    rc);
 		}
 	}
 }
@@ -1472,8 +1471,8 @@
 	if (soft_state_initialized && *string_ra) {
 		rc = hv_soft_state_get(*string_ra, state);
 		if (rc != H_EOK) {
-			cmn_err(CE_WARN,
-			    "hv_soft_state_get returned %ld\n", rc);
+			cmn_err(CE_WARN, "hv_soft_state_get returned %ld\n",
+			    rc);
 			*state = -1;
 		}
 	}
--- a/usr/src/uts/sun4v/os/mach_trap.c	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4v/os/mach_trap.c	Tue Sep 18 15:46:43 2007 -0700
@@ -291,7 +291,7 @@
 }
 
 void
-panic_showtrap(struct trap_info *tip)
+panic_showtrap(struct panic_trap_info *tip)
 {
 	ptl1_state_t *pstate = &CPU->cpu_m.ptl1_state;
 	/*
@@ -334,7 +334,7 @@
 }
 
 void
-panic_savetrap(panic_data_t *pdp, struct trap_info *tip)
+panic_savetrap(panic_data_t *pdp, struct panic_trap_info *tip)
 {
 	panic_nv_t *pnv;
 	ptl1_state_t *pstate = &CPU->cpu_m.ptl1_state;
--- a/usr/src/uts/sun4v/sys/machsystm.h	Mon Sep 17 23:00:44 2007 -0700
+++ b/usr/src/uts/sun4v/sys/machsystm.h	Tue Sep 18 15:46:43 2007 -0700
@@ -136,7 +136,7 @@
 extern caddr_t set_trap_table(void);
 extern struct scb trap_table;
 
-struct trap_info {
+struct panic_trap_info {
 	struct regs *trap_regs;
 	uint_t	trap_type;
 	caddr_t trap_addr;