Date: Fri, 30 Aug 2013 01:33:28 +0000 (UTC) From: Lawrence Stewart <lstewart@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r255049 - in projects/diffused_head: . bin/ps bin/sh cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/common/ctf cddl/contrib/opensolaris/lib/libctf/common cddl/contrib/opens... Message-ID: <201308300133.r7U1XSqo047159@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: lstewart Date: Fri Aug 30 01:33:26 2013 New Revision: 255049 URL: http://svnweb.freebsd.org/changeset/base/255049 Log: Merge revs 254653:255047 from head. Added: projects/diffused_head/cddl/lib/libdtrace/ip.d - copied unchanged from r255047, head/cddl/lib/libdtrace/ip.d projects/diffused_head/cddl/lib/libdtrace/tcp.d - copied unchanged from r255047, head/cddl/lib/libdtrace/tcp.d projects/diffused_head/cddl/lib/libdtrace/udp.d - copied unchanged from r255047, head/cddl/lib/libdtrace/udp.d - copied from r255047, head/contrib/libexecinfo/ projects/diffused_head/contrib/llvm/tools/lldb/ - copied from r255047, head/contrib/llvm/tools/lldb/ projects/diffused_head/etc/periodic/monthly/450.status-security - copied unchanged from r255047, head/etc/periodic/monthly/450.status-security projects/diffused_head/etc/periodic/weekly/450.status-security - copied unchanged from r255047, head/etc/periodic/weekly/450.status-security projects/diffused_head/lib/libexecinfo/ - copied from r255047, head/lib/libexecinfo/ projects/diffused_head/share/man/man4/procdesc.4 - copied unchanged from r255047, head/share/man/man4/procdesc.4 projects/diffused_head/share/man/man4/vmx.4 - copied unchanged from r255047, head/share/man/man4/vmx.4 projects/diffused_head/sys/contrib/dev/drm2/ - copied from r255047, head/sys/contrib/dev/drm2/ projects/diffused_head/sys/contrib/dev/iwn/iwlwifi-2000-18.168.6.1.fw.uu - copied unchanged from r255047, head/sys/contrib/dev/iwn/iwlwifi-2000-18.168.6.1.fw.uu projects/diffused_head/sys/dev/drm2/ati_pcigart.c - copied unchanged from r255047, head/sys/dev/drm2/ati_pcigart.c projects/diffused_head/sys/dev/drm2/drm_buffer.c - copied unchanged from r255047, head/sys/dev/drm2/drm_buffer.c projects/diffused_head/sys/dev/drm2/drm_buffer.h - copied unchanged from r255047, head/sys/dev/drm2/drm_buffer.h projects/diffused_head/sys/dev/drm2/drm_core.h - copied unchanged from r255047, head/sys/dev/drm2/drm_core.h projects/diffused_head/sys/dev/drm2/drm_dp_helper.c - copied unchanged from r255047, head/sys/dev/drm2/drm_dp_helper.c projects/diffused_head/sys/dev/drm2/drm_fixed.h - copied unchanged from r255047, head/sys/dev/drm2/drm_fixed.h projects/diffused_head/sys/dev/drm2/drm_os_freebsd.h - copied unchanged from r255047, head/sys/dev/drm2/drm_os_freebsd.h projects/diffused_head/sys/dev/drm2/radeon/ - copied from r255047, head/sys/dev/drm2/radeon/ projects/diffused_head/sys/dev/iscsi_initiator/ - copied from r255047, head/sys/dev/iscsi_initiator/ projects/diffused_head/sys/dev/vmware/ - copied from r255047, head/sys/dev/vmware/ projects/diffused_head/sys/dev/xen/timer/ - copied from r255047, head/sys/dev/xen/timer/ projects/diffused_head/sys/modules/drm2/radeonkms/ - copied from r255047, head/sys/modules/drm2/radeonkms/ projects/diffused_head/sys/modules/drm2/radeonkmsfw/ - copied from r255047, head/sys/modules/drm2/radeonkmsfw/ projects/diffused_head/sys/modules/iscsi_initiator/ - copied from r255047, head/sys/modules/iscsi_initiator/ projects/diffused_head/sys/modules/iwnfw/iwn2000/ - copied from r255047, head/sys/modules/iwnfw/iwn2000/ projects/diffused_head/sys/modules/vmware/ - copied from r255047, head/sys/modules/vmware/ projects/diffused_head/sys/netinet/in_kdtrace.c - copied unchanged from r255047, head/sys/netinet/in_kdtrace.c projects/diffused_head/sys/netinet/in_kdtrace.h - copied unchanged from r255047, head/sys/netinet/in_kdtrace.h projects/diffused_head/sys/x86/xen/ - copied from r255047, head/sys/x86/xen/ projects/diffused_head/sys/xen/evtchn/evtchnvar.h - copied unchanged from r255047, head/sys/xen/evtchn/evtchnvar.h projects/diffused_head/sys/xen/xen-os.h - copied unchanged from r255047, head/sys/xen/xen-os.h projects/diffused_head/tools/build/options/WITHOUT_ICONV - copied unchanged from r255047, head/tools/build/options/WITHOUT_ICONV projects/diffused_head/tools/build/options/WITH_LIBICONV_COMPAT - copied unchanged from r255047, head/tools/build/options/WITH_LIBICONV_COMPAT projects/diffused_head/tools/build/options/WITH_USB_GADGET_EXAMPLES - copied unchanged from r255047, head/tools/build/options/WITH_USB_GADGET_EXAMPLES projects/diffused_head/tools/regression/bin/sh/builtins/alias4.0 - copied unchanged from r255047, head/tools/regression/bin/sh/builtins/alias4.0 projects/diffused_head/tools/regression/bin/sh/expansion/arith13.0 - copied unchanged from r255047, head/tools/regression/bin/sh/expansion/arith13.0 projects/diffused_head/tools/regression/bin/sh/parser/empty-cmd1.0 - copied unchanged from r255047, head/tools/regression/bin/sh/parser/empty-cmd1.0 projects/diffused_head/tools/regression/file/fcntlflags/ - copied from r255047, head/tools/regression/file/fcntlflags/ projects/diffused_head/tools/tools/drm/ - copied from r255047, head/tools/tools/drm/ Directory Properties: projects/diffused_head/contrib/libexecinfo/ (props changed) Deleted: projects/diffused_head/sys/dev/iscsi/initiator/ projects/diffused_head/sys/dev/xen/xenpci/evtchn.c projects/diffused_head/sys/i386/include/xen/xen_clock_util.h projects/diffused_head/sys/i386/xen/xen_clock_util.c projects/diffused_head/sys/i386/xen/xen_rtc.c projects/diffused_head/sys/modules/iscsi/initiator/ projects/diffused_head/sys/xen/evtchn/evtchn.c projects/diffused_head/tools/build/options/WITH_BSDCONFIG projects/diffused_head/tools/build/options/WITH_GNU_PATCH projects/diffused_head/tools/build/options/WITH_ICONV Modified: projects/diffused_head/ObsoleteFiles.inc projects/diffused_head/UPDATING projects/diffused_head/bin/ps/keyword.c projects/diffused_head/bin/ps/ps.1 projects/diffused_head/bin/sh/alias.c projects/diffused_head/bin/sh/arith_yylex.c projects/diffused_head/bin/sh/jobs.c projects/diffused_head/bin/sh/parser.c projects/diffused_head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_create.c projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_error.c projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_impl.h projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_open.c projects/diffused_head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c projects/diffused_head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c projects/diffused_head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c projects/diffused_head/cddl/lib/libdtrace/Makefile projects/diffused_head/cddl/lib/libzpool/Makefile projects/diffused_head/cddl/usr.bin/ztest/Makefile projects/diffused_head/cddl/usr.sbin/zdb/Makefile projects/diffused_head/contrib/llvm/include/llvm/MC/MCInstPrinter.h projects/diffused_head/contrib/llvm/lib/MC/MCInstPrinter.cpp projects/diffused_head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp projects/diffused_head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp projects/diffused_head/contrib/pam_modules/pam_passwdqc/pam_passwdqc.c projects/diffused_head/etc/defaults/periodic.conf projects/diffused_head/etc/mtree/BSD.usr.dist projects/diffused_head/etc/network.subr projects/diffused_head/etc/periodic/monthly/Makefile projects/diffused_head/etc/periodic/security/100.chksetuid projects/diffused_head/etc/periodic/security/110.neggrpperm projects/diffused_head/etc/periodic/security/200.chkmounts projects/diffused_head/etc/periodic/security/300.chkuid0 projects/diffused_head/etc/periodic/security/400.passwdless projects/diffused_head/etc/periodic/security/410.logincheck projects/diffused_head/etc/periodic/security/460.chkportsum projects/diffused_head/etc/periodic/security/500.ipfwdenied projects/diffused_head/etc/periodic/security/510.ipfdenied projects/diffused_head/etc/periodic/security/520.pfdenied projects/diffused_head/etc/periodic/security/550.ipfwlimit projects/diffused_head/etc/periodic/security/610.ipf6denied projects/diffused_head/etc/periodic/security/700.kernelmsg projects/diffused_head/etc/periodic/security/800.loginfail projects/diffused_head/etc/periodic/security/900.tcpwrap projects/diffused_head/etc/periodic/security/security.functions projects/diffused_head/etc/periodic/weekly/Makefile projects/diffused_head/etc/rc.d/savecore projects/diffused_head/gnu/usr.bin/patch/Makefile projects/diffused_head/lib/libc/gen/wordexp.c projects/diffused_head/lib/libc/include/libc_private.h projects/diffused_head/lib/libc/net/ether_addr.c projects/diffused_head/lib/libc/net/eui64.c projects/diffused_head/lib/libc/net/getaddrinfo.c projects/diffused_head/lib/libc/net/gethostbyht.c projects/diffused_head/lib/libc/net/getnetbyht.c projects/diffused_head/lib/libc/net/getprotoent.c projects/diffused_head/lib/libc/net/getservent.c projects/diffused_head/lib/libc/net/hesiod.c projects/diffused_head/lib/libc/net/nsdispatch.c projects/diffused_head/lib/libc/net/rcmd.c projects/diffused_head/lib/libc/posix1e/mac.c projects/diffused_head/lib/libc/resolv/res_init.c projects/diffused_head/lib/libc/resolv/res_query.c projects/diffused_head/lib/libc/sys/chflags.2 projects/diffused_head/lib/libc/sys/pdfork.2 projects/diffused_head/lib/libpam/modules/pam_passwdqc/Makefile projects/diffused_head/lib/libutil/login_auth.c projects/diffused_head/lib/libutil/login_cap.c projects/diffused_head/lib/libutil/pidfile.c projects/diffused_head/lib/libutil/quotafile.c projects/diffused_head/lib/libutil/uucplock.c projects/diffused_head/lib/msun/src/s_erf.c projects/diffused_head/lib/msun/src/s_erff.c projects/diffused_head/release/scripts/mm-mtree.sh projects/diffused_head/sbin/camcontrol/camcontrol.c projects/diffused_head/sbin/iscontrol/auth_subr.c projects/diffused_head/sbin/iscontrol/config.c projects/diffused_head/sbin/iscontrol/fsm.c projects/diffused_head/sbin/iscontrol/iscontrol.c projects/diffused_head/sbin/iscontrol/login.c projects/diffused_head/sbin/iscontrol/misc.c projects/diffused_head/sbin/iscontrol/pdu.c projects/diffused_head/share/man/man4/Makefile projects/diffused_head/share/man/man4/capsicum.4 projects/diffused_head/share/man/man4/cd.4 projects/diffused_head/share/man/man4/sa.4 projects/diffused_head/share/man/man4/sysmouse.4 projects/diffused_head/share/man/man5/periodic.conf.5 projects/diffused_head/share/man/man5/src.conf.5 projects/diffused_head/share/man/man9/EVENTHANDLER.9 projects/diffused_head/share/man/man9/Makefile projects/diffused_head/share/man/man9/atomic.9 projects/diffused_head/share/man/man9/pfil.9 projects/diffused_head/share/man/man9/timeout.9 projects/diffused_head/share/man/man9/vm_page_grab.9 projects/diffused_head/share/misc/committers-src.dot projects/diffused_head/share/mk/bsd.own.mk projects/diffused_head/share/mk/sys.mk projects/diffused_head/sys/amd64/amd64/apic_vector.S projects/diffused_head/sys/amd64/amd64/machdep.c projects/diffused_head/sys/amd64/amd64/mp_machdep.c projects/diffused_head/sys/amd64/amd64/pmap.c projects/diffused_head/sys/amd64/include/apicvar.h projects/diffused_head/sys/amd64/include/intr_machdep.h projects/diffused_head/sys/amd64/include/pcpu.h projects/diffused_head/sys/amd64/include/xen/hypercall.h projects/diffused_head/sys/amd64/include/xen/xen-os.h projects/diffused_head/sys/amd64/vmm/vmm_instruction_emul.c projects/diffused_head/sys/arm/arm/irq_dispatch.S projects/diffused_head/sys/arm/arm/pmap-v6.c projects/diffused_head/sys/arm/arm/pmap.c projects/diffused_head/sys/arm/arm/swtch.S projects/diffused_head/sys/arm/conf/VERSATILEPB projects/diffused_head/sys/arm/include/param.h projects/diffused_head/sys/arm/include/pmap.h projects/diffused_head/sys/arm/include/pte.h projects/diffused_head/sys/arm/include/vmparam.h projects/diffused_head/sys/boot/forth/beastie.4th projects/diffused_head/sys/boot/forth/version.4th projects/diffused_head/sys/boot/forth/version.4th.8 projects/diffused_head/sys/boot/i386/libi386/biosacpi.c projects/diffused_head/sys/cam/cam_xpt.c projects/diffused_head/sys/cam/ctl/ctl.c projects/diffused_head/sys/cam/ctl/ctl.h projects/diffused_head/sys/cam/ctl/ctl_backend.h projects/diffused_head/sys/cam/ctl/ctl_backend_block.c projects/diffused_head/sys/cam/ctl/ctl_backend_ramdisk.c projects/diffused_head/sys/cam/ctl/ctl_frontend.h projects/diffused_head/sys/cam/ctl/ctl_io.h projects/diffused_head/sys/cam/scsi/scsi_all.c projects/diffused_head/sys/cam/scsi/scsi_ch.c projects/diffused_head/sys/cam/scsi/scsi_sa.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/diffused_head/sys/cddl/contrib/opensolaris/uts/common/sys/ctf_api.h projects/diffused_head/sys/cddl/dev/dtrace/dtrace_load.c projects/diffused_head/sys/cddl/dev/dtrace/dtrace_unload.c projects/diffused_head/sys/cddl/dev/fbt/fbt.c projects/diffused_head/sys/cddl/dev/sdt/sdt.c projects/diffused_head/sys/compat/freebsd32/freebsd32.h projects/diffused_head/sys/compat/ndis/kern_ndis.c projects/diffused_head/sys/compat/ndis/ndis_var.h projects/diffused_head/sys/conf/Makefile.amd64 projects/diffused_head/sys/conf/files projects/diffused_head/sys/conf/files.amd64 projects/diffused_head/sys/conf/files.i386 projects/diffused_head/sys/contrib/dev/acpica/acpica_prep.sh projects/diffused_head/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/diffused_head/sys/contrib/dev/acpica/common/adisasm.c projects/diffused_head/sys/contrib/dev/acpica/common/adwalk.c projects/diffused_head/sys/contrib/dev/acpica/common/dmextern.c projects/diffused_head/sys/contrib/dev/acpica/common/dmtable.c projects/diffused_head/sys/contrib/dev/acpica/compiler/aslcompile.c projects/diffused_head/sys/contrib/dev/acpica/compiler/aslglobal.h projects/diffused_head/sys/contrib/dev/acpica/compiler/aslload.c projects/diffused_head/sys/contrib/dev/acpica/compiler/aslmain.c projects/diffused_head/sys/contrib/dev/acpica/compiler/asloptions.c projects/diffused_head/sys/contrib/dev/acpica/compiler/dtcompile.c projects/diffused_head/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/diffused_head/sys/contrib/dev/acpica/components/debugger/dbfileio.c projects/diffused_head/sys/contrib/dev/acpica/components/debugger/dbinput.c projects/diffused_head/sys/contrib/dev/acpica/components/debugger/dbnames.c projects/diffused_head/sys/contrib/dev/acpica/components/events/evgpeutil.c projects/diffused_head/sys/contrib/dev/acpica/components/events/evmisc.c projects/diffused_head/sys/contrib/dev/acpica/components/events/evregion.c projects/diffused_head/sys/contrib/dev/acpica/components/events/evsci.c projects/diffused_head/sys/contrib/dev/acpica/components/events/evxface.c projects/diffused_head/sys/contrib/dev/acpica/components/hardware/hwxface.c projects/diffused_head/sys/contrib/dev/acpica/components/namespace/nsaccess.c projects/diffused_head/sys/contrib/dev/acpica/components/namespace/nsdump.c projects/diffused_head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/diffused_head/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/diffused_head/sys/contrib/dev/acpica/components/tables/tbprint.c projects/diffused_head/sys/contrib/dev/acpica/components/tables/tbxfroot.c projects/diffused_head/sys/contrib/dev/acpica/components/utilities/utdebug.c projects/diffused_head/sys/contrib/dev/acpica/components/utilities/utglobal.c projects/diffused_head/sys/contrib/dev/acpica/include/acdebug.h projects/diffused_head/sys/contrib/dev/acpica/include/acdisasm.h projects/diffused_head/sys/contrib/dev/acpica/include/acevents.h projects/diffused_head/sys/contrib/dev/acpica/include/acexcep.h projects/diffused_head/sys/contrib/dev/acpica/include/acglobal.h projects/diffused_head/sys/contrib/dev/acpica/include/aclocal.h projects/diffused_head/sys/contrib/dev/acpica/include/acnamesp.h projects/diffused_head/sys/contrib/dev/acpica/include/acpiosxf.h projects/diffused_head/sys/contrib/dev/acpica/include/acpixf.h projects/diffused_head/sys/contrib/dev/acpica/include/actypes.h projects/diffused_head/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c projects/diffused_head/sys/contrib/rdma/krping/krping.c projects/diffused_head/sys/contrib/rdma/krping/krping.h projects/diffused_head/sys/contrib/rdma/krping/krping_dev.c projects/diffused_head/sys/dev/ahci/ahci.c projects/diffused_head/sys/dev/amdtemp/amdtemp.c projects/diffused_head/sys/dev/ath/if_ath.c projects/diffused_head/sys/dev/cas/if_cas.c projects/diffused_head/sys/dev/cxgb/cxgb_sge.c projects/diffused_head/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c projects/diffused_head/sys/dev/cxgbe/adapter.h projects/diffused_head/sys/dev/cxgbe/offload.h projects/diffused_head/sys/dev/cxgbe/osdep.h projects/diffused_head/sys/dev/cxgbe/t4_main.c projects/diffused_head/sys/dev/cxgbe/t4_sge.c projects/diffused_head/sys/dev/cxgbe/t4_tracer.c projects/diffused_head/sys/dev/cxgbe/tom/t4_cpl_io.c projects/diffused_head/sys/dev/cxgbe/tom/t4_tom.c projects/diffused_head/sys/dev/drm2/drmP.h projects/diffused_head/sys/dev/drm2/drm_atomic.h projects/diffused_head/sys/dev/drm2/drm_context.c projects/diffused_head/sys/dev/drm2/drm_crtc.c projects/diffused_head/sys/dev/drm2/drm_crtc.h projects/diffused_head/sys/dev/drm2/drm_crtc_helper.h projects/diffused_head/sys/dev/drm2/drm_dp_helper.h projects/diffused_head/sys/dev/drm2/drm_dp_iic_helper.c projects/diffused_head/sys/dev/drm2/drm_drv.c projects/diffused_head/sys/dev/drm2/drm_edid.c projects/diffused_head/sys/dev/drm2/drm_gem.c projects/diffused_head/sys/dev/drm2/drm_gem_names.c projects/diffused_head/sys/dev/drm2/drm_ioctl.c projects/diffused_head/sys/dev/drm2/drm_irq.c projects/diffused_head/sys/dev/drm2/drm_linux_list.h projects/diffused_head/sys/dev/drm2/drm_pci.c projects/diffused_head/sys/dev/drm2/drm_pciids.h projects/diffused_head/sys/dev/drm2/drm_sysctl.c projects/diffused_head/sys/dev/drm2/i915/i915_gem.c projects/diffused_head/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/diffused_head/sys/dev/drm2/i915/intel_crt.c projects/diffused_head/sys/dev/drm2/i915/intel_display.c projects/diffused_head/sys/dev/drm2/i915/intel_dp.c projects/diffused_head/sys/dev/drm2/i915/intel_drv.h projects/diffused_head/sys/dev/drm2/i915/intel_hdmi.c projects/diffused_head/sys/dev/drm2/i915/intel_lvds.c projects/diffused_head/sys/dev/drm2/i915/intel_panel.c projects/diffused_head/sys/dev/drm2/i915/intel_sdvo.c projects/diffused_head/sys/dev/drm2/i915/intel_tv.c projects/diffused_head/sys/dev/drm2/ttm/ttm_bo.c projects/diffused_head/sys/dev/drm2/ttm/ttm_bo_driver.h projects/diffused_head/sys/dev/drm2/ttm/ttm_bo_util.c projects/diffused_head/sys/dev/drm2/ttm/ttm_bo_vm.c projects/diffused_head/sys/dev/drm2/ttm/ttm_execbuf_util.c projects/diffused_head/sys/dev/drm2/ttm/ttm_page_alloc.c projects/diffused_head/sys/dev/drm2/ttm/ttm_tt.c projects/diffused_head/sys/dev/e1000/if_igb.c projects/diffused_head/sys/dev/fb/vesa.c projects/diffused_head/sys/dev/fdc/fdc.c projects/diffused_head/sys/dev/flash/mx25l.c projects/diffused_head/sys/dev/gpio/gpiobus.c projects/diffused_head/sys/dev/hatm/if_hatm_intr.c projects/diffused_head/sys/dev/hwpmc/hwpmc_core.c projects/diffused_head/sys/dev/hwpmc/hwpmc_mod.c projects/diffused_head/sys/dev/hwpmc/pmc_events.h projects/diffused_head/sys/dev/if_ndis/if_ndis.c projects/diffused_head/sys/dev/iwn/if_iwn.c projects/diffused_head/sys/dev/ixgbe/ixgbe.c projects/diffused_head/sys/dev/ixgbe/ixv.c projects/diffused_head/sys/dev/jme/if_jme.c projects/diffused_head/sys/dev/lge/if_lge.c projects/diffused_head/sys/dev/mfi/mfi_cam.c projects/diffused_head/sys/dev/mmc/mmc.c projects/diffused_head/sys/dev/mwl/if_mwl.c projects/diffused_head/sys/dev/nfe/if_nfe.c projects/diffused_head/sys/dev/patm/if_patm.c projects/diffused_head/sys/dev/patm/if_patm_tx.c projects/diffused_head/sys/dev/pci/pcivar.h projects/diffused_head/sys/dev/pci/vga_pci.c projects/diffused_head/sys/dev/qlxgb/qla_hw.c projects/diffused_head/sys/dev/qlxgbe/ql_misc.c projects/diffused_head/sys/dev/qlxgbe/ql_os.c projects/diffused_head/sys/dev/sfxge/sfxge_rx.c projects/diffused_head/sys/dev/uart/uart_dev_ns8250.c projects/diffused_head/sys/dev/usb/controller/dwc_otg.c projects/diffused_head/sys/dev/usb/controller/musb_otg.c projects/diffused_head/sys/dev/wb/if_wb.c projects/diffused_head/sys/dev/xen/balloon/balloon.c projects/diffused_head/sys/dev/xen/blkback/blkback.c projects/diffused_head/sys/dev/xen/blkfront/blkfront.c projects/diffused_head/sys/dev/xen/blkfront/block.h projects/diffused_head/sys/dev/xen/console/console.c projects/diffused_head/sys/dev/xen/console/xencons_ring.c projects/diffused_head/sys/dev/xen/control/control.c projects/diffused_head/sys/dev/xen/netback/netback.c projects/diffused_head/sys/dev/xen/netfront/netfront.c projects/diffused_head/sys/dev/xen/xenpci/xenpci.c projects/diffused_head/sys/dev/xen/xenpci/xenpcivar.h projects/diffused_head/sys/fs/nfs/nfs.h projects/diffused_head/sys/fs/tmpfs/tmpfs_subr.c projects/diffused_head/sys/fs/tmpfs/tmpfs_vfsops.c projects/diffused_head/sys/geom/geom_disk.c projects/diffused_head/sys/geom/zero/g_zero.c projects/diffused_head/sys/i386/i386/apic_vector.s projects/diffused_head/sys/i386/i386/genassym.c projects/diffused_head/sys/i386/i386/machdep.c projects/diffused_head/sys/i386/i386/mp_machdep.c projects/diffused_head/sys/i386/i386/pmap.c projects/diffused_head/sys/i386/include/apicvar.h projects/diffused_head/sys/i386/include/intr_machdep.h projects/diffused_head/sys/i386/include/pcpu.h projects/diffused_head/sys/i386/include/pmap.h projects/diffused_head/sys/i386/include/xen/xen-os.h projects/diffused_head/sys/i386/include/xen/xenfunc.h projects/diffused_head/sys/i386/include/xen/xenvar.h projects/diffused_head/sys/i386/isa/npx.c projects/diffused_head/sys/i386/xen/clock.c projects/diffused_head/sys/i386/xen/exception.s projects/diffused_head/sys/i386/xen/locore.s projects/diffused_head/sys/i386/xen/mp_machdep.c projects/diffused_head/sys/i386/xen/mptable.c projects/diffused_head/sys/i386/xen/pmap.c projects/diffused_head/sys/i386/xen/xen_machdep.c projects/diffused_head/sys/ia64/ia64/pmap.c projects/diffused_head/sys/kern/kern_event.c projects/diffused_head/sys/kern/kern_jail.c projects/diffused_head/sys/kern/kern_linker.c projects/diffused_head/sys/kern/kern_mbuf.c projects/diffused_head/sys/kern/kern_physio.c projects/diffused_head/sys/kern/kern_proc.c projects/diffused_head/sys/kern/link_elf.c projects/diffused_head/sys/kern/subr_mbpool.c projects/diffused_head/sys/kern/subr_taskqueue.c projects/diffused_head/sys/kern/uipc_cow.c projects/diffused_head/sys/kern/uipc_mbuf.c projects/diffused_head/sys/kern/uipc_socket.c projects/diffused_head/sys/kern/uipc_syscalls.c projects/diffused_head/sys/kern/vfs_bio.c projects/diffused_head/sys/kern/vfs_cluster.c projects/diffused_head/sys/mips/atheros/ar71xx_spi.c projects/diffused_head/sys/mips/atheros/if_arge.c projects/diffused_head/sys/mips/conf/DIR-825.hints projects/diffused_head/sys/mips/conf/ROUTERSTATION.hints projects/diffused_head/sys/mips/malta/gt_pci.c projects/diffused_head/sys/mips/malta/yamon.c projects/diffused_head/sys/mips/mips/pmap.c projects/diffused_head/sys/modules/Makefile projects/diffused_head/sys/modules/drm2/Makefile projects/diffused_head/sys/modules/drm2/drm2/Makefile projects/diffused_head/sys/modules/ip6_mroute_mod/Makefile projects/diffused_head/sys/modules/linux/Makefile projects/diffused_head/sys/modules/rdma/Makefile projects/diffused_head/sys/net/if.h projects/diffused_head/sys/net/if_fddisubr.c projects/diffused_head/sys/net/if_iso88025subr.c projects/diffused_head/sys/net/if_lagg.c projects/diffused_head/sys/net/if_lagg.h projects/diffused_head/sys/net/if_llatbl.h projects/diffused_head/sys/net/if_pfsync.h projects/diffused_head/sys/net/pfil.c projects/diffused_head/sys/net/pfil.h projects/diffused_head/sys/net80211/ieee80211_output.c projects/diffused_head/sys/net80211/ieee80211_proto.h projects/diffused_head/sys/net80211/ieee80211_superg.c projects/diffused_head/sys/netinet/icmp_var.h projects/diffused_head/sys/netinet/igmp.c projects/diffused_head/sys/netinet/igmp_var.h projects/diffused_head/sys/netinet/in.h projects/diffused_head/sys/netinet/ip_fastfwd.c projects/diffused_head/sys/netinet/ip_input.c projects/diffused_head/sys/netinet/ip_output.c projects/diffused_head/sys/netinet/pim_var.h projects/diffused_head/sys/netinet/sctp_input.c projects/diffused_head/sys/netinet/sctp_structs.h projects/diffused_head/sys/netinet/sctp_uio.h projects/diffused_head/sys/netinet/tcp_input.c projects/diffused_head/sys/netinet/tcp_lro.c projects/diffused_head/sys/netinet/tcp_lro.h projects/diffused_head/sys/netinet/tcp_output.c projects/diffused_head/sys/netinet/tcp_subr.c projects/diffused_head/sys/netinet/tcp_syncache.c projects/diffused_head/sys/netinet/tcp_usrreq.c projects/diffused_head/sys/netinet/tcp_var.h projects/diffused_head/sys/netinet/udp_usrreq.c projects/diffused_head/sys/netinet/udp_var.h projects/diffused_head/sys/netinet6/ip6_input.c projects/diffused_head/sys/netinet6/ip6_mroute.c projects/diffused_head/sys/netinet6/ip6_output.c projects/diffused_head/sys/netinet6/mld6.c projects/diffused_head/sys/netinet6/nd6.c projects/diffused_head/sys/netinet6/pim6_var.h projects/diffused_head/sys/netinet6/sctp6_usrreq.c projects/diffused_head/sys/netinet6/send.c projects/diffused_head/sys/netinet6/udp6_usrreq.c projects/diffused_head/sys/netipsec/ipsec.h projects/diffused_head/sys/netipsec/key_var.h projects/diffused_head/sys/netpfil/ipfw/ip_dummynet.c projects/diffused_head/sys/netpfil/ipfw/ip_fw2.c projects/diffused_head/sys/netpfil/ipfw/ip_fw_nat.c projects/diffused_head/sys/netpfil/ipfw/ip_fw_private.h projects/diffused_head/sys/ofed/drivers/net/mlx4/en_frag.c projects/diffused_head/sys/ofed/include/linux/net.h projects/diffused_head/sys/pc98/pc98/machdep.c projects/diffused_head/sys/powerpc/aim/mmu_oea.c projects/diffused_head/sys/powerpc/aim/mmu_oea64.c projects/diffused_head/sys/powerpc/booke/pmap.c projects/diffused_head/sys/powerpc/powermac/kiic.c projects/diffused_head/sys/powerpc/powerpc/mmu_if.m projects/diffused_head/sys/powerpc/powerpc/pmap_dispatch.c projects/diffused_head/sys/sparc64/sparc64/pmap.c projects/diffused_head/sys/sys/buf.h projects/diffused_head/sys/sys/callout.h projects/diffused_head/sys/sys/conf.h projects/diffused_head/sys/sys/eventhandler.h projects/diffused_head/sys/sys/fcntl.h projects/diffused_head/sys/sys/jail.h projects/diffused_head/sys/sys/kernel.h projects/diffused_head/sys/sys/mbpool.h projects/diffused_head/sys/sys/mbuf.h projects/diffused_head/sys/sys/mount.h projects/diffused_head/sys/sys/param.h projects/diffused_head/sys/sys/pmckern.h projects/diffused_head/sys/sys/sf_buf.h projects/diffused_head/sys/sys/socket.h projects/diffused_head/sys/sys/sysctl.h projects/diffused_head/sys/sys/user.h projects/diffused_head/sys/ufs/ffs/ffs_alloc.c projects/diffused_head/sys/ufs/ufs/ufs_dirhash.c projects/diffused_head/sys/vm/pmap.h projects/diffused_head/sys/vm/vm_map.c projects/diffused_head/sys/vm/vm_page.c projects/diffused_head/sys/vm/vm_radix.c projects/diffused_head/sys/vm/vm_radix.h projects/diffused_head/sys/x86/include/segments.h projects/diffused_head/sys/x86/x86/local_apic.c projects/diffused_head/sys/xen/evtchn.h projects/diffused_head/sys/xen/evtchn/evtchn_dev.c projects/diffused_head/sys/xen/features.c projects/diffused_head/sys/xen/gnttab.c projects/diffused_head/sys/xen/gnttab.h projects/diffused_head/sys/xen/hvm.h projects/diffused_head/sys/xen/interface/event_channel.h projects/diffused_head/sys/xen/xen_intr.h projects/diffused_head/sys/xen/xenbus/xenbus.c projects/diffused_head/sys/xen/xenbus/xenbus_if.m projects/diffused_head/sys/xen/xenbus/xenbusb_front.c projects/diffused_head/sys/xen/xenbus/xenbusvar.h projects/diffused_head/sys/xen/xenstore/xenstore.c projects/diffused_head/sys/xen/xenstore/xenstore_dev.c projects/diffused_head/sys/xen/xenstore/xenstorevar.h projects/diffused_head/tools/tools/README projects/diffused_head/usr.bin/brandelf/brandelf.1 projects/diffused_head/usr.bin/dtc/dtc.1 projects/diffused_head/usr.bin/kdump/kdump.c projects/diffused_head/usr.bin/kdump/mksubr projects/diffused_head/usr.bin/patch/Makefile projects/diffused_head/usr.sbin/bhyve/pci_emul.c projects/diffused_head/usr.sbin/bhyve/pci_virtio_block.c projects/diffused_head/usr.sbin/crashinfo/crashinfo.sh projects/diffused_head/usr.sbin/jail/jail.8 projects/diffused_head/usr.sbin/mfiutil/mfi_drive.c projects/diffused_head/usr.sbin/mfiutil/mfiutil.8 projects/diffused_head/usr.sbin/mfiutil/mfiutil.c projects/diffused_head/usr.sbin/periodic/periodic.sh projects/diffused_head/usr.sbin/rtadvd/config.c Directory Properties: projects/diffused_head/ (props changed) projects/diffused_head/cddl/ (props changed) projects/diffused_head/cddl/contrib/opensolaris/ (props changed) projects/diffused_head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/diffused_head/contrib/llvm/ (props changed) projects/diffused_head/lib/libc/ (props changed) projects/diffused_head/lib/libutil/ (props changed) projects/diffused_head/sbin/ (props changed) projects/diffused_head/share/man/man4/ (props changed) projects/diffused_head/sys/ (props changed) projects/diffused_head/sys/amd64/include/xen/ (props changed) projects/diffused_head/sys/amd64/vmm/ (props changed) projects/diffused_head/sys/boot/ (props changed) projects/diffused_head/sys/cddl/contrib/opensolaris/ (props changed) projects/diffused_head/sys/conf/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/common/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/compiler/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/events/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/tables/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/include/ (props changed) projects/diffused_head/sys/contrib/dev/acpica/os_specific/ (props changed) projects/diffused_head/usr.sbin/bhyve/ (props changed) projects/diffused_head/usr.sbin/jail/ (props changed) projects/diffused_head/usr.sbin/rtadvd/ (props changed) Modified: projects/diffused_head/ObsoleteFiles.inc ============================================================================== --- projects/diffused_head/ObsoleteFiles.inc Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/ObsoleteFiles.inc Fri Aug 30 01:33:26 2013 (r255049) @@ -38,6 +38,17 @@ # xargs -n1 | sort | uniq -d; # done +# 20130829: bsdpatch is patch unconditionally +OLD_FILES+=usr/bin/bsdpatch +OLD_FILES+=usr/share/man/man1/bsdpatch.1.gz +# 20130822: bind 9.9.3-P2 import +OLD_LIBS+=usr/lib/liblwres.so.80 +# 20130814: vm_page_busy(9) +OLD_FILES+=usr/share/man/man9/vm_page_flash.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_io.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_io_finish.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_io_start.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_wakeup.9.gz # 20130710: libkvm version bump OLD_LIBS+=lib/libkvm.so.5 OLD_LIBS+=usr/lib32/libkvm.so.5 @@ -114,6 +125,7 @@ OLD_FILES+=usr/include/clang/3.2/xmmintr OLD_FILES+=usr/include/clang/3.2/xopintrin.h OLD_DIRS+=usr/include/clang/3.2 # 20130404: legacy ATA stack removed +OLD_FILES+=etc/periodic/daily/405.status-ata-raid OLD_FILES+=rescue/atacontrol OLD_FILES+=sbin/atacontrol OLD_FILES+=usr/share/man/man8/atacontrol.8.gz Modified: projects/diffused_head/UPDATING ============================================================================== --- projects/diffused_head/UPDATING Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/UPDATING Fri Aug 30 01:33:26 2013 (r255049) @@ -31,6 +31,19 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130827: + Thomas Dickey (vendor author thereof) reports that dialog(1) since + 2011/10/18 has a bug in handling --hline. Testers and I noticed the + --hline is not ignored but displayed as a NULL string, regardless of + value. This will cause confusion in some bsdconfig dialogs where the + --hline is used to inform users which keybindings to use. This will + likewise affect any other persons relying on --hline. It also looks + rather strange seeing "[]" at the bottom of dialog(1) widgets when + passing --hline "anything". Thomas said he will have a look in a few + weeks. NOTE: The "[]" brackets appear with the left-edge where it + would normally appear given the width of text to display, but the + displayed text is not there (part of the bug). + 20130821: The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. Thus "device padlock_rng" and "device rdrand_rng" should be Modified: projects/diffused_head/bin/ps/keyword.c ============================================================================== --- projects/diffused_head/bin/ps/keyword.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/ps/keyword.c Fri Aug 30 01:33:26 2013 (r255049) @@ -87,6 +87,7 @@ static VAR var[] = { {"etimes", "ELAPSED", NULL, USER, elapseds, 0, CHAR, NULL, 0}, {"euid", "", "uid", 0, NULL, 0, CHAR, NULL, 0}, {"f", "F", NULL, 0, kvar, KOFF(ki_flag), INT, "x", 0}, + {"fib", "FIB", NULL, 0, kvar, KOFF(ki_fibnum), INT, "d", 0}, {"flags", "", "f", 0, NULL, 0, CHAR, NULL, 0}, {"gid", "GID", NULL, 0, kvar, KOFF(ki_groups), UINT, UIDFMT, 0}, {"group", "GROUP", NULL, LJUST, egroupname, 0, CHAR, NULL, 0}, Modified: projects/diffused_head/bin/ps/ps.1 ============================================================================== --- projects/diffused_head/bin/ps/ps.1 Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/ps/ps.1 Fri Aug 30 01:33:26 2013 (r255049) @@ -512,6 +512,9 @@ elapsed running time, format minutes:seconds. .It Cm etimes elapsed running time, in decimal integer seconds +.It Cm fib +default FIB number, see +.Xr setfib 1 .It Cm flags the process flags, in hexadecimal (alias .Cm f ) Modified: projects/diffused_head/bin/sh/alias.c ============================================================================== --- projects/diffused_head/bin/sh/alias.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/sh/alias.c Fri Aug 30 01:33:26 2013 (r255049) @@ -237,17 +237,19 @@ printaliases(void) } int -aliascmd(int argc, char **argv) +aliascmd(int argc __unused, char **argv __unused) { char *n, *v; int ret = 0; struct alias *ap; - if (argc == 1) { + nextopt(""); + + if (*argptr == NULL) { printaliases(); return (0); } - while ((n = *++argv) != NULL) { + while ((n = *argptr++) != NULL) { if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */ if ((ap = lookupalias(n, 0)) == NULL) { warning("%s: not found", n); Modified: projects/diffused_head/bin/sh/arith_yylex.c ============================================================================== --- projects/diffused_head/bin/sh/arith_yylex.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/sh/arith_yylex.c Fri Aug 30 01:33:26 2013 (r255049) @@ -218,9 +218,13 @@ checkeqcur: value += ARITH_REM - '%'; goto checkeq; case '+': + if (buf[1] == '+') + return ARITH_BAD; value += ARITH_ADD - '+'; goto checkeq; case '-': + if (buf[1] == '-') + return ARITH_BAD; value += ARITH_SUB - '-'; goto checkeq; case '~': Modified: projects/diffused_head/bin/sh/jobs.c ============================================================================== --- projects/diffused_head/bin/sh/jobs.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/sh/jobs.c Fri Aug 30 01:33:26 2013 (r255049) @@ -495,14 +495,10 @@ waitcmdloop(struct job *job) in_waitcmd++; do { if (job != NULL) { - if (job->state) { + if (job->state == JOBDONE) { status = job->ps[job->nprocs - 1].status; if (WIFEXITED(status)) retval = WEXITSTATUS(status); -#if JOBS - else if (WIFSTOPPED(status)) - retval = WSTOPSIG(status) + 128; -#endif else retval = WTERMSIG(status) + 128; if (! iflag || ! job->changed) Modified: projects/diffused_head/bin/sh/parser.c ============================================================================== --- projects/diffused_head/bin/sh/parser.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/bin/sh/parser.c Fri Aug 30 01:33:26 2013 (r255049) @@ -573,7 +573,7 @@ TRACE(("expecting DO got %s %s\n", tokna synexpect(TEND); checkkwd = CHKKWD | CHKALIAS; break; - /* Handle an empty command like other simple commands. */ + /* A simple command must have at least one redirection or word. */ case TBACKGND: case TSEMI: case TAND: @@ -581,16 +581,12 @@ TRACE(("expecting DO got %s %s\n", tokna case TPIPE: case TENDCASE: case TFALLTHRU: - /* - * An empty command before a ; doesn't make much sense, and - * should certainly be disallowed in the case of `if ;'. - */ + case TEOF: + case TNL: + case TRP: if (!redir) synexpect(-1); - case TNL: - case TEOF: case TWORD: - case TRP: tokpushback++; n1 = simplecmd(rpp, redir); return n1; Modified: projects/diffused_head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Aug 30 01:33:26 2013 (r255049) @@ -25,6 +25,7 @@ * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2012 by Frederik Wessels. All rights reserved. * Copyright (c) 2012 Martin Matuska <mm@FreeBSD.org>. All rights reserved. + * Copyright (c) 2013 by Prasad Joshi (sTec). All rights reserved. */ #include <solaris.h> @@ -2128,8 +2129,10 @@ zpool_do_import(int argc, char **argv) errno = 0; searchguid = strtoull(argv[0], &endptr, 10); - if (errno != 0 || *endptr != '\0') + if (errno != 0 || *endptr != '\0') { searchname = argv[0]; + searchguid = 0; + } found_config = NULL; /* Modified: projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_create.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_create.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_create.c Fri Aug 30 01:33:26 2013 (r255049) @@ -24,13 +24,15 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2013, Joyent, Inc. All rights reserved. + */ #include <sys/sysmacros.h> #include <sys/param.h> #include <sys/mman.h> #include <ctf_impl.h> +#include <sys/debug.h> /* * This static string is used as the template for initially populating a @@ -167,6 +169,51 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uch } /* + * Only types of dyanmic CTF containers contain reference counts. These + * containers are marked RD/WR. Because of that we basically make this a no-op + * for compatability with non-dynamic CTF sections. This is also a no-op for + * types which are not dynamic types. It is the responsibility of the caller to + * make sure it is a valid type. We help that caller out on debug builds. + * + * Note that the reference counts are not maintained for types that are not + * within this container. In other words if we have a type in a parent, that + * will not have its reference count increased. On the flip side, the parent + * will not be allowed to remove dynamic types if it has children. + */ +static void +ctf_ref_inc(ctf_file_t *fp, ctf_id_t tid) +{ + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); + + if (dtd == NULL) + return; + + if (!(fp->ctf_flags & LCTF_RDWR)) + return; + + dtd->dtd_ref++; +} + +/* + * Just as with ctf_ref_inc, this is a no-op on non-writeable containers and the + * caller should ensure that this is already a valid type. + */ +static void +ctf_ref_dec(ctf_file_t *fp, ctf_id_t tid) +{ + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); + + if (dtd == NULL) + return; + + if (!(fp->ctf_flags & LCTF_RDWR)) + return; + + ASSERT(dtd->dtd_ref >= 1); + dtd->dtd_ref--; +} + +/* * If the specified CTF container is writable and has been modified, reload * this container with the updated type definitions. In order to make this * code and the rest of libctf as simple as possible, we perform updates by @@ -180,6 +227,10 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uch * ctf_bufopen() will return a new ctf_file_t, but we want to keep the fp * constant for the caller, so after ctf_bufopen() returns, we use bcopy to * swap the interior of the old and new ctf_file_t's, and then free the old. + * + * Note that the lists of dynamic types stays around and the resulting container + * is still writeable. Furthermore, the reference counts that are on the dtd's + * are still valid. */ int ctf_update(ctf_file_t *fp) @@ -432,6 +483,7 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef ctf_dtdef_t *p, **q = &fp->ctf_dthash[h]; ctf_dmdef_t *dmd, *nmd; size_t len; + int kind, i; for (p = *q; p != NULL; p = p->dtd_hash) { if (p != dtd) @@ -443,7 +495,8 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef if (p != NULL) *q = p->dtd_hash; - switch (CTF_INFO_KIND(dtd->dtd_data.ctt_info)) { + kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); + switch (kind) { case CTF_K_STRUCT: case CTF_K_UNION: case CTF_K_ENUM: @@ -454,14 +507,33 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef ctf_free(dmd->dmd_name, len); fp->ctf_dtstrlen -= len; } + if (kind != CTF_K_ENUM) + ctf_ref_dec(fp, dmd->dmd_type); nmd = ctf_list_next(dmd); ctf_free(dmd, sizeof (ctf_dmdef_t)); } break; case CTF_K_FUNCTION: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + for (i = 0; i < CTF_INFO_VLEN(dtd->dtd_data.ctt_info); i++) + if (dtd->dtd_u.dtu_argv[i] != 0) + ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]); ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) * CTF_INFO_VLEN(dtd->dtd_data.ctt_info)); break; + case CTF_K_ARRAY: + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); + break; + case CTF_K_TYPEDEF: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + break; + case CTF_K_POINTER: + case CTF_K_VOLATILE: + case CTF_K_CONST: + case CTF_K_RESTRICT: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + break; } if (dtd->dtd_name) { @@ -495,7 +567,9 @@ ctf_dtd_lookup(ctf_file_t *fp, ctf_id_t * Discard all of the dynamic type definitions that have been added to the * container since the last call to ctf_update(). We locate such types by * scanning the list and deleting elements that have type IDs greater than - * ctf_dtoldid, which is set by ctf_update(), above. + * ctf_dtoldid, which is set by ctf_update(), above. Note that to work properly + * with our reference counting schemes, we must delete the dynamic list in + * reverse. */ int ctf_discard(ctf_file_t *fp) @@ -508,11 +582,11 @@ ctf_discard(ctf_file_t *fp) if (!(fp->ctf_flags & LCTF_DIRTY)) return (0); /* no update required */ - for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { + for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { if (dtd->dtd_type <= fp->ctf_dtoldid) continue; /* skip types that have been committed */ - ntd = ctf_list_next(dtd); + ntd = ctf_list_prev(dtd); ctf_dtd_delete(fp, dtd); } @@ -614,6 +688,8 @@ ctf_add_reftype(ctf_file_t *fp, uint_t f if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) return (CTF_ERR); /* errno is set for us */ + ctf_ref_inc(fp, ref); + dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); dtd->dtd_data.ctt_type = (ushort_t)ref; @@ -645,16 +721,29 @@ ctf_add_array(ctf_file_t *fp, uint_t fla { ctf_dtdef_t *dtd; ctf_id_t type; + ctf_file_t *fpd; if (arp == NULL) return (ctf_set_errno(fp, EINVAL)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_contents) == NULL && + ctf_dtd_lookup(fp, arp->ctr_contents) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_index) == NULL && + ctf_dtd_lookup(fp, arp->ctr_index) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) return (CTF_ERR); /* errno is set for us */ dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0); dtd->dtd_data.ctt_size = 0; dtd->dtd_u.dtu_arr = *arp; + ctf_ref_inc(fp, arp->ctr_contents); + ctf_ref_inc(fp, arp->ctr_index); return (type); } @@ -662,6 +751,7 @@ ctf_add_array(ctf_file_t *fp, uint_t fla int ctf_set_array(ctf_file_t *fp, ctf_id_t type, const ctf_arinfo_t *arp) { + ctf_file_t *fpd; ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); if (!(fp->ctf_flags & LCTF_RDWR)) @@ -670,8 +760,22 @@ ctf_set_array(ctf_file_t *fp, ctf_id_t t if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY) return (ctf_set_errno(fp, ECTF_BADID)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_contents) == NULL && + ctf_dtd_lookup(fp, arp->ctr_contents) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_index) == NULL && + ctf_dtd_lookup(fp, arp->ctr_index) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); fp->ctf_flags |= LCTF_DIRTY; dtd->dtd_u.dtu_arr = *arp; + ctf_ref_inc(fp, arp->ctr_contents); + ctf_ref_inc(fp, arp->ctr_index); return (0); } @@ -683,7 +787,9 @@ ctf_add_function(ctf_file_t *fp, uint_t ctf_dtdef_t *dtd; ctf_id_t type; uint_t vlen; + int i; ctf_id_t *vdat = NULL; + ctf_file_t *fpd; if (ctc == NULL || (ctc->ctc_flags & ~CTF_FUNC_VARARG) != 0 || (ctc->ctc_argc != 0 && argv == NULL)) @@ -696,6 +802,18 @@ ctf_add_function(ctf_file_t *fp, uint_t if (vlen > CTF_MAX_VLEN) return (ctf_set_errno(fp, EOVERFLOW)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, ctc->ctc_return) == NULL && + ctf_dtd_lookup(fp, ctc->ctc_return) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + for (i = 0; i < ctc->ctc_argc; i++) { + fpd = fp; + if (ctf_lookup_by_id(&fpd, argv[i]) == NULL && + ctf_dtd_lookup(fp, argv[i]) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + } + if (vlen != 0 && (vdat = ctf_alloc(sizeof (ctf_id_t) * vlen)) == NULL) return (ctf_set_errno(fp, EAGAIN)); @@ -707,6 +825,10 @@ ctf_add_function(ctf_file_t *fp, uint_t dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen); dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return; + ctf_ref_inc(fp, ctc->ctc_return); + for (i = 0; i < ctc->ctc_argc; i++) + ctf_ref_inc(fp, argv[i]); + bcopy(argv, vdat, sizeof (ctf_id_t) * ctc->ctc_argc); if (ctc->ctc_flags & CTF_FUNC_VARARG) vdat[vlen - 1] = 0; /* add trailing zero to indicate varargs */ @@ -825,8 +947,11 @@ ctf_add_typedef(ctf_file_t *fp, uint_t f { ctf_dtdef_t *dtd; ctf_id_t type; + ctf_file_t *fpd; - if (ref == CTF_ERR || ref < 0 || ref > CTF_MAX_TYPE) + fpd = fp; + if (ref == CTF_ERR || (ctf_lookup_by_id(&fpd, ref) == NULL && + ctf_dtd_lookup(fp, ref) == NULL)) return (ctf_set_errno(fp, EINVAL)); if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) @@ -834,6 +959,7 @@ ctf_add_typedef(ctf_file_t *fp, uint_t f dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0); dtd->dtd_data.ctt_type = (ushort_t)ref; + ctf_ref_inc(fp, ref); return (type); } @@ -1008,6 +1134,45 @@ ctf_add_member(ctf_file_t *fp, ctf_id_t if (s != NULL) fp->ctf_dtstrlen += strlen(s) + 1; + ctf_ref_inc(fp, type); + fp->ctf_flags |= LCTF_DIRTY; + return (0); +} + +/* + * This removes a type from the dynamic section. This will fail if the type is + * referenced by another type. Note that the CTF ID is never reused currently by + * CTF. Note that if this container is a parent container then we just outright + * refuse to remove the type. There currently is no notion of searching for the + * ctf_dtdef_t in parent containers. If there is, then this constraint could + * become finer grained. + */ +int +ctf_delete_type(ctf_file_t *fp, ctf_id_t type) +{ + ctf_file_t *fpd; + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); + + if (!(fp->ctf_flags & LCTF_RDWR)) + return (ctf_set_errno(fp, ECTF_RDONLY)); + + /* + * We want to give as useful an errno as possible. That means that we + * want to distinguish between a type which does not exist and one for + * which the type is not dynamic. + */ + fpd = fp; + if (ctf_lookup_by_id(&fpd, type) == NULL && + ctf_dtd_lookup(fp, type) == NULL) + return (CTF_ERR); /* errno is set for us */ + + if (dtd == NULL) + return (ctf_set_errno(fp, ECTF_NOTDYN)); + + if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1) + return (ctf_set_errno(fp, ECTF_REFERENCED)); + + ctf_dtd_delete(fp, dtd); fp->ctf_flags |= LCTF_DIRTY; return (0); } @@ -1103,6 +1268,9 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_fil ctf_hash_t *hp; ctf_helem_t *hep; + if (dst_fp == src_fp) + return (src_type); + if (!(dst_fp->ctf_flags & LCTF_RDWR)) return (ctf_set_errno(dst_fp, ECTF_RDONLY)); @@ -1313,6 +1481,14 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_fil if (errs) return (CTF_ERR); /* errno is set for us */ + + /* + * Now that we know that we can't fail, we go through and bump + * all the reference counts on the member types. + */ + for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); + dmd != NULL; dmd = ctf_list_next(dmd)) + ctf_ref_inc(dst_fp, dmd->dmd_type); break; } Modified: projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_error.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_error.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_error.c Fri Aug 30 01:33:26 2013 (r255049) @@ -23,8 +23,9 @@ * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2012, Joyent, Inc. + */ #include <ctf_impl.h> @@ -73,6 +74,8 @@ static const char *const _ctf_errlist[] "Limit on number of dynamic types reached", /* ECTF_FULL */ "Duplicate member name definition", /* ECTF_DUPMEMBER */ "Conflicting type is already defined", /* ECTF_CONFLICT */ + "Type has outstanding references", /* ECTF_REFERENCED */ + "Type is not a dynamic type" /* ECTF_NOTDYN */ }; static const int _ctf_nerr = sizeof (_ctf_errlist) / sizeof (_ctf_errlist[0]); Modified: projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_impl.h ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_impl.h Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_impl.h Fri Aug 30 01:33:26 2013 (r255049) @@ -24,12 +24,13 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ #ifndef _CTF_IMPL_H #define _CTF_IMPL_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/errno.h> #include <sys/sysmacros.h> @@ -149,6 +150,7 @@ typedef struct ctf_dtdef { char *dtd_name; /* name associated with definition (if any) */ ctf_id_t dtd_type; /* type identifier for this definition */ ctf_type_t dtd_data; /* type node (see <sys/ctf.h>) */ + int dtd_ref; /* recfount for dyanmic types */ union { ctf_list_t dtu_members; /* struct, union, or enum */ ctf_arinfo_t dtu_arr; /* array */ @@ -269,7 +271,9 @@ enum { ECTF_DTFULL, /* CTF type is full (no more members allowed) */ ECTF_FULL, /* CTF container is full */ ECTF_DUPMEMBER, /* duplicate member name definition */ - ECTF_CONFLICT /* conflicting type definition present */ + ECTF_CONFLICT, /* conflicting type definition present */ + ECTF_REFERENCED, /* type has outstanding references */ + ECTF_NOTDYN /* type is not a dynamic type */ }; extern ssize_t ctf_get_ctt_size(const ctf_file_t *, const ctf_type_t *, Modified: projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_open.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_open.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/common/ctf/ctf_open.c Fri Aug 30 01:33:26 2013 (r255049) @@ -24,8 +24,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ #include <ctf_impl.h> #include <sys/mman.h> @@ -810,8 +811,12 @@ ctf_close(ctf_file_t *fp) if (fp->ctf_parent != NULL) ctf_close(fp->ctf_parent); - for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { - ntd = ctf_list_next(dtd); + /* + * Note, to work properly with reference counting on the dynamic + * section, we must delete the list in reverse. + */ + for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { + ntd = ctf_list_prev(dtd); ctf_dtd_delete(fp, dtd); } Modified: projects/diffused_head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c Fri Aug 30 01:33:26 2013 (r255049) @@ -216,6 +216,7 @@ ctf_fdopen(int fd, int *errp) { ctf_sect_t ctfsect, symsect, strsect; ctf_file_t *fp = NULL; + size_t shstrndx, shnum; struct stat64 st; ssize_t nbytes; @@ -278,11 +279,10 @@ ctf_fdopen(int fd, int *errp) #else uchar_t order = ELFDATA2LSB; #endif - GElf_Half i, n; GElf_Shdr *sp; void *strs_map; - size_t strs_mapsz; + size_t strs_mapsz, i; char *strs; if (hdr.e32.e_ident[EI_DATA] != order) @@ -298,11 +298,38 @@ ctf_fdopen(int fd, int *errp) ehdr_to_gelf(&e32, &hdr.e64); } - if (hdr.e64.e_shstrndx >= hdr.e64.e_shnum) + shnum = hdr.e64.e_shnum; + shstrndx = hdr.e64.e_shstrndx; + + /* Extended ELF sections */ + if ((shstrndx == SHN_XINDEX) || (shnum == 0)) { + if (hdr.e32.e_ident[EI_CLASS] == ELFCLASS32) { + Elf32_Shdr x32; + + if (pread64(fd, &x32, sizeof (x32), + hdr.e64.e_shoff) != sizeof (x32)) + return (ctf_set_open_errno(errp, + errno)); + + shnum = x32.sh_size; + shstrndx = x32.sh_link; + } else { + Elf64_Shdr x64; + + if (pread64(fd, &x64, sizeof (x64), + hdr.e64.e_shoff) != sizeof (x64)) + return (ctf_set_open_errno(errp, + errno)); + + shnum = x64.sh_size; + shstrndx = x64.sh_link; + } + } + + if (shstrndx >= shnum) return (ctf_set_open_errno(errp, ECTF_CORRUPT)); - n = hdr.e64.e_shnum; - nbytes = sizeof (GElf_Shdr) * n; + nbytes = sizeof (GElf_Shdr) * shnum; if ((sp = malloc(nbytes)) == NULL) return (ctf_set_open_errno(errp, errno)); @@ -314,7 +341,7 @@ ctf_fdopen(int fd, int *errp) if (hdr.e32.e_ident[EI_CLASS] == ELFCLASS32) { Elf32_Shdr *sp32; - nbytes = sizeof (Elf32_Shdr) * n; + nbytes = sizeof (Elf32_Shdr) * shnum; if ((sp32 = malloc(nbytes)) == NULL || pread64(fd, sp32, nbytes, hdr.e64.e_shoff) != nbytes) { @@ -322,7 +349,7 @@ ctf_fdopen(int fd, int *errp) return (ctf_set_open_errno(errp, errno)); } - for (i = 0; i < n; i++) + for (i = 0; i < shnum; i++) shdr_to_gelf(&sp32[i], &sp[i]); free(sp32); @@ -336,14 +363,14 @@ ctf_fdopen(int fd, int *errp) * Now mmap the section header strings section so that we can * perform string comparison on the section names. */ - strs_mapsz = sp[hdr.e64.e_shstrndx].sh_size + - (sp[hdr.e64.e_shstrndx].sh_offset & ~_PAGEMASK); + strs_mapsz = sp[shstrndx].sh_size + + (sp[shstrndx].sh_offset & ~_PAGEMASK); strs_map = mmap64(NULL, strs_mapsz, PROT_READ, MAP_PRIVATE, - fd, sp[hdr.e64.e_shstrndx].sh_offset & _PAGEMASK); + fd, sp[shstrndx].sh_offset & _PAGEMASK); strs = (char *)strs_map + - (sp[hdr.e64.e_shstrndx].sh_offset & ~_PAGEMASK); + (sp[shstrndx].sh_offset & ~_PAGEMASK); if (strs_map == MAP_FAILED) { free(sp); @@ -354,15 +381,15 @@ ctf_fdopen(int fd, int *errp) * Iterate over the section header array looking for the CTF * section and symbol table. The strtab is linked to symtab. */ - for (i = 0; i < n; i++) { + for (i = 0; i < shnum; i++) { const GElf_Shdr *shp = &sp[i]; const GElf_Shdr *lhp = &sp[shp->sh_link]; - if (shp->sh_link >= hdr.e64.e_shnum) + if (shp->sh_link >= shnum) continue; /* corrupt sh_link field */ - if (shp->sh_name >= sp[hdr.e64.e_shstrndx].sh_size || - lhp->sh_name >= sp[hdr.e64.e_shstrndx].sh_size) + if (shp->sh_name >= sp[shstrndx].sh_size || + lhp->sh_name >= sp[shstrndx].sh_size) continue; /* corrupt sh_name field */ if (shp->sh_type == SHT_PROGBITS && Modified: projects/diffused_head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c Fri Aug 30 01:33:26 2013 (r255049) @@ -21,10 +21,10 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>. * All rights reserved. + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ #include <stdio.h> @@ -452,8 +452,12 @@ iter_dependents_cb(zfs_handle_t *zhp, vo } ida->stack = isf.next; } + if (!first && err == 0) err = ida->func(zhp, ida->data); + else + zfs_close(zhp); + return (err); } Modified: projects/diffused_head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c ============================================================================== --- projects/diffused_head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Fri Aug 30 01:33:26 2013 (r255049) @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * DWARF to tdata conversion * @@ -1796,6 +1794,59 @@ die_resolve(dwarf_t *dw) } while (dw->dw_nunres != 0); } +/* + * Any object containing a function or object symbol at any scope should also + * contain DWARF data. + */ +static boolean_t +should_have_dwarf(Elf *elf) +{ + Elf_Scn *scn = NULL; + Elf_Data *data = NULL; + GElf_Shdr shdr; + GElf_Sym sym; + uint32_t symdx = 0; + size_t nsyms = 0; + boolean_t found = B_FALSE; + + while ((scn = elf_nextscn(elf, scn)) != NULL) { + gelf_getshdr(scn, &shdr); + + if (shdr.sh_type == SHT_SYMTAB) { + found = B_TRUE; + break; + } + } + + if (!found) + terminate("cannot convert stripped objects\n"); + + data = elf_getdata(scn, NULL); + nsyms = shdr.sh_size / shdr.sh_entsize; + + for (symdx = 0; symdx < nsyms; symdx++) { + gelf_getsym(data, symdx, &sym); + + if ((GELF_ST_TYPE(sym.st_info) == STT_FUNC) || + (GELF_ST_TYPE(sym.st_info) == STT_TLS) || + (GELF_ST_TYPE(sym.st_info) == STT_OBJECT)) { + char *name; + + name = elf_strptr(elf, shdr.sh_link, sym.st_name); + + /* Studio emits these local symbols regardless */ + if ((strcmp(name, "Bbss.bss") != 0) && + (strcmp(name, "Ttbss.bss") != 0) && + (strcmp(name, "Ddata.data") != 0) && + (strcmp(name, "Ttdata.data") != 0) && + (strcmp(name, "Drodata.rodata") != 0)) + return (B_TRUE); + } + } + + return (B_FALSE); +} + /*ARGSUSED*/ int dw_read(tdata_t *td, Elf *elf, char *filename __unused) @@ -1820,8 +1871,12 @@ dw_read(tdata_t *td, Elf *elf, char *fil if ((rc = dwarf_elf_init(elf, DW_DLC_READ, &dw.dw_dw, &dw.dw_err)) == DW_DLV_NO_ENTRY) { - errno = ENOENT; - return (-1); + if (should_have_dwarf(elf)) { + errno = ENOENT; + return (-1); + } else { + return (0); + } } else if (rc != DW_DLV_OK) { if (dwarf_errno(&dw.dw_err) == DW_DLE_DEBUG_INFO_NULL) { /* @@ -1839,9 +1894,14 @@ dw_read(tdata_t *td, Elf *elf, char *fil &addrsz, &nxthdr, &dw.dw_err)) != DW_DLV_OK) terminate("rc = %d %s\n", rc, dwarf_errmsg(&dw.dw_err)); - if ((cu = die_sibling(&dw, NULL)) == NULL) + if ((cu = die_sibling(&dw, NULL)) == NULL || + (((child = die_child(&dw, cu)) == NULL) && + should_have_dwarf(elf))) { terminate("file does not contain dwarf type data " "(try compiling with -g)\n"); + } else if (child == NULL) { + return (0); + } dw.dw_maxoff = nxthdr - 1; Modified: projects/diffused_head/cddl/lib/libdtrace/Makefile ============================================================================== --- projects/diffused_head/cddl/lib/libdtrace/Makefile Fri Aug 30 01:32:47 2013 (r255048) +++ projects/diffused_head/cddl/lib/libdtrace/Makefile Fri Aug 30 01:33:26 2013 (r255049) @@ -48,8 +48,11 @@ SRCS= dt_aggregate.c \ DSRCS= errno.d \ io.d \ + ip.d \ psinfo.d \ signal.d \ + tcp.d \ + udp.d \ unistd.d WARNS?= 1 Copied: projects/diffused_head/cddl/lib/libdtrace/ip.d (from r255047, head/cddl/lib/libdtrace/ip.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/diffused_head/cddl/lib/libdtrace/ip.d Fri Aug 30 01:33:26 2013 (r255049, copy of r255047, head/cddl/lib/libdtrace/ip.d) @@ -0,0 +1,285 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * $FreeBSD$ + */ +/* + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013 Mark Johnston <markj@freebsd.org> + */ + +#pragma D depends_on provider ip + +/* + * pktinfo is where packet ID info can be made available for deeper + * analysis if packet IDs become supported by the kernel in the future. + * The pkt_addr member is currently always NULL. + */ +typedef struct pktinfo { + uintptr_t pkt_addr; +} pktinfo_t; + +/* + * csinfo is where connection state info is made available. + */ +typedef uint32_t zoneid_t; +typedef struct csinfo { + uintptr_t cs_addr; + uint64_t cs_cid; + pid_t cs_pid; + zoneid_t cs_zoneid; +} csinfo_t; + +/* + * ipinfo contains common IP info for both IPv4 and IPv6. + */ +typedef struct ipinfo { + uint8_t ip_ver; /* IP version (4, 6) */ + uint32_t ip_plength; /* payload length */ + string ip_saddr; /* source address */ + string ip_daddr; /* destination address */ +} ipinfo_t; + +/* + * ifinfo contains network interface info. + */ +typedef struct ifinfo { + string if_name; /* interface name */ + int8_t if_local; /* is delivered locally */ + /*netstackid_t if_ipstack;*/ /* ipstack ID */ + uintptr_t if_addr; /* pointer to raw ill_t */ +} ifinfo_t; + +typedef uint32_t ipaddr_t; +typedef struct { + uint8_t ipha_version_and_hdr_length; + uint8_t ipha_type_of_service; + uint16_t ipha_length; + uint16_t ipha_ident; + uint16_t ipha_fragment_offset_and_flags; + uint8_t ipha_ttl; + uint8_t ipha_protocol; + uint16_t ipha_hdr_checksum; + ipaddr_t ipha_src; + ipaddr_t ipha_dst; +} ipha_t; + +/* + * ipv4info is a translated version of the IPv4 header (with raw pointer). + * These values are NULL if the packet is not IPv4. + */ +typedef struct ipv4info { + uint8_t ipv4_ver; /* IP version (4) */ + uint8_t ipv4_ihl; /* header length, bytes */ + uint8_t ipv4_tos; /* type of service field */ + uint16_t ipv4_length; /* length (header + payload) */ + uint16_t ipv4_ident; /* identification */ + uint8_t ipv4_flags; /* IP flags */ + uint16_t ipv4_offset; /* fragment offset */ + uint8_t ipv4_ttl; /* time to live */ + uint8_t ipv4_protocol; /* next level protocol */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308300133.r7U1XSqo047159>