From 843e19887f64dde75055cf8842fc4db2171eff45 Mon Sep 17 00:00:00 2001 From: johnlev Date: Tue, 18 Sep 2007 15:46:43 -0700 Subject: 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); --HG-- rename : usr/src/common/util/memset.h => deleted_files/usr/src/common/util/memset.h rename : usr/src/uts/common/krtld/mapfile => deleted_files/usr/src/uts/common/krtld/mapfile rename : usr/src/uts/i86pc/boot/boot_keyboard.h => deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h rename : usr/src/uts/intel/io/i8254.c => usr/src/uts/i86pc/io/microfind.c rename : usr/src/uts/i86pc/cpunex/Makefile => usr/src/uts/intel/cpunex/Makefile rename : usr/src/uts/i86pc/io/cpunex.c => usr/src/uts/intel/io/cpunex.c --- deleted_files/usr/src/common/util/memset.h | 44 + deleted_files/usr/src/uts/common/krtld/mapfile | 74 + .../usr/src/uts/i86pc/boot/boot_keyboard.h | 46 + usr/src/Makefile.lint | 2 + usr/src/cmd/Makefile | 2 + usr/src/cmd/boot/bootadm/bootadm.c | 116 +- usr/src/cmd/boot/bootadm/bootadm.h | 27 +- usr/src/cmd/boot/bootadm/bootadm_upgrade.c | 30 +- usr/src/cmd/boot/bootadm/filelist.ramdisk | 1 + usr/src/cmd/boot/bootadm/message.h | 4 - usr/src/cmd/boot/scripts/root_archive.ksh | 37 +- usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile | 9 +- .../cmd/cmd-inet/sbin/netstrategy/netstrategy.c | 297 ++- usr/src/cmd/devfsadm/Makefile.com | 6 +- usr/src/cmd/devfsadm/i386/Makefile | 29 +- usr/src/cmd/devfsadm/i386/misc_link_i386.c | 2 - usr/src/cmd/devfsadm/i386/xen_link.c | 95 + usr/src/cmd/devfsadm/misc_link.c | 2 +- usr/src/cmd/devfsadm/sparc/Makefile | 15 +- usr/src/cmd/devprop/Makefile | 45 + usr/src/cmd/devprop/devprop.c | 158 ++ .../cmd/fm/modules/common/cpumem-retire/cma_main.c | 14 +- usr/src/cmd/format/init_ci386.c | 16 +- usr/src/cmd/format/label.c | 108 +- usr/src/cmd/format/startup.c | 251 +- usr/src/cmd/mdb/Makefile | 13 +- usr/src/cmd/mdb/Makefile.mdb | 5 + usr/src/cmd/mdb/common/mdb/mdb.c | 25 +- usr/src/cmd/mdb/common/mdb/mdb_io.h | 8 +- usr/src/cmd/mdb/common/mdb/mdb_kb.h | 79 + usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c | 69 + usr/src/cmd/mdb/common/mdb/mdb_kvm.c | 196 +- usr/src/cmd/mdb/common/mdb/mdb_kvm.h | 17 +- usr/src/cmd/mdb/common/mdb/mdb_main.c | 125 +- usr/src/cmd/mdb/common/mdb/mdb_memio.c | 117 + usr/src/cmd/mdb/common/modules/genunix/genunix.c | 9 +- usr/src/cmd/mdb/common/modules/genunix/memory.c | 51 +- usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c | 262 +- usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h | 7 + usr/src/cmd/mdb/i86pc/modules/unix/unix.c | 14 +- usr/src/cmd/mdb/i86xpv/Makefile | 28 + usr/src/cmd/mdb/i86xpv/Makefile.i86xpv | 47 + usr/src/cmd/mdb/i86xpv/modules/Makefile | 29 + usr/src/cmd/mdb/i86xpv/modules/unix/Makefile | 30 + usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile | 45 + usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile | 44 + usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile | 30 + usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile | 47 + usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile | 46 + usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c | 292 +++ usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile | 30 + .../cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile | 46 + .../cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile | 45 + usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c | 525 ++++ usr/src/cmd/mdb/intel/Makefile | 14 +- usr/src/cmd/mdb/intel/amd64/genunix/Makefile | 1 + usr/src/cmd/mdb/intel/amd64/mdb/Makefile | 3 +- usr/src/cmd/mdb/intel/ia32/genunix/Makefile | 1 + usr/src/cmd/mdb/intel/ia32/mdb/Makefile | 3 +- usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c | 20 - usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c | 159 +- usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c | 162 +- usr/src/cmd/mdb/intel/mdb/kvm_isadep.c | 191 ++ usr/src/cmd/mdb/intel/mdb/kvm_isadep.h | 55 + usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c | 45 +- usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h | 10 +- usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c | 31 +- usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h | 10 +- usr/src/cmd/mdb/intel/modules/Makefile | 29 + usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile | 30 + .../cmd/mdb/intel/modules/mdb_kb/amd64/Makefile | 47 + usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile | 46 + usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c | 1059 ++++++++ usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c | 21 +- usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c | 25 +- usr/src/cmd/netadm/iu.ap.sh | 1 + .../cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL | 4 +- usr/src/cmd/svc/milestone/net-physical | 69 +- usr/src/cmd/vna/Makefile | 44 + usr/src/cmd/vna/vna.c | 182 ++ usr/src/common/util/memset.h | 44 - usr/src/grub/grub-0.95/stage2/fsys_zfs.h | 3 +- usr/src/grub/grub-0.95/stage2/gunzip.c | 1 + usr/src/grub/grub-0.95/stage2/shared.h | 3 + usr/src/lib/libc/Makefile | 10 +- usr/src/lib/libc/i386_hwcap3/Makefile | 48 + usr/src/lib/libc/i386_hwcap3/mapfile | 26 + usr/src/lib/libdladm/Makefile | 5 +- usr/src/lib/libdladm/Makefile.com | 3 +- usr/src/lib/libdladm/common/libdladm.c | 21 + usr/src/lib/libdladm/common/libdladm.h | 8 +- usr/src/lib/libdladm/common/libdlaggr.c | 23 +- usr/src/lib/libdladm/common/libdlvnic.c | 549 +++++ usr/src/lib/libdladm/common/libdlvnic.h | 73 + usr/src/lib/libdladm/common/llib-ldladm | 1 + usr/src/lib/libdladm/common/mapfile-vers | 5 + usr/src/pkgdefs/Makefile | 2 + usr/src/pkgdefs/SUNWcakr.i/prototype_com | 6 - usr/src/pkgdefs/SUNWcakrx.i/Makefile | 36 + usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl | 56 + usr/src/pkgdefs/SUNWcakrx.i/prototype_com | 116 + usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 | 48 + usr/src/pkgdefs/SUNWcarx.i/Makefile | 35 + usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl | 56 + usr/src/pkgdefs/SUNWcarx.i/prototype_com | 47 + usr/src/pkgdefs/SUNWcarx.i/prototype_i386 | 49 + usr/src/pkgdefs/SUNWckr/prototype_com | 3 +- usr/src/pkgdefs/SUNWckr/prototype_i386 | 4 + usr/src/pkgdefs/SUNWckr/prototype_sparc | 1 + usr/src/pkgdefs/SUNWcsl/prototype_i386 | 1 + usr/src/pkgdefs/SUNWcsr/prototype_com | 1 + usr/src/pkgdefs/SUNWcsu/prototype_com | 1 + usr/src/pkgdefs/SUNWcsu/prototype_i386 | 1 + usr/src/pkgdefs/SUNWhea/prototype_i386 | 19 + usr/src/pkgdefs/SUNWmdb/prototype_i386 | 13 + usr/src/pkgdefs/SUNWmdbr/prototype_i386 | 9 + usr/src/pkgdefs/SUNWpsdir/prototype_i386 | 7 + usr/src/pkgdefs/SUNWxsvc/prototype_i386 | 7 + usr/src/pkgdefs/common_files/i.iuap | 1 + usr/src/pkgdefs/etc/exception_list_i386 | 6 + usr/src/pkgdefs/etc/exception_list_sparc | 6 + usr/src/tools/abi/etc/ABI_i386.db | 2590 +++++++++++++++++++- usr/src/tools/abi/etc/exceptions | 17 + usr/src/tools/elfextract/elfextract.c | 18 +- usr/src/tools/scripts/bfu.sh | 84 +- usr/src/uts/Makefile | 9 +- usr/src/uts/common/Makefile.files | 2 + usr/src/uts/common/Makefile.rules | 7 + usr/src/uts/common/brand/lx/os/lx_misc.c | 29 +- usr/src/uts/common/dtrace/sdt_subr.c | 66 + usr/src/uts/common/fs/dev/sdev_vnops.c | 4 +- usr/src/uts/common/fs/nfs/nfs_dlinet.c | 166 +- usr/src/uts/common/fs/vfs.c | 34 +- usr/src/uts/common/inet/ip/ip.c | 149 +- usr/src/uts/common/io/avintr.c | 74 +- usr/src/uts/common/io/cmlb.c | 31 +- usr/src/uts/common/io/dld/dld_str.c | 10 +- usr/src/uts/common/io/dls/dls.c | 8 +- usr/src/uts/common/io/dls/dls_link.c | 4 +- usr/src/uts/common/io/lofi.c | 8 + usr/src/uts/common/io/mac/mac.c | 380 ++- usr/src/uts/common/io/mem.c | 24 +- usr/src/uts/common/io/ppp/spppcomp/zlib.c | 1 - usr/src/uts/common/io/vnic/vnic.conf | 27 + usr/src/uts/common/io/vnic/vnic_bcast.c | 466 ++++ usr/src/uts/common/io/vnic/vnic_cl.c | 319 +++ usr/src/uts/common/io/vnic/vnic_ctl.c | 577 +++++ usr/src/uts/common/io/vnic/vnic_dev.c | 1578 ++++++++++++ usr/src/uts/common/krtld/mapfile | 74 - usr/src/uts/common/os/clock.c | 14 +- usr/src/uts/common/os/dumpsubr.c | 6 +- usr/src/uts/common/os/mutex.c | 1 + usr/src/uts/common/os/panic.c | 22 +- usr/src/uts/common/sys/Makefile | 2 + usr/src/uts/common/sys/cmlb.h | 1 + usr/src/uts/common/sys/dumphdr.h | 1 + usr/src/uts/common/sys/hold_page.h | 10 +- usr/src/uts/common/sys/mac.h | 23 +- usr/src/uts/common/sys/mac_impl.h | 34 +- usr/src/uts/common/sys/mem.h | 2 +- usr/src/uts/common/sys/memlist.h | 2 + usr/src/uts/common/sys/panic.h | 26 +- usr/src/uts/common/sys/proc.h | 1 - usr/src/uts/common/sys/sdt.h | 17 + usr/src/uts/common/sys/systm.h | 1 + usr/src/uts/common/sys/thread.h | 4 +- usr/src/uts/common/sys/time.h | 1 - usr/src/uts/common/sys/vnic.h | 144 ++ usr/src/uts/common/sys/vnic_impl.h | 195 ++ usr/src/uts/common/vm/faultcode.h | 10 +- usr/src/uts/common/vm/seg_kmem.c | 21 +- usr/src/uts/common/vm/seg_kmem.h | 1 + usr/src/uts/common/vm/vm_as.c | 79 +- usr/src/uts/common/vm/vm_page.c | 8 +- usr/src/uts/common/xen/io/evtchn_dev.c | 728 ++++++ usr/src/uts/common/xen/io/xdb.c | 1492 +++++++++++ usr/src/uts/common/xen/io/xdb.h | 223 ++ usr/src/uts/common/xen/io/xdf.c | 2517 +++++++++++++++++++ usr/src/uts/common/xen/io/xdf.h | 286 +++ usr/src/uts/common/xen/io/xenbus_client.c | 284 +++ usr/src/uts/common/xen/io/xenbus_comms.c | 290 +++ usr/src/uts/common/xen/io/xenbus_dev.c | 645 +++++ usr/src/uts/common/xen/io/xenbus_probe.c | 185 ++ usr/src/uts/common/xen/io/xenbus_xs.c | 1073 ++++++++ usr/src/uts/common/xen/io/xencons.c | 1654 +++++++++++++ usr/src/uts/common/xen/io/xencons.conf | 27 + usr/src/uts/common/xen/io/xencons.h | 208 ++ usr/src/uts/common/xen/io/xnb.c | 1536 ++++++++++++ usr/src/uts/common/xen/io/xnb.h | 181 ++ usr/src/uts/common/xen/io/xnbe.c | 163 ++ usr/src/uts/common/xen/io/xnbo.c | 569 +++++ usr/src/uts/common/xen/io/xnbu.c | 542 ++++ usr/src/uts/common/xen/io/xnf.c | 2204 +++++++++++++++++ usr/src/uts/common/xen/io/xnf.h | 174 ++ usr/src/uts/common/xen/io/xpv_autoconfig.c | 122 + usr/src/uts/common/xen/io/xpvd.c | 971 ++++++++ usr/src/uts/common/xen/os/xvdi.c | 2091 ++++++++++++++++ usr/src/uts/common/xen/public/COPYING | 38 + usr/src/uts/common/xen/public/README.DO_NOT_EDIT | 36 + usr/src/uts/common/xen/public/acm.h | 205 ++ usr/src/uts/common/xen/public/acm_ops.h | 120 + .../uts/common/xen/public/arch-x86/xen-x86_32.h | 232 ++ .../uts/common/xen/public/arch-x86/xen-x86_64.h | 290 +++ usr/src/uts/common/xen/public/arch-x86/xen.h | 216 ++ usr/src/uts/common/xen/public/callback.h | 92 + usr/src/uts/common/xen/public/domctl.h | 445 ++++ usr/src/uts/common/xen/public/elfnote.h | 179 ++ usr/src/uts/common/xen/public/event_channel.h | 251 ++ usr/src/uts/common/xen/public/features.h | 71 + usr/src/uts/common/xen/public/grant_table.h | 380 +++ usr/src/uts/common/xen/public/hvm/hvm_op.h | 53 + usr/src/uts/common/xen/public/hvm/params.h | 36 + usr/src/uts/common/xen/public/io/blkif.h | 128 + usr/src/uts/common/xen/public/io/console.h | 51 + usr/src/uts/common/xen/public/io/netif.h | 184 ++ usr/src/uts/common/xen/public/io/ring.h | 305 +++ usr/src/uts/common/xen/public/io/xenbus.h | 73 + usr/src/uts/common/xen/public/io/xs_wire.h | 136 + usr/src/uts/common/xen/public/memory.h | 276 +++ usr/src/uts/common/xen/public/nmi.h | 78 + usr/src/uts/common/xen/public/physdev.h | 169 ++ usr/src/uts/common/xen/public/platform.h | 151 ++ usr/src/uts/common/xen/public/sched.h | 121 + usr/src/uts/common/xen/public/sysctl.h | 176 ++ usr/src/uts/common/xen/public/vcpu.h | 142 ++ usr/src/uts/common/xen/public/version.h | 91 + usr/src/uts/common/xen/public/xen-compat.h | 51 + usr/src/uts/common/xen/public/xen.h | 615 +++++ usr/src/uts/common/xen/sys/README | 36 + usr/src/uts/common/xen/sys/evtchn.h | 101 + usr/src/uts/common/xen/sys/privcmd.h | 87 + usr/src/uts/common/xen/sys/xenbus.h | 44 + usr/src/uts/common/xen/sys/xenbus_comms.h | 64 + usr/src/uts/common/xen/sys/xenbus_impl.h | 261 ++ usr/src/uts/common/xen/sys/xendev.h | 212 ++ usr/src/uts/i86pc/Makefile.files | 6 +- usr/src/uts/i86pc/Makefile.i86pc.shared | 1 - usr/src/uts/i86pc/Makefile.rules | 4 +- usr/src/uts/i86pc/boot/boot_console.c | 197 +- usr/src/uts/i86pc/boot/boot_keyboard.c | 81 +- usr/src/uts/i86pc/boot/boot_keyboard.h | 46 - usr/src/uts/i86pc/boot/boot_mmu.c | 3 + usr/src/uts/i86pc/boot/boot_vga.c | 61 +- usr/src/uts/i86pc/boot/boot_vga.h | 1 + usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c | 10 +- usr/src/uts/i86pc/cpunex/Makefile | 80 - usr/src/uts/i86pc/dboot/dboot_asm.h | 44 + usr/src/uts/i86pc/dboot/dboot_asm.s | 133 + usr/src/uts/i86pc/dboot/dboot_elfload.c | 16 +- usr/src/uts/i86pc/dboot/dboot_grub.s | 41 +- usr/src/uts/i86pc/dboot/dboot_printf.c | 11 +- usr/src/uts/i86pc/dboot/dboot_startkern.c | 763 ++++-- usr/src/uts/i86pc/dboot/dboot_xboot.h | 6 - usr/src/uts/i86pc/dboot/dboot_xen.s | 128 + usr/src/uts/i86pc/io/consplat.c | 84 +- usr/src/uts/i86pc/io/cpunex.c | 197 -- usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c | 10 + usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c | 38 +- usr/src/uts/i86pc/io/hardclk.c | 4 - usr/src/uts/i86pc/io/isa.c | 78 +- usr/src/uts/i86pc/io/microfind.c | 215 ++ usr/src/uts/i86pc/io/mp_platform_common.c | 19 +- usr/src/uts/i86pc/io/pci/pci_kstats.c | 2 +- usr/src/uts/i86pc/io/pci/pci_tools.c | 13 + usr/src/uts/i86pc/io/pciex/inc.flg | 6 + usr/src/uts/i86pc/io/pcplusmp/apic.c | 82 +- usr/src/uts/i86pc/io/pcplusmp/apic_introp.c | 15 +- usr/src/uts/i86pc/io/rootnex.c | 247 +- usr/src/uts/i86pc/io/xsvc/xsvc.c | 23 +- usr/src/uts/i86pc/ml/fast_trap_asm.s | 26 +- usr/src/uts/i86pc/ml/genassym.c | 9 + usr/src/uts/i86pc/ml/ia32.il | 11 - usr/src/uts/i86pc/ml/interrupt.s | 48 +- usr/src/uts/i86pc/ml/locore.s | 63 +- usr/src/uts/i86pc/ml/mach_offsets.in | 22 +- usr/src/uts/i86pc/ml/offsets.in | 3 + usr/src/uts/i86pc/ml/syscall_asm_amd64.s | 153 +- usr/src/uts/i86pc/os/biosdisk.c | 17 +- usr/src/uts/i86pc/os/cpuid.c | 81 +- usr/src/uts/i86pc/os/cpupm.c | 8 + usr/src/uts/i86pc/os/ddi_impl.c | 99 +- usr/src/uts/i86pc/os/dtrace_subr.c | 11 +- usr/src/uts/i86pc/os/fakebop.c | 484 +++- usr/src/uts/i86pc/os/fpu_subr.c | 14 + usr/src/uts/i86pc/os/graphics.c | 11 +- usr/src/uts/i86pc/os/hold_page.c | 31 + usr/src/uts/i86pc/os/intr.c | 36 +- usr/src/uts/i86pc/os/lgrpplat.c | 7 + usr/src/uts/i86pc/os/machdep.c | 172 +- usr/src/uts/i86pc/os/microcode.c | 27 +- usr/src/uts/i86pc/os/mlsetup.c | 27 +- usr/src/uts/i86pc/os/mp_implfuncs.c | 35 +- usr/src/uts/i86pc/os/mp_machdep.c | 107 +- usr/src/uts/i86pc/os/mp_startup.c | 124 +- usr/src/uts/i86pc/os/pci_cfgspace.c | 40 +- usr/src/uts/i86pc/os/startup.c | 156 +- usr/src/uts/i86pc/os/timestamp.c | 530 ++-- usr/src/uts/i86pc/os/trap.c | 259 +- usr/src/uts/i86pc/sys/Makefile | 2 + usr/src/uts/i86pc/sys/apic.h | 4 +- usr/src/uts/i86pc/sys/boot_console.h | 11 +- usr/src/uts/i86pc/sys/clock.h | 16 +- usr/src/uts/i86pc/sys/debug_info.h | 15 +- usr/src/uts/i86pc/sys/mach_mmu.h | 8 + usr/src/uts/i86pc/sys/machcpuvar.h | 16 +- usr/src/uts/i86pc/sys/machparam.h | 31 +- usr/src/uts/i86pc/sys/machprivregs.h | 5 + usr/src/uts/i86pc/sys/machsystm.h | 16 +- usr/src/uts/i86pc/sys/psm_common.h | 9 +- usr/src/uts/i86pc/sys/vm_machparam.h | 27 +- usr/src/uts/i86pc/unix/Makefile | 25 +- usr/src/uts/i86pc/unix/dboot/Mapfile.dboot | 8 +- usr/src/uts/i86pc/vm/hat_i86.c | 519 ++-- usr/src/uts/i86pc/vm/hat_i86.h | 31 +- usr/src/uts/i86pc/vm/hat_kdi.c | 64 +- usr/src/uts/i86pc/vm/hat_pte.h | 41 +- usr/src/uts/i86pc/vm/htable.c | 393 ++- usr/src/uts/i86pc/vm/htable.h | 54 +- usr/src/uts/i86pc/vm/i86_mmu.c | 117 +- usr/src/uts/i86pc/vm/kboot_mmu.c | 104 +- usr/src/uts/i86pc/vm/kboot_mmu.h | 4 + usr/src/uts/i86pc/vm/vm_dep.h | 307 +-- usr/src/uts/i86pc/vm/vm_machdep.c | 1554 +++++++++++- usr/src/uts/i86xpv/Makefile | 170 ++ usr/src/uts/i86xpv/Makefile.files | 241 ++ usr/src/uts/i86xpv/Makefile.i86xpv | 30 + usr/src/uts/i86xpv/Makefile.i86xpv.shared | 315 +++ usr/src/uts/i86xpv/Makefile.rules | 230 ++ usr/src/uts/i86xpv/Makefile.targ | 28 + usr/src/uts/i86xpv/Makefile.targ.shared | 44 + usr/src/uts/i86xpv/balloon/Makefile | 83 + usr/src/uts/i86xpv/boot/boot_xconsole.c | 244 ++ usr/src/uts/i86xpv/conf/Mapfile | 55 + usr/src/uts/i86xpv/conf/Mapfile.amd64 | 52 + usr/src/uts/i86xpv/consconfig_dacf/Makefile | 81 + usr/src/uts/i86xpv/domcaps/Makefile | 83 + usr/src/uts/i86xpv/evtchn/Makefile | 88 + usr/src/uts/i86xpv/genassym/Makefile | 101 + usr/src/uts/i86xpv/generic_cpu/Makefile | 84 + usr/src/uts/i86xpv/gfx_private/Makefile | 104 + usr/src/uts/i86xpv/inc.flg | 30 + usr/src/uts/i86xpv/io/balloon_drv.c | 197 ++ usr/src/uts/i86xpv/io/domcaps.c | 188 ++ usr/src/uts/i86xpv/io/privcmd.c | 398 +++ usr/src/uts/i86xpv/io/privcmd_hcall.c | 1000 ++++++++ usr/src/uts/i86xpv/io/psm/xpv_psm.c | 1217 +++++++++ usr/src/uts/i86xpv/io/xpvtod.c | 191 ++ usr/src/uts/i86xpv/isa/Makefile | 129 + usr/src/uts/i86xpv/ml/amd64.il | 90 + usr/src/uts/i86xpv/ml/hyperevent.s | 249 ++ usr/src/uts/i86xpv/ml/hypersubr.s | 264 ++ usr/src/uts/i86xpv/ml/ia32.il | 103 + usr/src/uts/i86xpv/ml/panic_asm.s | 395 +++ usr/src/uts/i86xpv/ml/xenguest.s | 75 + usr/src/uts/i86xpv/npe/Makefile | 102 + usr/src/uts/i86xpv/os/balloon.c | 1065 ++++++++ usr/src/uts/i86xpv/os/evtchn.c | 1593 ++++++++++++ usr/src/uts/i86xpv/os/gnttab.c | 497 ++++ usr/src/uts/i86xpv/os/hypercall.c | 418 ++++ usr/src/uts/i86xpv/os/mach_kdi.c | 262 ++ usr/src/uts/i86xpv/os/mp_xen.c | 894 +++++++ usr/src/uts/i86xpv/os/xen_machdep.c | 1078 ++++++++ usr/src/uts/i86xpv/os/xen_mmu.c | 475 ++++ usr/src/uts/i86xpv/os/xpv_panic.c | 976 ++++++++ usr/src/uts/i86xpv/os/xpv_timestamp.c | 173 ++ usr/src/uts/i86xpv/pci-ide/Makefile | 92 + usr/src/uts/i86xpv/pci/Makefile | 97 + usr/src/uts/i86xpv/pcie/Makefile | 83 + usr/src/uts/i86xpv/privcmd/Makefile | 85 + usr/src/uts/i86xpv/rootnex/Makefile | 90 + usr/src/uts/i86xpv/sys/Makefile | 74 + usr/src/uts/i86xpv/sys/balloon.h | 57 + usr/src/uts/i86xpv/sys/balloon_impl.h | 76 + usr/src/uts/i86xpv/sys/cpr_impl.h | 59 + usr/src/uts/i86xpv/sys/domcaps_impl.h | 54 + usr/src/uts/i86xpv/sys/evtchn_impl.h | 202 ++ usr/src/uts/i86xpv/sys/gnttab.h | 152 ++ usr/src/uts/i86xpv/sys/hypervisor.h | 222 ++ usr/src/uts/i86xpv/sys/machprivregs.h | 536 ++++ usr/src/uts/i86xpv/sys/privcmd_impl.h | 61 + usr/src/uts/i86xpv/sys/xen_errno.h | 95 + usr/src/uts/i86xpv/sys/xen_mmu.h | 133 + usr/src/uts/i86xpv/sys/xpv_impl.h | 48 + usr/src/uts/i86xpv/sys/xpv_panic.h | 62 + usr/src/uts/i86xpv/unix/Makefile | 212 ++ usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot | 42 + usr/src/uts/i86xpv/vm/Makefile | 83 + usr/src/uts/i86xpv/vm/seg_mf.c | 563 +++++ usr/src/uts/i86xpv/vm/seg_mf.h | 53 + usr/src/uts/i86xpv/xdb/Makefile | 83 + usr/src/uts/i86xpv/xdf/Makefile | 88 + usr/src/uts/i86xpv/xenbus/Makefile | 87 + usr/src/uts/i86xpv/xencons/Makefile | 90 + usr/src/uts/i86xpv/xnb/Makefile | 98 + usr/src/uts/i86xpv/xnbe/Makefile | 94 + usr/src/uts/i86xpv/xnbo/Makefile | 94 + usr/src/uts/i86xpv/xnbu/Makefile | 94 + usr/src/uts/i86xpv/xnf/Makefile | 100 + usr/src/uts/i86xpv/xpv_autoconfig/Makefile | 83 + usr/src/uts/i86xpv/xpv_psm/Makefile | 99 + usr/src/uts/i86xpv/xpvd/Makefile | 85 + usr/src/uts/i86xpv/xpvtod/Makefile | 84 + usr/src/uts/i86xpv/xsvc/Makefile | 94 + usr/src/uts/intel/Makefile.files | 3 +- usr/src/uts/intel/Makefile.intel.shared | 2 + usr/src/uts/intel/amd64/ml/mach_offsets.in | 19 + usr/src/uts/intel/amd64/sys/Makefile | 1 + usr/src/uts/intel/amd64/sys/privmregs.h | 67 + usr/src/uts/intel/amd64/sys/privregs.h | 20 +- usr/src/uts/intel/asm/clock.h | 30 +- usr/src/uts/intel/asm/cpu.h | 34 +- usr/src/uts/intel/asm/mmu.h | 31 +- usr/src/uts/intel/brand/lx/lx_brand_asm.s | 12 +- usr/src/uts/intel/brand/sn1/sn1_brand_asm.s | 10 +- usr/src/uts/intel/cpunex/Makefile | 80 + usr/src/uts/intel/ia32/ml/desctbls_asm.s | 64 +- usr/src/uts/intel/ia32/ml/exception.s | 182 +- usr/src/uts/intel/ia32/ml/i86_subr.s | 275 ++- usr/src/uts/intel/ia32/ml/swtch.s | 199 +- usr/src/uts/intel/ia32/os/archdep.c | 90 +- usr/src/uts/intel/ia32/os/desctbls.c | 499 +++- usr/src/uts/intel/ia32/os/fpu.c | 4 + usr/src/uts/intel/ia32/os/sundep.c | 129 +- usr/src/uts/intel/ia32/os/sysi86.c | 383 +-- usr/src/uts/intel/ia32/sys/Makefile | 1 + usr/src/uts/intel/ia32/sys/privmregs.h | 67 + usr/src/uts/intel/ia32/sys/traptrace.h | 6 + usr/src/uts/intel/ia32/syscall/lwp_private.c | 12 +- usr/src/uts/intel/io/cpunex.c | 197 ++ usr/src/uts/intel/io/i8254.c | 209 -- usr/src/uts/intel/io/pciex/pcie_error.c | 23 +- usr/src/uts/intel/kdi/amd64/kdi_asm.s | 382 +-- usr/src/uts/intel/kdi/ia32/kdi_asm.s | 390 +-- usr/src/uts/intel/kdi/kdi_idt.c | 52 +- usr/src/uts/intel/kdi/kdi_idthdl.s | 22 + usr/src/uts/intel/os/ddi_arch.c | 35 +- usr/src/uts/intel/os/driver_aliases | 3 + usr/src/uts/intel/os/minor_perm | 1 + usr/src/uts/intel/os/name_to_major | 14 + usr/src/uts/intel/pcbe/opteron_pcbe.c | 16 +- usr/src/uts/intel/pcbe/p123_pcbe.c | 10 +- usr/src/uts/intel/pcbe/p4_pcbe.c | 2 +- usr/src/uts/intel/sys/Makefile | 1 + usr/src/uts/intel/sys/archsystm.h | 12 + usr/src/uts/intel/sys/bootinfo.h | 5 + usr/src/uts/intel/sys/cpu.h | 20 +- usr/src/uts/intel/sys/kdi_machimpl.h | 4 + usr/src/uts/intel/sys/kdi_regs.h | 3 - usr/src/uts/intel/sys/privmregs.h | 43 + usr/src/uts/intel/sys/segments.h | 110 +- usr/src/uts/intel/sys/x86_archext.h | 5 + usr/src/uts/intel/vnic/Makefile | 91 + usr/src/uts/req.flg | 34 +- usr/src/uts/sparc/Makefile.sparc.shared | 2 +- usr/src/uts/sparc/os/minor_perm | 1 + usr/src/uts/sparc/os/name_to_major | 1 + usr/src/uts/sparc/vnic/Makefile | 91 + usr/src/uts/sun4/io/cbe.c | 4 +- usr/src/uts/sun4/os/machdep.c | 6 +- usr/src/uts/sun4/os/memlist.c | 21 +- usr/src/uts/sun4/os/startup.c | 2 +- usr/src/uts/sun4/os/trap.c | 34 +- usr/src/uts/sun4u/os/mach_cpu_states.c | 7 +- usr/src/uts/sun4u/os/mach_trap.c | 18 +- usr/src/uts/sun4u/sys/machsystm.h | 2 +- usr/src/uts/sun4v/os/mach_cpu_states.c | 15 +- usr/src/uts/sun4v/os/mach_trap.c | 4 +- usr/src/uts/sun4v/sys/machsystm.h | 2 +- 468 files changed, 65926 insertions(+), 4511 deletions(-) create mode 100644 deleted_files/usr/src/common/util/memset.h create mode 100644 deleted_files/usr/src/uts/common/krtld/mapfile create mode 100644 deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h create mode 100644 usr/src/cmd/devfsadm/i386/xen_link.c create mode 100644 usr/src/cmd/devprop/Makefile create mode 100644 usr/src/cmd/devprop/devprop.c create mode 100644 usr/src/cmd/mdb/common/mdb/mdb_kb.h create mode 100644 usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c create mode 100644 usr/src/cmd/mdb/common/mdb/mdb_memio.c create mode 100644 usr/src/cmd/mdb/i86xpv/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/Makefile.i86xpv create mode 100644 usr/src/cmd/mdb/i86xpv/modules/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/unix/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile create mode 100644 usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c create mode 100644 usr/src/cmd/mdb/intel/mdb/kvm_isadep.c create mode 100644 usr/src/cmd/mdb/intel/mdb/kvm_isadep.h create mode 100644 usr/src/cmd/mdb/intel/modules/Makefile create mode 100644 usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile create mode 100644 usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile create mode 100644 usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile create mode 100644 usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c create mode 100644 usr/src/cmd/vna/Makefile create mode 100644 usr/src/cmd/vna/vna.c delete mode 100644 usr/src/common/util/memset.h create mode 100644 usr/src/lib/libc/i386_hwcap3/Makefile create mode 100644 usr/src/lib/libc/i386_hwcap3/mapfile create mode 100644 usr/src/lib/libdladm/common/libdlvnic.c create mode 100644 usr/src/lib/libdladm/common/libdlvnic.h create mode 100644 usr/src/pkgdefs/SUNWcakrx.i/Makefile create mode 100644 usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl create mode 100644 usr/src/pkgdefs/SUNWcakrx.i/prototype_com create mode 100644 usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 create mode 100644 usr/src/pkgdefs/SUNWcarx.i/Makefile create mode 100644 usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl create mode 100644 usr/src/pkgdefs/SUNWcarx.i/prototype_com create mode 100644 usr/src/pkgdefs/SUNWcarx.i/prototype_i386 create mode 100644 usr/src/uts/common/io/vnic/vnic.conf create mode 100644 usr/src/uts/common/io/vnic/vnic_bcast.c create mode 100644 usr/src/uts/common/io/vnic/vnic_cl.c create mode 100644 usr/src/uts/common/io/vnic/vnic_ctl.c create mode 100644 usr/src/uts/common/io/vnic/vnic_dev.c delete mode 100644 usr/src/uts/common/krtld/mapfile create mode 100644 usr/src/uts/common/sys/vnic.h create mode 100644 usr/src/uts/common/sys/vnic_impl.h create mode 100644 usr/src/uts/common/xen/io/evtchn_dev.c create mode 100644 usr/src/uts/common/xen/io/xdb.c create mode 100644 usr/src/uts/common/xen/io/xdb.h create mode 100644 usr/src/uts/common/xen/io/xdf.c create mode 100644 usr/src/uts/common/xen/io/xdf.h create mode 100644 usr/src/uts/common/xen/io/xenbus_client.c create mode 100644 usr/src/uts/common/xen/io/xenbus_comms.c create mode 100644 usr/src/uts/common/xen/io/xenbus_dev.c create mode 100644 usr/src/uts/common/xen/io/xenbus_probe.c create mode 100644 usr/src/uts/common/xen/io/xenbus_xs.c create mode 100644 usr/src/uts/common/xen/io/xencons.c create mode 100644 usr/src/uts/common/xen/io/xencons.conf create mode 100644 usr/src/uts/common/xen/io/xencons.h create mode 100644 usr/src/uts/common/xen/io/xnb.c create mode 100644 usr/src/uts/common/xen/io/xnb.h create mode 100644 usr/src/uts/common/xen/io/xnbe.c create mode 100644 usr/src/uts/common/xen/io/xnbo.c create mode 100644 usr/src/uts/common/xen/io/xnbu.c create mode 100644 usr/src/uts/common/xen/io/xnf.c create mode 100644 usr/src/uts/common/xen/io/xnf.h create mode 100644 usr/src/uts/common/xen/io/xpv_autoconfig.c create mode 100644 usr/src/uts/common/xen/io/xpvd.c create mode 100644 usr/src/uts/common/xen/os/xvdi.c create mode 100644 usr/src/uts/common/xen/public/COPYING create mode 100644 usr/src/uts/common/xen/public/README.DO_NOT_EDIT create mode 100644 usr/src/uts/common/xen/public/acm.h create mode 100644 usr/src/uts/common/xen/public/acm_ops.h create mode 100644 usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h create mode 100644 usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h create mode 100644 usr/src/uts/common/xen/public/arch-x86/xen.h create mode 100644 usr/src/uts/common/xen/public/callback.h create mode 100644 usr/src/uts/common/xen/public/domctl.h create mode 100644 usr/src/uts/common/xen/public/elfnote.h create mode 100644 usr/src/uts/common/xen/public/event_channel.h create mode 100644 usr/src/uts/common/xen/public/features.h create mode 100644 usr/src/uts/common/xen/public/grant_table.h create mode 100644 usr/src/uts/common/xen/public/hvm/hvm_op.h create mode 100644 usr/src/uts/common/xen/public/hvm/params.h create mode 100644 usr/src/uts/common/xen/public/io/blkif.h create mode 100644 usr/src/uts/common/xen/public/io/console.h create mode 100644 usr/src/uts/common/xen/public/io/netif.h create mode 100644 usr/src/uts/common/xen/public/io/ring.h create mode 100644 usr/src/uts/common/xen/public/io/xenbus.h create mode 100644 usr/src/uts/common/xen/public/io/xs_wire.h create mode 100644 usr/src/uts/common/xen/public/memory.h create mode 100644 usr/src/uts/common/xen/public/nmi.h create mode 100644 usr/src/uts/common/xen/public/physdev.h create mode 100644 usr/src/uts/common/xen/public/platform.h create mode 100644 usr/src/uts/common/xen/public/sched.h create mode 100644 usr/src/uts/common/xen/public/sysctl.h create mode 100644 usr/src/uts/common/xen/public/vcpu.h create mode 100644 usr/src/uts/common/xen/public/version.h create mode 100644 usr/src/uts/common/xen/public/xen-compat.h create mode 100644 usr/src/uts/common/xen/public/xen.h create mode 100644 usr/src/uts/common/xen/sys/README create mode 100644 usr/src/uts/common/xen/sys/evtchn.h create mode 100644 usr/src/uts/common/xen/sys/privcmd.h create mode 100644 usr/src/uts/common/xen/sys/xenbus.h create mode 100644 usr/src/uts/common/xen/sys/xenbus_comms.h create mode 100644 usr/src/uts/common/xen/sys/xenbus_impl.h create mode 100644 usr/src/uts/common/xen/sys/xendev.h delete mode 100644 usr/src/uts/i86pc/boot/boot_keyboard.h delete mode 100644 usr/src/uts/i86pc/cpunex/Makefile create mode 100644 usr/src/uts/i86pc/dboot/dboot_asm.h create mode 100644 usr/src/uts/i86pc/dboot/dboot_asm.s create mode 100644 usr/src/uts/i86pc/dboot/dboot_xen.s delete mode 100644 usr/src/uts/i86pc/io/cpunex.c create mode 100644 usr/src/uts/i86pc/io/microfind.c create mode 100644 usr/src/uts/i86xpv/Makefile create mode 100644 usr/src/uts/i86xpv/Makefile.files create mode 100644 usr/src/uts/i86xpv/Makefile.i86xpv create mode 100644 usr/src/uts/i86xpv/Makefile.i86xpv.shared create mode 100644 usr/src/uts/i86xpv/Makefile.rules create mode 100644 usr/src/uts/i86xpv/Makefile.targ create mode 100644 usr/src/uts/i86xpv/Makefile.targ.shared create mode 100644 usr/src/uts/i86xpv/balloon/Makefile create mode 100644 usr/src/uts/i86xpv/boot/boot_xconsole.c create mode 100644 usr/src/uts/i86xpv/conf/Mapfile create mode 100644 usr/src/uts/i86xpv/conf/Mapfile.amd64 create mode 100644 usr/src/uts/i86xpv/consconfig_dacf/Makefile create mode 100644 usr/src/uts/i86xpv/domcaps/Makefile create mode 100644 usr/src/uts/i86xpv/evtchn/Makefile create mode 100644 usr/src/uts/i86xpv/genassym/Makefile create mode 100644 usr/src/uts/i86xpv/generic_cpu/Makefile create mode 100644 usr/src/uts/i86xpv/gfx_private/Makefile create mode 100644 usr/src/uts/i86xpv/inc.flg create mode 100755 usr/src/uts/i86xpv/io/balloon_drv.c create mode 100644 usr/src/uts/i86xpv/io/domcaps.c create mode 100644 usr/src/uts/i86xpv/io/privcmd.c create mode 100644 usr/src/uts/i86xpv/io/privcmd_hcall.c create mode 100644 usr/src/uts/i86xpv/io/psm/xpv_psm.c create mode 100644 usr/src/uts/i86xpv/io/xpvtod.c create mode 100644 usr/src/uts/i86xpv/isa/Makefile create mode 100644 usr/src/uts/i86xpv/ml/amd64.il create mode 100644 usr/src/uts/i86xpv/ml/hyperevent.s create mode 100644 usr/src/uts/i86xpv/ml/hypersubr.s create mode 100644 usr/src/uts/i86xpv/ml/ia32.il create mode 100644 usr/src/uts/i86xpv/ml/panic_asm.s create mode 100644 usr/src/uts/i86xpv/ml/xenguest.s create mode 100644 usr/src/uts/i86xpv/npe/Makefile create mode 100644 usr/src/uts/i86xpv/os/balloon.c create mode 100644 usr/src/uts/i86xpv/os/evtchn.c create mode 100644 usr/src/uts/i86xpv/os/gnttab.c create mode 100644 usr/src/uts/i86xpv/os/hypercall.c create mode 100644 usr/src/uts/i86xpv/os/mach_kdi.c create mode 100644 usr/src/uts/i86xpv/os/mp_xen.c create mode 100644 usr/src/uts/i86xpv/os/xen_machdep.c create mode 100644 usr/src/uts/i86xpv/os/xen_mmu.c create mode 100644 usr/src/uts/i86xpv/os/xpv_panic.c create mode 100644 usr/src/uts/i86xpv/os/xpv_timestamp.c create mode 100644 usr/src/uts/i86xpv/pci-ide/Makefile create mode 100644 usr/src/uts/i86xpv/pci/Makefile create mode 100644 usr/src/uts/i86xpv/pcie/Makefile create mode 100644 usr/src/uts/i86xpv/privcmd/Makefile create mode 100644 usr/src/uts/i86xpv/rootnex/Makefile create mode 100644 usr/src/uts/i86xpv/sys/Makefile create mode 100644 usr/src/uts/i86xpv/sys/balloon.h create mode 100644 usr/src/uts/i86xpv/sys/balloon_impl.h create mode 100644 usr/src/uts/i86xpv/sys/cpr_impl.h create mode 100644 usr/src/uts/i86xpv/sys/domcaps_impl.h create mode 100644 usr/src/uts/i86xpv/sys/evtchn_impl.h create mode 100644 usr/src/uts/i86xpv/sys/gnttab.h create mode 100644 usr/src/uts/i86xpv/sys/hypervisor.h create mode 100644 usr/src/uts/i86xpv/sys/machprivregs.h create mode 100644 usr/src/uts/i86xpv/sys/privcmd_impl.h create mode 100644 usr/src/uts/i86xpv/sys/xen_errno.h create mode 100644 usr/src/uts/i86xpv/sys/xen_mmu.h create mode 100644 usr/src/uts/i86xpv/sys/xpv_impl.h create mode 100644 usr/src/uts/i86xpv/sys/xpv_panic.h create mode 100644 usr/src/uts/i86xpv/unix/Makefile create mode 100644 usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot create mode 100644 usr/src/uts/i86xpv/vm/Makefile create mode 100644 usr/src/uts/i86xpv/vm/seg_mf.c create mode 100644 usr/src/uts/i86xpv/vm/seg_mf.h create mode 100644 usr/src/uts/i86xpv/xdb/Makefile create mode 100644 usr/src/uts/i86xpv/xdf/Makefile create mode 100644 usr/src/uts/i86xpv/xenbus/Makefile create mode 100644 usr/src/uts/i86xpv/xencons/Makefile create mode 100644 usr/src/uts/i86xpv/xnb/Makefile create mode 100644 usr/src/uts/i86xpv/xnbe/Makefile create mode 100644 usr/src/uts/i86xpv/xnbo/Makefile create mode 100644 usr/src/uts/i86xpv/xnbu/Makefile create mode 100644 usr/src/uts/i86xpv/xnf/Makefile create mode 100644 usr/src/uts/i86xpv/xpv_autoconfig/Makefile create mode 100644 usr/src/uts/i86xpv/xpv_psm/Makefile create mode 100644 usr/src/uts/i86xpv/xpvd/Makefile create mode 100644 usr/src/uts/i86xpv/xpvtod/Makefile create mode 100644 usr/src/uts/i86xpv/xsvc/Makefile create mode 100644 usr/src/uts/intel/amd64/sys/privmregs.h create mode 100644 usr/src/uts/intel/cpunex/Makefile create mode 100644 usr/src/uts/intel/ia32/sys/privmregs.h create mode 100644 usr/src/uts/intel/io/cpunex.c delete mode 100644 usr/src/uts/intel/io/i8254.c create mode 100644 usr/src/uts/intel/sys/privmregs.h create mode 100644 usr/src/uts/intel/vnic/Makefile create mode 100644 usr/src/uts/sparc/vnic/Makefile diff --git a/deleted_files/usr/src/common/util/memset.h b/deleted_files/usr/src/common/util/memset.h new file mode 100644 index 0000000000..93436f2ac1 --- /dev/null +++ b/deleted_files/usr/src/common/util/memset.h @@ -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 + +#ifdef __cplusplus +extern "C" { +#endif + +extern void *memset(void *, int, size_t); + +#ifdef __cplusplus +} +#endif + +#endif /* _COMMON_UTIL_MEMSET_H */ diff --git a/deleted_files/usr/src/uts/common/krtld/mapfile b/deleted_files/usr/src/uts/common/krtld/mapfile new file mode 100644 index 0000000000..65ff471ca8 --- /dev/null +++ b/deleted_files/usr/src/uts/common/krtld/mapfile @@ -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: + *; +}; diff --git a/deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h b/deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h new file mode 100644 index 0000000000..390bb1f4fe --- /dev/null +++ b/deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h @@ -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 */ diff --git a/usr/src/Makefile.lint b/usr/src/Makefile.lint index 3603fd5ade..1d326418c7 100644 --- a/usr/src/Makefile.lint +++ b/usr/src/Makefile.lint @@ -101,6 +101,7 @@ COMMON_SUBDIRS = \ cmd/devfsadm \ cmd/devinfo \ cmd/devmgmt \ + cmd/devprop \ cmd/dfs.cmds \ cmd/diff3 \ cmd/dis \ @@ -273,6 +274,7 @@ COMMON_SUBDIRS = \ cmd/utmp_update \ cmd/utmpd \ cmd/valtools \ + cmd/vna \ cmd/wall \ cmd/wbem \ cmd/wc \ diff --git a/usr/src/cmd/Makefile b/usr/src/cmd/Makefile index 98c962ca31..3272df2aad 100644 --- a/usr/src/cmd/Makefile +++ b/usr/src/cmd/Makefile @@ -122,6 +122,7 @@ COMMON_SUBDIRS= \ devctl \ devinfo \ devmgmt \ + devprop \ dfs.cmds \ diff \ diff3 \ @@ -405,6 +406,7 @@ COMMON_SUBDIRS= \ valtools \ vgrind \ vi \ + vna \ volcheck \ volrmmount \ w \ diff --git a/usr/src/cmd/boot/bootadm/bootadm.c b/usr/src/cmd/boot/bootadm/bootadm.c index 770752cdc9..2ebc4e1b1e 100644 --- a/usr/src/cmd/boot/bootadm/bootadm.c +++ b/usr/src/cmd/boot/bootadm/bootadm.c @@ -2401,6 +2401,22 @@ boot_entry_addline(entry_t *ent, line_t *lp) ent->end = lp; } +/* + * 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 * [ ]*[ \t=]** @@ -2529,10 +2545,11 @@ line_parser(menu_t *mp, char *str, int *lineNum, int *entryNum) * 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 @@ list_entry(menu_t *mp, char *menu_path, char *opt) 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 @@ add_boot_entry(menu_t *mp, 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 @@ menu_on_bootdev(char *menu_root, FILE *fp) * 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 @@ find_boot_entry(menu_t *mp, char *title, char *root, char *module, } 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 @@ find_boot_entry(menu_t *mp, char *title, char *root, char *module, 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 @@ update_boot_entry(menu_t *mp, char *title, char *root, char *kernel, 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 @@ update_entry(menu_t *mp, char *menu_root, char *opt) /* 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); + entry = update_boot_entry(mp, title, grubdisk, MULTI_BOOT, + NULL, MULTI_BOOT_ARCHIVE, osroot == menu_root); } - /* add the entry for failsafe archive */ + /* + * 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 @@ update_entry(menu_t *mp, char *menu_root, char *opt) } 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 @@ update_temp(menu_t *mp, char *menupath, char *opt) /* 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 @@ update_temp(menu_t *mp, char *menupath, char *opt) } } 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 @@ set_kernel(menu_t *mp, menu_cmd_t optnum, char *path, char *buf, size_t bufsize) } 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 @@ set_kernel(menu_t *mp, menu_cmd_t optnum, char *path, char *buf, size_t bufsize) } 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 @@ set_kernel(menu_t *mp, menu_cmd_t optnum, char *path, char *buf, size_t bufsize) (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); diff --git a/usr/src/cmd/boot/bootadm/bootadm.h b/usr/src/cmd/boot/bootadm/bootadm.h index 80309501cb..45d99e91ab 100644 --- a/usr/src/cmd/boot/bootadm/bootadm.h +++ b/usr/src/cmd/boot/bootadm/bootadm.h @@ -78,6 +78,7 @@ typedef struct entry { #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 @@ typedef enum { /* * 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 @@ typedef enum { 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 @@ typedef enum { 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 error_t dboot_or_multiboot(const char *); 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 @@ extern void update_line(line_t *); /* 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 @@ extern void update_line(line_t *); #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 diff --git a/usr/src/cmd/boot/bootadm/bootadm_upgrade.c b/usr/src/cmd/boot/bootadm/bootadm_upgrade.c index 0b375b7fd0..7235caf22a 100644 --- a/usr/src/cmd/boot/bootadm/bootadm_upgrade.c +++ b/usr/src/cmd/boot/bootadm/bootadm_upgrade.c @@ -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 @@ dboot_or_multiboot(const char *root) 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 @@ dboot_or_multiboot(const char *root) } (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 @@ upgrade_menu(menu_t *mp, char *root, char *opt) { 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 @@ upgrade_menu(menu_t *mp, char *root, char *opt) 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 @@ -554,6 +573,15 @@ upgrade_menu(menu_t *mp, char *root, char *opt) } } + /* + * 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 diff --git a/usr/src/cmd/boot/bootadm/filelist.ramdisk b/usr/src/cmd/boot/bootadm/filelist.ramdisk index cb2b543633..83f0df6a16 100644 --- a/usr/src/cmd/boot/bootadm/filelist.ramdisk +++ b/usr/src/cmd/boot/bootadm/filelist.ramdisk @@ -15,6 +15,7 @@ etc/cluster/nodeid kernel platform/i86pc/biosint platform/i86pc/kernel +platform/i86xpv/kernel platform/i86pc/ucode/GenuineIntel platform/i86pc/ucode/AuthenticAMD boot/solaris/bootenv.rc diff --git a/usr/src/cmd/boot/bootadm/message.h b/usr/src/cmd/boot/bootadm/message.h index ef19f4ec75..29d3b135be 100644 --- a/usr/src/cmd/boot/bootadm/message.h +++ b/usr/src/cmd/boot/bootadm/message.h @@ -368,10 +368,6 @@ see %s\n") 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 diff --git a/usr/src/cmd/boot/scripts/root_archive.ksh b/usr/src/cmd/boot/scripts/root_archive.ksh index 46c5d09fb1..3dce77b5a3 100644 --- a/usr/src/cmd/boot/scripts/root_archive.ksh +++ b/usr/src/cmd/boot/scripts/root_archive.ksh @@ -413,7 +413,11 @@ packmedia() 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 @@ packmedia() 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 @@ packmedia() 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 @@ packmedia() ( 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 @@ trap cleanup EXIT 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" diff --git a/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile b/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile index 97516a8e23..636e982533 100644 --- a/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile +++ b/usr/src/cmd/cmd-inet/sbin/netstrategy/Makefile @@ -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 @@ ROOTFS_PROG = $(PROG) include ../../../Makefile.cmd -LDLIBS += -lsocket +LDLIBS += -lsocket -ldevinfo .KEEP_STATE: diff --git a/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c b/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c index 1d9aec3c0b..88c512739e 100644 --- a/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c +++ b/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c @@ -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: * - "nfs" or "ufs" * - "hme0" or "none" - * - "dhcp", "rarp", or "none" + * - "dhcp", "rarp", "bootprops" + * or "none" * * Eg: * # /sbin/netstrategy @@ -50,11 +50,16 @@ * is the 16 char name of the root interface, and is only * set if rarp/dhcp was used to configure the interface. * - * 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. + * 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 @@ -69,25 +74,203 @@ #include #include #include +#include -/* ARGSUSED */ -int -main(int argc, char *argv[]) +static char *program; + +static char * +get_root_fstype() { - struct statvfs vfs; - char *root, *interface, *strategy, dummy; - long len; - int fd, nifs, nlifr; - struct lifreq *lifr; - struct lifconf lifc; + static struct statvfs vfs; /* root location */ - if (statvfs("/", &vfs) < 0) - root = "none"; - else { + if (statvfs("/", &vfs) < 0) { + return ("none"); + } else { if (strncmp(vfs.f_basetype, "nfs", sizeof ("nfs") - 1) == 0) vfs.f_basetype[sizeof ("nfs") - 1] = '\0'; - root = vfs.f_basetype; + 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[]) +{ + char *root, *interface, *strategy, dummy; + long len; + + root = interface = strategy = NULL; + program = argv[0]; + + root = get_root_fstype(); + + /* + * 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 @@ main(int argc, char *argv[]) * 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; + interface = get_first_interface(); - 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 */ - - 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) diff --git a/usr/src/cmd/devfsadm/Makefile.com b/usr/src/cmd/devfsadm/Makefile.com index 8037e617dc..5626de75b5 100644 --- a/usr/src/cmd/devfsadm/Makefile.com +++ b/usr/src/cmd/devfsadm/Makefile.com @@ -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 @@ LINK_SRCS = \ $(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 @@ LINK_OBJS = \ md_link.o \ dtrace_link.o \ zfs_link.o \ - $(LINK_OBJS_($MACH)) + $(LINK_OBJS_$(MACH)) LINK_MODS = \ SUNW_disk_link.so \ diff --git a/usr/src/cmd/devfsadm/i386/Makefile b/usr/src/cmd/devfsadm/i386/Makefile index d6f9fcc4bd..e3d8b30a66 100644 --- a/usr/src/cmd/devfsadm/i386/Makefile +++ b/usr/src/cmd/devfsadm/i386/Makefile @@ -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 diff --git a/usr/src/cmd/devfsadm/i386/misc_link_i386.c b/usr/src/cmd/devfsadm/i386/misc_link_i386.c index 952c490b50..ff0b721f29 100644 --- a/usr/src/cmd/devfsadm/i386/misc_link_i386.c +++ b/usr/src/cmd/devfsadm/i386/misc_link_i386.c @@ -585,8 +585,6 @@ xsvc(di_minor_t minor, di_node_t node) static int ucode(di_minor_t minor, di_node_t node) { - char *mn; - (void) devfsadm_mklink("ucode", node, minor, 0); return (DEVFSADM_CONTINUE); } diff --git a/usr/src/cmd/devfsadm/i386/xen_link.c b/usr/src/cmd/devfsadm/i386/xen_link.c new file mode 100644 index 0000000000..8d63c516ae --- /dev/null +++ b/usr/src/cmd/devfsadm/i386/xen_link.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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/ -> /devices/xendev/: + */ +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); +} diff --git a/usr/src/cmd/devfsadm/misc_link.c b/usr/src/cmd/devfsadm/misc_link.c index df85e8bf5c..d5c0195e4d 100644 --- a/usr/src/cmd/devfsadm/misc_link.c +++ b/usr/src/cmd/devfsadm/misc_link.c @@ -199,7 +199,7 @@ static devfsadm_remove_t misc_remove_cbt[] = { 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, diff --git a/usr/src/cmd/devfsadm/sparc/Makefile b/usr/src/cmd/devfsadm/sparc/Makefile index 20fe372cdd..ba0f250de5 100644 --- a/usr/src/cmd/devfsadm/sparc/Makefile +++ b/usr/src/cmd/devfsadm/sparc/Makefile @@ -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 diff --git a/usr/src/cmd/devprop/Makefile b/usr/src/cmd/devprop/Makefile new file mode 100644 index 0000000000..af6d25c65f --- /dev/null +++ b/usr/src/cmd/devprop/Makefile @@ -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 diff --git a/usr/src/cmd/devprop/devprop.c b/usr/src/cmd/devprop/devprop.c new file mode 100644 index 0000000000..69306353a7 --- /dev/null +++ b/usr/src/cmd/devprop/devprop.c @@ -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 +#include +#include +#include + +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); +} diff --git a/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c b/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c index b978d22983..aaea1b82cf 100644 --- a/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c +++ b/usr/src/cmd/fm/modules/common/cpumem-retire/cma_main.c @@ -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 #include #include +#include +#include cma_t cma; @@ -255,6 +257,16 @@ void _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 */ diff --git a/usr/src/cmd/format/init_ci386.c b/usr/src/cmd/format/init_ci386.c index 27eba1ed50..bb211cb034 100644 --- a/usr/src/cmd/format/init_ci386.c +++ b/usr/src/cmd/format/init_ci386.c @@ -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 @@ struct ctlr_type ctlr_types[] = { &pcmcia_ataops, CF_NOFORMAT | CF_NOWLIST }, + { DKC_VBD, + "virtual-dsk", + &genericops, + CF_NOWLIST }, + }; /* diff --git a/usr/src/cmd/format/label.c b/usr/src/cmd/format/label.c index 56c4aa1ce4..749c6ff918 100644 --- a/usr/src/cmd/format/label.c +++ b/usr/src/cmd/format/label.c @@ -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 @@ do_geometry_sanity_check() 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 @@ SMI_vtoc_to_EFI(int fd, struct dk_gpt **new_vtoc) 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 @@ write_label() * 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 @@ write_label() 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 @@ read_label(int fd, struct dk_label *label) { 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 @@ vtoc64_to_label(struct efi_info *label, struct dk_gpt *vtoc) /* 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 @@ vtoc64_to_label(struct efi_info *label, struct dk_gpt *vtoc) 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 @@ vtoc64_to_label(struct efi_info *label, struct dk_gpt *vtoc) * 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 @@ vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom) * 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 @@ vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom) * 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 @@ vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom) 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 @@ vtoc_to_label(struct dk_label *label, struct vtoc *vtoc, struct dk_geom *geom) 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 @@ label_to_vtoc(struct vtoc *vtoc, struct dk_label *label) #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 @@ label_to_vtoc(struct vtoc *vtoc, struct dk_label *label) 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 @@ err_check(struct dk_gpt *vtoc) (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 @@ err_check(struct dk_gpt *vtoc) /* make sure there is a reserved partition */ if (resv_part == -1) { (void) fprintf(stderr, - "no reserved partition found\n"); + "no reserved partition found\n"); } } diff --git a/usr/src/cmd/format/startup.c b/usr/src/cmd/format/startup.c index 5a3f4312ae..7d3144c250 100644 --- a/usr/src/cmd/format/startup.c +++ b/usr/src/cmd/format/startup.c @@ -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 @@ do_options(int argc, char *argv[]) * 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 @@ sup_init() 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 @@ sup_init() */ 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 @@ sup_setpath() * 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 @@ sup_setdtype() } } if (i == OTHER_CTLRS) { - datafile_error("Unknown controller '%s'", - cleaned); - return; + datafile_error( + "Unknown controller '%s'", + cleaned); + return; } } /* @@ -680,7 +681,7 @@ sup_setdtype() val = (int)strtol(cleaned, &ptr, 0); if (*ptr != '\0') { datafile_error("Expecting an integer, found '%s'", - cleaned); + cleaned); return; } /* @@ -1058,7 +1059,7 @@ sup_setpart() * 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 @@ sup_setpart() * 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 @@ sup_setpart() 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 @@ sup_setpart() 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 @@ sup_setpart() val1 = str2cyls(cleaned); if (val1 == -1) { datafile_error("Expecting an integer, found '%s'", - cleaned); + cleaned); return; } /* @@ -1239,7 +1239,7 @@ sup_setpart() val2 = str2blks(cleaned); if (val2 == -1) { datafile_error("Expecting an integer, found '%s'", - cleaned); + cleaned); return; } /* @@ -1318,12 +1318,12 @@ do_search(char *arglist[]) */ 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 @@ do_search(char *arglist[]) */ if ((dir = opendir(".")) == NULL) { err_print("Cannot open %s - %s\n", - directory, strerror(errno)); + directory, strerror(errno)); fullabort(); } @@ -1373,25 +1373,24 @@ do_search(char *arglist[]) */ 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 @@ do_search(char *arglist[]) */ 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 @@ do_search(char *arglist[]) */ if (closedir(dir) == -1) { err_print("Cannot close directory %s - %s\n", - directory, strerror(errno)); + directory, strerror(errno)); fullabort(); } @@ -1430,7 +1429,7 @@ do_search(char *arglist[]) */ if (chdir(curdir) == -1) { err_print("Cannot set directory to %s - %s\n", - curdir, strerror(errno)); + curdir, strerror(errno)); fullabort(); } @@ -1469,11 +1468,11 @@ do_search(char *arglist[]) } 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 @@ add_device_to_disklist(char *devname, char *devpath) 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 @@ add_device_to_disklist(char *devname, char *devpath) */ 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 @@ add_device_to_disklist(char *devname, char *devpath) 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 @@ add_device_to_disklist(char *devname, char *devpath) * 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 @@ add_device_to_disklist(char *devname, char *devpath) */ 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 @@ add_device_to_disklist(char *devname, char *devpath) * 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 @@ add_device_to_disklist(char *devname, char *devpath) */ 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 @@ add_device_to_disklist(char *devname, char *devpath) */ 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 @@ disk_is_known(struct dk_cinfo *dkinfo) 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 @@ diskname_match(char *name, struct disk_info *disk) (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 @@ get_physical_name(char *path) } if (chdir(s) == -1) { err_print("cannot chdir() to %s - %s\n", - s, strerror(errno)); + s, strerror(errno)); goto exit; } @@ -2689,7 +2690,7 @@ get_physical_name(char *path) } if (lstat(s, &stbuf) == -1) { err_print("%s: lstat() failed - %s\n", - s, strerror(errno)); + s, strerror(errno)); goto exit; } /* @@ -2713,7 +2714,7 @@ get_physical_name(char *path) */ 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 @@ get_physical_name(char *path) * /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 @@ get_physical_name(char *path) 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 @@ get_physical_name(char *path) *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 @@ get_physical_name(char *path) 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 @@ sort_disk_list() * 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_disk_list() * 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 diff --git a/usr/src/cmd/mdb/Makefile b/usr/src/cmd/mdb/Makefile index 434c87802f..6d5975a8fe 100644 --- a/usr/src/cmd/mdb/Makefile +++ b/usr/src/cmd/mdb/Makefile @@ -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 @@ sparc_MACHDIR = sparc 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 @@ clean.lint clean: $(SUBDIRS) packages clobber: $(SUBDIRS) packages +$($(MACH)_SUBDIRS): tools + $(SUBDIRS): FRC @cd $@; pwd; $(MAKE) $(TARGET) diff --git a/usr/src/cmd/mdb/Makefile.mdb b/usr/src/cmd/mdb/Makefile.mdb index 5b93bc52e4..fc91a3757a 100644 --- a/usr/src/cmd/mdb/Makefile.mdb +++ b/usr/src/cmd/mdb/Makefile.mdb @@ -53,12 +53,14 @@ SRCS += \ 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 @@ SRCS += \ $(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) diff --git a/usr/src/cmd/mdb/common/mdb/mdb.c b/usr/src/cmd/mdb/common/mdb/mdb.c index 7471d78c5d..98a6aa8773 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb.c +++ b/usr/src/cmd/mdb/common/mdb/mdb.c @@ -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 @@ mdb_path_alloc(const char *s, size_t *newlen) 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). @@ -575,6 +576,12 @@ mdb_destroy(void) 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 @@ -591,9 +598,6 @@ mdb_destroy(void) 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 @@ mdb_get_module(void) 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); diff --git a/usr/src/cmd/mdb/common/mdb/mdb_io.h b/usr/src/cmd/mdb/common/mdb/mdb_io.h index 227c7d6f45..70ede3807e 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb_io.h +++ b/usr/src/cmd/mdb/common/mdb/mdb_io.h @@ -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_strio_create(const char *); 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: diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kb.h b/usr/src/cmd/mdb/common/mdb/mdb_kb.h new file mode 100644 index 0000000000..dbcbd07ab6 --- /dev/null +++ b/usr/src/cmd/mdb/common/mdb/mdb_kb.h @@ -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 +#include + +#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 */ diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c b/usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c new file mode 100644 index 0000000000..d3cac91c5c --- /dev/null +++ b/usr/src/cmd/mdb/common/mdb/mdb_kb_kvm.c @@ -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 +#include + +#include +#include +#include + +/*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); +} diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kvm.c b/usr/src/cmd/mdb/common/mdb/mdb_kvm.c index 853feb80d1..caeadde0e5 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb_kvm.c +++ b/usr/src/cmd/mdb/common/mdb/mdb_kvm.c @@ -66,6 +66,7 @@ #include #include #include +#include #include #define KT_RELOC_BUF(buf, obase, nbase) \ @@ -276,12 +277,17 @@ kt_setflags(mdb_tgt_t *t, int flags) 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 @@ kt_setflags(mdb_tgt_t *t, int flags) 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 @@ kt_setflags(mdb_tgt_t *t, int flags) * 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 @@ 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); + + 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 @@ kt_status_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) (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 @@ static const mdb_dcmd_t kt_dcmds[] = { { "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 @@ kt_activate(mdb_tgt_t *t) 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 @@ kt_activate(mdb_tgt_t *t) "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_aread(mdb_tgt_t *t, mdb_tgt_as_t as, void *buf, 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_awrite(mdb_tgt_t *t, mdb_tgt_as_t as, const void *buf, 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_vread(mdb_tgt_t *t, void *buf, size_t nbytes, uintptr_t addr) 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_vwrite(mdb_tgt_t *t, const void *buf, size_t nbytes, uintptr_t addr) 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_pread(mdb_tgt_t *t, void *buf, size_t nbytes, physaddr_t addr) 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_pwrite(mdb_tgt_t *t, const void *buf, size_t nbytes, physaddr_t addr) 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 @@ kt_vtop(mdb_tgt_t *t, mdb_tgt_as_t as, uintptr_t va, physaddr_t *pap) 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 @@ kt_vtop(mdb_tgt_t *t, mdb_tgt_as_t as, uintptr_t va, physaddr_t *pap) (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,20 +943,24 @@ found: * 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 < 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 != 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->km_symtab == mdb.m_prsym) - sip->sym_table = MDB_TGT_PRVSYM; - else + 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; + } return (0); } @@ -1234,13 +1279,14 @@ kt_name_to_ctf(mdb_tgt_t *t, const char *name) 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 @@ kt_destroy(mdb_tgt_t *t) 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 @@ kt_destroy(mdb_tgt_t *t) 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,28 +1368,55 @@ int 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) + + 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); + + 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); - kt->k_symfile = strdup(argv[0]); - kt->k_kvmfile = strdup(argv[1]); + kt->k_symfile = NULL; + kt->k_kvmfile = strdup(argv[0]); - if ((kt->k_cookie = kvm_open(kt->k_symfile, kt->k_kvmfile, NULL, - oflag, (char *)mdb.m_pname)) == NULL) - goto err; + getops = (mdb_kb_ops_t *(*)())dlsym(RTLD_NEXT, "mdb_kb_ops"); - 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); - goto err; + if (getops == NULL || (kt->k_kb_ops = getops()) == NULL) { + warn("failed to load KVM backend ops\n"); + goto err; + } + + 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) { mdb_io_destroy(kt->k_fio); @@ -1368,7 +1443,7 @@ mdb_kvm_tgt_create(mdb_tgt_t *t, int argc, const char *argv[]) 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 @@ mdb_kvm_tgt_create(mdb_tgt_t *t, int argc, const char *argv[]) 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_kvm_tgt_create(mdb_tgt_t *t, int argc, const char *argv[]) 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 @@ err: 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); diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kvm.h b/usr/src/cmd/mdb/common/mdb/mdb_kvm.h index ef85d9179e..377785e7f4 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb_kvm.h +++ b/usr/src/cmd/mdb/common/mdb/mdb_kvm.h @@ -37,6 +37,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { @@ -70,17 +71,15 @@ typedef struct kt_module { } 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 @@ typedef struct kt_data { 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_ia32_init(mdb_tgt_t *); 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 diff --git a/usr/src/cmd/mdb/common/mdb/mdb_main.c b/usr/src/cmd/mdb/common/mdb/mdb_main.c index d3e16c4aa6..a3b5f67a54 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb_main.c +++ b/usr/src/cmd/mdb/common/mdb/mdb_main.c @@ -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 #include #include +#include #include #include @@ -381,7 +382,7 @@ main(int argc, char *argv[], char *envp[]) 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 @@ main(int argc, char *argv[], char *envp[]) "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 @@ main(int argc, char *argv[], char *envp[]) * 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) { + if (ehdr.e_ident[EI_CLASS] == ELFCLASS64) + goto reexec; #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 -#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 @@ tcreate: 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 @@ tcreate: 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; } diff --git a/usr/src/cmd/mdb/common/mdb/mdb_memio.c b/usr/src/cmd/mdb/common/mdb/mdb_memio.c new file mode 100644 index 0000000000..0cee65f206 --- /dev/null +++ b/usr/src/cmd/mdb/common/mdb/mdb_memio.c @@ -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 +#include + +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); +} diff --git a/usr/src/cmd/mdb/common/modules/genunix/genunix.c b/usr/src/cmd/mdb/common/modules/genunix/genunix.c index ccbb34139a..5ca696b970 100644 --- a/usr/src/cmd/mdb/common/modules/genunix/genunix.c +++ b/usr/src/cmd/mdb/common/modules/genunix/genunix.c @@ -465,14 +465,17 @@ callout(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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) - lbolt_sym = "panic_lbolt"; - else + if (mdb_readvar(&panicstr, "panicstr") == -1 || + panicstr == NULL) { lbolt_sym = "lbolt"; + } else { + lbolt_sym = "panic_lbolt"; + } if (mdb_readvar(&lbolt, lbolt_sym) == -1) { mdb_warn("failed to read '%s'", lbolt_sym); diff --git a/usr/src/cmd/mdb/common/modules/genunix/memory.c b/usr/src/cmd/mdb/common/modules/genunix/memory.c index efcd7dbf47..983fbaa4ab 100644 --- a/usr/src/cmd/mdb/common/modules/genunix/memory.c +++ b/usr/src/cmd/mdb/common/modules/genunix/memory.c @@ -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 #include #include - +#if defined(__i386) || defined(__amd64) +#include +#endif /* * Page walker. @@ -274,10 +276,14 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) /* 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) * 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) /* 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) /* 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ memstat(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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)); diff --git a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c index 161bd9d9a1..5620296116 100644 --- a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c +++ b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.c @@ -37,6 +37,9 @@ #include #include #include +#ifdef __xpv +#include +#endif #include #include @@ -51,7 +54,7 @@ struct pfn2pp { }; 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 @@ platform_vtop(uintptr_t addr, struct as *asp, physaddr_t *pap) 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 @@ page_num2pp(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ memseg_list(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) if (DCMD_HDRSPEC(flags)) mdb_printf("%%?s %?s %?s %?s %?s%\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 @@ memseg_list(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) } 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 @@ memseg_walk_fini(mdb_walk_state_t *wsp) * 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 @@ get_mmu(void) 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 @@ do_pte_dcmd(int level, uint64_t pte) 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 @@ pte_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ va2pfn_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ va2pfn_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ do_report_maps(pfn_t pfn) 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 @@ report_maps_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ ptable_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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 @@ htables_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { 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); diff --git a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h index 5f86f0fd5e..44fdb0b0e6 100644 --- a/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h +++ b/usr/src/cmd/mdb/i86pc/modules/unix/i86mmu.h @@ -47,6 +47,12 @@ extern int ptable_dcmd(uintptr_t addr, uint_t flags, int argc, 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_init(mdb_walk_state_t *); 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 } diff --git a/usr/src/cmd/mdb/i86pc/modules/unix/unix.c b/usr/src/cmd/mdb/i86pc/modules/unix/unix.c index d251ee9e11..d6e01a22fe 100644 --- a/usr/src/cmd/mdb/i86pc/modules/unix/unix.c +++ b/usr/src/cmd/mdb/i86pc/modules/unix/unix.c @@ -787,7 +787,7 @@ report_maps_help(void) "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 @@ ptable_help(void) "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 @@ static const mdb_dcmd_t dcmds[] = { 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 @@ _mdb_init(void) { return (&modinfo); } + +void +_mdb_fini(void) +{ + free_mmu(); +} diff --git a/usr/src/cmd/mdb/i86xpv/Makefile b/usr/src/cmd/mdb/i86xpv/Makefile new file mode 100644 index 0000000000..ed18e0b728 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/Makefile.i86xpv b/usr/src/cmd/mdb/i86xpv/Makefile.i86xpv new file mode 100644 index 0000000000..6ee27410f4 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/Makefile.i86xpv @@ -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) diff --git a/usr/src/cmd/mdb/i86xpv/modules/Makefile b/usr/src/cmd/mdb/i86xpv/modules/Makefile new file mode 100644 index 0000000000..d00ea0d3ac --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/unix/Makefile b/usr/src/cmd/mdb/i86xpv/modules/unix/Makefile new file mode 100644 index 0000000000..00da5ed565 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/unix/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile b/usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile new file mode 100644 index 0000000000..8a6331ac3d --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/unix/amd64/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile b/usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile new file mode 100644 index 0000000000..20e40d0faa --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/unix/ia32/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile new file mode 100644 index 0000000000..00da5ed565 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile new file mode 100644 index 0000000000..b4546fc819 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/amd64/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile new file mode 100644 index 0000000000..22dc3173a1 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/ia32/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c b/usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c new file mode 100644 index 0000000000..8912e80b89 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv/xpv.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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); +} diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile new file mode 100644 index 0000000000..00da5ed565 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile new file mode 100644 index 0000000000..37ad26071b --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/amd64/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile new file mode 100644 index 0000000000..8aa3060c26 --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/ia32/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c new file mode 100644 index 0000000000..d0667942aa --- /dev/null +++ b/usr/src/cmd/mdb/i86xpv/modules/xpv_psm/xpv_psm.c @@ -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 +#include +#include +#include +#include + +#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("%CPU "); + } else { + mdb_printf("%IRQ Vect Evtchn IPL Bus Trg Type " + "CPU Share APIC/INT# "); + } + mdb_printf("%s %\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("%Type Evtchn IRQ IPL CPU "); + if (have_shared_info) + mdb_printf("Masked Pending "); + + mdb_printf("%s %\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 %addr% 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 \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); +} diff --git a/usr/src/cmd/mdb/intel/Makefile b/usr/src/cmd/mdb/intel/Makefile index 70e2a71c2f..1a5f028bb4 100644 --- a/usr/src/cmd/mdb/intel/Makefile +++ b/usr/src/cmd/mdb/intel/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/amd64/genunix/Makefile b/usr/src/cmd/mdb/intel/amd64/genunix/Makefile index c3de948d81..02b6ae84a8 100644 --- a/usr/src/cmd/mdb/intel/amd64/genunix/Makefile +++ b/usr/src/cmd/mdb/intel/amd64/genunix/Makefile @@ -60,6 +60,7 @@ dmod/$(MODULE) := LDLIBS += -lm # 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 diff --git a/usr/src/cmd/mdb/intel/amd64/mdb/Makefile b/usr/src/cmd/mdb/intel/amd64/mdb/Makefile index 3db1f99e85..2115a928e7 100644 --- a/usr/src/cmd/mdb/intel/amd64/mdb/Makefile +++ b/usr/src/cmd/mdb/intel/amd64/mdb/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/ia32/genunix/Makefile b/usr/src/cmd/mdb/intel/ia32/genunix/Makefile index b10119fd8b..bb50d0bed8 100644 --- a/usr/src/cmd/mdb/intel/ia32/genunix/Makefile +++ b/usr/src/cmd/mdb/intel/ia32/genunix/Makefile @@ -59,6 +59,7 @@ dmod/$(MODULE) := LDLIBS += -lm # 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 diff --git a/usr/src/cmd/mdb/intel/ia32/mdb/Makefile b/usr/src/cmd/mdb/intel/ia32/mdb/Makefile index 9ca959931b..a50a4498e7 100644 --- a/usr/src/cmd/mdb/intel/ia32/mdb/Makefile +++ b/usr/src/cmd/mdb/intel/ia32/mdb/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c b/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c index 3f32502080..a76cc5ba3d 100644 --- a/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c +++ b/usr/src/cmd/mdb/intel/kmdb/kvm_isadep.c @@ -128,26 +128,6 @@ kmt_next(mdb_tgt_t *t, uintptr_t *p) 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, diff --git a/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c b/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c index 43468af924..d1c9d94672 100644 --- a/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c +++ b/usr/src/cmd/mdb/intel/mdb/kvm_amd64dep.c @@ -47,83 +47,20 @@ #include #include #include +#include #include #include #include #include -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 @@ kt_stack_common(uintptr_t addr, uint_t flags, int argc, 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)); @@ -219,13 +156,44 @@ const mdb_tgt_ops_t kt_amd64_ops = { mdb_amd64_kvm_stack_iter, /* t_stack_iter */ }; +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_amd64_init(mdb_tgt_t *t) 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 @@ kt_amd64_init(mdb_tgt_t *t) * 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 @@ kt_amd64_init(mdb_tgt_t *t) 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, ®s, sizeof (regs), addr) == sizeof (regs)) { + kt_regs_to_kregs(®s, 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"); } diff --git a/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c b/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c index 2ee7efcf32..b8a559843d 100644 --- a/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c +++ b/usr/src/cmd/mdb/intel/mdb/kvm_ia32dep.c @@ -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 #include #include +#include #include #include #include #include -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 @@ kt_stack_common(uintptr_t addr, uint_t flags, int argc, 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)); @@ -219,15 +156,40 @@ const mdb_tgt_ops_t kt_ia32_ops = { mdb_ia32_kvm_stack_iter, /* t_stack_iter */ }; +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_ia32_init(mdb_tgt_t *t) 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 @@ kt_ia32_init(mdb_tgt_t *t) * 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 @@ kt_ia32_init(mdb_tgt_t *t) 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, ®s, sizeof (regs), addr) == sizeof (regs)) { + kt_regs_to_kregs(®s, 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; - - } else if (mdb_tgt_readsym(t, MDB_TGT_AS_VIRT, &label, sizeof (label), - MDB_TGT_OBJ_EXEC, "panic_regs") == sizeof (label)) { + /* + * 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; + 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]; - - } else { - warn("failed to read panicbuf, panic_reg and panic_regs -- " - "current register set will be unavailable\n"); + return; } + + warn("failed to read panicbuf, panic_reg and panic_regs -- " + "current register set will be unavailable\n"); } diff --git a/usr/src/cmd/mdb/intel/mdb/kvm_isadep.c b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.c new file mode 100644 index 0000000000..84db05c117 --- /dev/null +++ b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.c @@ -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 +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +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, ®s) != 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, ®s) != 0) { + mdb_warn("failed to get regs for cpu %d\n", cpuid); + return (DCMD_ERR); + } + + return (kt_regs((uintptr_t)®s, flags, argc, argv)); +} diff --git a/usr/src/cmd/mdb/intel/mdb/kvm_isadep.h b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.h new file mode 100644 index 0000000000..fb61fbad2d --- /dev/null +++ b/usr/src/cmd/mdb/intel/mdb/kvm_isadep.h @@ -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 + +#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 */ diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c index 303923f236..868533fe11 100644 --- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c +++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c @@ -137,8 +137,6 @@ mdb_amd64_printregs(const mdb_tgt_gregset_t *gregs) 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 @@ is_argsaved(mdb_tgt_t *t, uintptr_t fstart, uint64_t size, uint_t argc, 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 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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) diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h index 1c52c8a576..f8c6097cef 100644 --- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h +++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.h @@ -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_frame(void *, uintptr_t, uint_t, const long *, 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 diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c index 0a12e33933..addb37e19f 100644 --- a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c +++ b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c @@ -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 @@ mdb_ia32_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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 @@ mdb_ia32_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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); diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h index 65473a503f..597b234b3e 100644 --- a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h +++ b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.h @@ -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_frame(void *, uintptr_t, uint_t, const long *, 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 diff --git a/usr/src/cmd/mdb/intel/modules/Makefile b/usr/src/cmd/mdb/intel/modules/Makefile new file mode 100644 index 0000000000..24c992808b --- /dev/null +++ b/usr/src/cmd/mdb/intel/modules/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile b/usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile new file mode 100644 index 0000000000..00da5ed565 --- /dev/null +++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile b/usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile new file mode 100644 index 0000000000..b12a97b8e5 --- /dev/null +++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/amd64/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile b/usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile new file mode 100644 index 0000000000..88efa5650c --- /dev/null +++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/ia32/Makefile @@ -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 diff --git a/usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c b/usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c new file mode 100644 index 0000000000..0dd529dd32 --- /dev/null +++ b/usr/src/cmd/mdb/intel/modules/mdb_kb/mdb_kb.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#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) +{ +} diff --git a/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c b/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c index e0f97068d9..9ceffca0de 100644 --- a/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c +++ b/usr/src/cmd/mdb/sparc/mdb/kvm_v7dep.c @@ -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 @@ kt_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp, 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 @@ kt_stackv(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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_sparcv7_init(mdb_tgt_t *t) 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; diff --git a/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c b/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c index b7da4e8a4c..3df01da703 100644 --- a/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c +++ b/usr/src/cmd/mdb/sparc/mdb/kvm_v9dep.c @@ -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 @@ kt_putareg(mdb_tgt_t *t, mdb_tgt_tid_t tid, const char *rname, mdb_tgt_reg_t r) 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 @@ kt_stackr(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 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_sparcv9_init(mdb_tgt_t *t) 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; diff --git a/usr/src/cmd/netadm/iu.ap.sh b/usr/src/cmd/netadm/iu.ap.sh index 3a29eaf19f..cf7d61c15d 100644 --- a/usr/src/cmd/netadm/iu.ap.sh +++ b/usr/src/cmd/netadm/iu.ap.sh @@ -37,6 +37,7 @@ case "$MACH" in 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 diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL index 96ab1d8846..386d8c4c81 100644 --- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL +++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL @@ -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 @@ if ($arch eq 'sparc') { ' -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"); } diff --git a/usr/src/cmd/svc/milestone/net-physical b/usr/src/cmd/svc/milestone/net-physical index cc260062ae..57d9ea352d 100644 --- a/usr/src/cmd/svc/milestone/net-physical +++ b/usr/src/cmd/svc/milestone/net-physical @@ -294,7 +294,7 @@ if [ "$interface_names" != '/etc/dhcp.*[0-9]' ]; then 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 @@ -345,6 +345,69 @@ if [ -f /etc/defaultrouter ]; then done /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 @@ -363,7 +426,7 @@ fi 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 @@ fi # 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 diff --git a/usr/src/cmd/vna/Makefile b/usr/src/cmd/vna/Makefile new file mode 100644 index 0000000000..98304ea4ee --- /dev/null +++ b/usr/src/cmd/vna/Makefile @@ -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 diff --git a/usr/src/cmd/vna/vna.c b/usr/src/cmd/vna/vna.c new file mode 100644 index 0000000000..adea8c94e0 --- /dev/null +++ b/usr/src/cmd/vna/vna.c @@ -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 +#include +#include +#include +#include +#include +#include + +/*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 */ +} diff --git a/usr/src/common/util/memset.h b/usr/src/common/util/memset.h deleted file mode 100644 index 93436f2ac1..0000000000 --- a/usr/src/common/util/memset.h +++ /dev/null @@ -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 - -#ifdef __cplusplus -extern "C" { -#endif - -extern void *memset(void *, int, size_t); - -#ifdef __cplusplus -} -#endif - -#endif /* _COMMON_UTIL_MEMSET_H */ diff --git a/usr/src/grub/grub-0.95/stage2/fsys_zfs.h b/usr/src/grub/grub-0.95/stage2/fsys_zfs.h index 7108f314c7..7a0156a720 100644 --- a/usr/src/grub/grub-0.95/stage2/fsys_zfs.h +++ b/usr/src/grub/grub-0.95/stage2/fsys_zfs.h @@ -59,7 +59,8 @@ typedef unsigned int size_t; /* * 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)) diff --git a/usr/src/grub/grub-0.95/stage2/gunzip.c b/usr/src/grub/grub-0.95/stage2/gunzip.c index 3c8b5ba5a2..4a905a77c1 100644 --- a/usr/src/grub/grub-0.95/stage2/gunzip.c +++ b/usr/src/grub/grub-0.95/stage2/gunzip.c @@ -174,6 +174,7 @@ static void reset_linalloc (void) { linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000); + linalloc_topaddr -= ZFS_SCRATCH_SIZE; } diff --git a/usr/src/grub/grub-0.95/stage2/shared.h b/usr/src/grub/grub-0.95/stage2/shared.h index 8e5b181afd..221df8493c 100644 --- a/usr/src/grub/grub-0.95/stage2/shared.h +++ b/usr/src/grub/grub-0.95/stage2/shared.h @@ -44,6 +44,9 @@ extern char *grub_scratch_mem; # 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)) diff --git a/usr/src/lib/libc/Makefile b/usr/src/lib/libc/Makefile index a82bb25f06..c41cd41da9 100644 --- a/usr/src/lib/libc/Makefile +++ b/usr/src/lib/libc/Makefile @@ -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 @@ include ../Makefile.lib # 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 @@ $(ROOTFS_LIBDIR64)/$(DYNLIB) := FILEMODE = 755 $(ROOTVARIANTDIR) := FILEMODE= 755 $(ROOTVARIANTDIR)/$(VAR1_DYNLIB) := FILEMODE= 755 $(ROOTVARIANTDIR)/$(VAR2_DYNLIB) := FILEMODE= 755 +$(ROOTVARIANTDIR)/$(VAR3_DYNLIB) := FILEMODE= 755 .KEEP_STATE: @@ -168,6 +172,8 @@ $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR1_BLDDIR)/% $(INS.file) $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR2_BLDDIR)/% $(INS.file) +$(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR3_BLDDIR)/% + $(INS.file) # install rule for lint library target $(ROOTFS_LINTDIR)/%: port/% diff --git a/usr/src/lib/libc/i386_hwcap3/Makefile b/usr/src/lib/libc/i386_hwcap3/Makefile new file mode 100644 index 0000000000..39725b9b5b --- /dev/null +++ b/usr/src/lib/libc/i386_hwcap3/Makefile @@ -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 diff --git a/usr/src/lib/libc/i386_hwcap3/mapfile b/usr/src/lib/libc/i386_hwcap3/mapfile new file mode 100644 index 0000000000..4fe5f9c098 --- /dev/null +++ b/usr/src/lib/libc/i386_hwcap3/mapfile @@ -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; diff --git a/usr/src/lib/libdladm/Makefile b/usr/src/lib/libdladm/Makefile index c1aa64b78b..ceae6a3ad5 100644 --- a/usr/src/lib/libdladm/Makefile +++ b/usr/src/lib/libdladm/Makefile @@ -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 @@ $(BUILD64)SUBDIRS += $(MACH64) 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 diff --git a/usr/src/lib/libdladm/Makefile.com b/usr/src/lib/libdladm/Makefile.com index 6e17165bd9..cbb912d3ed 100644 --- a/usr/src/lib/libdladm/Makefile.com +++ b/usr/src/lib/libdladm/Makefile.com @@ -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 diff --git a/usr/src/lib/libdladm/common/libdladm.c b/usr/src/lib/libdladm/common/libdladm.c index cf6669b5e6..ea440f76e3 100644 --- a/usr/src/lib/libdladm/common/libdladm.c +++ b/usr/src/lib/libdladm/common/libdladm.c @@ -127,6 +127,25 @@ dladm_status2str(dladm_status_t status, char *buf) 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 = ""; break; @@ -160,6 +179,8 @@ dladm_errno2status(int err) return (DLADM_STATUS_DENIED); case EIO: return (DLADM_STATUS_IOERR); + case EBUSY: + return (DLADM_STATUS_BUSY); default: return (DLADM_STATUS_FAILED); } diff --git a/usr/src/lib/libdladm/common/libdladm.h b/usr/src/lib/libdladm/common/libdladm.h index 7cafd51d48..8ed30b4ebf 100644 --- a/usr/src/lib/libdladm/common/libdladm.h +++ b/usr/src/lib/libdladm/common/libdladm.h @@ -65,7 +65,13 @@ typedef enum { 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 { diff --git a/usr/src/lib/libdladm/common/libdlaggr.c b/usr/src/lib/libdladm/common/libdlaggr.c index 0d0e862973..0c622fc8a2 100644 --- a/usr/src/lib/libdladm/common/libdlaggr.c +++ b/usr/src/lib/libdladm/common/libdlaggr.c @@ -195,19 +195,6 @@ typedef struct add_db_state { 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 @@ dladm_aggr_walk(int (*fn)(void *, dladm_aggr_grp_attr_t *), void *arg) } 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 @@ i_dladm_aggr_add_rem_sys(dladm_aggr_grp_attr_db_t *attr, int cmd) 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 @@ i_dladm_aggr_modify_sys(uint32_t key, uint32_t mask, 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 @@ i_dladm_aggr_create_sys(int fd, dladm_aggr_grp_attr_db_t *attr) 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 @@ i_dladm_aggr_delete_sys(int fd, dladm_aggr_grp_attr_t *attr) 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))); } /* diff --git a/usr/src/lib/libdladm/common/libdlvnic.c b/usr/src/lib/libdladm/common/libdlvnic.c new file mode 100644 index 0000000000..da9d57cd1b --- /dev/null +++ b/usr/src/lib/libdladm/common/libdlvnic.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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 , + * invoke (, ); + */ +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)); +} diff --git a/usr/src/lib/libdladm/common/libdlvnic.h b/usr/src/lib/libdladm/common/libdlvnic.h new file mode 100644 index 0000000000..4f0726746c --- /dev/null +++ b/usr/src/lib/libdladm/common/libdlvnic.h @@ -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 +#include +#include +#include + +#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 */ diff --git a/usr/src/lib/libdladm/common/llib-ldladm b/usr/src/lib/libdladm/common/llib-ldladm index b8b9a1e4f8..467808e937 100644 --- a/usr/src/lib/libdladm/common/llib-ldladm +++ b/usr/src/lib/libdladm/common/llib-ldladm @@ -31,3 +31,4 @@ #include #include #include +#include diff --git a/usr/src/lib/libdladm/common/mapfile-vers b/usr/src/lib/libdladm/common/mapfile-vers index 8ba960a93d..2672efc195 100644 --- a/usr/src/lib/libdladm/common/mapfile-vers +++ b/usr/src/lib/libdladm/common/mapfile-vers @@ -97,6 +97,11 @@ SUNWprivate_1.1 { 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: *; diff --git a/usr/src/pkgdefs/Makefile b/usr/src/pkgdefs/Makefile index 5999e62cf2..055643b3bb 100644 --- a/usr/src/pkgdefs/Makefile +++ b/usr/src/pkgdefs/Makefile @@ -114,7 +114,9 @@ i386_SUBDIRS= \ SUNWatheros \ SUNWaudiohd \ SUNWcakr.i \ + SUNWcakrx.i \ SUNWcar.i \ + SUNWcarx.i \ SUNWcpc.i \ SUNWdfb.i \ SUNWdrmr \ diff --git a/usr/src/pkgdefs/SUNWcakr.i/prototype_com b/usr/src/pkgdefs/SUNWcakr.i/prototype_com index 5ba77bac53..aadda5219e 100644 --- a/usr/src/pkgdefs/SUNWcakr.i/prototype_com +++ b/usr/src/pkgdefs/SUNWcakr.i/prototype_com @@ -55,10 +55,6 @@ f none boot/solaris/bin/symdef 0555 root sys 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/npe 755 root sys 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 @@ f none platform/i86pc/multiboot 755 root sys 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 diff --git a/usr/src/pkgdefs/SUNWcakrx.i/Makefile b/usr/src/pkgdefs/SUNWcakrx.i/Makefile new file mode 100644 index 0000000000..de7e33edd6 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcakrx.i/Makefile @@ -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 diff --git a/usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl b/usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl new file mode 100644 index 0000000000..6ba7dee8a6 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcakrx.i/pkginfo.tmpl @@ -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="" +#ISTATES="" +#RSTATES='' +#ULIMIT="" +#ORDER="" +#PSTAMP="" +#INTONLY="" diff --git a/usr/src/pkgdefs/SUNWcakrx.i/prototype_com b/usr/src/pkgdefs/SUNWcakrx.i/prototype_com new file mode 100644 index 0000000000..9940fd7b73 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcakrx.i/prototype_com @@ -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 # where to find pkg objects +#!include # include another 'prototype' file +#!default # default used if not specified on entry +#!= # 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 diff --git a/usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 b/usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 new file mode 100644 index 0000000000..bad77d5db6 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcakrx.i/prototype_i386 @@ -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 # where to find pkg objects +#!include # include another 'prototype' file +#!default # default used if not specified on entry +#!= # 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 +# diff --git a/usr/src/pkgdefs/SUNWcarx.i/Makefile b/usr/src/pkgdefs/SUNWcarx.i/Makefile new file mode 100644 index 0000000000..5434dea040 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcarx.i/Makefile @@ -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 diff --git a/usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl b/usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl new file mode 100644 index 0000000000..d3bdde6c8e --- /dev/null +++ b/usr/src/pkgdefs/SUNWcarx.i/pkginfo.tmpl @@ -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="" +#ISTATES="" +#RSTATES='' +#ULIMIT="" +#ORDER="" +#PSTAMP="" +#INTONLY="" diff --git a/usr/src/pkgdefs/SUNWcarx.i/prototype_com b/usr/src/pkgdefs/SUNWcarx.i/prototype_com new file mode 100644 index 0000000000..02f78db6e5 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcarx.i/prototype_com @@ -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 # where to find pkg objects +#!include # include another 'prototype' file +#!default # default used if not specified on entry +#!= # 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 diff --git a/usr/src/pkgdefs/SUNWcarx.i/prototype_i386 b/usr/src/pkgdefs/SUNWcarx.i/prototype_i386 new file mode 100644 index 0000000000..f7aefb6276 --- /dev/null +++ b/usr/src/pkgdefs/SUNWcarx.i/prototype_i386 @@ -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 # where to find pkg objects +#!include # include another 'prototype' file +#!default # default used if not specified on entry +#!= # 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 +# diff --git a/usr/src/pkgdefs/SUNWckr/prototype_com b/usr/src/pkgdefs/SUNWckr/prototype_com index 7d01f9ea0a..a8a13252fe 100644 --- a/usr/src/pkgdefs/SUNWckr/prototype_com +++ b/usr/src/pkgdefs/SUNWckr/prototype_com @@ -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/tl.conf 644 root sys 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 diff --git a/usr/src/pkgdefs/SUNWckr/prototype_i386 b/usr/src/pkgdefs/SUNWckr/prototype_i386 index d8b6aeac14..6694d72501 100644 --- a/usr/src/pkgdefs/SUNWckr/prototype_i386 +++ b/usr/src/pkgdefs/SUNWckr/prototype_i386 @@ -75,6 +75,7 @@ f none kernel/drv/cn 755 root sys 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/udp 755 root sys 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/cn 755 root sys 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/udp 755 root sys 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 diff --git a/usr/src/pkgdefs/SUNWckr/prototype_sparc b/usr/src/pkgdefs/SUNWckr/prototype_sparc index 666868d6ac..9fdf1b0aaa 100644 --- a/usr/src/pkgdefs/SUNWckr/prototype_sparc +++ b/usr/src/pkgdefs/SUNWckr/prototype_sparc @@ -135,6 +135,7 @@ f none kernel/drv/sparcv9/uata 755 root sys 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 diff --git a/usr/src/pkgdefs/SUNWcsl/prototype_i386 b/usr/src/pkgdefs/SUNWcsl/prototype_i386 index 2261a87ea0..0b02c4a52e 100644 --- a/usr/src/pkgdefs/SUNWcsl/prototype_i386 +++ b/usr/src/pkgdefs/SUNWcsl/prototype_i386 @@ -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 diff --git a/usr/src/pkgdefs/SUNWcsr/prototype_com b/usr/src/pkgdefs/SUNWcsr/prototype_com index 2d55e0ae59..e1f1ccf9c9 100644 --- a/usr/src/pkgdefs/SUNWcsr/prototype_com +++ b/usr/src/pkgdefs/SUNWcsr/prototype_com @@ -389,6 +389,7 @@ d none proc 555 root root 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 diff --git a/usr/src/pkgdefs/SUNWcsu/prototype_com b/usr/src/pkgdefs/SUNWcsu/prototype_com index 7863674c22..4074e20317 100644 --- a/usr/src/pkgdefs/SUNWcsu/prototype_com +++ b/usr/src/pkgdefs/SUNWcsu/prototype_com @@ -647,6 +647,7 @@ f none usr/lib/t450 555 root bin 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 diff --git a/usr/src/pkgdefs/SUNWcsu/prototype_i386 b/usr/src/pkgdefs/SUNWcsu/prototype_i386 index 05a10113d9..796d0f87c1 100644 --- a/usr/src/pkgdefs/SUNWcsu/prototype_i386 +++ b/usr/src/pkgdefs/SUNWcsu/prototype_i386 @@ -84,6 +84,7 @@ f none usr/kernel/sys/exacctsys 755 root sys 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 diff --git a/usr/src/pkgdefs/SUNWhea/prototype_i386 b/usr/src/pkgdefs/SUNWhea/prototype_i386 index ae585b7022..3e13405761 100644 --- a/usr/src/pkgdefs/SUNWhea/prototype_i386 +++ b/usr/src/pkgdefs/SUNWhea/prototype_i386 @@ -59,12 +59,14 @@ f none usr/include/asm/mmu.h 644 root bin 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/pcic_var.h 644 root bin 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/cram.h 644 root bin 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/hat_pte.h 644 root bin 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 diff --git a/usr/src/pkgdefs/SUNWmdb/prototype_i386 b/usr/src/pkgdefs/SUNWmdb/prototype_i386 index e69ae88c30..896bbe93b6 100644 --- a/usr/src/pkgdefs/SUNWmdb/prototype_i386 +++ b/usr/src/pkgdefs/SUNWmdb/prototype_i386 @@ -46,6 +46,17 @@ f none usr/platform/i86pc/lib/mdb/kvm/cpu.AuthenticAMD.15.so 555 root sys 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/krtld.so 555 root sys 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/krtld.so 555 root sys 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 diff --git a/usr/src/pkgdefs/SUNWmdbr/prototype_i386 b/usr/src/pkgdefs/SUNWmdbr/prototype_i386 index b046bd9b7c..775c90b985 100644 --- a/usr/src/pkgdefs/SUNWmdbr/prototype_i386 +++ b/usr/src/pkgdefs/SUNWmdbr/prototype_i386 @@ -98,3 +98,12 @@ f none platform/i86pc/kernel/kmdb/cpu.AuthenticAMD.15 555 root sys 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 diff --git a/usr/src/pkgdefs/SUNWpsdir/prototype_i386 b/usr/src/pkgdefs/SUNWpsdir/prototype_i386 index 0ffb0c26ce..4501487d88 100644 --- a/usr/src/pkgdefs/SUNWpsdir/prototype_i386 +++ b/usr/src/pkgdefs/SUNWpsdir/prototype_i386 @@ -69,3 +69,10 @@ f none platform/i86pc/kernel/drv/pci-ide 755 root sys 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 diff --git a/usr/src/pkgdefs/SUNWxsvc/prototype_i386 b/usr/src/pkgdefs/SUNWxsvc/prototype_i386 index 910c7e56db..0bbea606af 100644 --- a/usr/src/pkgdefs/SUNWxsvc/prototype_i386 +++ b/usr/src/pkgdefs/SUNWxsvc/prototype_i386 @@ -55,3 +55,10 @@ f none platform/i86pc/kernel/drv/xsvc 755 root sys 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 diff --git a/usr/src/pkgdefs/common_files/i.iuap b/usr/src/pkgdefs/common_files/i.iuap index a4c929fde3..c7737998c5 100644 --- a/usr/src/pkgdefs/common_files/i.iuap +++ b/usr/src/pkgdefs/common_files/i.iuap @@ -67,6 +67,7 @@ do cp /tmp/x.$$ $dest rm -f /tmp/x.$$ fi + add_driver xencons add_driver_replace se add_driver_replace su add_driver usbser_edge diff --git a/usr/src/pkgdefs/etc/exception_list_i386 b/usr/src/pkgdefs/etc/exception_list_i386 index cda362c895..c47c9768d3 100644 --- a/usr/src/pkgdefs/etc/exception_list_i386 +++ b/usr/src/pkgdefs/etc/exception_list_i386 @@ -98,12 +98,18 @@ usr/include/libdllink.h i386 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 diff --git a/usr/src/pkgdefs/etc/exception_list_sparc b/usr/src/pkgdefs/etc/exception_list_sparc index be42808698..45dc0d4d9d 100644 --- a/usr/src/pkgdefs/etc/exception_list_sparc +++ b/usr/src/pkgdefs/etc/exception_list_sparc @@ -87,12 +87,18 @@ usr/include/libdllink.h sparc 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. diff --git a/usr/src/tools/abi/etc/ABI_i386.db b/usr/src/tools/abi/etc/ABI_i386.db index 99b046630d..11e1f468a1 100644 --- a/usr/src/tools/abi/etc/ABI_i386.db +++ b/usr/src/tools/abi/etc/ABI_i386.db @@ -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 @@ _DEFAULT_FORM usr/lib/amd64/libform.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 @@ _Default_Menu usr/lib/amd64/libmenu.so.1 1 128 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 @@ _Unwind_SetIP lib/amd64/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.2 _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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. ___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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 ___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 usr/lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 S ___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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriv __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpri __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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivat __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpri __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 usr/lib/libsys.so.1 1 521 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat __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 usr/lib/libc.so.1 1 24 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpr __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpr __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUN __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUN __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 @@ __freegs_unlock usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpr __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 usr/lib/libthread.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNW __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriva __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1. __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriva __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 usr/lib/libsys.so.1 1 8 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA __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 lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1 __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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriv __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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriva __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 lib/libc.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000001 0000 __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriv __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 S __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriv __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 __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 usr/lib/libc.so.1 1 24 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpri __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpr __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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate __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 usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 S __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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_ __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 usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNW __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 usr/lib/libc.so.1 1 4 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWp __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNW __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUN __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1. __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriva __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat __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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1. __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 __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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 __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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWp __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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpri __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpr __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 usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 __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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 __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 @@ __xpg4_putpmsg lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_1. __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 __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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 @@ _alloc_overlap usr/lib/amd64/libpanel.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 S _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 usr/lib/libc.so.1 1 244 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUN _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1 _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/libmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1. _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 @@ _copylist64 lib/libgen.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpriv _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 usr/lib/libc.so.1 1 16 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S _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 usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUN _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1. _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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/ld.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 @@ _fork1 lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivat _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 @@ _frst_tblstr lib/libcurses.so.1 1 1400 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 S _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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivat _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW_ _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 usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWpriva _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpri _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0. _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 @@ _getpeername lib/libsocket.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.3 SUNW _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUN _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUN _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 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 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S _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 @@ _image lib/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivat _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSV _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 _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 usr/lib/libc.so.1 1 960 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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/lib450.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWpriva _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUN _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.3 0 0 SYSVABI_1.3 SYS _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWpri _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN _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 usr/lib/libsys.so.1 1 2 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 00 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. _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 @@ _position_cursor usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 @@ _prevchoice usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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_getscope lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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_setscope lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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_attr_setstacksize lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpr _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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_destroy lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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_init lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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_lock lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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_setprioceiling lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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_rdlock lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 _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_setschedparam lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpr _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_sigmask lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNW _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 S _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivat _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. _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 @@ _scf_snapshot_take_new_named lib/libscf.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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_post lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpr _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWpriva _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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1. _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 @@ _setnonl lib/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 000000 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 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 S _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 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 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/libc.so.1 1 1032 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYS _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 _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 usr/lib/libc.so.1 1 488 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 @@ _snext_field usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 1 4 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 SU _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21. _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUN _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW _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 @@ _switch_getipnodebyname_r lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/libc.so.1 1 12 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SU _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNW _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpr _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpr _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWp _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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_sigsetmask lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 S _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWp _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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. _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 usr/ucblib/libucb.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivat _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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_ _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 S _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWp _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 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 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. _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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate_1. _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 @@ _virtscr lib/libcurses.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpriv _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 @@ _win_to_buf usr/lib/amd64/libform.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 _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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ _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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 _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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 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 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 SU 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1. 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/libmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.2 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 @@ copywin lib/libcurses.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 0000001 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1 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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.21.2 SUNW_1.21.1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpr 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_1 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 00 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN 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/ld.so.1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_ 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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SYSVABI_1.3 0000001 000 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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_0.7 0000001 00000 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 @@ fork1 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 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 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 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW 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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.20 SUNW_1.21 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUN 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 @@ getipsecprotos usr/lib/libipsecutil.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 @@ getpeername lib/libxnet.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.3 SUNW_1.1 00000 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 S 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN 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 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 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 @@ getzoneent_private usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpriva 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate 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 usr/lib/krb5/libdb2.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWprivate 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 usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 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 usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 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 @@ ike_xchg_type_to_string usr/lib/libike.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWpriv 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.9 0 0 SUNW_1.20 SUNW_0.9 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.1 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 S 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVA 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.4 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/libc.so.1 1 8 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.3 0 0 SYSVABI_1.3 SYSV 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 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 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libc.so.1 1 4 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_ 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 usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 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 usr/lib/libxnet.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 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 SUN 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 usr/lib/libc.so.1 1 4 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.4 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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_name usr/lib/libprint.so.2 0 0 SUNWprivate_2.1 SUNWprivate_2.1 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.4 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1 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 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 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 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 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 S 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 @@ ps_pwrite lib/libproc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.1 SUNWpriva 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 usr/lib/lwp/libthread.so.1 0 0 0 0 0 0 SUNW_1.5 SUNW_0.9 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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_getscope lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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_setscope lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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_attr_setstacksize lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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_destroy lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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_init lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 0000 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.1 000000 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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_lock lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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_setprioceiling lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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_rdlock lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 S 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_setschedparam lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1. 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_sigmask lib/libthread.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.6.1 SUNW_0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 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 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 00 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 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 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_1.1 0 0 SUNW_1.2 SUNW_1.1 SUN 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.4 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libform.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 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 S 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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.20 SUNW_1.21 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriva 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.22 SUNW_1.22 0000 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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_post 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 000 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1 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_d.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 S 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW 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 @@ setnetpath lib/libnsl.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.9 SYSVABI_1.3 0000 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_ 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 S 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.20.1 SUNW_1.21 SUNW 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVAB 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSV 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/libresolv.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 SU 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/libc.so.1 0 0 0 0 0 0 SUNW_1.20 SUNW_1.19 SUNW_1.21 SUNW_1.19 SU 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 0 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 usr/lib/libresolv.so.1 0 0 SUNW_1.1 SUNW_0.7 0 0 SUNW_1.1 SUNW_0.7 S 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1 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 usr/lib/ld.so.1 0 0 SUNWprivate_1.1 SUNWprivate_1.1 0 0 SUNWprivate_1.1 S 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/ld.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1.2 SUNWprivate_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW_ 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.3 0 0 SYSVABI_1.3 SYSV 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libc.so.1 1 608 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 S 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU 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 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 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 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 00 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SU 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 usr/lib/old_libthread/libthread.so.1 1 4 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpri 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_ 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpriv 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWprivat 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpr 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUN 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNWpr 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1.2 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 1 4 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SU 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUNW 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 usr/lib/libsys.so.1 1 8 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 @@ ucbsigvec usr/ucblib/amd64/libucb.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivate_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1. 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SYSVABI_1.3 0 0 SUNW_1.20 SYSVABI_1.3 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI_1 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 usr/lib/libsys.so.1 0 0 SYSVABI_1.3 SYSVABI_1.2 0 0 SYSVABI_1.3 SYSVABI 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 @@ unpost_menu usr/lib/amd64/libmenu.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.2 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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/libmtmalloc.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNW_1.1.1 SUN 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_ 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 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 SU 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1.4 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 usr/ucblib/libucb.so.1 0 0 SUNW_1.2 SUNW_0.7 0 0 SUNW_1.2 SUNW_0.7 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_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 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 usr/lib/libc.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.21 SUNW_1.21 SUNW_1.21. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNWprivate_1.2 SUNWprivate_1.1 0 0 SUNWprivate_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.8 0 0 SUNW_1.20 SUNW_0.8 SUNW_1.2 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 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. 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_0.9 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 usr/lib/old_libthread/libthread.so.1 0 0 0 0 0 0 0 0 0 0 SUNW_1.6 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.18 0 0 SUNW_1.20 SUNW_1.18 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_ 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1. 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.2 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_1.1 0 0 SUNW_1.20 SUNW_1.1 SUNW_1.21 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 usr/lib/libc.so.1 0 0 SUNW_1.18 SUNW_0.7 0 0 SUNW_1.20 SUNW_0.7 SUNW_1.21 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 @@ zlibVersion usr/lib/libz.so.1 0 0 0 0 0 0 SUNW_1.1 SUNW_1.1 SUNW_1.1 SUNW_1.1 0 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_get_zonepath usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWprivat 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 @@ zonecfg_valid_rctlname usr/lib/libzonecfg.so.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SUNWp 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 diff --git a/usr/src/tools/abi/etc/exceptions b/usr/src/tools/abi/etc/exceptions index 8e4467aa73..3202976e42 100644 --- a/usr/src/tools/abi/etc/exceptions +++ b/usr/src/tools/abi/etc/exceptions @@ -79,6 +79,7 @@ PSARC 2004/619: RULE E2: lib/amd64/libc.so.1: SUNW_1.20.4 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.6 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 diff --git a/usr/src/tools/elfextract/elfextract.c b/usr/src/tools/elfextract/elfextract.c index 71cd685888..a99025c45e 100644 --- a/usr/src/tools/elfextract/elfextract.c +++ b/usr/src/tools/elfextract/elfextract.c @@ -196,6 +196,7 @@ main(int argc, char **argv) void *hdr = NULL; struct stat stats; ssize_t r; + size_t pgsz; uint_t len; /* @@ -226,31 +227,18 @@ main(int argc, char **argv) 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 || diff --git a/usr/src/tools/scripts/bfu.sh b/usr/src/tools/scripts/bfu.sh index 62d71b5954..9e9f1ff478 100644 --- a/usr/src/tools/scripts/bfu.sh +++ b/usr/src/tools/scripts/bfu.sh @@ -1990,7 +1990,7 @@ cleanup_eeprom_console() 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 @@ multi_or_direct=no # 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 @@ esac # # 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 @@ if [ $diskless = no ]; then 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 @@ else 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 @@ fi # # We need biosdev if we're moving from pre-multiboot to multiboot or directboot -# kernels. +# 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 ] -then +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 @@ done 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 @@ if [ $multi_or_direct = yes ]; then [ -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 @@ check_dca_to_multiboot() # # 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 @@ mondo_loop() { /^new/ { lastname = $3 } /^old/ { if (lastname == $3) { print $2 "/" $3 } } ' | while read x; do - echo rm $x + echo "rm $x" rm $x done fi diff --git a/usr/src/uts/Makefile b/usr/src/uts/Makefile index 2ebbb89a54..ccba9de179 100644 --- a/usr/src/uts/Makefile +++ b/usr/src/uts/Makefile @@ -36,6 +36,7 @@ include ../Makefile.master sparc_ARCHITECTURES = sun4v sun4u sparc i386_ARCHITECTURES = i86pc +i386_ARCHITECTURES += i86xpv i386_ARCHITECTURES += intel def := TARGET= def @@ -102,7 +103,7 @@ COMMON_HDRDIRS= common/des common/fs common/gssapi common/inet common/net \ $(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 @@ ONC_PLUS: $(ONC_FILES:%=%_onc_plus) # 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) diff --git a/usr/src/uts/common/Makefile.files b/usr/src/uts/common/Makefile.files index ef9f98542d..22dd573097 100644 --- a/usr/src/uts/common/Makefile.files +++ b/usr/src/uts/common/Makefile.files @@ -563,6 +563,8 @@ MAC_WIFI_OBJS += mac_wifi.o 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 \ diff --git a/usr/src/uts/common/Makefile.rules b/usr/src/uts/common/Makefile.rules index 2d10397e7c..32c06e1d4e 100644 --- a/usr/src/uts/common/Makefile.rules +++ b/usr/src/uts/common/Makefile.rules @@ -811,6 +811,10 @@ $(OBJS_DIR)/%.o: $(UTSBASE)/common/io/vuidmice/%.c $(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/usb/usba10/%.c $(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)) diff --git a/usr/src/uts/common/brand/lx/os/lx_misc.c b/usr/src/uts/common/brand/lx/os/lx_misc.c index 375b99fa46..f9da4aaaaa 100644 --- a/usr/src/uts/common/brand/lx/os/lx_misc.c +++ b/usr/src/uts/common/brand/lx/os/lx_misc.c @@ -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 @@ lx_forklwp(klwp_t *srclwp, klwp_t *dstlwp) 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 @@ static void 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 @@ lx_fixsegreg(greg_t sr, model_t datamodel) #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 */ } diff --git a/usr/src/uts/common/dtrace/sdt_subr.c b/usr/src/uts/common/dtrace/sdt_subr.c index 0c4a6c31a9..9c906c3b25 100644 --- a/usr/src/uts/common/dtrace/sdt_subr.c +++ b/usr/src/uts/common/dtrace/sdt_subr.c @@ -75,6 +75,14 @@ static dtrace_pattr_t sdt_attr = { { 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 @@ sdt_provider_t sdt_providers[] = { { "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 @@ sdt_argdesc_t sdt_args[] = { { "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 } }; diff --git a/usr/src/uts/common/fs/dev/sdev_vnops.c b/usr/src/uts/common/fs/dev/sdev_vnops.c index 9591d100cf..1d086c168a 100644 --- a/usr/src/uts/common/fs/dev/sdev_vnops.c +++ b/usr/src/uts/common/fs/dev/sdev_vnops.c @@ -448,7 +448,6 @@ sdev_create(struct vnode *dvp, char *nm, struct vattr *vap, vcexcl_t excl, 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 @@ sdev_inactive(struct vnode *vp, struct cred *cred) 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; diff --git a/usr/src/uts/common/fs/nfs/nfs_dlinet.c b/usr/src/uts/common/fs/nfs/nfs_dlinet.c index e9ce0d4c5c..d6e8de7997 100644 --- a/usr/src/uts/common/fs/nfs/nfs_dlinet.c +++ b/usr/src/uts/common/fs/nfs/nfs_dlinet.c @@ -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 init_config(void); 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 @@ mount_root(char *name, char *path, int version, struct nfs_args *args, 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 @@ mountnfs3(struct netbuf *sa, char *server, 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 @@ dhcpinit(void) 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 @@ cacheinfo(char *name, int namelen, */ 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 @@ dlifconfig(TIUSER *tiptr, struct in_addr *myIPaddr, struct in_addr *mymask, /* * 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 @@ revarp_start(ldi_handle_t lh, struct netbuf *myaddr) /* 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 @@ myxdr_mountres3_ok(XDR *xdrs, struct mountres3_ok *objp) 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); } @@ -2201,6 +2200,139 @@ dl_info(ldi_handle_t lh, dl_info_ack_t *info) return (-1); } +/* + * 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 @@ init_config(void) * 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) diff --git a/usr/src/uts/common/fs/vfs.c b/usr/src/uts/common/fs/vfs.c index f7b38950f8..db456f4d34 100644 --- a/usr/src/uts/common/fs/vfs.c +++ b/usr/src/uts/common/fs/vfs.c @@ -106,7 +106,7 @@ static void vfs_createopttbl_extend(mntopts_t *, const char *, 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 @@ rootconf() int error; struct vfssw *vsw; extern void pm_init(); - char *fstyp; + char *fstyp, *fsmod; - fstyp = getrootfs(); + 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 @@ getfsname(char *askfor, char *name, size_t namelen) * 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 @@ getrootfs(void) 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 @@ getrootfs(void) panic("cannot find boot network interface"); (void) strncpy(rootfs.bo_name, netdev_path, BO_MAXOBJNAME); } - return ("nfs"); + *fstypp = rootfs.bo_fstype; + *fsmodp = "nfs"; } #endif diff --git a/usr/src/uts/common/inet/ip/ip.c b/usr/src/uts/common/inet/ip/ip.c index f21fd21420..1ec75292f3 100644 --- a/usr/src/uts/common/inet/ip/ip.c +++ b/usr/src/uts/common/inet/ip/ip.c @@ -14748,12 +14748,13 @@ ip_rput_process_notdata(queue_t *q, mblk_t **first_mpp, ill_t *ill, 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,73 +14775,75 @@ ip_rput(queue_t *q, mblk_t *mp) } } + 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); /* - * 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. + * 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. * - * 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) + * 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 (mp->b_datap->db_ref > 1) { - mblk_t *mp1; - boolean_t adjusted = B_FALSE; - IP_STAT(ipst, ip_db_ref); + 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); - /* - * 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; + if (mp1 == NULL) { + mp->b_next = NULL; + /* clear b_prev - used by ip_mroute_decap */ mp->b_prev = NULL; freemsg(mp); - mp = mp1; + BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards); + return (NULL); } - TRACE_2(TR_FAC_IP, TR_IP_RPUT_END, - "ip_rput_end: q %p (%S)", q, "end"); + if (adjusted) { + /* + * Copy is done. Restore the pointer in + * the _new_ mblk + */ + mp1->b_rptr += sizeof (struct ether_header); + } - ip_input(ill, NULL, mp, NULL); + /* 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); } /* @@ -14908,9 +14911,35 @@ ip_input(ill_t *ill, ill_rx_ring_t *ip_ring, mblk_t *mp_chain, */ 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 && diff --git a/usr/src/uts/common/io/avintr.c b/usr/src/uts/common/io/avintr.c index 5043556d7b..6f3549aa8b 100644 --- a/usr/src/uts/common/io/avintr.c +++ b/usr/src/uts/common/io/avintr.c @@ -46,6 +46,9 @@ #include #include #include +#ifdef __xpv +#include +#endif typedef struct av_softinfo { cpuset_t av_pending; /* pending bitmasks */ @@ -75,7 +78,12 @@ static char multilevel2[] = "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 @@ insert_av(void *intr_id, struct av_head *vectp, avfunc f, caddr_t arg1, /* 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 @@ insert_av(void *intr_id, struct av_head *vectp, avfunc f, caddr_t arg1, 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 @@ wait_till_seen(int ipl) } 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 @@ remove_av(void *intr_id, struct av_head *vectp, avfunc f, int pri_level, 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 @@ remove_av(void *intr_id, struct av_head *vectp, avfunc f, int pri_level, 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 @@ av_dispatch_autovect(uint_t vec) 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 @@ av_dispatch_softvect(uint_t pil) 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; diff --git a/usr/src/uts/common/io/cmlb.c b/usr/src/uts/common/io/cmlb.c index e3665d5a48..6650a0289f 100644 --- a/usr/src/uts/common/io/cmlb.c +++ b/usr/src/uts/common/io/cmlb.c @@ -510,6 +510,12 @@ cmlb_free_handle(cmlb_handle_t *cmlbhandlep) * * * + * 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 @@ cmlb_build_default_label(struct cmlb_lun *cl, void *tg_cookie) 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 @@ cmlb_build_default_label(struct cmlb_lun *cl, void *tg_cookie) 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); diff --git a/usr/src/uts/common/io/dld/dld_str.c b/usr/src/uts/common/io/dld/dld_str.c index b150dd9344..f7aa6612c0 100644 --- a/usr/src/uts/common/io/dld/dld_str.c +++ b/usr/src/uts/common/io/dld/dld_str.c @@ -1036,7 +1036,7 @@ dld_str_attach(dld_str_t *dsp, t_uscalar_t ppa) (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 @@ str_notify_phys_addr(dld_str_t *dsp, const uint8_t *addr) 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 @@ str_notify(void *arg, mac_notify_type_t type) 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; diff --git a/usr/src/uts/common/io/dls/dls.c b/usr/src/uts/common/io/dls/dls.c index 5049286781..3e723d3bfa 100644 --- a/usr/src/uts/common/io/dls/dls.c +++ b/usr/src/uts/common/io/dls/dls.c @@ -96,9 +96,11 @@ i_dls_notify(void *arg, mac_notify_type_t type) 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 @@ dls_active_set(dls_channel_t dc) * 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); } diff --git a/usr/src/uts/common/io/dls/dls_link.c b/usr/src/uts/common/io/dls/dls_link.c index ffa17acc31..15d0ccbf97 100644 --- a/usr/src/uts/common/io/dls/dls_link.c +++ b/usr/src/uts/common/io/dls/dls_link.c @@ -1001,7 +1001,7 @@ dls_link_add(dls_link_t *dlp, uint32_t sap, dls_impl_t *dip) /* 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 @@ dls_link_remove(dls_link_t *dlp, dls_impl_t *dip) 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); } diff --git a/usr/src/uts/common/io/lofi.c b/usr/src/uts/common/io/lofi.c index 1a068ef3ee..2f1107e189 100644 --- a/usr/src/uts/common/io/lofi.c +++ b/usr/src/uts/common/io/lofi.c @@ -586,6 +586,13 @@ lofi_attach(dev_info_t *dip, ddi_attach_cmd_t cmd) 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 @@ lofi_detach(dev_info_t *dip, ddi_detach_cmd_t cmd) 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); } diff --git a/usr/src/uts/common/io/mac/mac.c b/usr/src/uts/common/io/mac/mac.c index f359980bb6..1f3cf48bfa 100644 --- a/usr/src/uts/common/io/mac/mac.c +++ b/usr/src/uts/common/io/mac/mac.c @@ -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 kmem_cache_t *i_mac_impl_cachep; 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 mod_hash_t *i_mactype_hash; 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 @@ i_mac_constructor(void *buf, void *arg, int kmflag) 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 @@ i_mac_destructor(void *buf, void *arg) 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 @@ i_mac_destructor(void *buf, void *arg) 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 @@ mac_init(void) 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 @@ mac_fini(void) 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 @@ mac_open(const char *macname, uint_t ddi_instance, mac_handle_t *mhp) 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 @@ mac_ioctl(mac_handle_t mh, queue_t *wq, mblk_t *bp) } 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 @@ mac_tx_get(mac_handle_t mh) * 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 @@ mac_notify(mac_handle_t mh) * 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 @@ mac_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg) 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 @@ mac_rx_add(mac_handle_t mh, mac_rx_t rx, void *arg) 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 @@ mac_txloop_add(mac_handle_t mh, mac_txloop_t tx, void *arg) /* * 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 @@ mac_txloop_remove(mac_handle_t mh, mac_txloop_handle_t mth) /* * 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 @@ mac_txloop_remove(mac_handle_t mh, mac_txloop_handle_t mth) /* 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 @@ mac_register(mac_register_t *mregp, mac_handle_t *mhp) 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 @@ fail: } 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 @@ mac_unregister(mac_handle_t mh) 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 @@ mac_unregister(mac_handle_t mh) * 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 @@ mac_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain) 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 @@ mac_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain) freemsgchain(recv_bp); } } + mrfp = mrfp->mrf_nextp; } while (mrfp != NULL); @@ -1603,16 +1727,85 @@ mac_rx(mac_handle_t mh, mac_resource_handle_t mrh, mblk_t *mp_chain) 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 @@ mac_txloop(void *arg, mblk_t *bp) 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 @@ mac_txloop(void *arg, mblk_t *bp) 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 @@ noresources: 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 @@ mac_promisc_refresh(mac_handle_t mh, mac_setpromisc_t refresh, void *arg) } 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 @@ mac_active_set(mac_handle_t mh) 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 @@ mac_active_clear(mac_handle_t mh) 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,16 +2204,42 @@ mac_info_get(const char *name, mac_info_t *minfop) } 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 return (B_FALSE); } +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) { diff --git a/usr/src/uts/common/io/mem.c b/usr/src/uts/common/io/mem.c index da729b3ee4..96968e9134 100644 --- a/usr/src/uts/common/io/mem.c +++ b/usr/src/uts/common/io/mem.c @@ -262,26 +262,6 @@ mmio(struct uio *uio, enum uio_rw rw, pfn_t pfn, off_t pageoff, int allowio) 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 @@ mmpagelock(struct as *as, caddr_t va) return (i); } +#ifdef __sparc + #define NEED_LOCK_KVADDR(kva) mmpagelock(&kas, kva) #else /* __i386, __amd64 */ @@ -349,7 +331,7 @@ mmrw(dev_t dev, struct uio *uio, enum uio_rw rw, cred_t *cred) 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; /* diff --git a/usr/src/uts/common/io/ppp/spppcomp/zlib.c b/usr/src/uts/common/io/ppp/spppcomp/zlib.c index 353803af81..5309b99fd6 100644 --- a/usr/src/uts/common/io/ppp/spppcomp/zlib.c +++ b/usr/src/uts/common/io/ppp/spppcomp/zlib.c @@ -67,7 +67,6 @@ #ifdef SOL2 #include #endif -#undef u #define HAVE_MEMCPY #define memcmp bcmp diff --git a/usr/src/uts/common/io/vnic/vnic.conf b/usr/src/uts/common/io/vnic/vnic.conf new file mode 100644 index 0000000000..dac64b30b7 --- /dev/null +++ b/usr/src/uts/common/io/vnic/vnic.conf @@ -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; diff --git a/usr/src/uts/common/io/vnic/vnic_bcast.c b/usr/src/uts/common/io/vnic/vnic_bcast.c new file mode 100644 index 0000000000..bd3252b9af --- /dev/null +++ b/usr/src/uts/common/io/vnic/vnic_bcast.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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); +} diff --git a/usr/src/uts/common/io/vnic/vnic_cl.c b/usr/src/uts/common/io/vnic/vnic_cl.c new file mode 100644 index 0000000000..b7939f141d --- /dev/null +++ b/usr/src/uts/common/io/vnic/vnic_cl.c @@ -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 +#include +#include + +/* + * 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; + } +} diff --git a/usr/src/uts/common/io/vnic/vnic_ctl.c b/usr/src/uts/common/io/vnic/vnic_ctl.c new file mode 100644 index 0000000000..7ce49aa7f0 --- /dev/null +++ b/usr/src/uts/common/io/vnic/vnic_ctl.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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); + } +} diff --git a/usr/src/uts/common/io/vnic/vnic_dev.c b/usr/src/uts/common/io/vnic/vnic_dev.c new file mode 100644 index 0000000000..af9d0dd2c2 --- /dev/null +++ b/usr/src/uts/common/io/vnic/vnic_dev.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if 0 +#include +#endif +#include +#include +#include +#include +#include + +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 + * "/". + */ +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); +} diff --git a/usr/src/uts/common/krtld/mapfile b/usr/src/uts/common/krtld/mapfile deleted file mode 100644 index 65ff471ca8..0000000000 --- a/usr/src/uts/common/krtld/mapfile +++ /dev/null @@ -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: - *; -}; diff --git a/usr/src/uts/common/os/clock.c b/usr/src/uts/common/os/clock.c index 01d30408c1..669c8d6886 100644 --- a/usr/src/uts/common/os/clock.c +++ b/usr/src/uts/common/os/clock.c @@ -285,7 +285,8 @@ static char *tod_fault_table[] = { "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 @@ deadman_init(void) * 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_fault(enum tod_fault_type ftype, int off) 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; } diff --git a/usr/src/uts/common/os/dumpsubr.c b/usr/src/uts/common/os/dumpsubr.c index 9a6aca6965..8dd63a298b 100644 --- a/usr/src/uts/common/os/dumpsubr.c +++ b/usr/src/uts/common/os/dumpsubr.c @@ -78,6 +78,7 @@ static u_offset_t dumpvp_limit; /* maximum write offset */ 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 @@ int dumpfaildebug = 0; 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 @@ static void dumphdr_init(void) { pgcnt_t npages = 0; - struct memlist *mp; ASSERT(MUTEX_HELD(&dump_lock)); @@ -173,8 +172,7 @@ dumphdr_init(void) 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); diff --git a/usr/src/uts/common/os/mutex.c b/usr/src/uts/common/os/mutex.c index 0b95f1f326..e935436bf6 100644 --- a/usr/src/uts/common/os/mutex.c +++ b/usr/src/uts/common/os/mutex.c @@ -235,6 +235,7 @@ #include #include #include +#include #define BACKOFF_BASE 50 #define BACKOFF_CAP 1600 diff --git a/usr/src/uts/common/os/panic.c b/usr/src/uts/common/os/panic.c index 87910574f5..56b3c72162 100644 --- a/usr/src/uts/common/os/panic.c +++ b/usr/src/uts/common/os/panic.c @@ -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 #include #include +#include #include #include #include @@ -313,7 +313,16 @@ panicsys(const char *format, va_list alist, struct regs *rp, int on_panic_stack) 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 @@ spin: * and unable to jump into the debugger. */ splx(MIN(s, ipltospl(CLOCK_LEVEL))); - for (;;); + for (;;) + ; } void diff --git a/usr/src/uts/common/sys/Makefile b/usr/src/uts/common/sys/Makefile index b5bf354dcb..ed9e8eedc5 100644 --- a/usr/src/uts/common/sys/Makefile +++ b/usr/src/uts/common/sys/Makefile @@ -565,6 +565,8 @@ CHKHDRS= \ vmem_impl.h \ vmmeter.h \ vmsystm.h \ + vnic.h \ + vnic_impl.h \ vnode.h \ vtoc.h \ vtrace.h \ diff --git a/usr/src/uts/common/sys/cmlb.h b/usr/src/uts/common/sys/cmlb.h index c2bce8b6d4..0cf5284060 100644 --- a/usr/src/uts/common/sys/cmlb.h +++ b/usr/src/uts/common/sys/cmlb.h @@ -60,6 +60,7 @@ typedef struct tg_attribute { #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 */ diff --git a/usr/src/uts/common/sys/dumphdr.h b/usr/src/uts/common/sys/dumphdr.h index dc450713de..81e2c7ccb8 100644 --- a/usr/src/uts/common/sys/dumphdr.h +++ b/usr/src/uts/common/sys/dumphdr.h @@ -121,6 +121,7 @@ extern char *dumppath; extern int dump_timeout; extern int dump_timeleft; +extern int dump_ioerr; extern int sync_timeout; extern int sync_timeleft; diff --git a/usr/src/uts/common/sys/hold_page.h b/usr/src/uts/common/sys/hold_page.h index 0f73e22646..27533c6912 100644 --- a/usr/src/uts/common/sys/hold_page.h +++ b/usr/src/uts/common/sys/hold_page.h @@ -49,15 +49,15 @@ extern "C" { * * 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 diff --git a/usr/src/uts/common/sys/mac.h b/usr/src/uts/common/sys/mac.h index 09e4c47f86..894a9b15b1 100644 --- a/usr/src/uts/common/sys/mac.h +++ b/usr/src/uts/common/sys/mac.h @@ -84,6 +84,11 @@ typedef enum { LINK_DUPLEX_FULL } link_duplex_t; +/* + * Maximum MAC address length + */ +#define MAXMACADDRLEN 20 + #ifdef _KERNEL typedef struct mac_stat_info_s { @@ -151,11 +156,6 @@ enum mac_driver_stat { (_stat) == MAC_STAT_UNDERFLOWS || \ (_stat) == MAC_STAT_OVERFLOWS) -/* - * Maximum MAC address length - */ -#define MAXMACADDRLEN 20 - /* * Immutable information. (This may not be modified after registration). */ @@ -324,6 +324,7 @@ typedef enum { 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_dest_get(mac_handle_t, uint8_t *); 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 @@ extern void mac_notify_remove(mac_handle_t, 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 mac_txloop_handle_t mac_txloop_add(mac_handle_t, mac_txloop_t, 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 mblk_t *mac_header_uncook(mac_handle_t, mblk_t *); 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 *); diff --git a/usr/src/uts/common/sys/mac_impl.h b/usr/src/uts/common/sys/mac_impl.h index 6036ba5172..d8fdcaf8dc 100644 --- a/usr/src/uts/common/sys/mac_impl.h +++ b/usr/src/uts/common/sys/mac_impl.h @@ -67,6 +67,7 @@ struct mac_rx_fn_s { 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 @@ typedef struct mactype_s { 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 @@ typedef struct mac_impl_s { 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 @@ typedef struct mac_impl_s { /* 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 diff --git a/usr/src/uts/common/sys/mem.h b/usr/src/uts/common/sys/mem.h index 31cf613939..85d62775cd 100644 --- a/usr/src/uts/common/sys/mem.h +++ b/usr/src/uts/common/sys/mem.h @@ -142,7 +142,7 @@ typedef struct mem_info { 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 */ diff --git a/usr/src/uts/common/sys/memlist.h b/usr/src/uts/common/sys/memlist.h index 371ecc522d..833d56b62a 100644 --- a/usr/src/uts/common/sys/memlist.h +++ b/usr/src/uts/common/sys/memlist.h @@ -59,6 +59,8 @@ extern int address_in_memlist(struct memlist *, uint64_t, size_t); */ extern struct memlist *phys_install; +extern pgcnt_t num_phys_pages(); + #ifdef __cplusplus } #endif diff --git a/usr/src/uts/common/sys/panic.h b/usr/src/uts/common/sys/panic.h index 22f8712cde..9dd04a0626 100644 --- a/usr/src/uts/common/sys/panic.h +++ b/usr/src/uts/common/sys/panic.h @@ -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. */ @@ -115,6 +114,12 @@ extern cpu_t panic_cpu; extern hrtime_t panic_hrtime; 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: */ @@ -129,20 +134,17 @@ extern int in_sync; 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 *); diff --git a/usr/src/uts/common/sys/proc.h b/usr/src/uts/common/sys/proc.h index 93ceeaf604..e99995fecf 100644 --- a/usr/src/uts/common/sys/proc.h +++ b/usr/src/uts/common/sys/proc.h @@ -583,7 +583,6 @@ extern void upcount_inc(uid_t, zoneid_t); 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 diff --git a/usr/src/uts/common/sys/sdt.h b/usr/src/uts/common/sys/sdt.h index da695c9203..393bfb8711 100644 --- a/usr/src/uts/common/sys/sdt.h +++ b/usr/src/uts/common/sys/sdt.h @@ -159,6 +159,23 @@ extern "C" { #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; diff --git a/usr/src/uts/common/sys/systm.h b/usr/src/uts/common/sys/systm.h index 5f1b4ee211..b34d7ed304 100644 --- a/usr/src/uts/common/sys/systm.h +++ b/usr/src/uts/common/sys/systm.h @@ -133,6 +133,7 @@ enum tod_fault_type { TOD_STALLED, TOD_JUMPED, TOD_RATECHANGED, + TOD_RDONLY, TOD_NOFAULT }; diff --git a/usr/src/uts/common/sys/thread.h b/usr/src/uts/common/sys/thread.h index 95b6a5548f..74404edd3e 100644 --- a/usr/src/uts/common/sys/thread.h +++ b/usr/src/uts/common/sys/thread.h @@ -96,7 +96,7 @@ typedef struct { 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 @@ typedef struct _kthread { 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 */ diff --git a/usr/src/uts/common/sys/time.h b/usr/src/uts/common/sys/time.h index d47be80744..891f3d84f6 100644 --- a/usr/src/uts/common/sys/time.h +++ b/usr/src/uts/common/sys/time.h @@ -292,7 +292,6 @@ extern hrtime_t gethrtime_unscaled(void); 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 *); diff --git a/usr/src/uts/common/sys/vnic.h b/usr/src/uts/common/sys/vnic.h new file mode 100644 index 0000000000..16cfbf85fc --- /dev/null +++ b/usr/src/uts/common/sys/vnic.h @@ -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 +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/common/sys/vnic_impl.h b/usr/src/uts/common/sys/vnic_impl.h new file mode 100644 index 0000000000..3cab13b96c --- /dev/null +++ b/usr/src/uts/common/sys/vnic_impl.h @@ -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 +#include + +#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 */ diff --git a/usr/src/uts/common/vm/faultcode.h b/usr/src/uts/common/vm/faultcode.h index 82f886e00f..f5f12f065a 100644 --- a/usr/src/uts/common/vm/faultcode.h +++ b/usr/src/uts/common/vm/faultcode.h @@ -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 @@ extern "C" { #ifndef _ASM typedef int faultcode_t; /* type returned by vm fault routines */ + +extern int fc_decode(faultcode_t); + #endif /* _ASM */ #ifdef __cplusplus diff --git a/usr/src/uts/common/vm/seg_kmem.c b/usr/src/uts/common/vm/seg_kmem.c index 667c97e430..7b3d8f6401 100644 --- a/usr/src/uts/common/vm/seg_kmem.c +++ b/usr/src/uts/common/vm/seg_kmem.c @@ -957,7 +957,8 @@ segkmem_zio_alloc(vmem_t *vmp, size_t size, int vmflag) * 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,25 +1000,35 @@ segkmem_free_vn(vmem_t *vmp, void *inaddr, size_t size, struct vnode *vp) 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); } +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 diff --git a/usr/src/uts/common/vm/seg_kmem.h b/usr/src/uts/common/vm/seg_kmem.h index 89726ce13a..70e941a848 100644 --- a/usr/src/uts/common/vm/seg_kmem.h +++ b/usr/src/uts/common/vm/seg_kmem.h @@ -74,6 +74,7 @@ extern void *segkmem_xalloc(vmem_t *, void *, size_t, int, uint_t, 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); diff --git a/usr/src/uts/common/vm/vm_as.c b/usr/src/uts/common/vm/vm_as.c index f5ff9d43cd..d7ed7da8ec 100644 --- a/usr/src/uts/common/vm/vm_as.c +++ b/usr/src/uts/common/vm/vm_as.c @@ -122,7 +122,7 @@ as_add_callback(struct as *as, void (*cb_func)(), void *arg, uint_t events, 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 @@ void 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 @@ top: * 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 @@ retry: /* 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 @@ retry: 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 @@ as_setprot(struct as *as, caddr_t addr, size_t size, uint_t prot) 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 @@ setprot_top: */ 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 @@ as_checkprot(struct as *as, caddr_t addr, size_t size, uint_t prot) 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 @@ top: 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 @@ as_map_locked(struct as *as, caddr_t addr, size_t size, int (*crfp)(), 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 @@ as_incore(struct as *as, caddr_t addr, *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 @@ as_segunlock(struct seg *seg, caddr_t addr, int attr, 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 @@ retry: 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 @@ retry: 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 @@ retry: */ 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 @@ retry: 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 @@ retry: 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 @@ retry: */ 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 @@ retry: */ 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 @@ as_exec(struct as *oas, caddr_t ostka, size_t stksz, return (0); } -static int -f_decode(faultcode_t fault_err) +int +fc_decode(faultcode_t fault_err) { int error = 0; @@ -2528,7 +2529,7 @@ as_pagelock(struct as *as, struct page ***ppp, caddr_t addr, 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 @@ top: */ 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 @@ slow: */ 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 @@ as_pageunlock(struct as *as, struct page **pp, caddr_t addr, size_t size, } 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 @@ as_pagereclaim(struct as *as, struct page **pp, caddr_t addr, 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 @@ as_iset_default_lpsize(struct as *as, caddr_t addr, size_t size, int flags, { 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; diff --git a/usr/src/uts/common/vm/vm_page.c b/usr/src/uts/common/vm/vm_page.c index 33139517b3..c725b13f17 100644 --- a/usr/src/uts/common/vm/vm_page.c +++ b/usr/src/uts/common/vm/vm_page.c @@ -1823,13 +1823,7 @@ page_create_get_something(vnode_t *vp, u_offset_t off, struct seg *seg, 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); diff --git a/usr/src/uts/common/xen/io/evtchn_dev.c b/usr/src/uts/common/xen/io/evtchn_dev.c new file mode 100644 index 0000000000..e963cde835 --- /dev/null +++ b/usr/src/uts/common/xen/io/evtchn_dev.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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, ¬ify, 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)); +} diff --git a/usr/src/uts/common/xen/io/xdb.c b/usr/src/uts/common/xen/io/xdb.c new file mode 100644 index 0000000000..b640010c22 --- /dev/null +++ b/usr/src/uts/common/xen/io/xdb.c @@ -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 +#include + +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)); +} diff --git a/usr/src/uts/common/xen/io/xdb.h b/usr/src/uts/common/xen/io/xdb.h new file mode 100644 index 0000000000..81f6b5d9c2 --- /dev/null +++ b/usr/src/uts/common/xen/io/xdb.h @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#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 */ diff --git a/usr/src/uts/common/xen/io/xdf.c b/usr/src/uts/common/xen/io/xdf.c new file mode 100644 index 0000000000..7187295672 --- /dev/null +++ b/usr/src/uts/common/xen/io/xdf.c @@ -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; +} diff --git a/usr/src/uts/common/xen/io/xdf.h b/usr/src/uts/common/xen/io/xdf.h new file mode 100644 index 0000000000..c3992c62fc --- /dev/null +++ b/usr/src/uts/common/xen/io/xdf.h @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/common/xen/io/xenbus_client.c b/usr/src/uts/common/xen/io/xenbus_client.c new file mode 100644 index 0000000000..b0e2b5e520 --- /dev/null +++ b/usr/src/uts/common/xen/io/xenbus_client.c @@ -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 +#include +#include +#include +#include +#include + + +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", ¤t_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: + */ diff --git a/usr/src/uts/common/xen/io/xenbus_comms.c b/usr/src/uts/common/xen/io/xenbus_comms.c new file mode 100644 index 0000000000..ee4c162bf4 --- /dev/null +++ b/usr/src/uts/common/xen/io/xenbus_comms.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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); +} diff --git a/usr/src/uts/common/xen/io/xenbus_dev.c b/usr/src/uts/common/xen/io/xenbus_dev.c new file mode 100644 index 0000000000..57c57d886f --- /dev/null +++ b/usr/src/uts/common/xen/io/xenbus_dev.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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); +} diff --git a/usr/src/uts/common/xen/io/xenbus_probe.c b/usr/src/uts/common/xen/io/xenbus_probe.c new file mode 100644 index 0000000000..18d1e7a7d7 --- /dev/null +++ b/usr/src/uts/common/xen/io/xenbus_probe.c @@ -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 +#include +#include +#include +#include + +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: + */ diff --git a/usr/src/uts/common/xen/io/xenbus_xs.c b/usr/src/uts/common/xen/io/xenbus_xs.c new file mode 100644 index 0000000000..be4d570af6 --- /dev/null +++ b/usr/src/uts/common/xen/io/xenbus_xs.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define _XSD_ERRORS_DEFINED +#include +#include +#include +#include +#include +#include +#include + +#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(¬ify_list_lock); + /* + * Make sure not already on the list + */ + xnp = list_head(¬ify_list); + for (; xnp != NULL; xnp = list_next(¬ify_list, xnp)) { + if (xnp->notify_func == callback) { + kmem_free(xbn, sizeof (struct xenbus_notify)); + mutex_exit(¬ify_list_lock); + return (EEXIST); + } + } + xnp = xbn; + list_insert_tail(¬ify_list, xbn); +done: + if (xenstore_up) + xnp->notify_func(XENSTORE_UP); + mutex_exit(¬ify_list_lock); + return (0); +} + +/* + * Notify clients of xenstore state + */ +static void +do_notify_callbacks(void *arg) +{ + struct xenbus_notify *xnp; + + mutex_enter(¬ify_list_lock); + xnp = list_head(¬ify_list); + for (; xnp != NULL; xnp = list_next(¬ify_list, xnp)) { + xnp->notify_func((int)((uintptr_t)arg)); + } + mutex_exit(¬ify_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(¬ify_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(¬ify_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; +} diff --git a/usr/src/uts/common/xen/io/xencons.c b/usr/src/uts/common/xen/io/xencons.c new file mode 100644 index 0000000000..d6eb84dc91 --- /dev/null +++ b/usr/src/uts/common/xen/io/xencons.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef DEBUG +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xencons.h" + +#include +#include +#include +#include + +#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)); +} diff --git a/usr/src/uts/common/xen/io/xencons.conf b/usr/src/uts/common/xen/io/xencons.conf new file mode 100644 index 0000000000..6e2eb55376 --- /dev/null +++ b/usr/src/uts/common/xen/io/xencons.conf @@ -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" diff --git a/usr/src/uts/common/xen/io/xencons.h b/usr/src/uts/common/xen/io/xencons.h new file mode 100644 index 0000000000..356931d9a8 --- /dev/null +++ b/usr/src/uts/common/xen/io/xencons.h @@ -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 +#include +#include +#include + + +/* + * 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 */ diff --git a/usr/src/uts/common/xen/io/xnb.c b/usr/src/uts/common/xen/io/xnb.c new file mode 100644 index 0000000000..95a05680c9 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnb.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include /* 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); +} diff --git a/usr/src/uts/common/xen/io/xnb.h b/usr/src/uts/common/xen/io/xnb.h new file mode 100644 index 0000000000..16ba897727 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnb.h @@ -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 +#include +#include +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/common/xen/io/xnbe.c b/usr/src/uts/common/xen/io/xnbe.c new file mode 100644 index 0000000000..39ff373398 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnbe.c @@ -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 +#include +#include +#include +#include +#ifdef XNBE_DEBUG +#include +#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)); +} diff --git a/usr/src/uts/common/xen/io/xnbo.c b/usr/src/uts/common/xen/io/xnbo.c new file mode 100644 index 0000000000..31a2056bdb --- /dev/null +++ b/usr/src/uts/common/xen/io/xnbo.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +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)); +} diff --git a/usr/src/uts/common/xen/io/xnbu.c b/usr/src/uts/common/xen/io/xnbu.c new file mode 100644 index 0000000000..f6198938a7 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnbu.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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)); +} diff --git a/usr/src/uts/common/xen/io/xnf.c b/usr/src/uts/common/xen/io/xnf.c new file mode 100644 index 0000000000..98bd40e1d7 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnf.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xnf.h" + +#include +#include +#include + +/* + * 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; + } +} diff --git a/usr/src/uts/common/xen/io/xnf.h b/usr/src/uts/common/xen/io/xnf.h new file mode 100644 index 0000000000..7f664ee802 --- /dev/null +++ b/usr/src/uts/common/xen/io/xnf.h @@ -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 +#include +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/common/xen/io/xpv_autoconfig.c b/usr/src/uts/common/xen/io/xpv_autoconfig.c new file mode 100644 index 0000000000..4c057a2443 --- /dev/null +++ b/usr/src/uts/common/xen/io/xpv_autoconfig.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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); +} diff --git a/usr/src/uts/common/xen/io/xpvd.c b/usr/src/uts/common/xen/io/xpvd.c new file mode 100644 index 0000000000..c989960444 --- /dev/null +++ b/usr/src/uts/common/xen/io/xpvd.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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 ",". */ + if (sscanf(caddr, "%d,%d", domp, vdevp) == 2) { + ret = B_TRUE; + goto done; + } + + /* Frontend format is "". */ + *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)); +} diff --git a/usr/src/uts/common/xen/os/xvdi.c b/usr/src/uts/common/xen/os/xvdi.c new file mode 100644 index 0000000000..b064a3312c --- /dev/null +++ b/usr/src/uts/common/xen/os/xvdi.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +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 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); +} diff --git a/usr/src/uts/common/xen/public/COPYING b/usr/src/uts/common/xen/public/COPYING new file mode 100644 index 0000000000..ffc6d6166f --- /dev/null +++ b/usr/src/uts/common/xen/public/COPYING @@ -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. diff --git a/usr/src/uts/common/xen/public/README.DO_NOT_EDIT b/usr/src/uts/common/xen/public/README.DO_NOT_EDIT new file mode 100644 index 0000000000..cce02258a1 --- /dev/null +++ b/usr/src/uts/common/xen/public/README.DO_NOT_EDIT @@ -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. + diff --git a/usr/src/uts/common/xen/public/acm.h b/usr/src/uts/common/xen/public/acm.h new file mode 100644 index 0000000000..23078837fb --- /dev/null +++ b/usr/src/uts/common/xen/public/acm.h @@ -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 + * 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: + */ diff --git a/usr/src/uts/common/xen/public/acm_ops.h b/usr/src/uts/common/xen/public/acm_ops.h new file mode 100644 index 0000000000..5e103dca7b --- /dev/null +++ b/usr/src/uts/common/xen/public/acm_ops.h @@ -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 + * 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: + */ diff --git a/usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h b/usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h new file mode 100644 index 0000000000..8e508f2f57 --- /dev/null +++ b/usr/src/uts/common/xen/public/arch-x86/xen-x86_32.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h b/usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h new file mode 100644 index 0000000000..f011db9073 --- /dev/null +++ b/usr/src/uts/common/xen/public/arch-x86/xen-x86_64.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/arch-x86/xen.h b/usr/src/uts/common/xen/public/arch-x86/xen.h new file mode 100644 index 0000000000..df53dbe9d2 --- /dev/null +++ b/usr/src/uts/common/xen/public/arch-x86/xen.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/callback.h b/usr/src/uts/common/xen/public/callback.h new file mode 100644 index 0000000000..cac5389925 --- /dev/null +++ b/usr/src/uts/common/xen/public/callback.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/domctl.h b/usr/src/uts/common/xen/public/domctl.h new file mode 100644 index 0000000000..8f176f5412 --- /dev/null +++ b/usr/src/uts/common/xen/public/domctl.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/elfnote.h b/usr/src/uts/common/xen/public/elfnote.h new file mode 100644 index 0000000000..4924767d30 --- /dev/null +++ b/usr/src/uts/common/xen/public/elfnote.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/event_channel.h b/usr/src/uts/common/xen/public/event_channel.h new file mode 100644 index 0000000000..62cf764040 --- /dev/null +++ b/usr/src/uts/common/xen/public/event_channel.h @@ -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 and mark as + * accepting interdomain bindings from domain . A fresh port + * is allocated in and returned as . + * NOTES: + * 1. If the caller is unprivileged then must be DOMID_SELF. + * 2. 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 . 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 + * . + * NOTES: + * 2. 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 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 . + * 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 . 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 . + */ +#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 . + * NOTES: + * 1. may be specified as DOMID_SELF. + * 2. Only a sufficiently-privileged domain may obtain the status of an event + * channel for which 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: + */ diff --git a/usr/src/uts/common/xen/public/features.h b/usr/src/uts/common/xen/public/features.h new file mode 100644 index 0000000000..d4b373ff17 --- /dev/null +++ b/usr/src/uts/common/xen/public/features.h @@ -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 + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/grant_table.h b/usr/src/uts/common/xen/public/grant_table.h new file mode 100644 index 0000000000..9622b56d02 --- /dev/null +++ b/usr/src/uts/common/xen/public/grant_table.h @@ -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 (,) for access + * by devices and/or host CPUs. If successful, is a tracking number + * that must be presented later to destroy the mapping(s). On error, + * is a negative status code. + * NOTES: + * 1. If GNTMAP_device_map is specified then 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 . + * 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 . If or is zero, that + * field is ignored. If non-zero, they must refer to a device/host mapping + * that is tracked by + * NOTES: + * 1. The call may fail in an undefined manner if either mapping is not + * tracked by . + * 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 comprising at least + * pages. The frame addresses are written to the . + * Only addresses are written, even if the table is larger. + * NOTES: + * 1. may be specified as DOMID_SELF. + * 2. Only a sufficiently-privileged domain may specify != 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 to a foreign domain. The + * foreign domain has previously registered its interest in the transfer via + * . + * + * 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: + */ diff --git a/usr/src/uts/common/xen/public/hvm/hvm_op.h b/usr/src/uts/common/xen/public/hvm/hvm_op.h new file mode 100644 index 0000000000..8322f32ee2 --- /dev/null +++ b/usr/src/uts/common/xen/public/hvm/hvm_op.h @@ -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__ */ diff --git a/usr/src/uts/common/xen/public/hvm/params.h b/usr/src/uts/common/xen/public/hvm/params.h new file mode 100644 index 0000000000..caa1f1f545 --- /dev/null +++ b/usr/src/uts/common/xen/public/hvm/params.h @@ -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__ */ diff --git a/usr/src/uts/common/xen/public/io/blkif.h b/usr/src/uts/common/xen/public/io/blkif.h new file mode 100644 index 0000000000..4d33926f1e --- /dev/null +++ b/usr/src/uts/common/xen/public/io/blkif.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/io/console.h b/usr/src/uts/common/xen/public/io/console.h new file mode 100644 index 0000000000..4b8c01a447 --- /dev/null +++ b/usr/src/uts/common/xen/public/io/console.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/io/netif.h b/usr/src/uts/common/xen/public/io/netif.h new file mode 100644 index 0000000000..a2e885cae5 --- /dev/null +++ b/usr/src/uts/common/xen/public/io/netif.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/io/ring.h b/usr/src/uts/common/xen/public/io/ring.h new file mode 100644 index 0000000000..cc1f1e08ec --- /dev/null +++ b/usr/src/uts/common/xen/public/io/ring.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/io/xenbus.h b/usr/src/uts/common/xen/public/io/xenbus.h new file mode 100644 index 0000000000..28584e5151 --- /dev/null +++ b/usr/src/uts/common/xen/public/io/xenbus.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/io/xs_wire.h b/usr/src/uts/common/xen/public/io/xs_wire.h new file mode 100644 index 0000000000..825ea45144 --- /dev/null +++ b/usr/src/uts/common/xen/public/io/xs_wire.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/memory.h b/usr/src/uts/common/xen/public/memory.h new file mode 100644 index 0000000000..97a6bbfea2 --- /dev/null +++ b/usr/src/uts/common/xen/public/memory.h @@ -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 + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/nmi.h b/usr/src/uts/common/xen/public/nmi.h new file mode 100644 index 0000000000..b2b84018a3 --- /dev/null +++ b/usr/src/uts/common/xen/public/nmi.h @@ -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 + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/physdev.h b/usr/src/uts/common/xen/public/physdev.h new file mode 100644 index 0000000000..6f78a09fe1 --- /dev/null +++ b/usr/src/uts/common/xen/public/physdev.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/platform.h b/usr/src/uts/common/xen/public/platform.h new file mode 100644 index 0000000000..ec9bd604c5 --- /dev/null +++ b/usr/src/uts/common/xen/public/platform.h @@ -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 after 00:00:00 UTC, + * 1 January, 1970 if the current system time was . + */ +#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: + */ diff --git a/usr/src/uts/common/xen/public/sched.h b/usr/src/uts/common/xen/public/sched.h new file mode 100644 index 0000000000..2227a95be6 --- /dev/null +++ b/usr/src/uts/common/xen/public/sched.h @@ -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 + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/sysctl.h b/usr/src/uts/common/xen/public/sysctl.h new file mode 100644 index 0000000000..db2091cbcf --- /dev/null +++ b/usr/src/uts/common/xen/public/sysctl.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/public/vcpu.h b/usr/src/uts/common/xen/public/vcpu.h new file mode 100644 index 0000000000..12df6dbe15 --- /dev/null +++ b/usr/src/uts/common/xen/public/vcpu.h @@ -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 + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/version.h b/usr/src/uts/common/xen/public/version.h new file mode 100644 index 0000000000..944ca620b0 --- /dev/null +++ b/usr/src/uts/common/xen/public/version.h @@ -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 + * Copyright (c) 2005, Keir Fraser + */ + +#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: + */ diff --git a/usr/src/uts/common/xen/public/xen-compat.h b/usr/src/uts/common/xen/public/xen-compat.h new file mode 100644 index 0000000000..19b0a2c733 --- /dev/null +++ b/usr/src/uts/common/xen/public/xen-compat.h @@ -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__ */ diff --git a/usr/src/uts/common/xen/public/xen.h b/usr/src/uts/common/xen/public/xen.h new file mode 100644 index 0000000000..319f65ef08 --- /dev/null +++ b/usr/src/uts/common/xen/public/xen.h @@ -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--". */ + 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: + */ diff --git a/usr/src/uts/common/xen/sys/README b/usr/src/uts/common/xen/sys/README new file mode 100644 index 0000000000..03aacc1943 --- /dev/null +++ b/usr/src/uts/common/xen/sys/README @@ -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. + diff --git a/usr/src/uts/common/xen/sys/evtchn.h b/usr/src/uts/common/xen/sys/evtchn.h new file mode 100644 index 0000000000..b564aba874 --- /dev/null +++ b/usr/src/uts/common/xen/sys/evtchn.h @@ -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: + */ diff --git a/usr/src/uts/common/xen/sys/privcmd.h b/usr/src/uts/common/xen/sys/privcmd.h new file mode 100644 index 0000000000..9d72d31b6b --- /dev/null +++ b/usr/src/uts/common/xen/sys/privcmd.h @@ -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 + +#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 */ diff --git a/usr/src/uts/common/xen/sys/xenbus.h b/usr/src/uts/common/xen/sys/xenbus.h new file mode 100644 index 0000000000..edc7798c2d --- /dev/null +++ b/usr/src/uts/common/xen/sys/xenbus.h @@ -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 */ diff --git a/usr/src/uts/common/xen/sys/xenbus_comms.h b/usr/src/uts/common/xen/sys/xenbus_comms.h new file mode 100644 index 0000000000..7a008333fd --- /dev/null +++ b/usr/src/uts/common/xen/sys/xenbus_comms.h @@ -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 + +#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 */ diff --git a/usr/src/uts/common/xen/sys/xenbus_impl.h b/usr/src/uts/common/xen/sys/xenbus_impl.h new file mode 100644 index 0000000000..0042b1bc99 --- /dev/null +++ b/usr/src/uts/common/xen/sys/xenbus_impl.h @@ -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 +#include + +#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 */ diff --git a/usr/src/uts/common/xen/sys/xendev.h b/usr/src/uts/common/xen/sys/xendev.h new file mode 100644 index 0000000000..b00a71fcf4 --- /dev/null +++ b/usr/src/uts/common/xen/sys/xendev.h @@ -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 +#include +#include + +#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 */ diff --git a/usr/src/uts/i86pc/Makefile.files b/usr/src/uts/i86pc/Makefile.files index 32f2fc8f64..7d6ddfc75d 100644 --- a/usr/src/uts/i86pc/Makefile.files +++ b/usr/src/uts/i86pc/Makefile.files @@ -56,7 +56,6 @@ CORE_OBJS += \ hold_page.o \ hrtimers.o \ htable.o \ - i8254.o \ i86_mmu.o \ instr_size.o \ intr.o \ @@ -72,6 +71,7 @@ CORE_OBJS += \ mem_config_stubs.o \ memnode.o \ microcode.o \ + microfind.o \ mlsetup.o \ mp_call.o \ mp_implfuncs.o \ @@ -143,9 +143,10 @@ DBOOT_OBJS_32 = DBOOT_OBJS_64 += dboot_elfload.o DBOOT_OBJS += \ + dboot_asm.o \ dboot_grub.o \ - dboot_startkern.o \ dboot_printf.o \ + dboot_startkern.o \ memcpy.o \ memset.o \ muldiv.o \ @@ -175,7 +176,6 @@ MCAMD_OBJS += \ 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 diff --git a/usr/src/uts/i86pc/Makefile.i86pc.shared b/usr/src/uts/i86pc/Makefile.i86pc.shared index 4d8c3a7da3..4317db3f73 100644 --- a/usr/src/uts/i86pc/Makefile.i86pc.shared +++ b/usr/src/uts/i86pc/Makefile.i86pc.shared @@ -255,7 +255,6 @@ DRV_KMODS += tzmon DRV_KMODS += battery DRV_KMODS += cpudrv -DRV_KMODS += cpunex DRV_KMODS += ppm $(CLOSED_BUILD)CLOSED_DRV_KMODS += memtest diff --git a/usr/src/uts/i86pc/Makefile.rules b/usr/src/uts/i86pc/Makefile.rules index 642faf9441..28e3337262 100644 --- a/usr/src/uts/i86pc/Makefile.rules +++ b/usr/src/uts/i86pc/Makefile.rules @@ -153,8 +153,8 @@ DBOOT_AS = $(ONBLD_TOOLS)/bin/$(MACH)/aw 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) diff --git a/usr/src/uts/i86pc/boot/boot_console.c b/usr/src/uts/i86pc/boot/boot_console.c index b9f0745cc9..76f248d069 100644 --- a/usr/src/uts/i86pc/boot/boot_console.c +++ b/usr/src/uts/i86pc/boot/boot_console.c @@ -29,22 +29,41 @@ #include #include #include +#include #include +#if defined(__xpv) +#include +#endif /* __xpv */ #include "boot_serial.h" #include "boot_vga.h" #if defined(_BOOT) +#include #include -#else +#else /* _BOOT */ #include +#if defined(__xpv) +#include +#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 void serial_adjust_prop(void); 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 @@ screen_putchar(int c) } /* 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 @@ serial_init(void) /* 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 @@ serial_adjust_prop(void) 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 @@ console_value_t console_devices[] = { { "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 @@ bcons_init(char *bootstr) 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 @@ bcons_init(char *bootstr) } } +#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 @@ bcons_init(char *bootstr) serial_init(); break; + case CONS_HYPERVISOR: + break; + #if !defined(_BOOT) case CONS_USBSER: /* @@ -522,14 +631,15 @@ bcons_init(char *bootstr) 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 @@ bcons_init(char *bootstr) 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 @@ bcons_init2(char *inputdev, char *outputdev, char *consoledev) break; } - if (cons == CONS_INVALID) - return; - if (cons == console) +#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; + } console = cons; if (cons == CONS_TTYA || cons == CONS_TTYB) { @@ -582,6 +705,7 @@ bcons_init2(char *inputdev, char *outputdev, char *consoledev) } } + /* * USB serial -- we just collect data into a buffer */ @@ -589,10 +713,36 @@ bcons_init2(char *inputdev, char *outputdev, char *consoledev) extern void *usbser_init(size_t); usbser_buf = usbser_cur = usbser_init(MMU_PAGESIZE); } -#endif /* _BOOT */ } -#if !defined(_BOOT) +#if defined(__xpv) +boolean_t +bcons_hypervisor_redirect(void) +{ + return (console_hypervisor_redirect); +} + +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 @@ bcons_putchar(int c) { 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 @@ bcons_putchar(int c) 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 @@ bcons_getchar(void) 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: diff --git a/usr/src/uts/i86pc/boot/boot_keyboard.c b/usr/src/uts/i86pc/boot/boot_keyboard.c index 7f362b648f..220e254f47 100644 --- a/usr/src/uts/i86pc/boot/boot_keyboard.c +++ b/usr/src/uts/i86pc/boot/boot_keyboard.c @@ -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 @@ kb_update_leds(void) 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(); } diff --git a/usr/src/uts/i86pc/boot/boot_keyboard.h b/usr/src/uts/i86pc/boot/boot_keyboard.h deleted file mode 100644 index 390bb1f4fe..0000000000 --- a/usr/src/uts/i86pc/boot/boot_keyboard.h +++ /dev/null @@ -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 */ diff --git a/usr/src/uts/i86pc/boot/boot_mmu.c b/usr/src/uts/i86pc/boot/boot_mmu.c index 6c7622f4e1..e652bb728d 100644 --- a/usr/src/uts/i86pc/boot/boot_mmu.c +++ b/usr/src/uts/i86pc/boot/boot_mmu.c @@ -33,6 +33,9 @@ #include #include #include +#ifdef __xpv +#include +#endif #ifdef _BOOT #include diff --git a/usr/src/uts/i86pc/boot/boot_vga.c b/usr/src/uts/i86pc/boot/boot_vga.c index 7de0682776..45c17a340f 100644 --- a/usr/src/uts/i86pc/boot/boot_vga.c +++ b/usr/src/uts/i86pc/boot/boot_vga.c @@ -36,16 +36,73 @@ #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) { @@ -100,8 +157,7 @@ vga_getpos(int *row, int *col) { 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 @@ vga_set_crtc(int index, unsigned char val) outb(VGA_COLOR_CRTC_DATA, val); } - static unsigned char vga_get_crtc(int index) { diff --git a/usr/src/uts/i86pc/boot/boot_vga.h b/usr/src/uts/i86pc/boot/boot_vga.h index 87f818fc41..d4f11cbe4b 100644 --- a/usr/src/uts/i86pc/boot/boot_vga.h +++ b/usr/src/uts/i86pc/boot/boot_vga.h @@ -48,6 +48,7 @@ extern void vga_getpos(int *, int *); extern void vga_clear(int); extern void vga_scroll(int); extern void vga_drawc(int, int); +extern void vga_cursor_display(void); #ifdef __cplusplus } diff --git a/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c b/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c index c2b3df11fa..d8322df273 100644 --- a/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c +++ b/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_main.c @@ -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 @@ gcpu_nil(void) return (0); } +static void * +gcpu_null(void) +{ + return (NULL); +} + /*ARGSUSED*/ static int gcpu_init(cpu_t *cpu, void **datap) @@ -92,7 +98,7 @@ const cmi_ops_t _cmi_ops = { (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 = { diff --git a/usr/src/uts/i86pc/cpunex/Makefile b/usr/src/uts/i86pc/cpunex/Makefile deleted file mode 100644 index 616ae4e096..0000000000 --- a/usr/src/uts/i86pc/cpunex/Makefile +++ /dev/null @@ -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 diff --git a/usr/src/uts/i86pc/dboot/dboot_asm.h b/usr/src/uts/i86pc/dboot/dboot_asm.h new file mode 100644 index 0000000000..45af9d2c40 --- /dev/null +++ b/usr/src/uts/i86pc/dboot/dboot_asm.h @@ -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 */ diff --git a/usr/src/uts/i86pc/dboot/dboot_asm.s b/usr/src/uts/i86pc/dboot/dboot_asm.s new file mode 100644 index 0000000000..7be6eaadf0 --- /dev/null +++ b/usr/src/uts/i86pc/dboot/dboot_asm.s @@ -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 +#include + +#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 */ diff --git a/usr/src/uts/i86pc/dboot/dboot_elfload.c b/usr/src/uts/i86pc/dboot/dboot_elfload.c index 436dde8917..34764ce65d 100644 --- a/usr/src/uts/i86pc/dboot/dboot_elfload.c +++ b/usr/src/uts/i86pc/dboot/dboot_elfload.c @@ -50,18 +50,18 @@ getehdr(void) 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 @@ dboot_elfload64(uintptr_t file_image) 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 @@ dboot_elfload64(uintptr_t file_image) * 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) diff --git a/usr/src/uts/i86pc/dboot/dboot_grub.s b/usr/src/uts/i86pc/dboot/dboot_grub.s index 503e1fd31c..8561bd0739 100644 --- a/usr/src/uts/i86pc/dboot/dboot_grub.s +++ b/usr/src/uts/i86pc/dboot/dboot_grub.s @@ -162,10 +162,12 @@ newgdt: #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: @@ -205,26 +207,6 @@ longmode: .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 */ @@ -241,21 +223,6 @@ longmode: ret 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. diff --git a/usr/src/uts/i86pc/dboot/dboot_printf.c b/usr/src/uts/i86pc/dboot/dboot_printf.c index 44450a8c2d..ceb46659dd 100644 --- a/usr/src/uts/i86pc/dboot/dboot_printf.c +++ b/usr/src/uts/i86pc/dboot/dboot_printf.c @@ -30,13 +30,15 @@ #include #include #include - #include - +#include +#include "dboot_asm.h" #include "dboot_printf.h" - #include "dboot_xboot.h" -#include + +#ifdef __xpv +#include +#endif /* * This file provides simple output formatting via dboot_printf() @@ -61,7 +63,6 @@ dboot_panic(char *fmt, ...) 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 */ } diff --git a/usr/src/uts/i86pc/dboot/dboot_startkern.c b/usr/src/uts/i86pc/dboot/dboot_startkern.c index 31f64da542..ebcb642847 100644 --- a/usr/src/uts/i86pc/dboot/dboot_startkern.c +++ b/usr/src/uts/i86pc/dboot/dboot_startkern.c @@ -31,48 +31,59 @@ #include #include #include - #include +#if defined(__xpv) + +#include +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 #include #include #include +#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 @@ char stack_space[STACK_SIZE]; */ 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 @@ struct xboot_info *bi; /* * 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 prom_debug = 0; 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 @@ sort_physinstall(void) 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 @@ sort_physinstall(void) 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 @@ get_pteval(paddr_t table, uint_t index) 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 @@ set_pteval(paddr_t table, uint_t index, uint_t level, x86pte_t pteval) ((x86pte32_t *)tab_addr)[index] = (x86pte32_t)pteval; if (level == top_level && level == 2) reload_cr3(); +#endif /* __xpv */ } paddr_t @@ -240,6 +346,13 @@ make_ptable(x86pte_t *pteval, uint_t level) 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 @@ map_pte(paddr_t table, uint_t index) return ((x86pte_t *)(uintptr_t)(table + index * pte_size)); } -#if 0 /* useful if debugging */ -/* - * dump out the contents of page tables... - */ -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 +#if !defined(__xpv) +#define maddr_t paddr_t +#endif /* !__xpv */ /* - * Add a mapping for the physical page at the given virtual address. + * Add a mapping for the machine 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 @@ map_pa_at_va(paddr_t pa, native_ptr_t va, uint_t level) 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); } /* @@ -443,6 +488,187 @@ exclude_from_pci(uint64_t start, uint64_t end) } } +/* + * 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. @@ -487,13 +713,6 @@ init_mem_alloc(void) bi->bi_module_cnt = mb_info->mods_count; 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 @@ init_mem_alloc(void) 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 @@ init_mem_alloc(void) (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 @@ init_mem_alloc(void) if (end <= start) continue; - exclude_from_pci(start, end); - /* * only type 1 is usable RAM */ @@ -545,6 +764,7 @@ init_mem_alloc(void) 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 @@ init_mem_alloc(void) 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 @@ init_mem_alloc(void) * 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 @@ do_mem_alloc(uint32_t size, uint32_t align) 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 @@ do_mem_alloc(uint32_t size, uint32_t align) 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 @@ do_mem_alloc(uint32_t size, uint32_t align) */ 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 @@ build_page_tables(void) uint32_t psize; uint32_t level; uint32_t off; - uint32_t i; uint64_t start; +#if !defined(__xpv) + uint32_t i; 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 @@ build_page_tables(void) (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. * - * We map *all* possible addresses below 1 Meg, since things like - * the video RAM are down there. + * The following code works because our simple memory allocator + * only grows usage in an upwards direction. * - * Skip memory between 1M and _start, this acts as a reserve - * of memory usable for DMA. + * 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. */ - 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) + 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; for (i = 0; i < memlists_used; ++i) { start = memlists[i].addr; if (start < next_mapping) @@ -734,6 +979,7 @@ build_page_tables(void) start += MMU_PAGESIZE; } } +#endif /* !__xpv */ DBG_MSG("\nPage tables constructed\n"); } @@ -758,13 +1004,33 @@ startup_kernel(void) { 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 @@ startup_kernel(void) */ #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 @@ startup_kernel(void) } 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) /* - * configure mmu information + * disable PAE on 32 bit h/w w/o NX and < 4Gig of memory */ -#if !defined(_BOOT_TARGET_amd64) - if (pae_support && (max_mem > FOUR_GIG || NX_support)) { + if (max_mem < FOUR_GIG && NX_support == 0) + pae_support = 0; #endif + + /* + * configure mmu information + */ + if (pae_support) { shift_amt = shift_amt_pae; ptes_per_table = 512; pte_size = 8; @@ -849,7 +1229,6 @@ startup_kernel(void) #else top_level = 2; #endif -#if !defined(_BOOT_TARGET_amd64) } else { pae_support = 0; NX_support = 0; @@ -859,7 +1238,6 @@ startup_kernel(void) lpagesize = FOUR_MEG; top_level = 1; } -#endif DBG(pge_support); DBG(NX_support); @@ -870,20 +1248,24 @@ startup_kernel(void) 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 + DBG(ktext_phys); /* @@ -900,6 +1282,30 @@ startup_kernel(void) 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 @@ startup_kernel(void) 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"); } diff --git a/usr/src/uts/i86pc/dboot/dboot_xboot.h b/usr/src/uts/i86pc/dboot/dboot_xboot.h index fac4ee9c74..5c9af24325 100644 --- a/usr/src/uts/i86pc/dboot/dboot_xboot.h +++ b/usr/src/uts/i86pc/dboot/dboot_xboot.h @@ -67,12 +67,6 @@ extern void *mem_alloc(uint32_t size); #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 */ diff --git a/usr/src/uts/i86pc/dboot/dboot_xen.s b/usr/src/uts/i86pc/dboot/dboot_xen.s new file mode 100644 index 0000000000..dda17358d1 --- /dev/null +++ b/usr/src/uts/i86pc/dboot/dboot_xen.s @@ -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 +#include +#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 */ diff --git a/usr/src/uts/i86pc/io/consplat.c b/usr/src/uts/i86pc/io/consplat.c index 10d6b3f655..cfb0f5e861 100644 --- a/usr/src/uts/i86pc/io/consplat.c +++ b/usr/src/uts/i86pc/io/consplat.c @@ -44,6 +44,10 @@ #include #include #include +#if defined(__xpv) +#include +#include +#endif /* The names of currently supported graphics drivers on x86 */ static char * @@ -63,11 +67,14 @@ plat_support_serial_kbd_and_ms() { 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 @@ console_type() 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 @@ console_type() 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 @@ console_type() */ 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 @@ plat_fbpath(void) 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 @@ char * 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 @@ char * 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 @@ plat_tem_get_prom_font_size(int *charheight, int *windowtop) *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__); } diff --git a/usr/src/uts/i86pc/io/cpunex.c b/usr/src/uts/i86pc/io/cpunex.c deleted file mode 100644 index 11c569151d..0000000000 --- a/usr/src/uts/i86pc/io/cpunex.c +++ /dev/null @@ -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 -#include -#include -#include -#include -#include -#include -#include -#include - -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)); -} diff --git a/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c b/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c index d69d32079b..956af1bcaf 100644 --- a/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c +++ b/usr/src/uts/i86pc/io/gfx_private/gfxp_devmap.c @@ -48,8 +48,13 @@ #include #include #include +#include #include "gfx_private.h" +#ifdef __xpv +#include +#endif + /* * Create a dummy ddi_umem_cookie given to gfxp_devmap_umem_setup(). */ @@ -123,7 +128,12 @@ gfxp_map_devmem(devmap_cookie_t dhc, gfx_maddr_t maddr, size_t length, 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)); diff --git a/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c b/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c index 8a277696c7..ca6a36cb5d 100644 --- a/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c +++ b/usr/src/uts/i86pc/io/gfx_private/gfxp_vm.c @@ -74,6 +74,10 @@ #include #include "gfx_private.h" +#ifdef __xpv +#include +#endif + /* * Create a kva mapping for a pa (start..start+size) with * the specified cache attributes (mode). @@ -87,10 +91,20 @@ gfxp_map_kernel_space(uint64_t start, size_t size, uint32_t mode) 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 @@ gfxp_map_kernel_space(uint64_t start, size_t size, uint32_t mode) 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 @@ gfxp_unmap_kernel_space(gfxp_kva_t address, size_t size) 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 @@ gfxp_munlock_user_memory(caddr_t address, size_t length) 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 } diff --git a/usr/src/uts/i86pc/io/hardclk.c b/usr/src/uts/i86pc/io/hardclk.c index 05961429c8..590ff80f28 100644 --- a/usr/src/uts/i86pc/io/hardclk.c +++ b/usr/src/uts/i86pc/io/hardclk.c @@ -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 */ diff --git a/usr/src/uts/i86pc/io/isa.c b/usr/src/uts/i86pc/io/isa.c index 6016d80bd2..66ab5a9bb0 100644 --- a/usr/src/uts/i86pc/io/isa.c +++ b/usr/src/uts/i86pc/io/isa.c @@ -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 #include #include +#if defined(__xpv) +#include +#include +#endif + extern int isa_resource_setup(void); static char USED_RESOURCES[] = "used-resources"; @@ -198,6 +203,17 @@ isa_attach(dev_info_t *devi, ddi_attach_cmd_t cmd) { 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 @@ is_pnpisa(dev_info_t *dip) 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 @@ isa_alloc_nodes(dev_info_t *isa_dip) /* 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 @@ enumerate_BIOS_serial(dev_info_t *isa_dip) * 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 @@ enumerate_BIOS_serial(dev_info_t *isa_dip) /* 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 @@ enumerate_BIOS_serial(dev_info_t *isa_dip) 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 @@ enumerate_BIOS_serial(dev_info_t *isa_dip) (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); } diff --git a/usr/src/uts/i86pc/io/microfind.c b/usr/src/uts/i86pc/io/microfind.c new file mode 100644 index 0000000000..c2561a66b9 --- /dev/null +++ b/usr/src/uts/i86pc/io/microfind.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 */ +} diff --git a/usr/src/uts/i86pc/io/mp_platform_common.c b/usr/src/uts/i86pc/io/mp_platform_common.c index d5c7501595..7acbca94a8 100644 --- a/usr/src/uts/i86pc/io/mp_platform_common.c +++ b/usr/src/uts/i86pc/io/mp_platform_common.c @@ -79,7 +79,6 @@ static struct apic_io_intr *apic_find_io_intr(int irqno); 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_handle_pci_pci_bridge(dev_info_t *idip, int child_devno, 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 @@ lock_t apic_ioapic_lock; /* * 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 @@ apic_addspl_common(int irqno, int ipl, int min_ipl, int max_ipl) * 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 @@ apic_delspl_common(int irqno, int ipl, int min_ipl, int max_ipl) 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 @@ delete_defer_repro_ent(int which_irq) if (--apic_reprogram_outstanding == 0) { - setlvlx = apic_intr_exit; + setlvlx = psm_intr_exit_fn(); } } @@ -3019,7 +3016,7 @@ apic_try_deferred_reprogram(int prev_ipl, int irq) 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 @@ apic_try_deferred_reprogram(int prev_ipl, int irq) * 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 @@ apic_try_deferred_reprogram(int prev_ipl, int irq) /* * 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 diff --git a/usr/src/uts/i86pc/io/pci/pci_kstats.c b/usr/src/uts/i86pc/io/pci/pci_kstats.c index a387ba1ff8..d31c6f29d9 100644 --- a/usr/src/uts/i86pc/io/pci/pci_kstats.c +++ b/usr/src/uts/i86pc/io/pci/pci_kstats.c @@ -147,7 +147,7 @@ pci_ih_ks_update(kstat_t *ksp, int rw) 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; diff --git a/usr/src/uts/i86pc/io/pci/pci_tools.c b/usr/src/uts/i86pc/io/pci/pci_tools.c index 7d35c9724b..a3d19019f5 100644 --- a/usr/src/uts/i86pc/io/pci/pci_tools.c +++ b/usr/src/uts/i86pc/io/pci/pci_tools.c @@ -45,6 +45,10 @@ #include #include +#ifdef __xpv +#include +#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 @@ pcitool_map(uint64_t phys_addr, size_t size, size_t *num_pages) 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, diff --git a/usr/src/uts/i86pc/io/pciex/inc.flg b/usr/src/uts/i86pc/io/pciex/inc.flg index 94a1f157fa..3757e5750e 100644 --- a/usr/src/uts/i86pc/io/pciex/inc.flg +++ b/usr/src/uts/i86pc/io/pciex/inc.flg @@ -56,6 +56,7 @@ find_files "s.*" \ # 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.files 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 diff --git a/usr/src/uts/i86pc/io/pcplusmp/apic.c b/usr/src/uts/i86pc/io/pcplusmp/apic.c index 41856a65d9..bec1bb6b64 100644 --- a/usr/src/uts/i86pc/io/pcplusmp/apic.c +++ b/usr/src/uts/i86pc/io/pcplusmp/apic.c @@ -65,6 +65,7 @@ #include #include #include +#include /* * Local Function Prototypes @@ -73,7 +74,7 @@ static void apic_init_intr(); 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 @@ int apic_debug_msgbufindex = 0; 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 @@ apic_picinit(void) } /* 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 @@ apic_intr_exit(int prev_ipl, int irq) 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 @@ gethrtime_again: /* 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 @@ apic_delspl(int irqno, int ipl, int min_ipl, int max_ipl) 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 @@ apic_calibrate(volatile uint32_t *addr, uint16_t *pit_ticks_adj) static int apic_clkinit(int hertz) { - uint_t apic_ticks = 0; uint_t pit_ticks; int ret; @@ -1340,7 +1360,7 @@ apic_clkinit(int hertz) 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); diff --git a/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c b/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c index 426f4ba11f..90e6b5df90 100644 --- a/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c +++ b/usr/src/uts/i86pc/io/pcplusmp/apic_introp.c @@ -48,9 +48,6 @@ extern struct av_head autovect[]; * 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 @@ apic_find_irq(dev_info_t *dip, struct intrspec *ispec, int type) } +#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 @@ apic_set_mask(apic_irq_t *irqp) 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 @@ apic_pci_msi_disable_mode(dev_info_t *rdip, int type) } } +#if !defined(__xpv) + static int apic_set_cpu(uint32_t vector, int cpu, int *result) { @@ -747,7 +749,9 @@ set_grp_intr_done: 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 @@ apic_get_vector_intr_info(int vecirq, apic_get_intr_t *intr_params_p) } +#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 @@ apic_intr_ops(dev_info_t *dip, ddi_intr_handle_impl_t *hdlp, } return (PSM_SUCCESS); } +#endif /* !__xpv */ diff --git a/usr/src/uts/i86pc/io/rootnex.c b/usr/src/uts/i86pc/io/rootnex.c index 87421198a8..2f55d11426 100644 --- a/usr/src/uts/i86pc/io/rootnex.c +++ b/usr/src/uts/i86pc/io/rootnex.c @@ -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 #include +#ifdef __xpv +#include +#include +#include +#include +#endif + /* * enable/disable extra checking of function parameters. Useful for debugging * drivers. @@ -142,6 +149,14 @@ static rootnex_intprop_t rootnex_intprp[] = { }; #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 ignore_hardware_nodes; /* force flag from ddi_impl.c */ 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 @@ rootnex_attach(dev_info_t *dip, ddi_attach_cmd_t cmd) int fmcap; int e; - switch (cmd) { case DDI_ATTACH: break; @@ -779,12 +792,10 @@ rootnex_map(dev_info_t *dip, dev_info_t *rdip, ddi_map_req_t *mp, off_t offset, 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 @@ rootnex_map(dev_info_t *dip, dev_info_t *rdip, ddi_map_req_t *mp, off_t offset, 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 @@ rootnex_map_fault(dev_info_t *dip, dev_info_t *rdip, struct hat *hat, * 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 @@ rootnex_map_fault(dev_info_t *dip, dev_info_t *rdip, struct hat *hat, 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 @@ rootnex_map_regspec(ddi_map_req_t *mp, caddr_t *vaddrp) 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 @@ to I/O space is not supported.\n"); */ *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 @@ to I/O space is not supported.\n"); 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 @@ to I/O space is not supported.\n"); } 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 @@ physical %x ", /* * 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 @@ rootnex_unmap_regspec(ddi_map_req_t *mp, caddr_t *vaddrp) 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 @@ rootnex_map_handle(ddi_map_req_t *mp) 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_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, } 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, * 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, * 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, * 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, } /* 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 @@ rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, * 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 @@ rootnex_setup_cookie(ddi_dma_obj_t *dmar_object, rootnex_dma_t *dma, { 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 @@ rootnex_setup_cookie(ddi_dma_obj_t *dmar_object, rootnex_dma_t *dma, * 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 @@ rootnex_setup_cookie(ddi_dma_obj_t *dmar_object, rootnex_dma_t *dma, * 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 @@ rootnex_sgllen_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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_sgllen_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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 @@ rootnex_sgllen_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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_sgllen_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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_copybuf_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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 @@ rootnex_copybuf_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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_copybuf_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, 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 @@ rootnex_copybuf_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, (*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 @@ rootnex_copybuf_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, */ 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 @@ rootnex_maxxfer_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, (*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 @@ rootnex_maxxfer_window_boundary(ddi_dma_impl_t *hp, rootnex_dma_t *dma, (*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 @@ rootnex_dma_win(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, /* 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 @@ rootnex_dma_win(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, } } 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 = diff --git a/usr/src/uts/i86pc/io/xsvc/xsvc.c b/usr/src/uts/i86pc/io/xsvc/xsvc.c index 2b797dc904..1e1939d42c 100644 --- a/usr/src/uts/i86pc/io/xsvc/xsvc.c +++ b/usr/src/uts/i86pc/io/xsvc/xsvc.c @@ -42,6 +42,9 @@ #include #include #include +#ifdef __xpv +#include +#endif #include @@ -828,9 +831,22 @@ xsvc_devmap(dev_t dev, devmap_cookie_t dhp, offset_t off, size_t len, } #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 @@ xsvc_devmap(dev_t dev, devmap_cookie_t dhp, offset_t off, size_t len, } *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) { diff --git a/usr/src/uts/i86pc/ml/fast_trap_asm.s b/usr/src/uts/i86pc/ml/fast_trap_asm.s index 9b5b501edf..b762543b91 100644 --- a/usr/src/uts/i86pc/ml/fast_trap_asm.s +++ b/usr/src/uts/i86pc/ml/fast_trap_asm.s @@ -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 #include #include +#include + #include "assym.h" #endif /* __lint */ @@ -104,7 +105,7 @@ getlgrp(void) 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 @@ getlgrp(void) FAST_INTR_PUSH call *gethrtimef FAST_INTR_POP - iret + FAST_INTR_RETURN SET_SIZE(get_hrtime) #endif /* __i386 */ @@ -131,7 +132,7 @@ getlgrp(void) 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 @@ getlgrp(void) 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 @@ getlgrp(void) 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 @@ getlgrp(void) movl 4(%ecx), %edx addl $0x8, %esp FAST_INTR_POP - iret + FAST_INTR_RETURN SET_SIZE(gethrvtime) #endif /* __i386 */ @@ -207,7 +207,7 @@ getlgrp(void) 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 @@ getlgrp(void) movl LPL_LGRPID(%ecx), %edx movl %gs:CPU_ID, %eax FAST_INTR_POP - iret + FAST_INTR_RETURN SET_SIZE(getlgrp) #endif /* __i386 */ diff --git a/usr/src/uts/i86pc/ml/genassym.c b/usr/src/uts/i86pc/ml/genassym.c index cda4acb3a3..1f8017ba13 100644 --- a/usr/src/uts/i86pc/ml/genassym.c +++ b/usr/src/uts/i86pc/ml/genassym.c @@ -54,6 +54,10 @@ #include #include +#if defined(__xpv) +#include +#endif + #undef exit /* unhide exit, see comment above */ extern void exit(int); @@ -177,5 +181,10 @@ main(int argc, char *argv[]) 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); } diff --git a/usr/src/uts/i86pc/ml/ia32.il b/usr/src/uts/i86pc/ml/ia32.il index 4a7be58bd7..0c24e4e674 100644 --- a/usr/src/uts/i86pc/ml/ia32.il +++ b/usr/src/uts/i86pc/ml/ia32.il @@ -152,17 +152,6 @@ invlpg (%eax) .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. diff --git a/usr/src/uts/i86pc/ml/interrupt.s b/usr/src/uts/i86pc/ml/interrupt.s index da1348ecbd..0a95adf429 100644 --- a/usr/src/uts/i86pc/ml/interrupt.s +++ b/usr/src/uts/i86pc/ml/interrupt.s @@ -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 @@ _interrupt(void) 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 @@ _interrupt(void) 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 @@ fakesoftint(void) 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 @@ fakesoftint(void) 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 diff --git a/usr/src/uts/i86pc/ml/locore.s b/usr/src/uts/i86pc/ml/locore.s index 3605e10fff..7676a5e07c 100644 --- a/usr/src/uts/i86pc/ml/locore.s +++ b/usr/src/uts/i86pc/ml/locore.s @@ -65,6 +65,10 @@ #include #include +#if defined(__xpv) +#include +#endif + #include "assym.h" /* @@ -216,6 +220,8 @@ _locore_start(struct boot_syscalls *sysp, ulong_t rsi, struct bootops *bop) /* * 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 @@ _locore_start(struct boot_syscalls *sysp, ulong_t rsi, struct bootops *bop) popq %r11 movq %r11, REGOFF_RFL(%rsp) +#if !defined(__xpv) /* * Enable write protect and alignment check faults. */ @@ -268,6 +275,7 @@ _locore_start(struct boot_syscalls *sysp, ulong_t rsi, struct bootops *bop) 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 @@ _locore_start(struct boot_syscalls *sysp, struct bootops *bop) /* * 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 @@ _locore_start(struct boot_syscalls *sysp, struct bootops *bop) pushal pushfl +#if !defined(__xpv) /* * Override bios settings and enable write protect and * alignment check faults. @@ -1107,6 +1117,8 @@ cpu_done: popfl /* Restore original FLAGS */ popal /* Restore all registers */ +#endif /* !__xpv */ + /* * mlsetup(%esp) gets called. */ @@ -1156,6 +1168,7 @@ cmntrap() ENTRY_NP2(cmntrap, _cmntrap) INTR_PUSH + ALTENTRY(cmntrap_pushed) movq %rsp, %rbp @@ -1330,6 +1343,7 @@ cmntrap() movl %ecx, REGOFF_EIP(%ebp) INTR_POP_KERNEL IRET + /*NOTREACHED*/ 2: pushl $dtrace_badflags call panic @@ -1366,9 +1380,11 @@ void cmninttrap() {} +#if !defined(__xpv) void bop_trap_handler(void) {} +#endif #else /* __lint */ @@ -1394,6 +1410,7 @@ bop_trap_handler(void) 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 @@ bop_trap_handler(void) movq %rsp, %rdi call bop_trap SET_SIZE(bop_trap_handler) +#endif #elif defined(__i386) @@ -1426,6 +1444,7 @@ bop_trap_handler(void) 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 @@ bop_trap_handler(void) pushl %eax call bop_trap SET_SIZE(bop_trap_handler) +#endif #endif /* __i386 */ @@ -1464,7 +1484,12 @@ dtrace_trap() 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 @@ dtrace_trap() 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 @@ _no_pending_updates: */ 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 @@ _no_pending_updates: */ 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 @@ _no_pending_updates: */ 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 @@ _lwp_rtt: */ 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 @@ _lwp_rtt: */ 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 @@ _lwp_rtt: */ 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) diff --git a/usr/src/uts/i86pc/ml/mach_offsets.in b/usr/src/uts/i86pc/ml/mach_offsets.in index 4c1be8d61a..770912bf9e 100644 --- a/usr/src/uts/i86pc/ml/mach_offsets.in +++ b/usr/src/uts/i86pc/ml/mach_offsets.in @@ -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 +#endif + #include #include #include @@ -132,3 +139,12 @@ pcb PCBSIZE 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 */ diff --git a/usr/src/uts/i86pc/ml/offsets.in b/usr/src/uts/i86pc/ml/offsets.in index 1c51a7c7d5..cff6f8e357 100644 --- a/usr/src/uts/i86pc/ml/offsets.in +++ b/usr/src/uts/i86pc/ml/offsets.in @@ -221,6 +221,9 @@ cpu 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 diff --git a/usr/src/uts/i86pc/ml/syscall_asm_amd64.s b/usr/src/uts/i86pc/ml/syscall_asm_amd64.s index 51a1d8cb54..f43f8486c6 100644 --- a/usr/src/uts/i86pc/ml/syscall_asm_amd64.s +++ b/usr/src/uts/i86pc/ml/syscall_asm_amd64.s @@ -48,6 +48,11 @@ #include #include #include + +#if defined(__xpv) +#include +#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 @@ size_t _allsyscalls_size; #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 - movq %rsp, %gs:CPU_RTMP_RSP + 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 +#endif /* __xpv */ + movq %gs:CPU_THREAD, %r15 movq T_STACK(%r15), %rsp @@ -522,9 +564,24 @@ _syscall_invoke: 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 @@ sys_syscall32() #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 @@ _syscall32_save: 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 @@ sys_sysenter() #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 @@ sys_sysenter() 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 @@ sys_int80() #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 @@ sys_syscall_int() #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 @@ sys_lcall32() #else /* __lint */ ENTRY_NP(sys_lcall32) - SWAPGS + SWAPGS /* kernel gsbase */ pushq $0 pushq %rbp movq %rsp, %rbp diff --git a/usr/src/uts/i86pc/os/biosdisk.c b/usr/src/uts/i86pc/os/biosdisk.c index 38c449b28c..80e6fd1691 100644 --- a/usr/src/uts/i86pc/os/biosdisk.c +++ b/usr/src/uts/i86pc/os/biosdisk.c @@ -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 #include #include +#if defined(__xpv) +#include +#endif /* hard code realmode memory address for now */ @@ -79,6 +81,11 @@ startup_bios_disk() 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 @@ drive_present(uchar_t drivenum) 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); } diff --git a/usr/src/uts/i86pc/os/cpuid.c b/usr/src/uts/i86pc/os/cpuid.c index ce6a9c2a8f..fb19a37c4d 100644 --- a/usr/src/uts/i86pc/os/cpuid.c +++ b/usr/src/uts/i86pc/os/cpuid.c @@ -417,8 +417,68 @@ synth_info(struct cpuid_info *cpi) * 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 @@ cpuid_pass1(cpu_t *cpu) 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 @@ cpuid_pass1(cpu_t *cpu) 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 @@ cpuid_pass1(cpu_t *cpu) * 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 @@ cpuid_pass1(cpu_t *cpu) 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 @@ cpuid_is_cmt(cpu_t *cpu) * 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 @@ cpuid_syscall32_insn(cpu_t *cpu) { ASSERT(cpuid_checkpass((cpu == NULL ? CPU : cpu), 1)); +#if !defined(__xpv) if (cpu == NULL) cpu = CPU; @@ -2151,6 +2225,7 @@ cpuid_syscall32_insn(cpu_t *cpu) (CPI_FEATURES_XTD_EDX(cpi) & CPUID_AMD_EDX_SYSC)) return (1); } +#endif return (0); } @@ -3458,6 +3533,8 @@ getl2cacheinfo(cpu_t *cpu, int *csz, int *lsz, int *assoc) return (l2i->l2i_ret); } +#if !defined(__xpv) + uint32_t * cpuid_mwait_alloc(cpu_t *cpu) { @@ -3514,3 +3591,5 @@ cpuid_mwait_free(cpu_t *cpu) cpu->cpu_m.mcpu_cpi->cpi_mwait.buf_actual = NULL; cpu->cpu_m.mcpu_cpi->cpi_mwait.size_actual = 0; } + +#endif /* !__xpv */ diff --git a/usr/src/uts/i86pc/os/cpupm.c b/usr/src/uts/i86pc/os/cpupm.c index 7102aa3c1d..9a5112d9d7 100644 --- a/usr/src/uts/i86pc/os/cpupm.c +++ b/usr/src/uts/i86pc/os/cpupm.c @@ -196,9 +196,13 @@ cpupm_free_cpu_dependencies() 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 @@ cpupm_enable(boolean_t enable) 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 @@ cpupm_post_startup() if (cpupm_init_topspeed != NULL) (*cpupm_init_topspeed)(); +#else + cpupm_ready = B_TRUE; +#endif } diff --git a/usr/src/uts/i86pc/os/ddi_impl.c b/usr/src/uts/i86pc/os/ddi_impl.c index 068a3eaab5..9b762549bd 100644 --- a/usr/src/uts/i86pc/os/ddi_impl.c +++ b/usr/src/uts/i86pc/os/ddi_impl.c @@ -61,6 +61,9 @@ #include #include #include +#if defined(__xpv) +#include +#endif #include #include #include @@ -199,7 +202,12 @@ FP hardware exhibits Pentium floating point divide problem\n"); * 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 @@ make_ddi_ppd(dev_info_t *child, struct ddi_parent_private_data **ppd) 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 @@ page_create_io_wrapper(void *addr, size_t len, int vmflag, void *arg) 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_init(int a) 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 @@ void 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 @@ contig_alloc(size_t size, ddi_dma_attr_t *attr, uintptr_t align, int cansleep) 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 @@ contig_alloc(size_t size, ddi_dma_attr_t *attr, uintptr_t align, int cansleep) 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 @@ contig_alloc(size_t size, ddi_dma_attr_t *attr, uintptr_t align, int cansleep) 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 @@ contig_free(void *addr, size_t size) 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 @@ kfreea(void *addr) 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 @@ i_ddi_mem_alloc(dev_info_t *dip, ddi_dma_attr_t *attr, } 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 @@ i_ddi_mem_alloc_lim(dev_info_t *dip, ddi_dma_lim_t *limits, 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 @@ impl_assign_instance(dev_info_t *dip) 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 @@ x86_old_bootpath_name_addr_match(dev_info_t *cdip, char *caddr, char *naddr) 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 @@ x86_old_bootpath_name_addr_match(dev_info_t *cdip, char *caddr, char *naddr) (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 @@ impl_setup_ddi(void) (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 @@ impl_bus_initialprobe(void) 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; } diff --git a/usr/src/uts/i86pc/os/dtrace_subr.c b/usr/src/uts/i86pc/os/dtrace_subr.c index b96d16fbfa..f1ede2fc9d 100644 --- a/usr/src/uts/i86pc/os/dtrace_subr.c +++ b/usr/src/uts/i86pc/os/dtrace_subr.c @@ -124,7 +124,7 @@ dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) 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 @@ dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg) 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 @@ dtrace_safe_defer_signal(void) /* * 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 } diff --git a/usr/src/uts/i86pc/os/fakebop.c b/usr/src/uts/i86pc/os/fakebop.c index e4d399163e..363463eb8b 100644 --- a/usr/src/uts/i86pc/os/fakebop.c +++ b/usr/src/uts/i86pc/os/fakebop.c @@ -53,6 +53,10 @@ #include #include #include +#ifdef __xpv +#include +#include +#endif #include #include #include "acpi_fw.h" @@ -102,6 +106,11 @@ static bootprop_t *bprops = NULL; 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 @@ do_bop_phys_alloc(uint64_t size, uint64_t align) /* * 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 @@ boot_prop_finish(void) 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 @@ done: /* * 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 @@ typedef int (*bios_func_t)(int, bios_regs_t *); 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 @@ do_bsys_doint(bootops_t *bop, int intnum, struct bop_regs *rp) 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 @@ static char *whoami; #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 @@ setup_rarp_props(struct sol_netinfo *sip) } } +#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 @@ build_boot_properties(void) 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 @@ build_boot_properties(void) 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 @@ build_boot_properties(void) */ bsetprops("boot-args", boot_args); +#ifndef __xpv /* * set the BIOS boot device from GRUB */ @@ -993,12 +1252,18 @@ build_boot_properties(void) } 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_boot_properties(void) build_firmware_properties(); /* + * XXPV + * * Find out what these are: * - cpuid_feature_ecx_include * - cpuid_feature_ecx_exclude @@ -1019,6 +1286,101 @@ build_boot_properties(void) */ } +#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 @@ bop_idt_init(void) 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 @@ _start(struct xboot_info *xbp) * 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 @@ _start(struct xboot_info *xbp) 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 @@ _start(struct xboot_info *xbp) 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 @@ _start(struct xboot_info *xbp) */ 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 @@ _start(struct xboot_info *xbp) 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 @@ _start(struct xboot_info *xbp) 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 @@ bop_no_more_mem(void) } +#ifndef __xpv /* * Set ACPI firmware properties */ @@ -1570,20 +1968,50 @@ process_slit(struct slit *tp) 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 */ } /* diff --git a/usr/src/uts/i86pc/os/fpu_subr.c b/usr/src/uts/i86pc/os/fpu_subr.c index dee40885e7..11f226a1eb 100644 --- a/usr/src/uts/i86pc/os/fpu_subr.c +++ b/usr/src/uts/i86pc/os/fpu_subr.c @@ -75,10 +75,22 @@ int fpu_pentium_fdivbug = 0; #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 @@ fpu_probe(void) } #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 @@ fpu_probe(void) */ if ((getcr0() & CR0_ET) == 0) continue; +#endif #if defined(__amd64) /* diff --git a/usr/src/uts/i86pc/os/graphics.c b/usr/src/uts/i86pc/os/graphics.c index 0978b858a6..70d6301fa2 100644 --- a/usr/src/uts/i86pc/os/graphics.c +++ b/usr/src/uts/i86pc/os/graphics.c @@ -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 @@ progressbar_thread(void *arg) void progressbar_start(void) { +#if !defined(__xpv) extern pri_t minclsyspri; if (graphics_mode == 0) @@ -169,11 +169,13 @@ progressbar_start(void) 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 @@ progressbar_stop(void) /* unmap video memory */ hat_unload(kas.a_hat, videomem, videomem_size, HAT_UNLOAD_UNLOCK); vmem_free(heap_arena, videomem, videomem_size); +#endif } diff --git a/usr/src/uts/i86pc/os/hold_page.c b/usr/src/uts/i86pc/os/hold_page.c index 1c11bc80f1..18c67cee9f 100644 --- a/usr/src/uts/i86pc/os/hold_page.c +++ b/usr/src/uts/i86pc/os/hold_page.c @@ -28,10 +28,37 @@ #include +#if defined(__xpv) +#include +#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 @@ plat_hold_page(pfn_t pfn, int lock, page_t **pp_ret) void plat_release_page(page_t *pp) { +#if defined(__xpv) + ASSERT((pp != NULL) && PAGE_LOCKED(pp)); + page_unlock(pp); +#endif } diff --git a/usr/src/uts/i86pc/os/intr.c b/usr/src/uts/i86pc/os/intr.c index 22672330f7..f68b96acd1 100644 --- a/usr/src/uts/i86pc/os/intr.c +++ b/usr/src/uts/i86pc/os/intr.c @@ -18,6 +18,7 @@ * * CDDL HEADER END */ + /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -54,7 +55,34 @@ #include #include #include +#if defined(__xpv) +#include +#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 @@ intr_thread_epilog(struct cpu *cpu, uint_t vec, uint_t oldpil) * 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 @@ cpu_kstat_intrstat_update(kstat_t *ksp, int rw) 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 @@ dosoftint(struct regs *regs) 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 @@ do_interrupt(struct regs *rp, trap_trace_rec_t *ttp) 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. diff --git a/usr/src/uts/i86pc/os/lgrpplat.c b/usr/src/uts/i86pc/os/lgrpplat.c index a7a285fb6c..ad031c6782 100644 --- a/usr/src/uts/i86pc/os/lgrpplat.c +++ b/usr/src/uts/i86pc/os/lgrpplat.c @@ -526,6 +526,12 @@ plat_build_mem_nodes(struct memlist *list) 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_plat_init(void) */ lgrp_expand_proc_thresh = LGRP_LOADAVG_THREAD_MAX / 2; lgrp_expand_proc_diff = 0; +#endif /* __xpv */ } diff --git a/usr/src/uts/i86pc/os/machdep.c b/usr/src/uts/i86pc/os/machdep.c index f96722f64f..d42a0c9e28 100644 --- a/usr/src/uts/i86pc/os/machdep.c +++ b/usr/src/uts/i86pc/os/machdep.c @@ -117,6 +117,10 @@ #include #include #include +#if defined(__xpv) +#include +#include +#endif #ifdef TRAPTRACE #include @@ -167,7 +171,9 @@ extern void pm_cfb_rele(void); 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 @@ mdboot(int cmd, int fcn, char *mdep, boolean_t invoke_cb) 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 @@ mdboot(int cmd, int fcn, char *mdep, boolean_t invoke_cb) */ 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 @@ mdboot(int cmd, int fcn, char *mdep, boolean_t invoke_cb) (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 @@ debug_enter( void reset(void) { +#if !defined(__xpv) ushort_t *bios_memchk; /* @@ -345,6 +370,12 @@ reset(void) 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 @@ sysp_getchar() 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 @@ sysp_putchar(int c) 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 @@ sysp_ischar() 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 @@ static struct boot_syscalls kern_sysp = { sysp_ischar, /* int (*ischar)(); 9 */ }; +#if defined(__xpv) +int using_kern_polledio; +#endif + void kadb_uses_kernel() { @@ -490,6 +525,9 @@ kadb_uses_kernel() * 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 @@ poll_port(ushort_t port, ushort_t mask, ushort_t onbits, ushort_t offbits) 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 @@ panic_stopcpus(cpu_t *cp, kthread_t *t, int spl) 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 @@ panic_dump_hw(int spl) /* 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 @@ volatile unsigned long tenmicrodata; 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 @@ tenmicrosec(void) 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 @@ tenmicrosec(void) */ for (i = 0; i < microdata; i++) tenmicrodata = microdata; +#endif /* __xpv */ } } @@ -994,31 +1056,117 @@ checked_wrmsr(uint_t msr, uint64_t value) } /* - * 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) { - return (0); +#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() +{ + 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 } /* diff --git a/usr/src/uts/i86pc/os/microcode.c b/usr/src/uts/i86pc/os/microcode.c index 19da208118..647a6957b7 100644 --- a/usr/src/uts/i86pc/os/microcode.c +++ b/usr/src/uts/i86pc/os/microcode.c @@ -45,6 +45,9 @@ #include #include #include +#ifdef __xpv +#include +#endif /* * Microcode specific information per core @@ -127,9 +130,18 @@ ucode_free() * 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 @@ ucode_capable(cpu_t *cp) 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 @@ ucode_update(uint8_t *ucodep, int size) 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; diff --git a/usr/src/uts/i86pc/os/mlsetup.c b/usr/src/uts/i86pc/os/mlsetup.c index 8d82f4146d..8c14204f20 100644 --- a/usr/src/uts/i86pc/os/mlsetup.c +++ b/usr/src/uts/i86pc/os/mlsetup.c @@ -58,6 +58,9 @@ #include #include #include +#ifdef __xpv +#include +#endif /* * some globals for patching the result of cpuid @@ -110,6 +113,13 @@ mlsetup(struct regs *rp) */ 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 @@ mlsetup(struct regs *rp) 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 @@ mlsetup(struct regs *rp) */ 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 @@ mlsetup(struct regs *rp) if (x86_feature & X86_DE) setcr4(getcr4() | CR4_DE); +#endif /* __xpv */ /* * initialize t0 @@ -235,7 +249,7 @@ mlsetup(struct regs *rp) /* * 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 @@ mlsetup(struct regs *rp) 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 @@ mlsetup(struct regs *rp) 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"); diff --git a/usr/src/uts/i86pc/os/mp_implfuncs.c b/usr/src/uts/i86pc/os/mp_implfuncs.c index cad5365b08..ac3e03ff45 100644 --- a/usr/src/uts/i86pc/os/mp_implfuncs.c +++ b/usr/src/uts/i86pc/os/mp_implfuncs.c @@ -35,6 +35,11 @@ #include #include #include +#if defined(__xpv) +#include +#include +#include +#endif /* * External reference functions @@ -83,11 +88,11 @@ psm_modlinkage_alloc(struct psm_info *infop) 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 @@ psm_modlinkage_free(struct modlinkage *mlinkp) 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 @@ psm_map_phys_new(paddr_t addr, size_t len, int prot) 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 @@ mod_infopsm(struct modlpsm *modl, struct modlinkage *modlp, int *p0) 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 @@ psm_modload(void) 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 @@ psm_install(void) 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); diff --git a/usr/src/uts/i86pc/os/mp_machdep.c b/usr/src/uts/i86pc/os/mp_machdep.c index 8831dc0ec1..1d4fef5395 100644 --- a/usr/src/uts/i86pc/os/mp_machdep.c +++ b/usr/src/uts/i86pc/os/mp_machdep.c @@ -44,8 +44,12 @@ #include #include #include +#include #include #include +#if defined(__xpv) +#include +#endif #include #include #include @@ -59,7 +63,6 @@ static int mp_disable_intr(processorid_t cpun); 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 hrtime_t dummy_hrtime(void); 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,9 +140,22 @@ int (*psm_intr_ops)(dev_info_t *, ddi_intr_handle_impl_t *, psm_intr_op_t, 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 */ @@ -151,11 +169,12 @@ static ushort_t mach_ver[4] = {0, 0, 0, 0}; */ 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 @@ cpu_wakeup(cpu_t *cpu, int bound) poke_cpu(cpu_found); } +#ifndef __xpv /* * Idle the present CPU until awoken via touching its monitored line */ @@ -638,6 +658,7 @@ cpu_wakeup_mwait(cpu_t *cp, int bound) */ MWAIT_WAKEUP(cpu[cpu_found]); /* write to monitored line */ } +#endif void (*cpu_pause_handler)(volatile char *) = NULL; @@ -827,6 +848,8 @@ mach_init() * 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 @@ mach_init() } else { idle_cpu = cpu_idle; } +#endif } mach_smpinit(); @@ -911,11 +935,13 @@ mach_smpinit(void) * 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 @@ uint64_t cpu_freq_hz; /* measured (in hertz) */ #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 @@ mach_calchz(uint32_t pit_counter, uint64_t *processor_clks) 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 @@ mach_getcpufreq(void) /* We do not know how to calculate cpu frequency for this cpu. */ return (0); +#endif /* __xpv */ } /* @@ -1153,14 +1236,12 @@ mach_clkinit(int preferred_mode, int *set_mode) 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_clkinit(int preferred_mode, int *set_mode) 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); } - } /* diff --git a/usr/src/uts/i86pc/os/mp_startup.c b/usr/src/uts/i86pc/os/mp_startup.c index 67361b1807..8ccd32efd3 100644 --- a/usr/src/uts/i86pc/os/mp_startup.c +++ b/usr/src/uts/i86pc/os/mp_startup.c @@ -66,6 +66,9 @@ #include #include #include +#if defined(__xpv) +#include +#endif #include struct cpu cpus[1]; /* CPU data */ @@ -99,8 +102,6 @@ static void cpu_sep_disable(void); 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 @@ mp_startup_init(int cpun) 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 @@ mp_startup_init(int cpun) 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 @@ mp_startup_init(int cpun) */ 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 @@ mp_startup_fini(struct cpu *cp, int error) 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 @@ mp_startup_fini(struct cpu *cp, int error) 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 @@ msr_warning(cpu_t *cp, const char *rw, uint_t msr, int error) 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 @@ workaround_errata(struct cpu *cpu) * 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 @@ workaround_errata(struct cpu *cpu) */ 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 @@ workaround_errata(struct cpu *cpu) */ 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 @@ workaround_errata(struct cpu *cpu) */ 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 @@ workaround_errata(struct cpu *cpu) pci_putb_func(0, node + 24, 3, 0x87, data); } opteron_workaround_6336786++; +#endif /* __xpv */ } #else workaround_warning(cpu, 6336786); @@ -950,10 +1018,30 @@ workaround_errata(struct cpu *cpu) */ 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 @@ workaround_errata(struct cpu *cpu) #endif } +#ifdef __xpv + return (0); +#else return (missing); +#endif } void @@ -1121,8 +1213,10 @@ start_cpu(processorid_t who) 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 @@ start_other_cpus(int cprboot) 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 @@ mp_startup(void) /* 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 @@ mp_startup(void) 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 @@ mp_startup(void) (*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 @@ mp_cpu_stop(struct cpu *cp) 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); } diff --git a/usr/src/uts/i86pc/os/pci_cfgspace.c b/usr/src/uts/i86pc/os/pci_cfgspace.c index 592d4cc67c..e49c4b7551 100644 --- a/usr/src/uts/i86pc/os/pci_cfgspace.c +++ b/usr/src/uts/i86pc/os/pci_cfgspace.c @@ -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 #include #include +#if defined(__xpv) +#include +int pci_max_nbus = 0xFE; +#endif + int pci_bios_cfg_type = PCI_MECHANISM_UNKNOWN; int pci_bios_nbus; @@ -67,8 +72,11 @@ void (*pci_putl_func)(int bus, int dev, int func, int reg, uint32_t val); * 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 @@ pci_check(void) 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 @@ pci_check(void) } return (TRUE); +#endif /* __xpv */ } +#if !defined(__xpv) static int pci_check_bios(void) @@ -235,3 +271,5 @@ pci_get_cfg_type(void) return (PCI_MECHANISM_NONE); } } + +#endif /* __xpv */ diff --git a/usr/src/uts/i86pc/os/startup.c b/usr/src/uts/i86pc/os/startup.c index 4876c85b4d..41478d4116 100644 --- a/usr/src/uts/i86pc/os/startup.c +++ b/usr/src/uts/i86pc/os/startup.c @@ -67,7 +67,7 @@ #include #include #include -#include /* for "procfs" hack */ +#include #include #include @@ -108,12 +108,22 @@ #include #include #include -#include #include #include #include #include +#ifdef __xpv +#include +#include +#include +#include +#include +#include +#include +extern void xen_late_startup(void); +extern struct xen_evt_data cpu0_evt_data; +#endif #include #include @@ -337,7 +347,7 @@ static pgcnt_t kphysm_init(page_t *, pgcnt_t); * | 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 @@ perform_allocations(void) 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 @@ init_debug_info(void) 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 @@ startup_kmem(void) 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 @@ startup_kmem(void) */ 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 @@ startup_kmem(void) } #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 @@ startup_modules(void) 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 @@ startup_modules(void) * caused the drv_usecwait to be way too short. */ microfind(); +#endif /* * Read the GMT lag from /etc/rtc_config. @@ -1349,6 +1412,12 @@ startup_modules(void) /* 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 @@ startup_vm(void) 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 @@ startup_vm(void) */ protect_boot_range(0, kernelbase, 1); + /* * Switch to running on regular HAT (not boot_mmu) */ @@ -1652,6 +1724,19 @@ startup_vm(void) 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 @@ startup_vm(void) * 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 @@ startup_vm(void) 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 @@ startup_vm(void) } #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 @@ startup_vm(void) 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 @@ startup_vm(void) 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 @@ startup_end(void) 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 @@ startup_end(void) *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 @@ post_startup(void) */ 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); +#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); - /* - * Startup the memory scrubber. - */ - memscrub_init(); +#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 @@ release_bootstrap(void) } 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 @@ release_bootstrap(void) panic("No page available for starting " "other processors"); } - +#endif /* !__xpv */ } /* @@ -2211,6 +2329,7 @@ kvm_init(void) PROT_READ | PROT_WRITE | PROT_EXEC); } +#ifndef __xpv /* * These are MTTR registers supported by P6 */ @@ -2290,7 +2409,9 @@ mtrr_sync(void) 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 @@ mtrr_sync(void) } wrmsr(REG_MTRRDEF, mtrrdef); +#if !defined(__xpv) reload_cr3(); +#endif invalidate_cache(); setcr0(cr0_orig); } @@ -2339,6 +2462,7 @@ mtrr_resync(void) mtrr_sync(); } } +#endif void get_system_configuration(void) diff --git a/usr/src/uts/i86pc/os/timestamp.c b/usr/src/uts/i86pc/os/timestamp.c index 2fe67216b1..fe49b90f2a 100644 --- a/usr/src/uts/i86pc/os/timestamp.c +++ b/usr/src/uts/i86pc/os/timestamp.c @@ -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 #include #include +#include /* * Using the Pentium's TSC register for gethrtime() @@ -131,11 +133,7 @@ static volatile int tsc_sync_go; #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 hrtime_t shadow_tsc_last; 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 @@ tsc_sync_slave(void) 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 @@ tsc_tick(void) 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) -{ - 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_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) +tsc_hrtimeinit(uint64_t cpu_freq_hz) { - hrtime_t hrt; - hrtime_t mytsc; - - if (tsc == NULL) - return; - mytsc = *tsc; - - TSC_CONVERT(mytsc, hrt, nsec_scale); - *tsc = hrt; -} + extern int gethrtime_hires; + longlong_t tsc; + ulong_t flags; -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; } diff --git a/usr/src/uts/i86pc/os/trap.c b/usr/src/uts/i86pc/os/trap.c index 2d0a093435..5316babf1a 100644 --- a/usr/src/uts/i86pc/os/trap.c +++ b/usr/src/uts/i86pc/os/trap.c @@ -96,6 +96,9 @@ #include #include #include +#if defined(__xpv) +#include +#endif #define USER 0x10000 /* user-mode flag added to trap type */ @@ -155,20 +158,13 @@ static void dump_ttrace(void); #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 @@ trap(struct regs *rp, caddr_t addr, processorid_t cpuid) 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 @@ trap(struct regs *rp, caddr_t addr, processorid_t cpuid) 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 @@ trap(struct regs *rp, caddr_t addr, processorid_t cpuid) 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 ), - * 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 @@ trap(struct regs *rp, caddr_t addr, processorid_t cpuid) goto cleanup; } /*FALLTHROUGH*/ -#endif +#endif /* __amd64 || __xpv */ case T_SEGFLT: /* segment not present fault */ #if defined(__amd64) /* @@ -1138,6 +1142,8 @@ trap(struct regs *rp, caddr_t addr, processorid_t cpuid) 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 @@ showregs(uint_t type, struct regs *rp, caddr_t addr) (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); @@ -1656,6 +1665,82 @@ dumpregs(struct regs *rp) #endif /* __i386 */ } +/* + * 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. * @@ -1688,33 +1773,12 @@ kern_gpfault(struct regs *rp) 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. - */ - 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 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. */ - 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 @@ kern_gpfault(struct regs *rp) * 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 @@ kern_gpfault(struct regs *rp) ASSERT(trp->r_pc == lwptoregs(lwp)->r_pc); ASSERT(trp->r_err == rp->r_err); - } -#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)); + } - 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) { - } 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 + * 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. * - * Thus if any of them fault, we know the user - * registers are left unharmed on the stack. + * 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. */ - 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); + trp = lwptoregs(lwp); + ASSERT((caddr_t)trp == (caddr_t)rp->r_sp); } -#endif /* __amd64 */ + +#elif defined(__i386) + + if (trp == NULL && instr_is_segregs_pop(pc)) + trp = lwptoregs(lwp); + +#endif /* __i386 */ if (trp == NULL) return (1); @@ -1831,13 +1869,14 @@ kern_gpfault(struct regs *rp) 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 @@ kern_gpfault(struct regs *rp) * dump_tss() - Display the TSS structure */ +#if !defined(__xpv) #if defined(__amd64) static void @@ -1909,11 +1949,12 @@ dump_tss(void) } #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 @@ dump_ttrace(void) 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 @@ trap_trace_get_traceptr(uint8_t marker, ulong_t pc, ulong_t sp) #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); } diff --git a/usr/src/uts/i86pc/sys/Makefile b/usr/src/uts/i86pc/sys/Makefile index c3afe499df..f46f01f716 100644 --- a/usr/src/uts/i86pc/sys/Makefile +++ b/usr/src/uts/i86pc/sys/Makefile @@ -47,8 +47,10 @@ HDRS= \ ddi_subrdefs.h \ debug_info.h \ mach_mmu.h \ + machclock.h \ machcpuvar.h \ machparam.h \ + machprivregs.h \ machsystm.h \ machthread.h \ memnode.h \ diff --git a/usr/src/uts/i86pc/sys/apic.h b/usr/src/uts/i86pc/sys/apic.h index ad10e7513d..0e692d954b 100644 --- a/usr/src/uts/i86pc/sys/apic.h +++ b/usr/src/uts/i86pc/sys/apic.h @@ -710,6 +710,8 @@ extern int apic_alloc_msix_vectors(dev_info_t *dip, int inum, int count, 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 @@ extern apic_cpus_info_t *apic_cpus; #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; diff --git a/usr/src/uts/i86pc/sys/boot_console.h b/usr/src/uts/i86pc/sys/boot_console.h index 92fa9cebf5..02c25d6364 100644 --- a/usr/src/uts/i86pc/sys/boot_console.h +++ b/usr/src/uts/i86pc/sys/boot_console.h @@ -41,6 +41,10 @@ extern "C" { #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_getchar(void); 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 diff --git a/usr/src/uts/i86pc/sys/clock.h b/usr/src/uts/i86pc/sys/clock.h index efabb1c84c..55b9c4ef46 100644 --- a/usr/src/uts/i86pc/sys/clock.h +++ b/usr/src/uts/i86pc/sys/clock.h @@ -52,18 +52,22 @@ extern void unlock_hres_lock(void); 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 */ diff --git a/usr/src/uts/i86pc/sys/debug_info.h b/usr/src/uts/i86pc/sys/debug_info.h index 3c626fd360..49387889f6 100644 --- a/usr/src/uts/i86pc/sys/debug_info.h +++ b/usr/src/uts/i86pc/sys/debug_info.h @@ -28,8 +28,6 @@ #pragma ident "%Z%%M% %I% %E% SMI" -#include - #ifdef __cplusplus extern "C" { #endif @@ -37,9 +35,22 @@ extern "C" { #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 diff --git a/usr/src/uts/i86pc/sys/mach_mmu.h b/usr/src/uts/i86pc/sys/mach_mmu.h index 431c6045e4..1eb47ada6a 100644 --- a/usr/src/uts/i86pc/sys/mach_mmu.h +++ b/usr/src/uts/i86pc/sys/mach_mmu.h @@ -123,11 +123,19 @@ extern "C" { * * 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 +#else #include +#endif /* * The software extraction for a single Page Table Entry will always diff --git a/usr/src/uts/i86pc/sys/machcpuvar.h b/usr/src/uts/i86pc/sys/machcpuvar.h index 0d7a05b280..f286c8936d 100644 --- a/usr/src/uts/i86pc/sys/machcpuvar.h +++ b/usr/src/uts/i86pc/sys/machcpuvar.h @@ -54,6 +54,17 @@ struct cpuid_info; 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 @@ struct machcpu { #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 */ diff --git a/usr/src/uts/i86pc/sys/machparam.h b/usr/src/uts/i86pc/sys/machparam.h index bc9d995b29..218142c05c 100644 --- a/usr/src/uts/i86pc/sys/machparam.h +++ b/usr/src/uts/i86pc/sys/machparam.h @@ -34,6 +34,11 @@ #if !defined(_ASM) #include + +#if defined(__xpv) +#include +#endif + #endif #ifdef __cplusplus @@ -63,7 +68,6 @@ extern "C" { #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 @@ extern "C" { * _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 @@ extern "C" { * 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 @@ extern "C" { /* * 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 diff --git a/usr/src/uts/i86pc/sys/machprivregs.h b/usr/src/uts/i86pc/sys/machprivregs.h index 1d4abe0b1c..3ef6a768a0 100644 --- a/usr/src/uts/i86pc/sys/machprivregs.h +++ b/usr/src/uts/i86pc/sys/machprivregs.h @@ -74,7 +74,11 @@ extern "C" { #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 @@ extern "C" { #define CLEAN_CS /* empty */ + /* * Macros for saving the original segment registers and restoring them * for fast traps. diff --git a/usr/src/uts/i86pc/sys/machsystm.h b/usr/src/uts/i86pc/sys/machsystm.h index 8ab5c1b2dc..2e8f2f9af7 100644 --- a/usr/src/uts/i86pc/sys/machsystm.h +++ b/usr/src/uts/i86pc/sys/machsystm.h @@ -56,7 +56,6 @@ extern "C" { 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_init(cpu_t *cp); 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 trap(struct regs *, caddr_t, processorid_t); 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 page_t *page_get_physical(uintptr_t); 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 +extern page_t *page_get_high_mfn(mfn_t); +#endif + + #endif /* _KERNEL */ #ifdef __cplusplus diff --git a/usr/src/uts/i86pc/sys/psm_common.h b/usr/src/uts/i86pc/sys/psm_common.h index ee2b3e6697..ef68cb9f07 100644 --- a/usr/src/uts/i86pc/sys/psm_common.h +++ b/usr/src/uts/i86pc/sys/psm_common.h @@ -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 @@ typedef struct acpi_psm_lnk { 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 int acpi_poweroff(void); 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 } diff --git a/usr/src/uts/i86pc/sys/vm_machparam.h b/usr/src/uts/i86pc/sys/vm_machparam.h index 7eb482b473..b72d4af955 100644 --- a/usr/src/uts/i86pc/sys/vm_machparam.h +++ b/usr/src/uts/i86pc/sys/vm_machparam.h @@ -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 @@ extern "C" { */ #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)) /* diff --git a/usr/src/uts/i86pc/unix/Makefile b/usr/src/uts/i86pc/unix/Makefile index 4244e5a2e3..911791194c 100644 --- a/usr/src/uts/i86pc/unix/Makefile +++ b/usr/src/uts/i86pc/unix/Makefile @@ -56,7 +56,6 @@ LINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \ 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 @@ 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) @@ -87,7 +87,7 @@ include $(UTSBASE)/i86pc/Makefile.i86pc # 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 @@ CLEANFILES += \ $(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_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE_NAME) \ $(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_OBJS_DIR): # 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) # diff --git a/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot b/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot index a8c6856dfe..f20c949687 100644 --- a/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot +++ b/usr/src/uts/i86pc/unix/dboot/Mapfile.dboot @@ -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; diff --git a/usr/src/uts/i86pc/vm/hat_i86.c b/usr/src/uts/i86pc/vm/hat_i86.c index 53e42e74e4..790007b79b 100644 --- a/usr/src/uts/i86pc/vm/hat_i86.c +++ b/usr/src/uts/i86pc/vm/hat_i86.c @@ -72,6 +72,9 @@ #include #include #include +#ifdef __xpv +#include +#endif #include #include @@ -85,29 +88,15 @@ struct hat_mmu_info mmu; /* * 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 @@ static x86pte_t hati_update_pte(htable_t *ht, uint_t entry, x86pte_t expected, /* * 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 @@ hati_constructor(void *buf, void *handle, int kmflags) 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 @@ hat_alloc(struct as *as) 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 @@ hat_alloc(struct as *as) /* * 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); + hat->hat_htable = ht; - 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)); +#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 @@ hat_free_start(hat_t *hat) 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 @@ hat_free_end(hat_t *hat) 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 @@ mmu_init(void) 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 @@ hat_init() 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 @@ hat_vlp_setup(struct cpu *cpu) 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 @@ hat_vlp_teardown(cpu_t *cpu) 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 @@ hat_vlp_teardown(cpu_t *cpu) 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; + uint_t r = 0; + uintptr_t va; + hat_kernel_range_t *rp; -#if defined(__i386) - ASSERT((va & LEVEL_MASK(1)) == va); - /* - * Deal with kernelbase not 1Gig aligned for 32 bit PAE hats. + * 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 avoiding recursion in kmem_alloc(). */ - 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 + use_boot_reserve = 0; + htable_adjust_reserve(); /* - * 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. + * User HATs are initialized with copies of all kernel mappings in + * higher level page tables. Ensure that those entries exist. */ - 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); - } +#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; /* - * 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. + * Create all the kernel pagetables that will have entries + * shared to user HATs. */ - use_boot_reserve = 0; - htable_adjust_reserve(); + 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 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. + * 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 @@ reload_pae32(hat_t *hat, cpu_t *cpu) /* * 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 @@ hat_switch(hat_t *hat) (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 @@ hat_swapout(hat_t *hat) 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 @@ hat_swapout(hat_t *hat) * go back and flush all the htables off the cached list. */ htable_purge_hat(hat); + XPV_ALLOW_MIGRATE(); } /* @@ -1138,11 +1211,11 @@ hati_sync_pte_to_page(page_t *pp, x86pte_t pte, level_t level) /* * 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 @@ hati_pte_map( } /* - * 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 @@ hat_memload( 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 @@ hat_memload( 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 @@ hat_memload( 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 @@ hat_memload_array( 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 @@ hat_memload_array( va += pgsize; pgindx += mmu_btop(pgsize); } + XPV_ALLOW_MIGRATE(); } /* ARGSUSED */ @@ -1613,6 +1691,7 @@ hat_devload( 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 @@ hat_devload( */ a = attr; f = flags; - if (pf_is_memory(pfn)) { - if (!(a & HAT_PLAT_NOCACHE)) - a |= HAT_STORECACHING_OK; + 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; - else - pp = page_numtopp_nolock(pfn); - } else { + 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 @@ hat_devload( va += pgsize; pfn += mmu_btop(pgsize); } + XPV_ALLOW_MIGRATE(); } /* @@ -1701,6 +1778,7 @@ hat_unlock(hat_t *hat, caddr_t addr, size_t len) 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 @@ hat_unlock(hat_t *hat, caddr_t addr, size_t len) } if (ht) htable_release(ht); + XPV_ALLOW_MIGRATE(); } /* ARGSUSED */ @@ -1728,6 +1807,7 @@ hat_unlock_region(struct hat *hat, caddr_t addr, size_t len, 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 @@ tlb_service(void) if (flags & PS_IE) sti(); } +#endif /* !__xpv */ /* * Internal routine to do cross calls to invalidate a range of pages on @@ -1861,10 +1942,12 @@ hat_tlb_inval(hat_t *hat, uintptr_t va) { extern int flushes_require_xcalls; /* from mp_startup.c */ cpuset_t justme; - cpuset_t check_cpus; cpuset_t cpus_to_shootdown; +#ifndef __xpv + cpuset_t check_cpus; cpu_t *cpup; int c; +#endif /* * If the hat is being destroyed, there are no more users, so @@ -1887,7 +1970,14 @@ hat_tlb_inval(hat_t *hat, uintptr_t va) * 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 @@ hat_tlb_inval(hat_t *hat, uintptr_t va) 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 @@ hat_tlb_inval(hat_t *hat, uintptr_t va) 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 @@ hat_pte_unmap( 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 @@ hat_pte_unmap( * 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 @@ hat_unload(hat_t *hat, caddr_t addr, size_t len, uint_t flags) { uintptr_t va = (uintptr_t)addr; + XPV_DISALLOW_MIGRATE(); ASSERT(hat == kas.a_hat || va + len <= _userlimit); /* @@ -2109,6 +2226,7 @@ hat_unload(hat_t *hat, caddr_t addr, size_t len, uint_t flags) } else { hat_unload_callback(hat, addr, len, flags, NULL); } + XPV_ALLOW_MIGRATE(); } /* @@ -2164,6 +2282,7 @@ hat_unload_callback( 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_unload_callback( hat_pte_unmap(ht, entry, flags, old_pte, NULL); htable_release(ht); } + XPV_ALLOW_MIGRATE(); return; } @@ -2225,6 +2345,7 @@ hat_unload_callback( */ if (r_cnt > 0) handle_ranges(cb, r_cnt, r); + XPV_ALLOW_MIGRATE(); } /* @@ -2251,6 +2372,7 @@ hat_sync(hat_t *hat, caddr_t addr, size_t len, uint_t flags) 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 @@ try_again: } if (ht) htable_release(ht); + XPV_ALLOW_MIGRATE(); } /* @@ -2373,6 +2496,7 @@ hat_updateattr(hat_t *hat, caddr_t addr, size_t len, uint_t attr, int what) 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 @@ try_again: } if (ht) htable_release(ht); + XPV_ALLOW_MIGRATE(); } /* @@ -2537,6 +2662,7 @@ hat_getpfnum(hat_t *hat, caddr_t addr) 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 @@ hat_getpfnum(hat_t *hat, caddr_t addr) 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 @@ hat_getkpfnum(caddr_t addr) 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 @@ hat_getkpfnum(caddr_t addr) if (badcaller) hat_getkpfnum_badcall(caller()); + XPV_ALLOW_MIGRATE(); return (pfn); } #endif /* __amd64 */ @@ -2638,10 +2769,8 @@ hat_probe(hat_t *hat, caddr_t addr) } ht = htable_getpage(hat, vaddr, &entry); - if (ht == NULL) - return (0); htable_release(ht); - return (1); + return (ht != NULL); } /* @@ -2708,6 +2837,7 @@ hat_share( 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 @@ not_shared: } if (ism_ht != NULL) htable_release(ism_ht); + XPV_ALLOW_MIGRATE(); return (0); } @@ -2881,6 +3012,7 @@ hat_unshare(hat_t *hat, caddr_t addr, size_t len, uint_t ismszc) 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 @@ hat_unshare(hat_t *hat, caddr_t addr, size_t len, uint_t ismszc) if (!is_it_dism(hat, addr)) flags |= HAT_UNLOAD_UNLOCK; hat_unload(hat, addr, len, flags); + XPV_ALLOW_MIGRATE(); } @@ -2957,6 +3090,7 @@ hati_page_clrwrt(struct page *pp) x86pte_t new; uint_t pszc = 0; + XPV_DISALLOW_MIGRATE(); next_size: /* * walk thru the mapping list clearing write permission @@ -2998,6 +3132,7 @@ next_size: goto next_size; } } + XPV_ALLOW_MIGRATE(); } /* @@ -3161,6 +3296,7 @@ hati_pageunload(struct page *pp, uint_t pg_szcd, uint_t forceflag) uint_t entry; level_t level; + XPV_DISALLOW_MIGRATE(); #if defined(__amd64) /* * clear the vpm ref. @@ -3188,6 +3324,7 @@ next_size: * 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 @@ hat_pagesync(struct page *pp, uint_t flags) } } + XPV_DISALLOW_MIGRATE(); next_size: /* * walk thru the mapping list syncing (and clearing) ref/mod bits. @@ -3506,6 +3644,7 @@ try_again: } } done: + XPV_ALLOW_MIGRATE(); return (save_pp->p_nrm & nrmbits); } @@ -3587,7 +3726,9 @@ void 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 @@ hat_thread_exit(kthread_t *thd) 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 @@ hat_mempte_release(caddr_t addr, hat_mempte_t pte_pa) /* * 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 @@ hat_mempte_release(caddr_t addr, hat_mempte_t pte_pa) 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 @@ hat_mempte_remap( 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 @@ hat_mempte_remap( mmu_tlbflush_entry(addr); x86pte_mapout(); } +#endif + XPV_ALLOW_MIGRATE(); } @@ -4052,3 +4208,30 @@ hat_kpm_mseghash_clear(int nentries) 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 diff --git a/usr/src/uts/i86pc/vm/hat_i86.h b/usr/src/uts/i86pc/vm/hat_i86.h index 714573e753..8b313253e8 100644 --- a/usr/src/uts/i86pc/vm/hat_i86.h +++ b/usr/src/uts/i86pc/vm/hat_i86.h @@ -92,12 +92,15 @@ struct hat { 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 @@ typedef struct hat hat_t; * * 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 void hat_kmap_init(uintptr_t base, size_t len); 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 diff --git a/usr/src/uts/i86pc/vm/hat_kdi.c b/usr/src/uts/i86pc/vm/hat_kdi.c index 3273bd746c..7688e651d9 100644 --- a/usr/src/uts/i86pc/vm/hat_kdi.c +++ b/usr/src/uts/i86pc/vm/hat_kdi.c @@ -42,6 +42,9 @@ #include #include #include +#if defined(__xpv) +#include +#endif #include #include #include @@ -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 @@ hat_kdi_init(void) 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 @@ hat_kdi_init(void) 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 @@ kdi_vtop(uintptr_t va, uint64_t *pap) * 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 @@ kdi_prw(caddr_t buf, size_t nbytes, uint64_t pa, size_t *ncopiedp, int doread) 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 @@ kdi_prw(caddr_t buf, size_t nbytes, uint64_t pa, size_t *ncopiedp, int doread) */ 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 @@ kdi_prw(caddr_t buf, size_t nbytes, uint64_t pa, size_t *ncopiedp, int doread) */ 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; diff --git a/usr/src/uts/i86pc/vm/hat_pte.h b/usr/src/uts/i86pc/vm/hat_pte.h index 9bd8c31c48..d7278c5175 100644 --- a/usr/src/uts/i86pc/vm/hat_pte.h +++ b/usr/src/uts/i86pc/vm/hat_pte.h @@ -59,16 +59,29 @@ extern "C" { (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 @@ extern "C" { /* * 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 @@ extern x86pte_t get_pte64(x86pte_t *ptr); */ #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 */ diff --git a/usr/src/uts/i86pc/vm/htable.c b/usr/src/uts/i86pc/vm/htable.c index ae0b438b64..3da0a91e4d 100644 --- a/usr/src/uts/i86pc/vm/htable.c +++ b/usr/src/uts/i86pc/vm/htable.c @@ -54,6 +54,12 @@ #include #include #include +#include + +#ifdef __xpv +#include +#include +#endif #include #include @@ -121,6 +127,139 @@ uint32_t htable_dont_cache = 0; */ 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 @@ ptable_free(pfn_t pfn) 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 @@ ptable_free(pfn_t pfn) 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 @@ htable_reap(void *handle) /* * 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 @@ htable_alloc( 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 @@ htable_alloc( 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 @@ htable_alloc( 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 @@ htable_free(htable_t *ht) /* * 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 @@ htable_free(htable_t *ht) 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 @@ unlink_ptp(htable_t *higher, htable_t *old, uintptr_t vaddr) 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 @@ link_ptp(htable_t *higher, htable_t *new, uintptr_t vaddr) * 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 @@ htable_release(htable_t *ht) if (ht->ht_busy > 1) break; +#if !defined(__xpv) /* * we always release empty shared htables */ @@ -968,6 +1176,7 @@ htable_release(htable_t *ht) (hat != kas.a_hat || va >= kernelbase)) break; } +#endif /* __xpv */ /* * Remember if we destroy an htable that shares its PFN @@ -1220,7 +1429,9 @@ try_again: } /* - * 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 @@ htable_attach( 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 @@ x86pte_mapin(pfn_t pfn, uint_t index, htable_t *ht) 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 @@ x86pte_release_pagetable(htable_t *ht) void x86pte_mapout(void) { - if (mmu.pwin_base == NULL || !khat_running) + if (kpm_vbase != NULL || !khat_running) return; /* @@ -1815,7 +2045,12 @@ x86pte_set(htable_t *ht, uint_t entry, x86pte_t new, void *ptr) */ 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 @@ x86pte_set(htable_t *ht, uint_t entry, x86pte_t new, void *ptr) goto done; } + XPV_ALLOW_PAGETABLE_UPDATES(); old = CAS_PTE(ptep, prev, n); + XPV_DISALLOW_PAGETABLE_UPDATES(); } while (old != prev); /* @@ -1862,9 +2099,45 @@ x86pte_cas(htable_t *ht, uint_t entry, x86pte_t old, x86pte_t new) { 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 @@ x86pte_inval( 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 @@ x86pte_inval( 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 @@ x86pte_update( 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 @@ x86pte_update( (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 @@ x86pte_update( 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_copy(htable_t *src, htable_t *dest, uint_t entry, uint_t count) 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 @@ x86pte_zero(htable_t *dest, uint_t entry, uint_t count) { 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 @@ x86pte_zero(htable_t *dest, uint_t entry, uint_t count) 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 @@ x86pte_zero(htable_t *dest, uint_t entry, uint_t count) #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); } /* diff --git a/usr/src/uts/i86pc/vm/htable.h b/usr/src/uts/i86pc/vm/htable.h index a3bcc81b29..758b3dcd1d 100644 --- a/usr/src/uts/i86pc/vm/htable.h +++ b/usr/src/uts/i86pc/vm/htable.h @@ -125,10 +125,8 @@ struct hat_cpu_info { * * 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 @@ struct hat_cpu_info { #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,15 +211,16 @@ extern void htable_reserve(uint_t); extern void htable_adjust_reserve(void); /* - * Attach initial pagetables as htables + * return number of bytes mapped by all the htables in a given hat */ -extern void htable_attach(struct hat *, uintptr_t, level_t, struct htable *, - pfn_t); +extern size_t htable_mapped(struct hat *); + /* - * return the number of pages mapped by a hat + * Attach initial pagetables as htables */ -extern pgcnt_t htable_count_pages(struct hat *); +extern void htable_attach(struct hat *, uintptr_t, level_t, struct htable *, + pfn_t); /* * Routine to find the next populated htable at or above a given virtual @@ -295,6 +295,42 @@ extern void x86pte_mapout(void); #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 */ diff --git a/usr/src/uts/i86pc/vm/i86_mmu.c b/usr/src/uts/i86pc/vm/i86_mmu.c index 7bf91af9b5..069411ae23 100644 --- a/usr/src/uts/i86pc/vm/i86_mmu.c +++ b/usr/src/uts/i86pc/vm/i86_mmu.c @@ -59,6 +59,10 @@ #include #include +#ifdef __xpv +#include +#endif + caddr_t i86devmap(pfn_t pf, pgcnt_t pgcnt, uint_t prot) { @@ -195,6 +199,8 @@ hat_kmap_init(uintptr_t base, size_t len) /* * 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_kmap_init(uintptr_t base, size_t len) 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 @@ hat_kmap_init(uintptr_t base, size_t len) 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 @@ hat_kern_alloc( 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 @@ hat_kern_alloc( 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 @@ hat_kern_alloc( 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 @@ hat_kern_setup(void) /* * 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. */ diff --git a/usr/src/uts/i86pc/vm/kboot_mmu.c b/usr/src/uts/i86pc/vm/kboot_mmu.c index fdf7e85460..ae96231f46 100644 --- a/usr/src/uts/i86pc/vm/kboot_mmu.c +++ b/usr/src/uts/i86pc/vm/kboot_mmu.c @@ -40,6 +40,9 @@ #include #include #include +#ifdef __xpv +#include +#endif #include #include #include @@ -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 @@ kbm_init(struct xboot_info *bi) 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 @@ kbm_init(struct xboot_info *bi) 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 @@ kbm_map(uintptr_t va, paddr_t pa, uint_t level, uint_t is_kernel) 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 @@ kbm_map(uintptr_t va, paddr_t pa, uint_t level, uint_t is_kernel) 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 @@ restart_new_va: 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 @@ kbm_unmap(uintptr_t va) 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 @@ kbm_unmap(uintptr_t va) else *((x86pte32_t *)ptep) = 0; mmu_tlbflush_entry((caddr_t)va); +#endif } } @@ -305,11 +382,16 @@ kbm_remap(uintptr_t va, pfn_t pfn) 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 @@ kbm_read_only(uintptr_t va, paddr_t pa) { 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 @@ kbm_read_only(uintptr_t va, paddr_t pa) else *((x86pte32_t *)ptep) = pte_val; mmu_tlbflush_entry((caddr_t)va); +#endif } /* @@ -364,11 +452,17 @@ kbm_push(paddr_t pa) 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 @@ get_pteval(paddr_t table, uint_t index) 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 @@ set_pteval(paddr_t table, uint_t index, uint_t level, x86pte_t pteval) if (level == top_level && level == 2) reload_cr3(); } +#endif paddr_t make_ptable(x86pte_t *pteval, uint_t level) @@ -402,6 +498,10 @@ make_ptable(x86pte_t *pteval, uint_t level) 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; diff --git a/usr/src/uts/i86pc/vm/kboot_mmu.h b/usr/src/uts/i86pc/vm/kboot_mmu.h index 8c34ad2187..fc6bfde36e 100644 --- a/usr/src/uts/i86pc/vm/kboot_mmu.h +++ b/usr/src/uts/i86pc/vm/kboot_mmu.h @@ -63,6 +63,10 @@ extern int kbm_probe(uintptr_t *va, size_t *len, pfn_t *pfn, uint_t *prot); */ 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 */ diff --git a/usr/src/uts/i86pc/vm/vm_dep.h b/usr/src/uts/i86pc/vm/vm_dep.h index 49e9386d81..e6abe4203b 100644 --- a/usr/src/uts/i86pc/vm/vm_dep.h +++ b/usr/src/uts/i86pc/vm/vm_dep.h @@ -42,211 +42,53 @@ extern "C" { #include /* - * 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); -#define MEMRANGEHI(mtype) \ - ((mtype > 0) ? memranges[mtype - 1] - 1: physmax) -#define MEMRANGELO(mtype) (memranges[mtype]) +extern size_t plcnt_sz(size_t); +#define PLCNT_SZ(ctrs_sz) (ctrs_sz = plcnt_sz(ctrs_sz)) -#define MTYPE_FREEMEM(mt) \ - (mnoderanges[mt].mnr_mt_clpgcnt + \ - mnoderanges[mt].mnr_mt_flpgcnt + \ - mnoderanges[mt].mnr_mt_lgpgcnt) +extern caddr_t plcnt_init(caddr_t); +#define PLCNT_INIT(addr) (addr = plcnt_init(addr)) -/* - * 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); \ -} +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) /* - * 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)) +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); /* - * 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. + * candidate counters in vm_pagelist.c are indexed by color and range */ - -#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 */ +#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) /* - * candidate counters in vm_pagelist.c are indexed by color and range + * This was really badly defined, it implicitly uses mnode_maxmrange[] + * which is a static in vm_pagelist.c */ -#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)) +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 @@ extern page_t *page_get_mnode_cachelist(uint_t, uint_t, int, int); #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 @@ uint_t page_list_walk_next_bin(uchar_t szc, uint_t bin, 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 @@ extern struct cpu cpus[]; } \ } -/* 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 @@ extern int l2cache_sz, l2cache_linesz, l2cache_assoc; * 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. diff --git a/usr/src/uts/i86pc/vm/vm_machdep.c b/usr/src/uts/i86pc/vm/vm_machdep.c index 366eb3b952..19362a7521 100644 --- a/usr/src/uts/i86pc/vm/vm_machdep.c +++ b/usr/src/uts/i86pc/vm/vm_machdep.c @@ -83,6 +83,43 @@ #include #include #include +#include +#include + +#ifdef __xpv + +#include +#include +#include + +/* + * 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 uint_t page_create_putbacks; */ 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; +/* + * 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)) -/* 16m memory management: desired number of free pages below 16m. */ -pgcnt_t desfree16m = 0x380; +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_uidata_lpsize = MMU_PAGESIZE; 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 @@ map_pgszcvec(caddr_t addr, size_t size, uintptr_t off, int flags, int type, 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 @@ pf_is_memory(pfn_t pf) 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 @@ memrange_num(pfn_t pfn) /* * 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 @@ pfn_2_mtype(pfn_t pfn) } } 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 @@ retry: return (NULL); } +#endif /* !__xpv */ /* * verify that pages being returned from allocator have correct DMA attribute @@ -887,13 +1032,7 @@ check_dma(ddi_dma_attr_t *dma_attr, page_t *pp, int cnt) } #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 @@ page_get_contigpage(pgcnt_t *pgcnt, ddi_dma_attr_t *mattr, int iolock) 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 @@ mnode_range_cnt(int mnode) } 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 @@ mnode_range_setup(mnoderange_t *mnoderanges) 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 @@ mnode_range_setup(mnoderange_t *mnoderanges) } } +/*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 @@ int 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 @@ mtype_func(int mnode, int mtype, uint_t flags) 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 @@ mtype_modify_max(pfn_t startpfn, long cnt) 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 @@ mtype_modify_max(pfn_t startpfn, long cnt) } 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 @@ mtype_modify_max(pfn_t startpfn, long cnt) } } +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 @@ page_coloring_init(uint_t l2_sz, int l2_linesz, int l2_assoc) 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 @@ page_coloring_init(uint_t l2_sz, int l2_linesz, int l2_assoc) /* 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 @@ page_coloring_init(uint_t l2_sz, int l2_linesz, int l2_assoc) } } + /* 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,17 +1641,957 @@ page_coloring_setup(caddr_t pcmemaddr) } } -/*ARGSUSED*/ -int -bp_color(struct buf *bp) +#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) { return (0); } +#if defined(__xpv) + /* - * get a page from any list with the given mnode + * 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 + */ +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 @@ nextcachebin: * 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 @@ page_get_anylist(struct vnode *vp, u_offset_t off, struct as *as, caddr_t vaddr, 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 @@ page_create_io( 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 @@ page_create_io( } 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 @@ page_create_io( */ 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 @@ fail: return (NULL); } +#endif /* !__xpv */ /* @@ -2020,13 +3259,26 @@ ppcopy(page_t *frompp, page_t *topp) 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 @@ pagezero(page_t *pp, uint_t off, uint_t len) } 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 @@ page_get_physical(uintptr_t seed) 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); diff --git a/usr/src/uts/i86xpv/Makefile b/usr/src/uts/i86xpv/Makefile new file mode 100644 index 0000000000..bc83eacb9a --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile @@ -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 $@ diff --git a/usr/src/uts/i86xpv/Makefile.files b/usr/src/uts/i86xpv/Makefile.files new file mode 100644 index 0000000000..a673034bbb --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.files @@ -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 diff --git a/usr/src/uts/i86xpv/Makefile.i86xpv b/usr/src/uts/i86xpv/Makefile.i86xpv new file mode 100644 index 0000000000..04a37c2d10 --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.i86xpv @@ -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 diff --git a/usr/src/uts/i86xpv/Makefile.i86xpv.shared b/usr/src/uts/i86xpv/Makefile.i86xpv.shared new file mode 100644 index 0000000000..bcbd949b17 --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.i86xpv.shared @@ -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 diff --git a/usr/src/uts/i86xpv/Makefile.rules b/usr/src/uts/i86xpv/Makefile.rules new file mode 100644 index 0000000000..63fec2422d --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.rules @@ -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)) diff --git a/usr/src/uts/i86xpv/Makefile.targ b/usr/src/uts/i86xpv/Makefile.targ new file mode 100644 index 0000000000..57dfd94b6d --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.targ @@ -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 diff --git a/usr/src/uts/i86xpv/Makefile.targ.shared b/usr/src/uts/i86xpv/Makefile.targ.shared new file mode 100644 index 0000000000..133f6abff0 --- /dev/null +++ b/usr/src/uts/i86xpv/Makefile.targ.shared @@ -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 + diff --git a/usr/src/uts/i86xpv/balloon/Makefile b/usr/src/uts/i86xpv/balloon/Makefile new file mode 100644 index 0000000000..6a557a0b3d --- /dev/null +++ b/usr/src/uts/i86xpv/balloon/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/boot/boot_xconsole.c b/usr/src/uts/i86xpv/boot/boot_xconsole.c new file mode 100644 index 0000000000..5cc746057c --- /dev/null +++ b/usr/src/uts/i86xpv/boot/boot_xconsole.c @@ -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 + +#include +#include +#include +#include + +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); +} diff --git a/usr/src/uts/i86xpv/conf/Mapfile b/usr/src/uts/i86xpv/conf/Mapfile new file mode 100644 index 0000000000..8a33bc557e --- /dev/null +++ b/usr/src/uts/i86xpv/conf/Mapfile @@ -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; diff --git a/usr/src/uts/i86xpv/conf/Mapfile.amd64 b/usr/src/uts/i86xpv/conf/Mapfile.amd64 new file mode 100644 index 0000000000..47f12ebea1 --- /dev/null +++ b/usr/src/uts/i86xpv/conf/Mapfile.amd64 @@ -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; diff --git a/usr/src/uts/i86xpv/consconfig_dacf/Makefile b/usr/src/uts/i86xpv/consconfig_dacf/Makefile new file mode 100644 index 0000000000..3658eb4e81 --- /dev/null +++ b/usr/src/uts/i86xpv/consconfig_dacf/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/domcaps/Makefile b/usr/src/uts/i86xpv/domcaps/Makefile new file mode 100644 index 0000000000..b6fb32f055 --- /dev/null +++ b/usr/src/uts/i86xpv/domcaps/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/evtchn/Makefile b/usr/src/uts/i86xpv/evtchn/Makefile new file mode 100644 index 0000000000..d13dba1e05 --- /dev/null +++ b/usr/src/uts/i86xpv/evtchn/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/genassym/Makefile b/usr/src/uts/i86xpv/genassym/Makefile new file mode 100644 index 0000000000..1da1f72164 --- /dev/null +++ b/usr/src/uts/i86xpv/genassym/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/generic_cpu/Makefile b/usr/src/uts/i86xpv/generic_cpu/Makefile new file mode 100644 index 0000000000..503b854936 --- /dev/null +++ b/usr/src/uts/i86xpv/generic_cpu/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/gfx_private/Makefile b/usr/src/uts/i86xpv/gfx_private/Makefile new file mode 100644 index 0000000000..8e428fe28c --- /dev/null +++ b/usr/src/uts/i86xpv/gfx_private/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/inc.flg b/usr/src/uts/i86xpv/inc.flg new file mode 100644 index 0000000000..2279a059fd --- /dev/null +++ b/usr/src/uts/i86xpv/inc.flg @@ -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 diff --git a/usr/src/uts/i86xpv/io/balloon_drv.c b/usr/src/uts/i86xpv/io/balloon_drv.c new file mode 100755 index 0000000000..7e4384a6e4 --- /dev/null +++ b/usr/src/uts/i86xpv/io/balloon_drv.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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)); +} diff --git a/usr/src/uts/i86xpv/io/domcaps.c b/usr/src/uts/i86xpv/io/domcaps.c new file mode 100644 index 0000000000..d5877449cf --- /dev/null +++ b/usr/src/uts/i86xpv/io/domcaps.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +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)); +} diff --git a/usr/src/uts/i86xpv/io/privcmd.c b/usr/src/uts/i86xpv/io/privcmd.c new file mode 100644 index 0000000000..5660a2cdcb --- /dev/null +++ b/usr/src/uts/i86xpv/io/privcmd.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +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)); +} diff --git a/usr/src/uts/i86xpv/io/privcmd_hcall.c b/usr/src/uts/i86xpv/io/privcmd_hcall.c new file mode 100644 index 0000000000..2259756c30 --- /dev/null +++ b/usr/src/uts/i86xpv/io/privcmd_hcall.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +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); +} diff --git a/usr/src/uts/i86xpv/io/psm/xpv_psm.c b/usr/src/uts/i86xpv/io/psm/xpv_psm.c new file mode 100644 index 0000000000..620ba7a82d --- /dev/null +++ b/usr/src/uts/i86xpv/io/psm/xpv_psm.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +/* + * 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)); +} diff --git a/usr/src/uts/i86xpv/io/xpvtod.c b/usr/src/uts/i86xpv/io/xpvtod.c new file mode 100644 index 0000000000..8bc9d68994 --- /dev/null +++ b/usr/src/uts/i86xpv/io/xpvtod.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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)); +} diff --git a/usr/src/uts/i86xpv/isa/Makefile b/usr/src/uts/i86xpv/isa/Makefile new file mode 100644 index 0000000000..8451af653d --- /dev/null +++ b/usr/src/uts/i86xpv/isa/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/ml/amd64.il b/usr/src/uts/i86xpv/ml/amd64.il new file mode 100644 index 0000000000..28f774674e --- /dev/null +++ b/usr/src/uts/i86xpv/ml/amd64.il @@ -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 diff --git a/usr/src/uts/i86xpv/ml/hyperevent.s b/usr/src/uts/i86xpv/ml/hyperevent.s new file mode 100644 index 0000000000..1456727d3b --- /dev/null +++ b/usr/src/uts/i86xpv/ml/hyperevent.s @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/i86xpv/ml/hypersubr.s b/usr/src/uts/i86xpv/ml/hypersubr.s new file mode 100644 index 0000000000..f81536f438 --- /dev/null +++ b/usr/src/uts/i86xpv/ml/hypersubr.s @@ -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 +#include + +/* + * 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 */ diff --git a/usr/src/uts/i86xpv/ml/ia32.il b/usr/src/uts/i86xpv/ml/ia32.il new file mode 100644 index 0000000000..64e7515b3e --- /dev/null +++ b/usr/src/uts/i86xpv/ml/ia32.il @@ -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 diff --git a/usr/src/uts/i86xpv/ml/panic_asm.s b/usr/src/uts/i86xpv/ml/panic_asm.s new file mode 100644 index 0000000000..cfcd6f581a --- /dev/null +++ b/usr/src/uts/i86xpv/ml/panic_asm.s @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 */ diff --git a/usr/src/uts/i86xpv/ml/xenguest.s b/usr/src/uts/i86xpv/ml/xenguest.s new file mode 100644 index 0000000000..187abcb52f --- /dev/null +++ b/usr/src/uts/i86xpv/ml/xenguest.s @@ -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 + +/* + * 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 */ diff --git a/usr/src/uts/i86xpv/npe/Makefile b/usr/src/uts/i86xpv/npe/Makefile new file mode 100644 index 0000000000..aecbdbbcc8 --- /dev/null +++ b/usr/src/uts/i86xpv/npe/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/os/balloon.c b/usr/src/uts/i86xpv/os/balloon.c new file mode 100644 index 0000000000..3866acf364 --- /dev/null +++ b/usr/src/uts/i86xpv/os/balloon.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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*/ +} diff --git a/usr/src/uts/i86xpv/os/evtchn.c b/usr/src/uts/i86xpv/os/evtchn.c new file mode 100644 index 0000000000..2d531df6d8 --- /dev/null +++ b/usr/src/uts/i86xpv/os/evtchn.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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); +} diff --git a/usr/src/uts/i86xpv/os/gnttab.c b/usr/src/uts/i86xpv/os/gnttab.c new file mode 100644 index 0000000000..5284b02ea4 --- /dev/null +++ b/usr/src/uts/i86xpv/os/gnttab.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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: + */ diff --git a/usr/src/uts/i86xpv/os/hypercall.c b/usr/src/uts/i86xpv/os/hypercall.c new file mode 100644 index 0000000000..ca753bb716 --- /dev/null +++ b/usr/src/uts/i86xpv/os/hypercall.c @@ -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 + +#include +#include +#include +#include + +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)); +} diff --git a/usr/src/uts/i86xpv/os/mach_kdi.c b/usr/src/uts/i86xpv/os/mach_kdi.c new file mode 100644 index 0000000000..b12d30722d --- /dev/null +++ b/usr/src/uts/i86xpv/os/mach_kdi.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 */ diff --git a/usr/src/uts/i86xpv/os/mp_xen.c b/usr/src/uts/i86xpv/os/mp_xen.c new file mode 100644 index 0000000000..5dd1aa7868 --- /dev/null +++ b/usr/src/uts/i86xpv/os/mp_xen.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +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 = ""; + 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 = ""; + 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); +} diff --git a/usr/src/uts/i86xpv/os/xen_machdep.c b/usr/src/uts/i86xpv/os/xen_machdep.c new file mode 100644 index 0000000000..35ffd62e85 --- /dev/null +++ b/usr/src/uts/i86xpv/os/xen_machdep.c @@ -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 +#include +#include +#include +#include /* for ddi_strtoul */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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); +} diff --git a/usr/src/uts/i86xpv/os/xen_mmu.c b/usr/src/uts/i86xpv/os/xen_mmu.c new file mode 100644 index 0000000000..eb9b6e07d9 --- /dev/null +++ b/usr/src/uts/i86xpv/os/xen_mmu.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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); +} diff --git a/usr/src/uts/i86xpv/os/xpv_panic.c b/usr/src/uts/i86xpv/os/xpv_panic.c new file mode 100644 index 0000000000..80bc2f2fe1 --- /dev/null +++ b/usr/src/uts/i86xpv/os/xpv_panic.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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(); +} diff --git a/usr/src/uts/i86xpv/os/xpv_timestamp.c b/usr/src/uts/i86xpv/os/xpv_timestamp.c new file mode 100644 index 0000000000..49049bd6ec --- /dev/null +++ b/usr/src/uts/i86xpv/os/xpv_timestamp.c @@ -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 +#include +#include +#include +#include + +#include + +/* + * 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; +} diff --git a/usr/src/uts/i86xpv/pci-ide/Makefile b/usr/src/uts/i86xpv/pci-ide/Makefile new file mode 100644 index 0000000000..638fb16db1 --- /dev/null +++ b/usr/src/uts/i86xpv/pci-ide/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/pci/Makefile b/usr/src/uts/i86xpv/pci/Makefile new file mode 100644 index 0000000000..63bc7fa339 --- /dev/null +++ b/usr/src/uts/i86xpv/pci/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/pcie/Makefile b/usr/src/uts/i86xpv/pcie/Makefile new file mode 100644 index 0000000000..ccaac6b5ca --- /dev/null +++ b/usr/src/uts/i86xpv/pcie/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/privcmd/Makefile b/usr/src/uts/i86xpv/privcmd/Makefile new file mode 100644 index 0000000000..738dc6f160 --- /dev/null +++ b/usr/src/uts/i86xpv/privcmd/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/rootnex/Makefile b/usr/src/uts/i86xpv/rootnex/Makefile new file mode 100644 index 0000000000..e9ee5b5d12 --- /dev/null +++ b/usr/src/uts/i86xpv/rootnex/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/sys/Makefile b/usr/src/uts/i86xpv/sys/Makefile new file mode 100644 index 0000000000..2b9f5507bc --- /dev/null +++ b/usr/src/uts/i86xpv/sys/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/sys/balloon.h b/usr/src/uts/i86xpv/sys/balloon.h new file mode 100644 index 0000000000..641147b539 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/balloon.h @@ -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 */ diff --git a/usr/src/uts/i86xpv/sys/balloon_impl.h b/usr/src/uts/i86xpv/sys/balloon_impl.h new file mode 100644 index 0000000000..d708151e1e --- /dev/null +++ b/usr/src/uts/i86xpv/sys/balloon_impl.h @@ -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 +#include +#include +#include /* 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 */ diff --git a/usr/src/uts/i86xpv/sys/cpr_impl.h b/usr/src/uts/i86xpv/sys/cpr_impl.h new file mode 100644 index 0000000000..a58d569795 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/cpr_impl.h @@ -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 +#include +#include + + +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 */ diff --git a/usr/src/uts/i86xpv/sys/domcaps_impl.h b/usr/src/uts/i86xpv/sys/domcaps_impl.h new file mode 100644 index 0000000000..937ad3cb70 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/domcaps_impl.h @@ -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 + +#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 */ diff --git a/usr/src/uts/i86xpv/sys/evtchn_impl.h b/usr/src/uts/i86xpv/sys/evtchn_impl.h new file mode 100644 index 0000000000..86ed512be0 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/evtchn_impl.h @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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 */ diff --git a/usr/src/uts/i86xpv/sys/gnttab.h b/usr/src/uts/i86xpv/sys/gnttab.h new file mode 100644 index 0000000000..7066ae3243 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/gnttab.h @@ -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 +#include + +#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 */ diff --git a/usr/src/uts/i86xpv/sys/hypervisor.h b/usr/src/uts/i86xpv/sys/hypervisor.h new file mode 100644 index 0000000000..5ff7cc37fd --- /dev/null +++ b/usr/src/uts/i86xpv/sys/hypervisor.h @@ -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 +#include + +#if !defined(_ASM) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 */ diff --git a/usr/src/uts/i86xpv/sys/machprivregs.h b/usr/src/uts/i86xpv/sys/machprivregs.h new file mode 100644 index 0000000000..933472fc86 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/machprivregs.h @@ -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 + +/* + * 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 */ diff --git a/usr/src/uts/i86xpv/sys/privcmd_impl.h b/usr/src/uts/i86xpv/sys/privcmd_impl.h new file mode 100644 index 0000000000..3970cd72af --- /dev/null +++ b/usr/src/uts/i86xpv/sys/privcmd_impl.h @@ -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 + +#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 */ diff --git a/usr/src/uts/i86xpv/sys/xen_errno.h b/usr/src/uts/i86xpv/sys/xen_errno.h new file mode 100644 index 0000000000..35a6586eaf --- /dev/null +++ b/usr/src/uts/i86xpv/sys/xen_errno.h @@ -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 */ diff --git a/usr/src/uts/i86xpv/sys/xen_mmu.h b/usr/src/uts/i86xpv/sys/xen_mmu.h new file mode 100644 index 0000000000..f63981fc6d --- /dev/null +++ b/usr/src/uts/i86xpv/sys/xen_mmu.h @@ -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 */ diff --git a/usr/src/uts/i86xpv/sys/xpv_impl.h b/usr/src/uts/i86xpv/sys/xpv_impl.h new file mode 100644 index 0000000000..70fb4f5229 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/xpv_impl.h @@ -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 +#endif + +#define __XEN_INTERFACE_VERSION__ __XEN_LATEST_INTERFACE_VERSION__ + +#include + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_XPV_IMPL_H */ diff --git a/usr/src/uts/i86xpv/sys/xpv_panic.h b/usr/src/uts/i86xpv/sys/xpv_panic.h new file mode 100644 index 0000000000..063e663536 --- /dev/null +++ b/usr/src/uts/i86xpv/sys/xpv_panic.h @@ -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 */ diff --git a/usr/src/uts/i86xpv/unix/Makefile b/usr/src/uts/i86xpv/unix/Makefile new file mode 100644 index 0000000000..6af4f9401d --- /dev/null +++ b/usr/src/uts/i86xpv/unix/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot b/usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot new file mode 100644 index 0000000000..3c99a23825 --- /dev/null +++ b/usr/src/uts/i86xpv/unix/dboot/Mapfile.dboot @@ -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; diff --git a/usr/src/uts/i86xpv/vm/Makefile b/usr/src/uts/i86xpv/vm/Makefile new file mode 100644 index 0000000000..8cb19153eb --- /dev/null +++ b/usr/src/uts/i86xpv/vm/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/vm/seg_mf.c b/usr/src/uts/i86xpv/vm/seg_mf.c new file mode 100644 index 0000000000..7c042ad137 --- /dev/null +++ b/usr/src/uts/i86xpv/vm/seg_mf.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#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 +}; diff --git a/usr/src/uts/i86xpv/vm/seg_mf.h b/usr/src/uts/i86xpv/vm/seg_mf.h new file mode 100644 index 0000000000..78771b8c30 --- /dev/null +++ b/usr/src/uts/i86xpv/vm/seg_mf.h @@ -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 +#include +#include + +#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 */ diff --git a/usr/src/uts/i86xpv/xdb/Makefile b/usr/src/uts/i86xpv/xdb/Makefile new file mode 100644 index 0000000000..0988933c20 --- /dev/null +++ b/usr/src/uts/i86xpv/xdb/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xdf/Makefile b/usr/src/uts/i86xpv/xdf/Makefile new file mode 100644 index 0000000000..686f4a732c --- /dev/null +++ b/usr/src/uts/i86xpv/xdf/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xenbus/Makefile b/usr/src/uts/i86xpv/xenbus/Makefile new file mode 100644 index 0000000000..f71cba09b5 --- /dev/null +++ b/usr/src/uts/i86xpv/xenbus/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xencons/Makefile b/usr/src/uts/i86xpv/xencons/Makefile new file mode 100644 index 0000000000..2eccd15c42 --- /dev/null +++ b/usr/src/uts/i86xpv/xencons/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xnb/Makefile b/usr/src/uts/i86xpv/xnb/Makefile new file mode 100644 index 0000000000..4fa08e3f70 --- /dev/null +++ b/usr/src/uts/i86xpv/xnb/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xnbe/Makefile b/usr/src/uts/i86xpv/xnbe/Makefile new file mode 100644 index 0000000000..2ad937682e --- /dev/null +++ b/usr/src/uts/i86xpv/xnbe/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xnbo/Makefile b/usr/src/uts/i86xpv/xnbo/Makefile new file mode 100644 index 0000000000..96f88eb06c --- /dev/null +++ b/usr/src/uts/i86xpv/xnbo/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xnbu/Makefile b/usr/src/uts/i86xpv/xnbu/Makefile new file mode 100644 index 0000000000..f70633149e --- /dev/null +++ b/usr/src/uts/i86xpv/xnbu/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xnf/Makefile b/usr/src/uts/i86xpv/xnf/Makefile new file mode 100644 index 0000000000..7bc5c8844f --- /dev/null +++ b/usr/src/uts/i86xpv/xnf/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xpv_autoconfig/Makefile b/usr/src/uts/i86xpv/xpv_autoconfig/Makefile new file mode 100644 index 0000000000..4f43201ec7 --- /dev/null +++ b/usr/src/uts/i86xpv/xpv_autoconfig/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xpv_psm/Makefile b/usr/src/uts/i86xpv/xpv_psm/Makefile new file mode 100644 index 0000000000..e1c6a1ed2a --- /dev/null +++ b/usr/src/uts/i86xpv/xpv_psm/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xpvd/Makefile b/usr/src/uts/i86xpv/xpvd/Makefile new file mode 100644 index 0000000000..a1c616cd10 --- /dev/null +++ b/usr/src/uts/i86xpv/xpvd/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xpvtod/Makefile b/usr/src/uts/i86xpv/xpvtod/Makefile new file mode 100644 index 0000000000..ba00064a39 --- /dev/null +++ b/usr/src/uts/i86xpv/xpvtod/Makefile @@ -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 diff --git a/usr/src/uts/i86xpv/xsvc/Makefile b/usr/src/uts/i86xpv/xsvc/Makefile new file mode 100644 index 0000000000..0e2a65492f --- /dev/null +++ b/usr/src/uts/i86xpv/xsvc/Makefile @@ -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 + diff --git a/usr/src/uts/intel/Makefile.files b/usr/src/uts/intel/Makefile.files index bd106aa874..93a14ff7b7 100644 --- a/usr/src/uts/intel/Makefile.files +++ b/usr/src/uts/intel/Makefile.files @@ -47,7 +47,6 @@ CORE_OBJS += \ float.o \ fpu.o \ i86_subr.o \ - lwp_private.o \ lock_prim.o \ ovbcopy.o \ polled_io.o \ @@ -71,6 +70,7 @@ GENUNIX_OBJS += \ archdep.o \ getcontext.o \ install_utrap.o \ + lwp_private.o \ prom_enter.o \ prom_exit.o \ prom_panic.o \ @@ -130,6 +130,7 @@ BSCBUS_OBJS += bscbus.o 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 diff --git a/usr/src/uts/intel/Makefile.intel.shared b/usr/src/uts/intel/Makefile.intel.shared index ac8fe5d149..53597414a5 100644 --- a/usr/src/uts/intel/Makefile.intel.shared +++ b/usr/src/uts/intel/Makefile.intel.shared @@ -227,6 +227,7 @@ DRV_KMODS += cn 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 += udp6 DRV_KMODS += ucode DRV_KMODS += vgatext DRV_KMODS += vni +DRV_KMODS += vnic DRV_KMODS += wc DRV_KMODS += winlock DRV_KMODS += wpi diff --git a/usr/src/uts/intel/amd64/ml/mach_offsets.in b/usr/src/uts/intel/amd64/ml/mach_offsets.in index 8921f58c36..6fbe1e8a24 100644 --- a/usr/src/uts/intel/amd64/ml/mach_offsets.in +++ b/usr/src/uts/intel/amd64/ml/mach_offsets.in @@ -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 +#endif + #include #include #include @@ -156,3 +166,12 @@ rm_platter 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 */ diff --git a/usr/src/uts/intel/amd64/sys/Makefile b/usr/src/uts/intel/amd64/sys/Makefile index 6662f96476..e7dd186e90 100644 --- a/usr/src/uts/intel/amd64/sys/Makefile +++ b/usr/src/uts/intel/amd64/sys/Makefile @@ -31,6 +31,7 @@ include ../../../../Makefile.master HDRS= \ kdi_regs.h \ + privmregs.h \ privregs.h ROOTINCISA= $(ROOT)/usr/include/amd64 diff --git a/usr/src/uts/intel/amd64/sys/privmregs.h b/usr/src/uts/intel/amd64/sys/privmregs.h new file mode 100644 index 0000000000..8337414752 --- /dev/null +++ b/usr/src/uts/intel/amd64/sys/privmregs.h @@ -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 */ diff --git a/usr/src/uts/intel/amd64/sys/privregs.h b/usr/src/uts/intel/amd64/sys/privregs.h index 2e76668a32..37406850a6 100644 --- a/usr/src/uts/intel/amd64/sys/privregs.h +++ b/usr/src/uts/intel/amd64/sys/privregs.h @@ -119,7 +119,15 @@ struct regs { #include #include -#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 @@ extern __inline__ ulong_t getcr8(void) 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 diff --git a/usr/src/uts/intel/asm/clock.h b/usr/src/uts/intel/asm/clock.h index 6effcbc30a..bb855499ed 100644 --- a/usr/src/uts/intel/asm/clock.h +++ b/usr/src/uts/intel/asm/clock.h @@ -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 @@ extern __inline__ void unlock_hres_lock(void) : "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 @@ extern __inline__ hrtime_t tsc_read(void) #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 diff --git a/usr/src/uts/intel/asm/cpu.h b/usr/src/uts/intel/asm/cpu.h index 63d346da74..0f285f82b1 100644 --- a/usr/src/uts/intel/asm/cpu.h +++ b/usr/src/uts/intel/asm/cpu.h @@ -42,6 +42,8 @@ extern __inline__ void ht_pause(void) "pause"); } +#if !defined(__xpv) + extern __inline__ void cli(void) { __asm__ __volatile__( @@ -60,6 +62,8 @@ extern __inline__ void i86_halt(void) "sti; hlt"); } +#endif /* !__xpv */ + #endif /* __i386 || defined(__amd64) */ #if defined(__amd64) @@ -67,41 +71,45 @@ extern __inline__ void i86_halt(void) 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__ */ diff --git a/usr/src/uts/intel/asm/mmu.h b/usr/src/uts/intel/asm/mmu.h index c3982e5af4..68995f2f41 100644 --- a/usr/src/uts/intel/asm/mmu.h +++ b/usr/src/uts/intel/asm/mmu.h @@ -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 @@ extern __inline__ ulong_t getcr3(void) 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 @@ extern __inline__ ulong_t getcr3(void) 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 @@ extern __inline__ void reload_cr3(void) #endif -#endif /* !__lint && __GNUC__ */ +#endif /* __GNUC__ && !__xpv */ #ifdef __cplusplus } diff --git a/usr/src/uts/intel/brand/lx/lx_brand_asm.s b/usr/src/uts/intel/brand/lx/lx_brand_asm.s index 7e51a6e487..c261227f1f 100644 --- a/usr/src/uts/intel/brand/lx/lx_brand_asm.s +++ b/usr/src/uts/intel/brand/lx/lx_brand_asm.s @@ -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 @@ lx_brand_int80_callback(void) 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 @@ lx_brand_int80_callback(void) SET_SIZE(lx_brand_int80_disable) -#else +#elif defined(__i386) /* * %eax - syscall number * @@ -137,7 +137,7 @@ lx_brand_int80_callback(void) * | 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 @@ lx_brand_int80_callback(void) 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 @@ lx_brand_int80_callback(void) ret SET_SIZE(lx_brand_int80_disable) -#endif /* __amd64 */ +#endif /* __i386 */ #endif /* __lint */ diff --git a/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s b/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s index fd793b2098..298259bcdc 100644 --- a/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s +++ b/usr/src/uts/intel/brand/sn1/sn1_brand_asm.s @@ -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 @@ sn1_brand_int91_callback(void) */ 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 @@ sn1_brand_int91_callback(void) */ 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 @@ sn1_brand_int91_callback(void) 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 @@ sn1_brand_int91_callback(void) popl %ebx /* Restore scratch register */ addl $32, %esp /* Remove all callback stuff from stack */ - iret + jmp nopop_sys_rtt_syscall 9: popl %ebx ret diff --git a/usr/src/uts/intel/cpunex/Makefile b/usr/src/uts/intel/cpunex/Makefile new file mode 100644 index 0000000000..e9836d8df5 --- /dev/null +++ b/usr/src/uts/intel/cpunex/Makefile @@ -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 diff --git a/usr/src/uts/intel/ia32/ml/desctbls_asm.s b/usr/src/uts/intel/ia32/ml/desctbls_asm.s index b55b4ccdc2..57408034c5 100644 --- a/usr/src/uts/intel/ia32/ml/desctbls_asm.s +++ b/usr/src/uts/intel/ia32/ml/desctbls_asm.s @@ -165,6 +165,10 @@ load_segment_registers(selector_t cs, selector_t fs, selector_t gs, selector_t ss) {} +selector_t +get_cs_register() +{ return (0); } + #else /* __lint */ /* @@ -193,6 +197,12 @@ load_segment_registers(selector_t cs, selector_t fs, selector_t gs, 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 @@ load_segment_registers( 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 @@ load_segment_registers( 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 @@ selector_t rd_ldtr(void) { return (0); } -#if defined(__amd64) -void -clr_ldt_sregs(void) -{} -#endif - #else /* __lint */ #if defined(__amd64) @@ -265,44 +279,6 @@ clr_ldt_sregs(void) 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) diff --git a/usr/src/uts/intel/ia32/ml/exception.s b/usr/src/uts/intel/ia32/ml/exception.s index c7e6e843f7..d07c55008e 100644 --- a/usr/src/uts/intel/ia32/ml/exception.s +++ b/usr/src/uts/intel/ia32/ml/exception.s @@ -71,7 +71,32 @@ ndptrap_frstor(void) * 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; \ @@ -86,6 +111,8 @@ ndptrap_frstor(void) #define TRAP_ERR(trapno) \ push $trapno +#endif /* __xpv && __amd64 */ + /* * #DE @@ -105,6 +132,7 @@ ndptrap_frstor(void) 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 @@ ndptrap_frstor(void) 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 @@ ndptrap_frstor(void) 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 @@ ndptrap_frstor(void) /* * #NMI + * + * XXPV: See 6532669. */ ENTRY_NP(nmiint) TRAP_NOERR(T_NMIFLT) /* $2 */ @@ -276,6 +333,7 @@ ndptrap_frstor(void) ENTRY_NP(brktrap) #if defined(__amd64) + XPV_TRAP_POP cmpw $KCS_SEL, 8(%rsp) jne bp_user @@ -319,9 +377,14 @@ bp_user: 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 @@ ud_user: 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 @@ _emul_done: /* * #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 @@ _emul_done: SET_SIZE(ndptrap_frstor) SET_SIZE(ndptrap) +#endif /* __xpv */ + #elif defined(__i386) ENTRY_NP(ndptrap) @@ -669,6 +799,7 @@ _patch_fxrstor_ebx: #endif /* __i386 */ +#if !defined(__xpv) #if defined(__amd64) /* @@ -676,17 +807,16 @@ _patch_fxrstor_ebx: */ 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 @@ _patch_fxrstor_ebx: 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 @@ make_frame: SET_SIZE(syserrtrap) #endif /* __i386 */ +#endif /* !__xpv */ ENTRY_NP(overrun) push $0 @@ -896,6 +1028,17 @@ make_frame: 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 @@ make_frame: movl %cr2, %esi #endif /* __i386 */ +#endif /* __xpv */ jmp cmntrap_pushed SET_SIZE(pftrap) @@ -1056,8 +1200,15 @@ check_for_user_address: * 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 @@ check_for_user_address: * 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*/ diff --git a/usr/src/uts/intel/ia32/ml/i86_subr.s b/usr/src/uts/intel/ia32/ml/i86_subr.s index 52de4155ab..2b0a304910 100644 --- a/usr/src/uts/intel/ia32/ml/i86_subr.s +++ b/usr/src/uts/intel/ia32/ml/i86_subr.s @@ -472,6 +472,7 @@ ulong_t getcr3(void) { return (0); } +#if !defined(__xpv) /* ARGSUSED */ void setcr3(ulong_t val) @@ -480,6 +481,7 @@ setcr3(ulong_t val) void reload_cr3(void) {} +#endif ulong_t getcr4(void) @@ -518,7 +520,12 @@ setcr8(ulong_t val) 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 @@ setcr8(ulong_t val) ret SET_SIZE(getcr3) +#if !defined(__xpv) + ENTRY(setcr3) movq %rdi, %cr3 ret @@ -538,6 +547,8 @@ setcr8(ulong_t val) ret SET_SIZE(reload_cr3) +#endif /* __xpv */ + ENTRY(getcr4) movq %cr4, %rax ret @@ -572,7 +583,12 @@ setcr8(ulong_t val) 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 @@ setcr8(ulong_t val) ret SET_SIZE(getcr3) +#if !defined(__xpv) + ENTRY(setcr3) movl 4(%esp), %eax movl %eax, %cr3 @@ -593,6 +611,8 @@ setcr8(ulong_t val) ret SET_SIZE(reload_cr3) +#endif /* __xpv */ + ENTRY(getcr4) movl %cr4, %eax ret @@ -664,6 +684,12 @@ __cpuid_insn(struct cpuid_regs *regs) #endif /* __i386 */ #endif /* __lint */ +#if defined(__xpv) + /* + * Defined in C + */ +#else + #if defined(__lint) /*ARGSUSED*/ @@ -746,19 +772,51 @@ tsc_read(void) 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 @@ clear_int_flag(void) 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 @@ clear_int_flag(void) 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 @@ restore_int_flag(ulong_t i) 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 @@ restore_int_flag(ulong_t i) 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 @@ dtrace_interrupt_disable(void) 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 @@ dtrace_interrupt_disable(void) 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 @@ dtrace_interrupt_enable(dtrace_icookie_t cookie) 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 @@ dtrace_interrupt_enable(dtrace_icookie_t cookie) 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 @@ getcregs(struct cregs *crp) #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 @@ getcregs(struct cregs *crp) 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 @@ getcregs(struct cregs *crp) #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 @@ getcregs(struct cregs *crp) .nocr4: movl $0, CREG_CR4(%edx) .skip: +#endif ret SET_SIZE(getcregs) @@ -3080,6 +3313,16 @@ vpanic_common: 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 @@ getflags(void) 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 @@ getflags(void) 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) diff --git a/usr/src/uts/intel/ia32/ml/swtch.s b/usr/src/uts/intel/ia32/ml/swtch.s index 118c70ce89..c3c52b0bb2 100644 --- a/usr/src/uts/intel/ia32/ml/swtch.s +++ b/usr/src/uts/intel/ia32/ml/swtch.s @@ -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 @@ resume(kthread_t *t) 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 $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 @@ setgregs(klwp_t *lwp, gregset_t grp) */ 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 @@ setgregs(klwp_t *lwp, gregset_t grp) 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 @@ setgregs(klwp_t *lwp, gregset_t grp) */ 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 @@ traceback(caddr_t fpreg) 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 @@ traceback(caddr_t fpreg) kpreempt_enable(); + fp = (struct frame *)plat_traceback(fpreg); if ((uintptr_t)fp < KERNELBASE) goto out; diff --git a/usr/src/uts/intel/ia32/os/desctbls.c b/usr/src/uts/intel/ia32/os/desctbls.c index 166953e30b..335ab50815 100644 --- a/usr/src/uts/intel/ia32/os/desctbls.c +++ b/usr/src/uts/intel/ia32/os/desctbls.c @@ -82,15 +82,24 @@ #include #include #include + +#ifdef __xpv +#include +#include +#endif + #include #include #include +#include /* * 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 @@ struct tss dftss0; /* #DF double-fault exception */ #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 @@ set_syssegd(system_desc_t *dp, void *base, size_t size, uint_t type, 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 @@ set_syssegd(system_desc_t *dp, void *base, size_t size, uint_t type, 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 @@ set_gatesegd(gate_desc_t *dp, void (*func)(void), selector_t sel, * 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 @@ set_gatesegd(gate_desc_t *dp, void (*func)(void), selector_t sel, #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) /* @@ -362,6 +508,15 @@ init_gdt_common(user_desc_t *gdt) set_usegd(&gdt[GDT_U32CODE], SDP_SHORT, NULL, -1, SDT_MEMERA, 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 @@ -372,6 +527,8 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt(void) return (gdt0); } +#endif /* __xpv */ + #elif defined(__i386) static void @@ -515,6 +751,8 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt_common(user_desc_t *gdt) 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 @@ init_gdt(void) return (gdt0); } +#endif /* __xpv */ #endif /* __i386 */ /* @@ -631,71 +925,80 @@ init_gdt(void) 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 @@ init_idt_common(gate_desc_t *idt) 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 @@ init_idt(gate_desc_t *idt) * 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 @@ init_idt(gate_desc_t *idt) 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(gate_desc_t *idt) 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 @@ init_idt(gate_desc_t *idt) 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 @@ init_tss(void) } #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_desctbls(void) 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 @@ init_boot_gdt(user_desc_t *bgdt) void brand_interpositioning_enable(void) { - int i; + 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_interp_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_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 @@ brand_interpositioning_enable(void) 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); diff --git a/usr/src/uts/intel/ia32/os/fpu.c b/usr/src/uts/intel/ia32/os/fpu.c index bd1ee71396..7a39b0391a 100644 --- a/usr/src/uts/intel/ia32/os/fpu.c +++ b/usr/src/uts/intel/ia32/os/fpu.c @@ -369,6 +369,7 @@ fpnoextflt(struct regs *rp) 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 @@ fpnoextflt(struct regs *rp) 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 @@ fpnoextflt(struct regs *rp) 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 @@ fpextovrflt(struct regs *rp) cur_cr0 = getcr0(); fpinit(); /* initialize the FPU hardware */ setcr0(cur_cr0); +#endif sti(); return (1); /* error, send SIGSEGV signal to the thread */ } diff --git a/usr/src/uts/intel/ia32/os/sundep.c b/usr/src/uts/intel/ia32/os/sundep.c index 60c7aabf7d..bd5f833036 100644 --- a/usr/src/uts/intel/ia32/os/sundep.c +++ b/usr/src/uts/intel/ia32/os/sundep.c @@ -90,6 +90,10 @@ #include #include #include +#include +#ifdef __xpv +#include +#endif /* * Compare the version of boot that boot says it is against @@ -294,8 +298,8 @@ lwp_load(klwp_t *lwp, gregset_t grp, uintptr_t thrptr) 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 @@ lwp_pcb_exit(void) #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 @@ lwp_segregs_save(klwp_t *lwp) } #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 @@ update_sregs(struct regs *rp, klwp_t *lwp) 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) * * 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) */ 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) * 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) /* * 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) 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 @@ update_sregs(struct regs *rp, klwp_t *lwp) * %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 @@ static void 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 @@ lwp_segregs_restore(klwp_t *lwp) 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 @@ lwp_segregs_restore32(klwp_t *lwp) 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 */ diff --git a/usr/src/uts/intel/ia32/os/sysi86.c b/usr/src/uts/intel/ia32/os/sysi86.c index fd4c369dec..e677ba68fa 100644 --- a/usr/src/uts/intel/ia32/os/sysi86.c +++ b/usr/src/uts/intel/ia32/os/sysi86.c @@ -63,10 +63,15 @@ #include #include #include +#if defined(__xpv) +#include +#include +#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 @@ sysi86(short cmd, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3) 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 @@ static void 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 @@ ssd_to_usd(struct ssd *ssd, user_desc_t *usd) ASSERT(usd->usd_dpl == SEL_UPL); /* - * set avl, DB and granularity bits. + * 64-bit code selectors are never allowed in the LDT. + * Reserved bit is always 0 on 32-bit sytems. */ - usd->usd_avl = ssd->acc2; - #if defined(__amd64) - usd->usd_long = ssd->acc2 >> 1; + usd->usd_long = 0; #else - usd->usd_reserved = ssd->acc2 >> 1; + usd->usd_reserved = 0; #endif + /* + * set avl, DB and granularity bits. + */ + usd->usd_avl = ssd->acc2; 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 @@ ssd_to_sgd(struct ssd *ssd, gate_desc_t *sgd) sgd->sgd_p = ssd->acc1 >> 7; ASSERT(sgd->sgd_type == SDT_SYSCGT); ASSERT(sgd->sgd_dpl == SEL_UPL); - -#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 @@ ldt_load(void) 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 @@ ldt_savectx(proc_t *p) * 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 @@ int 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 @@ setdscr(struct ssd *ssd) if (seli >= MAXNLDT || seli < LDT_UDBASE) return (EINVAL); + ndesc = null_udesc; mutex_enter(&pp->p_ldtlock); /* @@ -476,8 +510,7 @@ setdscr(struct ssd *ssd) * 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 @@ setdscr(struct ssd *ssd) * 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(); - } - if (ldt_map(pp, seli) == NULL) { - mutex_exit(&pp->p_ldtlock); - return (ENOMEM); + } else if (seli > pp->p_ldtlimit) { + + /* + * 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 @@ setdscr(struct ssd *ssd) * 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 @@ setdscr(struct ssd *ssd) * 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)))); + ldt = kmem_zalloc(ldtsz, KM_SLEEP); + ASSERT(IS_P2ALIGNED(ldt, PAGESIZE)); - kpreempt_disable(); +#if defined(__xpv) + if (xen_ldt_setprot(ldt, ldtsz, PROT_READ)) + panic("ldt_alloc:xen_ldt_setprot(PROT_READ) failed"); +#endif + + pp->p_ldt = ldt; + pp->p_ldtlimit = nsels - 1; + set_syssegd(&pp->p_ldt_desc, ldt, ldtsz - 1, SDT_SYSLDT, SEL_KPL); + + if (pp == curproc) { + kpreempt_disable(); + ldt_load(); + kpreempt_enable(); + } +} - /* Update proc structure. XXX - need any locks here??? */ +static void +ldt_free(proc_t *pp) +{ + user_desc_t *ldt; + size_t ldtsz; + + ASSERT(pp->p_ldt != NULL); - set_syssegd(&pp->p_ldt_desc, ldtp, MINNLDT * sizeof (user_desc_t) - 1, - SDT_SYSLDT, SEL_KPL); + mutex_enter(&pp->p_ldtlock); + ldt = pp->p_ldt; + ldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t); - pp->p_ldtlimit = MINNLDT - 1; - pp->p_ldt = ldtp; - if (pp == curproc) - *((system_desc_t *)&CPU->cpu_gdt[GDT_LDT]) = pp->p_ldt_desc; + ASSERT(IS_P2ALIGNED(ldtsz, PAGESIZE)); - kpreempt_enable(); + pp->p_ldt = NULL; + pp->p_ldtlimit = 0; + pp->p_ldt_desc = null_sdesc; + mutex_exit(&pp->p_ldtlock); + + if (pp == curproc) { + kpreempt_disable(); + ldt_unload(); + kpreempt_enable(); + } + +#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); } /* - * 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. + * On fork copy new ldt for child. */ -static void * -ldt_map(proc_t *pp, uint_t seli) +static void +ldt_dup(proc_t *pp, proc_t *cp) { - 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; + size_t ldtsz; ASSERT(pp->p_ldt != NULL); - - if (seli <= pp->p_ldtlimit) - return (ent_addr); + ASSERT(cp != curproc); /* - * We are increasing the size of the process's LDT. - * Make sure this and all intervening pages are mapped. + * I assume the parent's ldt can't increase since we're in a fork. */ - 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; - } + mutex_enter(&pp->p_ldtlock); + mutex_enter(&cp->p_ldtlock); - /* XXX - need any locks to update proc_t or gdt ??? */ + ldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t); - ASSERT(curproc == pp); + ldt_alloc(cp, pp->p_ldtlimit); - kpreempt_disable(); - pp->p_ldtlimit = seli; - SYSSEGD_SETLIMIT(&pp->p_ldt_desc, (seli+1) * sizeof (user_desc_t) -1); +#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 - ldt_load(); - kpreempt_enable(); + bcopy(pp->p_ldt, cp->p_ldt, ldtsz); + +#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); - return (ent_addr); } -/* - * Free up the kernel memory used for LDT of this process. - */ static void -ldt_free(proc_t *pp) +ldt_grow(proc_t *pp, uint_t seli) { - on_trap_data_t otd; - caddr_t start, end; - volatile caddr_t addr; + 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); - mutex_enter(&pp->p_ldtlock); - start = (caddr_t)pp->p_ldt; /* beginning of the LDT */ - end = start + (pp->p_ldtlimit * sizeof (user_desc_t)); - - /* 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(); + /* + * 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); - /* 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; + oldt = pp->p_ldt; + oldtsz = (pp->p_ldtlimit + 1) * sizeof (user_desc_t); - if (pp == curproc) - ldt_unload(); + nldt = kmem_zalloc(nldtsz, KM_SLEEP); + ASSERT(IS_P2ALIGNED(nldt, PAGESIZE)); + + bcopy(oldt, nldt, oldtsz); + + /* + * unload old ldt. + */ + kpreempt_disable(); + ldt_unload(); kpreempt_enable(); - mutex_exit(&pp->p_ldtlock); -} -/* - * On fork copy new ldt for child. - */ -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; +#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"); - ASSERT(pp->p_ldt); + if (xen_ldt_setprot(nldt, nldtsz, PROT_READ)) + panic("ldt_grow:xen_ldt_setprot(PROT_READ) failed"); +#endif - setup_ldt(cp); + pp->p_ldt = nldt; + pp->p_ldtlimit = nsels - 1; - 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 */ - - 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); + /* + * 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); } diff --git a/usr/src/uts/intel/ia32/sys/Makefile b/usr/src/uts/intel/ia32/sys/Makefile index d97b2b007d..0ef2320b16 100644 --- a/usr/src/uts/intel/ia32/sys/Makefile +++ b/usr/src/uts/intel/ia32/sys/Makefile @@ -33,6 +33,7 @@ HDRS= \ asm_linkage.h \ kdi_regs.h \ machtypes.h \ + privmregs.h \ privregs.h \ psw.h \ pte.h \ diff --git a/usr/src/uts/intel/ia32/sys/privmregs.h b/usr/src/uts/intel/ia32/sys/privmregs.h new file mode 100644 index 0000000000..87d9b74bfe --- /dev/null +++ b/usr/src/uts/intel/ia32/sys/privmregs.h @@ -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 */ diff --git a/usr/src/uts/intel/ia32/sys/traptrace.h b/usr/src/uts/intel/ia32/sys/traptrace.h index 89e13f513f..dfa6ee7f41 100644 --- a/usr/src/uts/intel/ia32/sys/traptrace.h +++ b/usr/src/uts/intel/ia32/sys/traptrace.h @@ -173,8 +173,14 @@ extern trap_trace_rec_t *trap_trace_get_traceptr(uint8_t, ulong_t, ulong_t); * 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) diff --git a/usr/src/uts/intel/ia32/syscall/lwp_private.c b/usr/src/uts/intel/ia32/syscall/lwp_private.c index 7991499615..79e9076ee0 100644 --- a/usr/src/uts/intel/ia32/syscall/lwp_private.c +++ b/usr/src/uts/intel/ia32/syscall/lwp_private.c @@ -94,7 +94,8 @@ lwp_setprivate(klwp_t *lwp, int which, uintptr_t base) 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 @@ lwp_setprivate(klwp_t *lwp, int which, uintptr_t base) 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 @@ lwp_setprivate(klwp_t *lwp, int which, uintptr_t base) 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: diff --git a/usr/src/uts/intel/io/cpunex.c b/usr/src/uts/intel/io/cpunex.c new file mode 100644 index 0000000000..11c569151d --- /dev/null +++ b/usr/src/uts/intel/io/cpunex.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +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)); +} diff --git a/usr/src/uts/intel/io/i8254.c b/usr/src/uts/intel/io/i8254.c deleted file mode 100644 index 80209c228b..0000000000 --- a/usr/src/uts/intel/io/i8254.c +++ /dev/null @@ -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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 */ -} diff --git a/usr/src/uts/intel/io/pciex/pcie_error.c b/usr/src/uts/intel/io/pciex/pcie_error.c index e688c7885c..34d01ec6ee 100644 --- a/usr/src/uts/intel/io/pciex/pcie_error.c +++ b/usr/src/uts/intel/io/pciex/pcie_error.c @@ -75,10 +75,16 @@ ushort_t pcie_device_ctrl_default = \ 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 @@ pcie_check_io_mem_range(ddi_acc_handle_t cfg_hdl, boolean_t *empty_io_range, } } +/* 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 @@ pcie_nvidia_error_init(dev_info_t *child, ddi_acc_handle_t cfg_hdl, 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 @@ pcie_nvidia_error_init(dev_info_t *child, ddi_acc_handle_t cfg_hdl, 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 @@ pcie_error_find_cap_reg(ddi_acc_handle_t cfg_hdl, uint8_t cap_id) 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); diff --git a/usr/src/uts/intel/kdi/amd64/kdi_asm.s b/usr/src/uts/intel/kdi/amd64/kdi_asm.s index f8042ae544..d3729c7ac4 100644 --- a/usr/src/uts/intel/kdi/amd64/kdi_asm.s +++ b/usr/src/uts/intel/kdi/amd64/kdi_asm.s @@ -43,6 +43,9 @@ #include #include #include +#ifdef __xpv +#include +#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; \ @@ -138,6 +159,86 @@ movq REG_OFF(KDIREG_RSI)(%rdi), %rsi; \ 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 @@ kdi_cmnint(void) 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 @@ kdi_cmnint(void) 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 @@ kdi_cmnint(void) shrq $32, %rdx movl $MSR_AMD_GSBASE, %ecx wrmsr +#endif /* __xpv */ GET_CPUSAVE_ADDR /* %rax = cpusave, %rbx = CPU ID */ @@ -355,32 +467,41 @@ kdi_slave_entry_patch: #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 @@ no_msr: 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 @@ -464,106 +584,6 @@ no_msr: #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; \ -1: - -#if defined(__lint) -/*ARGSUSED*/ -void -kdi_cpu_debug_init(kdi_cpusave_t *save) -{ -} -#else /* __lint */ - - ENTRY_NP(kdi_cpu_debug_init) - pushq %rbp - movq %rsp, %rbp - - pushq %rbx /* macro will clobber %rbx */ - KDI_RESTORE_DEBUGGING_STATE - popq %rbx - - leave - ret - - 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. @@ -575,18 +595,16 @@ kdi_resume(void) } #else /* __lint */ + /* cpusave in %rdi */ 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 */ +#if !defined(__xpv) movq KRS_CR0(%rdi), %rdx movq %rdx, %cr0 +#endif KDI_RESTORE_DEBUGGING_STATE @@ -603,51 +621,95 @@ kdi_resume(void) ENTRY_NP(kdi_pass_to_kernel) - /* cpusave is still in %rdi */ - movq KRS_CR0(%rdi), %rdx - movq %rdx, %cr0 + popq %rdi /* cpusave */ + + movq $KDI_CPU_STATE_NONE, KRS_CPU_STATE(%rdi) /* - * 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. + * 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 - call kdi_kernel_trap2hdlr - movq %rax, kdi_kernel_handler - + cmpq $T_SGLSTP, %rdi + je 1f + cmpq $T_BPTFLT, %rdi + je 2f + cmpq $T_DBGENTR, %rdi + je 3f /* - * 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. + * Hmm, unknown handler. Somebody forgot to update this when they + * added a new trap interposition... try to drop back into kmdb. */ - KDI_RESTORE_REGS(%rsp) - addq $REG_OFF(KDIREG_RIP), %rsp /* Discard state, trapno, err */ + 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 - jmp *%cs:kdi_kernel_handler +1: + CALL_TRAP_HANDLER(dbgtrap) + /*NOTREACHED*/ +2: + CALL_TRAP_HANDLER(brktrap) + /*NOTREACHED*/ +3: + CALL_TRAP_HANDLER(invaltrap) /*NOTREACHED*/ SET_SIZE(kdi_pass_to_kernel) /* - * Reboot the system. This routine is to be called only by the master - * CPU. + * 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 - - /* - * psm_shutdown didn't work or it wasn't set, try pc_reset. - */ - call pc_reset +#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*/ +void +kdi_cpu_debug_init(kdi_cpusave_t *save) +{ +} +#else /* __lint */ + + ENTRY_NP(kdi_cpu_debug_init) + pushq %rbp + movq %rsp, %rbp + + pushq %rbx /* macro will clobber %rbx */ + KDI_RESTORE_DEBUGGING_STATE + popq %rbx + + leave + ret + + SET_SIZE(kdi_cpu_debug_init) +#endif /* !__lint */ + diff --git a/usr/src/uts/intel/kdi/ia32/kdi_asm.s b/usr/src/uts/intel/kdi/ia32/kdi_asm.s index b8232ab58b..fbf207a99e 100644 --- a/usr/src/uts/intel/kdi/ia32/kdi_asm.s +++ b/usr/src/uts/intel/kdi/ia32/kdi_asm.s @@ -74,6 +74,104 @@ movl %edx, KRS_GDT(%eax); \ 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 @@ kdi_cmnint(void) */ 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 @@ kdi_slave_entry_patch: #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 @@ kdi_slave_entry_patch: 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,127 +576,14 @@ no_msr: pushl %eax call kdi_debugger_entry - pushl %eax /* leave cpusave on the stack */ - + popl %eax + jmp kdi_resume SET_SIZE(kdi_save_common_state) #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: - -#if defined(__lint) -/*ARGSUSED*/ -void -kdi_cpu_debug_init(kdi_cpusave_t *save) -{ -} -#else /* __lint */ - - ENTRY_NP(kdi_cpu_debug_init) - pushl %ebp - movl %esp, %ebp - - pushl %edi - pushl %ebx - - movl 8(%ebp), %edi - - KDI_RESTORE_DEBUGGING_STATE - - popl %ebx - popl %edi - leave - ret - - 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. @@ -593,19 +595,17 @@ kdi_resume(void) } #else /* __lint */ + /* cpusave in %eax */ 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 */ +#if !defined(__xpv) movl KRS_CR0(%eax), %edx movl %edx, %cr0 +#endif pushl %edi movl %eax, %edi @@ -614,6 +614,19 @@ kdi_resume(void) 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 @@ -634,45 +647,58 @@ kdi_resume(void) ENTRY_NP(kdi_pass_to_kernel) - /* cpusave is still in %eax */ - movl KRS_CR0(%eax), %edx - movl %edx, %cr0 + /* pop cpusave, leaving %esp pointing to saved regs */ + popl %eax + + movl $KDI_CPU_STATE_NONE, KRS_CPU_STATE(%eax) /* - * 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. + * 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. */ - pushl REG_OFF(KDIREG_TRAPNO)(%esp) - call kdi_kernel_trap2hdlr - addl $4, %esp - movl %eax, kdi_kernel_handler - + 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 /* - * 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. + * Hmm, unknown handler. Somebody forgot to update this when they + * added a new trap interposition... try to drop back into kmdb. */ - 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 */ - + int $T_DBGENTR + +kpass_dbgtrap: + KDI_RESTORE_REGS() ljmp $KCS_SEL, $1f -1: jmp *%cs:kdi_kernel_handler +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) /* - * Reboot the system. This routine is to be called only by the master - * CPU. + * A minimal version of mdboot(), to be used by the master CPU only. */ ENTRY_NP(kdi_reboot) @@ -681,12 +707,42 @@ kdi_resume(void) call *psm_shutdownf addl $8, %esp - /* - * psm_shutdown didn't work or it wasn't set, try pc_reset. - */ - call pc_reset +#if defined(__xpv) + pushl $SHUTDOWN_reboot + call HYPERVISOR_shutdown +#else + call reset +#endif /*NOTREACHED*/ SET_SIZE(kdi_reboot) #endif /* !__lint */ + +#if defined(__lint) +/*ARGSUSED*/ +void +kdi_cpu_debug_init(kdi_cpusave_t *save) +{ +} +#else /* __lint */ + + ENTRY_NP(kdi_cpu_debug_init) + pushl %ebp + movl %esp, %ebp + + pushl %edi + pushl %ebx + + movl 8(%ebp), %edi + + KDI_RESTORE_DEBUGGING_STATE + + popl %ebx + popl %edi + leave + ret + + SET_SIZE(kdi_cpu_debug_init) +#endif /* !__lint */ + diff --git a/usr/src/uts/intel/kdi/kdi_idt.c b/usr/src/uts/intel/kdi/kdi_idt.c index 5b170550d3..4c88825dce 100644 --- a/usr/src/uts/intel/kdi/kdi_idt.c +++ b/usr/src/uts/intel/kdi/kdi_idt.c @@ -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 @@ -130,10 +130,13 @@ typedef struct kdi_gate_spec { 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 @@ struct idt_description { { 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 @@ kdi_idt_init(selector_t sel) 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); } } } @@ -264,25 +269,6 @@ kdi_idt_gates_restore(void) kdi_idt_write(&kdi_kgates[i], kdi_gate_specs[i].kgs_vec); } -/* - * 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 @@ kdi_deactivate(void) * 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 @@ kdi_trap_pass(kdi_cpusave_t *cpusave) * 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 @@ kdi_trap_pass(kdi_cpusave_t *cpusave) * 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 @@ kdi_debugger_entry(kdi_cpusave_t *cpusave) cpusave->krs_gregs[KDIREG_PC]--; kdi_kmdb_main(cpusave); - return (KDI_RESUME); } diff --git a/usr/src/uts/intel/kdi/kdi_idthdl.s b/usr/src/uts/intel/kdi/kdi_idthdl.s index 0d2e31322b..03a2f90ed7 100644 --- a/usr/src/uts/intel/kdi/kdi_idthdl.s +++ b/usr/src/uts/intel/kdi/kdi_idthdl.s @@ -70,6 +70,25 @@ this won't assemble * 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 @@ this won't assemble push $0; \ push $trapno +#endif /* __xpv && __amd64 */ + + #define MKIVCT(n) \ ENTRY_NP(kdi_ivct/**/n/**/); \ TRAP_ERR(n); \ diff --git a/usr/src/uts/intel/os/ddi_arch.c b/usr/src/uts/intel/os/ddi_arch.c index a24456dd5f..cefc0a37a5 100644 --- a/usr/src/uts/intel/os/ddi_arch.c +++ b/usr/src/uts/intel/os/ddi_arch.c @@ -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 @@ i_ddi_bus_map(dev_info_t *dip, dev_info_t *rdip, ddi_map_req_t *mp, #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 @@ i_ddi_bus_map(dev_info_t *dip, dev_info_t *rdip, ddi_map_req_t *mp, #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 @@ void 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 @@ drv_usecwait(clock_t count) /* 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); } diff --git a/usr/src/uts/intel/os/driver_aliases b/usr/src/uts/intel/os/driver_aliases index b4342d1cc0..48545bab47 100644 --- a/usr/src/uts/intel/os/driver_aliases +++ b/usr/src/uts/intel/os/driver_aliases @@ -30,3 +30,6 @@ mc-amd "pci1022,1101" mc-amd "pci1022,1102" cpunex "cpus" cpudrv "cpu" +xnbe "xnb,ioemu" +xnbo "xnb,SUNW_mac" +xnbu "xnb,netfront" diff --git a/usr/src/uts/intel/os/minor_perm b/usr/src/uts/intel/os/minor_perm index d62ec4d667..a4cc93f6a3 100644 --- a/usr/src/uts/intel/os/minor_perm +++ b/usr/src/uts/intel/os/minor_perm @@ -145,6 +145,7 @@ chxge:* 0666 root sys 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 diff --git a/usr/src/uts/intel/os/name_to_major b/usr/src/uts/intel/os/name_to_major index c73127c1f7..1d17fa92c0 100644 --- a/usr/src/uts/intel/os/name_to_major +++ b/usr/src/uts/intel/os/name_to_major @@ -116,6 +116,16 @@ pcie_pci 184 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 @@ ucode 245 ppm 246 cpunex 247 cpudrv 248 +xnbe 249 +xnbo 250 +xnbu 251 +vnic 252 diff --git a/usr/src/uts/intel/pcbe/opteron_pcbe.c b/usr/src/uts/intel/pcbe/opteron_pcbe.c index 119cff9bde..0ded1285d5 100644 --- a/usr/src/uts/intel/pcbe/opteron_pcbe.c +++ b/usr/src/uts/intel/pcbe/opteron_pcbe.c @@ -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 @@ opt_pcbe_init(void) } 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 @@ static const char * 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 @@ opt_pcbe_program(void *token) &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 @@ opt_pcbe_allstop(void) /* * Disable non-privileged access to the counter registers. */ - setcr4((uint32_t)getcr4() & ~CR4_PCE); + setcr4(getcr4() & ~CR4_PCE); } static void diff --git a/usr/src/uts/intel/pcbe/p123_pcbe.c b/usr/src/uts/intel/pcbe/p123_pcbe.c index 0d17b1f80f..eaddaa1afa 100644 --- a/usr/src/uts/intel/pcbe/p123_pcbe.c +++ b/usr/src/uts/intel/pcbe/p123_pcbe.c @@ -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_pcbe_configure(uint_t picnum, char *eventname, uint64_t preset, 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 @@ ptm_pcbe_configure(uint_t picnum, char *eventname, uint64_t preset, 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 @@ ptm_pcbe_program(void *token) 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 @@ ptm_pcbe_allstop(void) wrmsr(P5_CESR, ALL_STOPPED); else { wrmsr(REG_PERFEVNT0, ALL_STOPPED); - setcr4((uint32_t)getcr4() & ~CR4_PCE); + setcr4(getcr4() & ~CR4_PCE); } } diff --git a/usr/src/uts/intel/pcbe/p4_pcbe.c b/usr/src/uts/intel/pcbe/p4_pcbe.c index bfaa46a0ab..5065e082bc 100644 --- a/usr/src/uts/intel/pcbe/p4_pcbe.c +++ b/usr/src/uts/intel/pcbe/p4_pcbe.c @@ -791,7 +791,7 @@ p4_pcbe_program(void *token) 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 diff --git a/usr/src/uts/intel/sys/Makefile b/usr/src/uts/intel/sys/Makefile index 655ec9b54f..a90cb05ca6 100644 --- a/usr/src/uts/intel/sys/Makefile +++ b/usr/src/uts/intel/sys/Makefile @@ -66,6 +66,7 @@ HDRS = \ old_procfs.h \ pcb.h \ pmem.h \ + privmregs.h \ privregs.h \ procfs_isa.h \ prom_emul.h \ diff --git a/usr/src/uts/intel/sys/archsystm.h b/usr/src/uts/intel/sys/archsystm.h index f6665f6565..fcfcb0c01b 100644 --- a/usr/src/uts/intel/sys/archsystm.h +++ b/usr/src/uts/intel/sys/archsystm.h @@ -81,6 +81,7 @@ extern void brand_sys_syscall(); 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 uint_t bsrw_insn(uint16_t); 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 */ diff --git a/usr/src/uts/intel/sys/bootinfo.h b/usr/src/uts/intel/sys/bootinfo.h index 9bdc30268c..cefdb5357b 100644 --- a/usr/src/uts/intel/sys/bootinfo.h +++ b/usr/src/uts/intel/sys/bootinfo.h @@ -89,7 +89,12 @@ struct xboot_info { 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() diff --git a/usr/src/uts/intel/sys/cpu.h b/usr/src/uts/intel/sys/cpu.h index 8f4d5af138..9a4217d1ee 100644 --- a/usr/src/uts/intel/sys/cpu.h +++ b/usr/src/uts/intel/sys/cpu.h @@ -39,9 +39,15 @@ */ #include #include -#if defined(__GNUC__) && defined(_ASM_INLINES) && defined(_KERNEL) + +#if defined(_KERNEL) +#if defined(__xpv) +#include +#endif +#if defined(__GNUC__) && defined(_ASM_INLINES) #include #endif +#endif /* _KERNEL */ #ifdef __cplusplus extern "C" { @@ -59,7 +65,19 @@ extern void i86_mwait(uint32_t data, uint32_t extensions); /* * 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 */ diff --git a/usr/src/uts/intel/sys/kdi_machimpl.h b/usr/src/uts/intel/sys/kdi_machimpl.h index 5ded8b44c2..0d9de7d750 100644 --- a/usr/src/uts/intel/sys/kdi_machimpl.h +++ b/usr/src/uts/intel/sys/kdi_machimpl.h @@ -110,7 +110,11 @@ extern void kdi_idtr_set(gate_desc_t *, size_t); 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); diff --git a/usr/src/uts/intel/sys/kdi_regs.h b/usr/src/uts/intel/sys/kdi_regs.h index e896e29a64..eb813e8888 100644 --- a/usr/src/uts/intel/sys/kdi_regs.h +++ b/usr/src/uts/intel/sys/kdi_regs.h @@ -47,9 +47,6 @@ extern "C" { #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 diff --git a/usr/src/uts/intel/sys/privmregs.h b/usr/src/uts/intel/sys/privmregs.h new file mode 100644 index 0000000000..e0979ad04e --- /dev/null +++ b/usr/src/uts/intel/sys/privmregs.h @@ -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 + +#if defined(__amd64) + +#include + +#elif defined(__i386) + +#include + +#endif + +#endif /* _SYS_PRIVMREGS_H */ diff --git a/usr/src/uts/intel/sys/segments.h b/usr/src/uts/intel/sys/segments.h index b15131279f..1d301dc7ec 100644 --- a/usr/src/uts/intel/sys/segments.h +++ b/usr/src/uts/intel/sys/segments.h @@ -80,8 +80,49 @@ extern "C" { #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 wr_tsr(selector_t); extern void kmdb_enter(void); #if defined(__amd64) -extern void clr_ldt_sregs(void); /* * inlines for update_segregs @@ -149,6 +189,8 @@ extern void load_segment_registers(selector_t, selector_t, selector_t, selector_t, selector_t, selector_t); /* (alphabetical) */ #endif /* __i386 */ +selector_t get_cs_register(); + #if !defined(__amd64) /* @@ -289,6 +331,10 @@ typedef struct system_desc { #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_usegd(user_desc_t *, void *, size_t, uint_t, uint_t, 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 @@ void init_boot_gdt(user_desc_t *); #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 @@ void init_boot_gdt(user_desc_t *); #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 desctbr_t idt0_default_reg; 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 @@ extern struct tss dftss0; #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(); diff --git a/usr/src/uts/intel/sys/x86_archext.h b/usr/src/uts/intel/sys/x86_archext.h index e263c6663d..d19b352e37 100644 --- a/usr/src/uts/intel/sys/x86_archext.h +++ b/usr/src/uts/intel/sys/x86_archext.h @@ -589,15 +589,20 @@ extern void add_cpunode2devtree(processorid_t, struct cpuid_info *); 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 *); diff --git a/usr/src/uts/intel/vnic/Makefile b/usr/src/uts/intel/vnic/Makefile new file mode 100644 index 0000000000..2b72585c21 --- /dev/null +++ b/usr/src/uts/intel/vnic/Makefile @@ -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 diff --git a/usr/src/uts/req.flg b/usr/src/uts/req.flg index 09001d17c6..2f8af91710 100644 --- a/usr/src/uts/req.flg +++ b/usr/src/uts/req.flg @@ -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 + +# 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/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/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/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/fs -find_files "s.*" usr/src/common/acl -find_files "s.*" usr/src/common/zfs 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 diff --git a/usr/src/uts/sparc/Makefile.sparc.shared b/usr/src/uts/sparc/Makefile.sparc.shared index 4bd5a2975e..aa386b1e93 100644 --- a/usr/src/uts/sparc/Makefile.sparc.shared +++ b/usr/src/uts/sparc/Makefile.sparc.shared @@ -237,7 +237,7 @@ DRV_KMODS += ippctl sctp sctp6 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 diff --git a/usr/src/uts/sparc/os/minor_perm b/usr/src/uts/sparc/os/minor_perm index a7163440f6..b8b22f0bbd 100644 --- a/usr/src/uts/sparc/os/minor_perm +++ b/usr/src/uts/sparc/os/minor_perm @@ -169,5 +169,6 @@ pcwl:* 0666 root sys 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 diff --git a/usr/src/uts/sparc/os/name_to_major b/usr/src/uts/sparc/os/name_to_major index 28edfbc173..7b2bf99211 100644 --- a/usr/src/uts/sparc/os/name_to_major +++ b/usr/src/uts/sparc/os/name_to_major @@ -218,3 +218,4 @@ n2rng 269 physmem 270 ds_snmp 271 ds_pri 272 +vnic 273 diff --git a/usr/src/uts/sparc/vnic/Makefile b/usr/src/uts/sparc/vnic/Makefile new file mode 100644 index 0000000000..e8d4bc5507 --- /dev/null +++ b/usr/src/uts/sparc/vnic/Makefile @@ -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 diff --git a/usr/src/uts/sun4/io/cbe.c b/usr/src/uts/sun4/io/cbe.c index 79b0c75867..658621d877 100644 --- a/usr/src/uts/sun4/io/cbe.c +++ b/usr/src/uts/sun4/io/cbe.c @@ -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 @@ hrtime2tick(hrtime_t ts) return (q * sys_tick_freq + ((r * sys_tick_freq) / NANOSEC)); } -uint64_t +static uint64_t unscalehrtime(hrtime_t ts) { uint64_t unscale = 0; diff --git a/usr/src/uts/sun4/os/machdep.c b/usr/src/uts/sun4/os/machdep.c index 2dd3544868..4dec7e7bc5 100644 --- a/usr/src/uts/sun4/os/machdep.c +++ b/usr/src/uts/sun4/os/machdep.c @@ -500,7 +500,7 @@ cpu_kstat_intrstat_update(kstat_t *ksp, int rw) 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 @@ mach_cpu_pause(volatile char *safe) /*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 diff --git a/usr/src/uts/sun4/os/memlist.c b/usr/src/uts/sun4/os/memlist.c index fab93b55ad..9fbac7d65b 100644 --- a/usr/src/uts/sun4/os/memlist.c +++ b/usr/src/uts/sun4/os/memlist.c @@ -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 @@ fix_prom_pages(struct memlist *orig, struct memlist *new) * 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); diff --git a/usr/src/uts/sun4/os/startup.c b/usr/src/uts/sun4/os/startup.c index f4385cb32d..c83f87047f 100644 --- a/usr/src/uts/sun4/os/startup.c +++ b/usr/src/uts/sun4/os/startup.c @@ -627,7 +627,7 @@ uint64_t sync_tt; void sync_handler(void) { - struct trap_info ti; + struct panic_trap_info ti; int i; /* diff --git a/usr/src/uts/sun4/os/trap.c b/usr/src/uts/sun4/os/trap.c index 493696f046..82c8aebecd 100644 --- a/usr/src/uts/sun4/os/trap.c +++ b/usr/src/uts/sun4/os/trap.c @@ -86,7 +86,7 @@ void trap_rtt(void); 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) } 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) } 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) } 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) * 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) * 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 @@ trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t mmu_fsr) fault = FLTILL; break; } - } + } /* * T_FLUSHW is used when handling a ta 0x3 -- the old flush @@ -1376,7 +1376,7 @@ fpu_trap(struct regs *rp, caddr_t addr, uint32_t type, uint32_t code) } 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); diff --git a/usr/src/uts/sun4u/os/mach_cpu_states.c b/usr/src/uts/sun4u/os/mach_cpu_states.c index 985aa8f56b..50c34ed97c 100644 --- a/usr/src/uts/sun4u/os/mach_cpu_states.c +++ b/usr/src/uts/sun4u/os/mach_cpu_states.c @@ -200,7 +200,8 @@ panic_idle(void) CPU->cpu_m.in_prom = 1; membar_stld(); - for (;;); + for (;;) + continue; } /* @@ -263,7 +264,7 @@ panic_enter_hw(int spl) * 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 @@ ptl1_panic_handler(ptl1_state_t *pstate) 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 diff --git a/usr/src/uts/sun4u/os/mach_trap.c b/usr/src/uts/sun4u/os/mach_trap.c index f6ab0b999e..7b3f7c75c4 100644 --- a/usr/src/uts/sun4u/os/mach_trap.c +++ b/usr/src/uts/sun4u/os/mach_trap.c @@ -79,13 +79,13 @@ mmu_print_sfsr(uint_t sfsr) } 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 @@ ptl1_showtrap(ptl1_state_t *pstate) } 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 @@ ptl1_savetrap(panic_data_t *pdp, ptl1_state_t *pstate) } 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; diff --git a/usr/src/uts/sun4u/sys/machsystm.h b/usr/src/uts/sun4u/sys/machsystm.h index 86885bbef4..75302b3a9e 100644 --- a/usr/src/uts/sun4u/sys/machsystm.h +++ b/usr/src/uts/sun4u/sys/machsystm.h @@ -138,7 +138,7 @@ extern void *set_tba(void *); 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; diff --git a/usr/src/uts/sun4v/os/mach_cpu_states.c b/usr/src/uts/sun4v/os/mach_cpu_states.c index 7fd3e375d1..eb02b22270 100644 --- a/usr/src/uts/sun4v/os/mach_cpu_states.c +++ b/usr/src/uts/sun4v/os/mach_cpu_states.c @@ -307,7 +307,7 @@ panic_idle(void) membar_stld(); for (;;) - ; + continue; } /* @@ -531,7 +531,7 @@ ptl1_panic_handler(ptl1_state_t *pstate) 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 @@ kdi_tickwait(clock_t nticks) clock_t endtick = gettick() + nticks; while (gettick() < endtick) - ; + continue; } static void @@ -1456,10 +1456,9 @@ mach_set_soft_state(uint64_t state, uint64_t *string_ra) 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 @@ mach_get_soft_state(uint64_t *state, uint64_t *string_ra) 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; } } diff --git a/usr/src/uts/sun4v/os/mach_trap.c b/usr/src/uts/sun4v/os/mach_trap.c index e74c26df5a..fa5df2eb37 100644 --- a/usr/src/uts/sun4v/os/mach_trap.c +++ b/usr/src/uts/sun4v/os/mach_trap.c @@ -291,7 +291,7 @@ ptl1_showtrap(ptl1_state_t *pstate) } 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 @@ ptl1_savetrap(panic_data_t *pdp, ptl1_state_t *pstate) } 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; diff --git a/usr/src/uts/sun4v/sys/machsystm.h b/usr/src/uts/sun4v/sys/machsystm.h index 2b589eaec1..a7d31c6eca 100644 --- a/usr/src/uts/sun4v/sys/machsystm.h +++ b/usr/src/uts/sun4v/sys/machsystm.h @@ -136,7 +136,7 @@ extern void *set_tba(void *); 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; -- cgit v1.2.3