Date: Fri, 19 Aug 2016 16:38:58 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304467 - in user/alc/PQ_LAUNDRY: . cddl/contrib/opensolaris/cmd/dtrace cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars ... Message-ID: <201608191638.u7JGcwGU099117@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markj Date: Fri Aug 19 16:38:57 2016 New Revision: 304467 URL: https://svnweb.freebsd.org/changeset/base/304467 Log: MFH r304466 Added: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d - copied unchanged from r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d - copied unchanged from r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sugar/ - copied from r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sugar/ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c - copied unchanged from r304466, head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c user/alc/PQ_LAUNDRY/cddl/usr.sbin/dtrace/tests/common/sugar/ - copied from r304466, head/cddl/usr.sbin/dtrace/tests/common/sugar/ user/alc/PQ_LAUNDRY/lib/libc/string/timingsafe_bcmp.3 - copied unchanged from r304466, head/lib/libc/string/timingsafe_bcmp.3 user/alc/PQ_LAUNDRY/lib/libc/string/timingsafe_bcmp.c - copied unchanged from r304466, head/lib/libc/string/timingsafe_bcmp.c user/alc/PQ_LAUNDRY/lib/libc/string/timingsafe_memcmp.c - copied unchanged from r304466, head/lib/libc/string/timingsafe_memcmp.c user/alc/PQ_LAUNDRY/lib/libc/sys/fdatasync.c - copied unchanged from r304466, head/lib/libc/sys/fdatasync.c user/alc/PQ_LAUNDRY/lib/libc/x86/ - copied from r304466, head/lib/libc/x86/ user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-aarch64.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-aarch64.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-arm.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-arm.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-mips.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-mips.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-powerpc.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-powerpc.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-riscv.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-riscv.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-sparc64.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-sparc64.h.in user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-x86.h.in - copied unchanged from r304466, head/secure/lib/libcrypto/opensslconf-x86.h.in user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10/a10_padconf.c - copied unchanged from r304466, head/sys/arm/allwinner/a10/a10_padconf.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10/files.a10 - copied unchanged from r304466, head/sys/arm/allwinner/a10/files.a10 user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_machdep.c - copied unchanged from r304466, head/sys/arm/allwinner/aw_machdep.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_machdep.h - copied unchanged from r304466, head/sys/arm/allwinner/aw_machdep.h user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner_up - copied unchanged from r304466, head/sys/arm/allwinner/files.allwinner_up user/alc/PQ_LAUNDRY/sys/arm/allwinner/std.allwinner_up - copied unchanged from r304466, head/sys/arm/allwinner/std.allwinner_up user/alc/PQ_LAUNDRY/sys/arm/conf/ALLWINNER_UP - copied unchanged from r304466, head/sys/arm/conf/ALLWINNER_UP user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/skein_zfs.c - copied unchanged from r304466, head/sys/cddl/boot/zfs/skein_zfs.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram.c - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_cfe.c - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_cfe.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_common.c - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_common.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_common.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_common.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_parser.c - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_parser.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_parser.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_parser.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_parserreg.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_parserreg.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_parservar.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvram_parservar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvramvar.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_nvramvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_sprom_parser.c - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_sprom_parser.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_sprom_parser.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_sprom_parser.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_sprom_parservar.h - copied unchanged from r304466, head/sys/dev/bhnd/nvram/bhnd_sprom_parservar.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_minidump.h - copied unchanged from r304466, head/sys/dev/qlxgbe/ql_minidump.h Deleted: user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/__vdso_gettc.c user/alc/PQ_LAUNDRY/lib/libc/i386/sys/__vdso_gettc.c user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-aarch64.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-arm.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-mips.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-powerpc.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-riscv.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-sparc64.h user/alc/PQ_LAUNDRY/secure/lib/libcrypto/opensslconf-x86.h user/alc/PQ_LAUNDRY/share/man/man4/mcd.4 user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_padconf.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/allwinner_machdep.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/allwinner_machdep.h user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.a10 user/alc/PQ_LAUNDRY/sys/arm/allwinner/std.a10 user/alc/PQ_LAUNDRY/sys/arm/conf/A10 user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_sprom_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_spromreg.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/nvram_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/nvramvar.h user/alc/PQ_LAUNDRY/sys/dev/mcd/ user/alc/PQ_LAUNDRY/sys/modules/mcd/ Modified: user/alc/PQ_LAUNDRY/Makefile.inc1 user/alc/PQ_LAUNDRY/ObsoleteFiles.inc user/alc/PQ_LAUNDRY/UPDATING user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dstyle.pl user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dtrace.h user/alc/PQ_LAUNDRY/cddl/lib/libdtrace/Makefile user/alc/PQ_LAUNDRY/cddl/usr.sbin/dtrace/tests/common/Makefile user/alc/PQ_LAUNDRY/cddl/usr.sbin/dtrace/tests/common/scalars/Makefile user/alc/PQ_LAUNDRY/cddl/usr.sbin/dtrace/tests/tools/exclude.sh user/alc/PQ_LAUNDRY/contrib/elftoolchain/elfcopy/ascii.c user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/X86/X86.td user/alc/PQ_LAUNDRY/contrib/llvm/tools/clang/lib/Basic/Targets.cpp user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/gen/t_basedirname.c user/alc/PQ_LAUNDRY/etc/mtree/BSD.tests.dist user/alc/PQ_LAUNDRY/etc/periodic/daily/480.leapfile-ntpd user/alc/PQ_LAUNDRY/include/string.h user/alc/PQ_LAUNDRY/include/unistd.h user/alc/PQ_LAUNDRY/lib/clang/freebsd_cc_version.h user/alc/PQ_LAUNDRY/lib/libc/Makefile user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/aarch64/sys/__vdso_gettc.c user/alc/PQ_LAUNDRY/lib/libc/amd64/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/arm/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/arm/sys/__vdso_gettc.c user/alc/PQ_LAUNDRY/lib/libc/gen/sem_timedwait.3 user/alc/PQ_LAUNDRY/lib/libc/i386/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/include/libc_private.h user/alc/PQ_LAUNDRY/lib/libc/mips/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/net/inet_net.3 user/alc/PQ_LAUNDRY/lib/libc/net/nss_compat.c user/alc/PQ_LAUNDRY/lib/libc/powerpc/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/powerpc64/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/riscv/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/sparc64/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/string/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/string/Symbol.map user/alc/PQ_LAUNDRY/lib/libc/string/bcmp.3 user/alc/PQ_LAUNDRY/lib/libc/string/memcmp.3 user/alc/PQ_LAUNDRY/lib/libc/sys/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/sys/Symbol.map user/alc/PQ_LAUNDRY/lib/libc/sys/__vdso_gettimeofday.c user/alc/PQ_LAUNDRY/lib/libc/sys/bind.2 user/alc/PQ_LAUNDRY/lib/libc/sys/connect.2 user/alc/PQ_LAUNDRY/lib/libc/sys/fsync.2 user/alc/PQ_LAUNDRY/lib/libc/sys/interposing_table.c user/alc/PQ_LAUNDRY/lib/libc/sys/listen.2 user/alc/PQ_LAUNDRY/lib/libc/sys/recv.2 user/alc/PQ_LAUNDRY/lib/libc/sys/send.2 user/alc/PQ_LAUNDRY/lib/libc/sys/socket.2 user/alc/PQ_LAUNDRY/lib/libc/sys/trivial-vdso_tc.c user/alc/PQ_LAUNDRY/lib/libthr/thread/thr_syscalls.c user/alc/PQ_LAUNDRY/sbin/fsck_ffs/fsck.h user/alc/PQ_LAUNDRY/sbin/fsck_ffs/globs.c user/alc/PQ_LAUNDRY/sbin/fsck_ffs/main.c user/alc/PQ_LAUNDRY/sbin/fsck_ffs/setup.c user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile.asm user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile.inc user/alc/PQ_LAUNDRY/share/man/man3/pthread_testcancel.3 user/alc/PQ_LAUNDRY/share/man/man3/queue.3 user/alc/PQ_LAUNDRY/share/man/man4/Makefile user/alc/PQ_LAUNDRY/share/man/man4/rights.4 user/alc/PQ_LAUNDRY/share/man/man4/tcp.4 user/alc/PQ_LAUNDRY/share/man/man9/tcp_functions.9 user/alc/PQ_LAUNDRY/share/timedef/ko_KR.UTF-8.src user/alc/PQ_LAUNDRY/share/timedef/ko_KR.eucKR.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_CN.GB2312.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_CN.GBK.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_CN.UTF-8.src user/alc/PQ_LAUNDRY/share/timedef/zh_CN.eucCN.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_HK.UTF-8.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_TW.Big5.src (contents, props changed) user/alc/PQ_LAUNDRY/share/timedef/zh_TW.UTF-8.src (contents, props changed) user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_ehci.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_gpio.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_mmc.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_if_dwc.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_mp.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rtc.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_pll.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner user/alc/PQ_LAUNDRY/sys/arm/allwinner/timer.c user/alc/PQ_LAUNDRY/sys/arm/arm/generic_timer.c user/alc/PQ_LAUNDRY/sys/arm/arm/machdep.c user/alc/PQ_LAUNDRY/sys/arm/arm/nexus.c user/alc/PQ_LAUNDRY/sys/arm/include/md_var.h user/alc/PQ_LAUNDRY/sys/arm/include/vdso.h user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra_lic.c user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra_pcie.c user/alc/PQ_LAUNDRY/sys/arm/ti/omap4/omap4_wugen.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/identcpu.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/machdep.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/nexus.c user/alc/PQ_LAUNDRY/sys/arm64/include/armreg.h user/alc/PQ_LAUNDRY/sys/arm64/include/md_var.h user/alc/PQ_LAUNDRY/sys/arm64/include/vdso.h user/alc/PQ_LAUNDRY/sys/boot/efi/boot1/Makefile user/alc/PQ_LAUNDRY/sys/boot/efi/boot1/boot1.c user/alc/PQ_LAUNDRY/sys/boot/efi/boot1/ufs_module.c user/alc/PQ_LAUNDRY/sys/boot/efi/boot1/zfs_module.c user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/efi_console.c user/alc/PQ_LAUNDRY/sys/boot/efi/loader/Makefile user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/bananapi.dts user/alc/PQ_LAUNDRY/sys/boot/i386/boot2/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/gptboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/gptboot/gptldr.S user/alc/PQ_LAUNDRY/sys/boot/i386/gptzfsboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/zfsboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/zfsboot/zfsboot.c user/alc/PQ_LAUNDRY/sys/boot/i386/zfsboot/zfsldr.S user/alc/PQ_LAUNDRY/sys/boot/userboot/ficl/Makefile user/alc/PQ_LAUNDRY/sys/boot/userboot/userboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/userboot/zfs/Makefile user/alc/PQ_LAUNDRY/sys/boot/zfs/Makefile user/alc/PQ_LAUNDRY/sys/boot/zfs/zfsimpl.c user/alc/PQ_LAUNDRY/sys/cam/cam.c user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/fletcher.c user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/sha256.c user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/zfsimpl.h user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/zfssubr.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h user/alc/PQ_LAUNDRY/sys/compat/cloudabi/cloudabi_fd.c user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_proto.h user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_syscall.h user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_syscalls.c user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_sysent.c user/alc/PQ_LAUNDRY/sys/compat/freebsd32/freebsd32_systrace_args.c user/alc/PQ_LAUNDRY/sys/compat/freebsd32/syscalls.master user/alc/PQ_LAUNDRY/sys/compat/linux/linux_file.c user/alc/PQ_LAUNDRY/sys/conf/NOTES user/alc/PQ_LAUNDRY/sys/conf/files user/alc/PQ_LAUNDRY/sys/conf/options user/alc/PQ_LAUNDRY/sys/dev/acpica/acpi_hpet.c user/alc/PQ_LAUNDRY/sys/dev/acpica/acpi_hpet.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_bus_if.m user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_types.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_private.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipc.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_nvram_if.m user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_sprom.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/bhnd_spromvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/tools/nvram_map_gen.awk user/alc/PQ_LAUNDRY/sys/dev/bwn/bwn_mac.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/common.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/t4_hw.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c user/alc/PQ_LAUNDRY/sys/dev/e1000/e1000_api.c user/alc/PQ_LAUNDRY/sys/dev/e1000/e1000_hw.h user/alc/PQ_LAUNDRY/sys/dev/e1000/e1000_ich8lan.c user/alc/PQ_LAUNDRY/sys/dev/e1000/e1000_ich8lan.h user/alc/PQ_LAUNDRY/sys/dev/e1000/e1000_phy.c user/alc/PQ_LAUNDRY/sys/dev/e1000/if_em.c user/alc/PQ_LAUNDRY/sys/dev/fdt/simplebus.c user/alc/PQ_LAUNDRY/sys/dev/gpio/gpiobus.c user/alc/PQ_LAUNDRY/sys/dev/gpio/gpiobusvar.h user/alc/PQ_LAUNDRY/sys/dev/gpio/ofw_gpiobus.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/include/vmbus.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/if_hnreg.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/if_hnvar.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/storvsc/hv_vstorage.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_heartbeat.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_kvp.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_shutdown.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_timesync.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.h user/alc/PQ_LAUNDRY/sys/dev/iicbus/ofw_iicbus.c user/alc/PQ_LAUNDRY/sys/dev/ofw/ofw_bus_subr.c user/alc/PQ_LAUNDRY/sys/dev/ofw/ofw_bus_subr.h user/alc/PQ_LAUNDRY/sys/dev/ofw/ofwbus.c user/alc/PQ_LAUNDRY/sys/dev/pci/pci_host_generic.c user/alc/PQ_LAUNDRY/sys/dev/pci/pci_pci.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_boot.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_dbg.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_def.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_fw.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_glbl.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ioctl.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ioctl.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_isr.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_minidump.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_os.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_reset.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ver.h user/alc/PQ_LAUNDRY/sys/dev/syscons/syscons.c user/alc/PQ_LAUNDRY/sys/dev/syscons/syscons.h user/alc/PQ_LAUNDRY/sys/dev/usb/net/if_axge.c user/alc/PQ_LAUNDRY/sys/dev/usb/net/if_axgereg.h user/alc/PQ_LAUNDRY/sys/dev/vnic/mrml_bridge.c user/alc/PQ_LAUNDRY/sys/dev/vnic/thunder_mdio_fdt.c user/alc/PQ_LAUNDRY/sys/dev/vt/vt_core.c user/alc/PQ_LAUNDRY/sys/fs/msdosfs/msdosfs_vnops.c user/alc/PQ_LAUNDRY/sys/i386/include/md_var.h user/alc/PQ_LAUNDRY/sys/kern/bus_if.m user/alc/PQ_LAUNDRY/sys/kern/capabilities.conf user/alc/PQ_LAUNDRY/sys/kern/init_sysent.c user/alc/PQ_LAUNDRY/sys/kern/kern_sig.c user/alc/PQ_LAUNDRY/sys/kern/kern_tc.c user/alc/PQ_LAUNDRY/sys/kern/kern_timeout.c user/alc/PQ_LAUNDRY/sys/kern/kern_umtx.c user/alc/PQ_LAUNDRY/sys/kern/pic_if.m user/alc/PQ_LAUNDRY/sys/kern/subr_bus.c user/alc/PQ_LAUNDRY/sys/kern/subr_intr.c user/alc/PQ_LAUNDRY/sys/kern/sys_generic.c user/alc/PQ_LAUNDRY/sys/kern/syscalls.c user/alc/PQ_LAUNDRY/sys/kern/syscalls.master user/alc/PQ_LAUNDRY/sys/kern/systrace_args.c user/alc/PQ_LAUNDRY/sys/kern/vfs_aio.c user/alc/PQ_LAUNDRY/sys/kern/vfs_default.c user/alc/PQ_LAUNDRY/sys/kern/vfs_syscalls.c user/alc/PQ_LAUNDRY/sys/kern/vnode_if.src user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_machdep.c user/alc/PQ_LAUNDRY/sys/mips/conf/BCM user/alc/PQ_LAUNDRY/sys/mips/conf/BCM.hints user/alc/PQ_LAUNDRY/sys/mips/conf/SENTRY5 user/alc/PQ_LAUNDRY/sys/mips/conf/SENTRY5.hints user/alc/PQ_LAUNDRY/sys/mips/mips/cpu.c user/alc/PQ_LAUNDRY/sys/mips/mips/nexus.c user/alc/PQ_LAUNDRY/sys/modules/Makefile user/alc/PQ_LAUNDRY/sys/modules/bhnd/Makefile user/alc/PQ_LAUNDRY/sys/modules/dtb/allwinner/Makefile user/alc/PQ_LAUNDRY/sys/net/if_epair.c user/alc/PQ_LAUNDRY/sys/net/netisr.c user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_ioctl.c user/alc/PQ_LAUNDRY/sys/netinet/in.c user/alc/PQ_LAUNDRY/sys/netinet/in.h user/alc/PQ_LAUNDRY/sys/netinet/ip_output.c user/alc/PQ_LAUNDRY/sys/netinet/sctputil.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_lro.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_subr.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_syncache.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_timer.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_timer.h user/alc/PQ_LAUNDRY/sys/netinet/tcp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_var.h user/alc/PQ_LAUNDRY/sys/netinet/udp_usrreq.c user/alc/PQ_LAUNDRY/sys/netpfil/ipfw/ip_fw_sockopt.c user/alc/PQ_LAUNDRY/sys/netpfil/ipfw/nat64/nat64_translate.c user/alc/PQ_LAUNDRY/sys/netpfil/pf/pf.c user/alc/PQ_LAUNDRY/sys/ofed/drivers/infiniband/core/ucma.c user/alc/PQ_LAUNDRY/sys/sys/buf.h user/alc/PQ_LAUNDRY/sys/sys/bus.h user/alc/PQ_LAUNDRY/sys/sys/intr.h user/alc/PQ_LAUNDRY/sys/sys/param.h user/alc/PQ_LAUNDRY/sys/sys/queue.h user/alc/PQ_LAUNDRY/sys/sys/syscall.h user/alc/PQ_LAUNDRY/sys/sys/syscall.mk user/alc/PQ_LAUNDRY/sys/sys/syscallsubr.h user/alc/PQ_LAUNDRY/sys/sys/sysproto.h user/alc/PQ_LAUNDRY/sys/sys/timetc.h user/alc/PQ_LAUNDRY/sys/sys/vdso.h user/alc/PQ_LAUNDRY/sys/sys/vnode.h user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_balloc.c user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_extern.h user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_softdep.c user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_vnops.c user/alc/PQ_LAUNDRY/sys/ufs/ffs/softdep.h user/alc/PQ_LAUNDRY/sys/x86/include/vdso.h user/alc/PQ_LAUNDRY/sys/x86/x86/tsc.c user/alc/PQ_LAUNDRY/tests/sys/kern/acct/acct_test.c user/alc/PQ_LAUNDRY/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan user/alc/PQ_LAUNDRY/usr.bin/netstat/inet6.c user/alc/PQ_LAUNDRY/usr.bin/nfsstat/nfsstat.c user/alc/PQ_LAUNDRY/usr.bin/rpcgen/rpc_main.c user/alc/PQ_LAUNDRY/usr.bin/systat/main.c user/alc/PQ_LAUNDRY/usr.bin/tty/tty.c user/alc/PQ_LAUNDRY/usr.sbin/bsdinstall/partedit/gpart_ops.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/cddl/ (props changed) user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/ (props changed) user/alc/PQ_LAUNDRY/contrib/elftoolchain/ (props changed) user/alc/PQ_LAUNDRY/contrib/llvm/ (props changed) user/alc/PQ_LAUNDRY/contrib/llvm/tools/clang/ (props changed) user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/alc/PQ_LAUNDRY/Makefile.inc1 ============================================================================== --- user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Aug 19 16:38:57 2016 (r304467) @@ -1581,10 +1581,6 @@ _groff= gnu/usr.bin/groff \ _vtfontcvt= usr.bin/vtfontcvt .endif -.if ${BOOTSTRAPPING} < 900002 -_sed= usr.bin/sed -.endif - .if ${BOOTSTRAPPING} < 1000033 _libopenbsd= lib/libopenbsd _m4= usr.bin/m4 @@ -1623,10 +1619,6 @@ _crunchide= usr.sbin/crunch/crunchide _crunchgen= usr.sbin/crunch/crunchgen .endif -.if ${BOOTSTRAPPING} >= 900040 && ${BOOTSTRAPPING} < 900041 -_awk= usr.bin/awk -.endif - # r296926 -P keymap search path, MFC to stable/10 in r298297 .if ${BOOTSTRAPPING} < 1003501 || \ (${BOOTSTRAPPING} >= 1100000 && ${BOOTSTRAPPING} < 1100103) @@ -1694,7 +1686,6 @@ bootstrap-tools: .PHONY ${_gperf} \ ${_groff} \ ${_dtc} \ - ${_awk} \ ${_cat} \ ${_dd} \ ${_kbdcontrol} \ @@ -1702,7 +1693,6 @@ bootstrap-tools: .PHONY ${_libopenbsd} \ ${_makewhatis} \ usr.bin/rpcgen \ - ${_sed} \ ${_yacc} \ ${_m4} \ ${_lex} \ Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc ============================================================================== --- user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Fri Aug 19 16:38:57 2016 (r304467) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20160815: Remove mcd(4) +OLD_FILES+=usr/share/man/man4/mcd.4.gz # 20160703: POSIXify locales with variants OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_CTYPE Modified: user/alc/PQ_LAUNDRY/UPDATING ============================================================================== --- user/alc/PQ_LAUNDRY/UPDATING Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/UPDATING Fri Aug 19 16:38:57 2016 (r304467) @@ -31,6 +31,18 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160818: + The UDP receive code has been updated to only treat incoming UDP + packets that were addressed to an L2 broadcast address as L3 + broadcast packets. It is not expected that this will affect any + standards-conforming UDP application. The new behaviour can be + disabled by setting the sysctl net.inet.udp.require_l2_bcast to + 0. + +20160818: + Remove the openbsd_poll system call. + __FreeBSD_version has been bumped because of this. + 20160622: The libc stub for the pipe(2) system call has been replaced with a wrapper that calls the pipe2(2) system call and the pipe(2) Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c Fri Aug 19 16:38:57 2016 (r304467) @@ -93,6 +93,9 @@ static int g_flowindent; static int g_intr; static int g_impatient; static int g_newline; +#ifdef __FreeBSD__ +static int g_siginfo; +#endif static int g_total; static int g_cflags; static int g_oflags; @@ -1260,6 +1263,16 @@ intr(int signo) g_impatient = 1; } +#ifdef __FreeBSD__ +static void +siginfo(int signo __unused) +{ + + g_siginfo++; + g_newline = 1; +} +#endif + static void installsighands(void) { @@ -1275,12 +1288,16 @@ installsighands(void) if (sigaction(SIGTERM, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN) (void) sigaction(SIGTERM, &act, NULL); -#ifndef illumos +#ifdef __FreeBSD__ if (sigaction(SIGPIPE, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN) (void) sigaction(SIGPIPE, &act, NULL); if (sigaction(SIGUSR1, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN) (void) sigaction(SIGUSR1, &act, NULL); + + act.sa_handler = siginfo; + if (sigaction(SIGINFO, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN) + (void) sigaction(SIGINFO, &act, NULL); #endif } @@ -1944,6 +1961,13 @@ main(int argc, char *argv[]) if (!g_intr && !done) dtrace_sleep(g_dtp); +#ifdef __FreeBSD__ + if (g_siginfo) { + (void)dtrace_aggregate_print(g_dtp, g_ofp, NULL); + g_siginfo = 0; + } +#endif + if (g_newline) { /* * Output a newline just to make the output look Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dstyle.pl ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dstyle.pl Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dstyle.pl Fri Aug 19 16:38:57 2016 (r304467) @@ -25,6 +25,10 @@ # Use is subject to license terms. # +# +# Copyright (c) 2014, 2016 by Delphix. All rights reserved. +# + require 5.8.4; $PNAME = $0; @@ -131,7 +135,8 @@ sub dstyle } if (!/^enum/ && !/^\t*struct/ && !/^\t*union/ && !/^typedef/ && - !/^translator/ && !/^provider/) { + !/^translator/ && !/^provider/ && !/\tif / && + !/ else /) { if (/[\w\s]+{/) { err "left brace not on its own line"; } @@ -141,7 +146,7 @@ sub dstyle } } - if (!/;$/) { + if (!/;$/ && !/\t*}$/ && !/ else /) { if (/[\w\s]+}/) { err "right brace not on its own line"; } Copied: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d (from r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d Fri Aug 19 16:38:57 2016 (r304467, copy of r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16kglobal.d) @@ -0,0 +1,32 @@ +/* + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + */ + +/* + * Copyright (c) 2016, Joyent, Inc. All rights reserved. + */ + +#pragma D option strsize=16k + +char *k; + +BEGIN +{ + j = probeprov; + k = j; + k[0] = 'D'; + k[1] = 'T'; +} + +BEGIN +{ + trace(stringof(k)); + exit(k == "DTrace" ? 0 : 1); +} Copied: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d (from r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d Fri Aug 19 16:38:57 2016 (r304467, copy of r304466, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.16klocal.d) @@ -0,0 +1,29 @@ +/* + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + */ + +/* + * Copyright (c) 2016, Joyent, Inc. All rights reserved. + */ + +#pragma D option strsize=16k + +BEGIN +{ + this->j = probeprov; + this->j[0] = 'D'; + this->j[1] = 'T'; +} + +BEGIN +{ + trace(this->j); + exit(this->j == "DTrace" ? 0 : 1); +} Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c Fri Aug 19 16:38:57 2016 (r304467) @@ -21,8 +21,9 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright (c) 2013, Joyent Inc. All rights reserved. - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright 2015 Gary Mills */ /* @@ -119,7 +120,6 @@ static const dtrace_diftype_t dt_int_rty static void *dt_compile(dtrace_hdl_t *, int, dtrace_probespec_t, void *, uint_t, int, char *const[], FILE *, const char *); - /*ARGSUSED*/ static int dt_idreset(dt_idhash_t *dhp, dt_ident_t *idp, void *ignored) @@ -2435,7 +2435,7 @@ dt_compile(dtrace_hdl_t *dtp, int contex dt_node_t *dnp; dt_decl_t *ddp; dt_pcb_t pcb; - void *rv; + void *volatile rv; int err; if ((fp == NULL && s == NULL) || (cflags & ~DTRACE_C_MASK) != 0) { @@ -2518,6 +2518,28 @@ dt_compile(dtrace_hdl_t *dtp, int contex } /* + * Perform sugar transformations (for "if" / "else") and replace the + * existing clause chain with the new one. + */ + if (context == DT_CTX_DPROG) { + dt_node_t *dnp, *next_dnp; + dt_node_t *new_list = NULL; + + for (dnp = yypcb->pcb_root->dn_list; + dnp != NULL; dnp = next_dnp) { + /* remove this node from the list */ + next_dnp = dnp->dn_list; + dnp->dn_list = NULL; + + if (dnp->dn_kind == DT_NODE_CLAUSE) + dnp = dt_compile_sugar(dtp, dnp); + /* append node to the new list */ + new_list = dt_node_link(new_list, dnp); + } + yypcb->pcb_root->dn_list = new_list; + } + + /* * If we have successfully created a parse tree for a D program, loop * over the clauses and actions and instantiate the corresponding * libdtrace program. If we are parsing a D expression, then we @@ -2537,6 +2559,8 @@ dt_compile(dtrace_hdl_t *dtp, int contex for (; dnp != NULL; dnp = dnp->dn_list) { switch (dnp->dn_kind) { case DT_NODE_CLAUSE: + if (DT_TREEDUMP_PASS(dtp, 4)) + dt_printd(dnp, stderr, 0); dt_compile_clause(dtp, dnp); break; case DT_NODE_XLATOR: Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y Fri Aug 19 16:38:57 2016 (r304467) @@ -23,8 +23,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ + /* - * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2014, 2016 by Delphix. All rights reserved. * Copyright (c) 2013, Joyent, Inc. All rights reserved. */ @@ -155,6 +156,8 @@ %type <l_node> probe_specifier_list %type <l_node> probe_specifier %type <l_node> statement_list +%type <l_node> statement_list_impl +%type <l_node> statement_or_block %type <l_node> statement %type <l_node> declaration %type <l_node> init_declarator_list @@ -319,9 +322,11 @@ probe_definition: "or actions following probe description\n"); } $$ = dt_node_clause($1, NULL, NULL); + yybegin(YYS_CLAUSE); } | probe_specifiers '{' statement_list '}' { $$ = dt_node_clause($1, NULL, $3); + yybegin(YYS_CLAUSE); } | probe_specifiers DT_TOK_DIV expression DT_TOK_EPRED { dnerror($3, D_SYNTAX, "expected actions { } following " @@ -330,6 +335,7 @@ probe_definition: | probe_specifiers DT_TOK_DIV expression DT_TOK_EPRED '{' statement_list '}' { $$ = dt_node_clause($1, $3, $6); + yybegin(YYS_CLAUSE); } ; @@ -349,12 +355,30 @@ probe_specifier: | DT_TOK_INT { $$ = dt_node_pdesc_by_id($1); } ; -statement_list: statement { $$ = $1; } - | statement_list ';' statement { $$ = LINK($1, $3); } +statement_list_impl: /* empty */ { $$ = NULL; } + | statement_list_impl statement { $$ = LINK($1, $2); } + ; + +statement_list: + statement_list_impl { $$ = $1; } + | statement_list_impl expression { + $$ = LINK($1, dt_node_statement($2)); + } ; -statement: /* empty */ { $$ = NULL; } - | expression { $$ = dt_node_statement($1); } +statement_or_block: + statement + | '{' statement_list '}' { $$ = $2; } + +statement: ';' { $$ = NULL; } + | expression ';' { $$ = dt_node_statement($1); } + | DT_KEY_IF DT_TOK_LPAR expression DT_TOK_RPAR statement_or_block { + $$ = dt_node_if($3, $5, NULL); + } + | DT_KEY_IF DT_TOK_LPAR expression DT_TOK_RPAR + statement_or_block DT_KEY_ELSE statement_or_block { + $$ = dt_node_if($3, $5, $7); + } ; argument_expression_list: Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h Fri Aug 19 16:38:57 2016 (r304467) @@ -26,7 +26,7 @@ /* * Copyright (c) 2013, Joyent, Inc. All rights reserved. - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. */ #ifndef _DT_IMPL_H @@ -362,6 +362,7 @@ struct dtrace_hdl { int dt_indent; /* recommended flow indent */ dtrace_epid_t dt_last_epid; /* most recently consumed EPID */ uint64_t dt_last_timestamp; /* most recently consumed timestamp */ + boolean_t dt_has_sugar; /* syntactic sugar used? */ }; /* Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Fri Aug 19 16:38:57 2016 (r304467) @@ -22,7 +22,7 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, Joyent, Inc. All rights reserved. - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2012, 2016 by Delphix. All rights reserved. */ #include <sys/types.h> @@ -130,8 +130,9 @@ #define DT_VERS_1_11 DT_VERSION_NUMBER(1, 11, 0) #define DT_VERS_1_12 DT_VERSION_NUMBER(1, 12, 0) #define DT_VERS_1_12_1 DT_VERSION_NUMBER(1, 12, 1) -#define DT_VERS_LATEST DT_VERS_1_12_1 -#define DT_VERS_STRING "Sun D 1.12.1" +#define DT_VERS_1_13 DT_VERSION_NUMBER(1, 13, 0) +#define DT_VERS_LATEST DT_VERS_1_13 +#define DT_VERS_STRING "Sun D 1.13" const dt_version_t _dtrace_versions[] = { DT_VERS_1_0, /* D API 1.0.0 (PSARC 2001/466) Solaris 10 FCS */ @@ -157,6 +158,7 @@ const dt_version_t _dtrace_versions[] = DT_VERS_1_11, /* D API 1.11 */ DT_VERS_1_12, /* D API 1.12 */ DT_VERS_1_12_1, /* D API 1.12.1 */ + DT_VERS_1_13, /* D API 1.13 */ 0 }; Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Fri Aug 19 16:38:57 2016 (r304467) @@ -23,7 +23,7 @@ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2013, Joyent Inc. All rights reserved. - * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2012, 2016 by Delphix. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -2143,6 +2143,17 @@ dt_node_statement(dt_node_t *expr) } dt_node_t * +dt_node_if(dt_node_t *pred, dt_node_t *acts, dt_node_t *else_acts) +{ + dt_node_t *dnp = dt_node_alloc(DT_NODE_IF); + dnp->dn_conditional = pred; + dnp->dn_body = acts; + dnp->dn_alternate_body = else_acts; + + return (dnp); +} + +dt_node_t * dt_node_pdesc_by_name(char *spec) { dtrace_hdl_t *dtp = yypcb->pcb_hdl; @@ -2211,7 +2222,6 @@ dt_node_clause(dt_node_t *pdescs, dt_nod dnp->dn_pred = pred; dnp->dn_acts = acts; - yybegin(YYS_CLAUSE); return (dnp); } @@ -3203,8 +3213,9 @@ dt_cook_op2(dt_node_t *dnp, uint_t idfla dt_xcook_ident(lp, dhp, idkind, B_TRUE); else dt_xcook_ident(lp, dhp, idp->di_kind, B_FALSE); - } else + } else { lp = dnp->dn_left = dt_node_cook(lp, 0); + } /* * Switch op to '+' for *(E1 + E2) array mode in these cases: @@ -3218,10 +3229,12 @@ dt_cook_op2(dt_node_t *dnp, uint_t idfla if (lp->dn_ident->di_kind == DT_IDENT_ARRAY) { if (lp->dn_args != NULL) op = DT_TOK_ADD; - } else if (!dt_ident_unref(lp->dn_ident)) + } else if (!dt_ident_unref(lp->dn_ident)) { op = DT_TOK_ADD; - } else if (lp->dn_kind != DT_NODE_AGG) + } + } else if (lp->dn_kind != DT_NODE_AGG) { op = DT_TOK_ADD; + } } switch (op) { @@ -3645,45 +3658,34 @@ asgn_common: case DT_TOK_PTR: /* - * If the left-hand side of operator -> is the name "self", - * then we permit a TLS variable to be created or referenced. + * If the left-hand side of operator -> is one of the scoping + * keywords, permit a local or thread variable to be created or + * referenced. */ - if (lp->dn_kind == DT_NODE_IDENT && - strcmp(lp->dn_string, "self") == 0) { - if (rp->dn_kind != DT_NODE_VAR) { - dt_xcook_ident(rp, dtp->dt_tls, - DT_IDENT_SCALAR, B_TRUE); - } - - if (idflags != 0) - rp = dt_node_cook(rp, idflags); - - dnp->dn_right = dnp->dn_left; /* avoid freeing rp */ - dt_node_free(dnp); - return (rp); - } + if (lp->dn_kind == DT_NODE_IDENT) { + dt_idhash_t *dhp = NULL; - /* - * If the left-hand side of operator -> is the name "this", - * then we permit a local variable to be created or referenced. - */ - if (lp->dn_kind == DT_NODE_IDENT && - strcmp(lp->dn_string, "this") == 0) { - if (rp->dn_kind != DT_NODE_VAR) { - dt_xcook_ident(rp, yypcb->pcb_locals, - DT_IDENT_SCALAR, B_TRUE); + if (strcmp(lp->dn_string, "self") == 0) { + dhp = dtp->dt_tls; + } else if (strcmp(lp->dn_string, "this") == 0) { + dhp = yypcb->pcb_locals; } + if (dhp != NULL) { + if (rp->dn_kind != DT_NODE_VAR) { + dt_xcook_ident(rp, dhp, + DT_IDENT_SCALAR, B_TRUE); + } - if (idflags != 0) - rp = dt_node_cook(rp, idflags); + if (idflags != 0) + rp = dt_node_cook(rp, idflags); - dnp->dn_right = dnp->dn_left; /* avoid freeing rp */ - dt_node_free(dnp); - return (rp); + /* avoid freeing rp */ + dnp->dn_right = dnp->dn_left; + dt_node_free(dnp); + return (rp); + } } - /*FALLTHRU*/ - case DT_TOK_DOT: lp = dnp->dn_left = dt_node_cook(lp, DT_IDFLG_REF); @@ -4502,7 +4504,8 @@ static dt_node_t *(*dt_cook_funcs[])(dt_ dt_cook_xlator, /* DT_NODE_XLATOR */ dt_cook_none, /* DT_NODE_PROBE */ dt_cook_provider, /* DT_NODE_PROVIDER */ - dt_cook_none /* DT_NODE_PROG */ + dt_cook_none, /* DT_NODE_PROG */ + dt_cook_none, /* DT_NODE_IF */ }; /* @@ -4517,6 +4520,8 @@ dt_node_cook(dt_node_t *dnp, uint_t idfl yylineno = dnp->dn_line; + assert(dnp->dn_kind < + sizeof (dt_cook_funcs) / sizeof (dt_cook_funcs[0])); dnp = dt_cook_funcs[dnp->dn_kind](dnp, idflags); dnp->dn_flags |= DT_NF_COOKED; @@ -4619,6 +4624,181 @@ dt_node_diftype(dtrace_hdl_t *dtp, const tp->dtdt_size = ctf_type_size(dnp->dn_ctfp, dnp->dn_type); } +/* + * Output the parse tree as D. The "-xtree=8" argument will call this + * function to print out the program after any syntactic sugar + * transformations have been applied (e.g. to implement "if"). The + * resulting output can be used to understand the transformations + * applied by these features, or to run such a script on a system that + * does not support these features + * + * Note that the output does not express precisely the same program as + * the input. In particular: + * - Only the clauses are output. #pragma options, variable + * declarations, etc. are excluded. + * - Command argument substitution has already been done, so the output + * will not contain e.g. $$1, but rather the substituted string. + */ +void +dt_printd(dt_node_t *dnp, FILE *fp, int depth) +{ + dt_node_t *arg; + + switch (dnp->dn_kind) { + case DT_NODE_INT: + (void) fprintf(fp, "0x%llx", (u_longlong_t)dnp->dn_value); + if (!(dnp->dn_flags & DT_NF_SIGNED)) + (void) fprintf(fp, "u"); + break; + + case DT_NODE_STRING: { + char *escd = strchr2esc(dnp->dn_string, strlen(dnp->dn_string)); + (void) fprintf(fp, "\"%s\"", escd); + free(escd); + break; + } + + case DT_NODE_IDENT: + (void) fprintf(fp, "%s", dnp->dn_string); + break; + + case DT_NODE_VAR: + (void) fprintf(fp, "%s%s", + (dnp->dn_ident->di_flags & DT_IDFLG_LOCAL) ? "this->" : + (dnp->dn_ident->di_flags & DT_IDFLG_TLS) ? "self->" : "", + dnp->dn_ident->di_name); + + if (dnp->dn_args != NULL) { + (void) fprintf(fp, "["); + + for (arg = dnp->dn_args; arg != NULL; + arg = arg->dn_list) { + dt_printd(arg, fp, 0); + if (arg->dn_list != NULL) + (void) fprintf(fp, ", "); + } + + (void) fprintf(fp, "]"); + } + break; + + case DT_NODE_SYM: { + const dtrace_syminfo_t *dts = dnp->dn_ident->di_data; + (void) fprintf(fp, "%s`%s", dts->dts_object, dts->dts_name); + break; + } + case DT_NODE_FUNC: + (void) fprintf(fp, "%s(", dnp->dn_ident->di_name); + + for (arg = dnp->dn_args; arg != NULL; arg = arg->dn_list) { + dt_printd(arg, fp, 0); + if (arg->dn_list != NULL) + (void) fprintf(fp, ", "); + } + (void) fprintf(fp, ")"); + break; + + case DT_NODE_OP1: + (void) fprintf(fp, "%s(", opstr(dnp->dn_op)); + dt_printd(dnp->dn_child, fp, 0); + (void) fprintf(fp, ")"); + break; + + case DT_NODE_OP2: + (void) fprintf(fp, "("); + dt_printd(dnp->dn_left, fp, 0); + if (dnp->dn_op == DT_TOK_LPAR) { + (void) fprintf(fp, ")"); + dt_printd(dnp->dn_right, fp, 0); + break; + } + if (dnp->dn_op == DT_TOK_PTR || dnp->dn_op == DT_TOK_DOT || + dnp->dn_op == DT_TOK_LBRAC) + (void) fprintf(fp, "%s", opstr(dnp->dn_op)); + else + (void) fprintf(fp, " %s ", opstr(dnp->dn_op)); + dt_printd(dnp->dn_right, fp, 0); + if (dnp->dn_op == DT_TOK_LBRAC) { + dt_node_t *ln = dnp->dn_right; + while (ln->dn_list != NULL) { + (void) fprintf(fp, ", "); + dt_printd(ln->dn_list, fp, depth); + ln = ln->dn_list; + } + (void) fprintf(fp, "]"); + } + (void) fprintf(fp, ")"); + break; + + case DT_NODE_OP3: + (void) fprintf(fp, "("); + dt_printd(dnp->dn_expr, fp, 0); + (void) fprintf(fp, " ? "); + dt_printd(dnp->dn_left, fp, 0); + (void) fprintf(fp, " : "); + dt_printd(dnp->dn_right, fp, 0); + (void) fprintf(fp, ")"); + break; + + case DT_NODE_DEXPR: + case DT_NODE_DFUNC: + (void) fprintf(fp, "%*s", depth * 8, ""); + dt_printd(dnp->dn_expr, fp, depth + 1); + (void) fprintf(fp, ";\n"); + break; + + case DT_NODE_PDESC: + (void) fprintf(fp, "%s:%s:%s:%s", + dnp->dn_desc->dtpd_provider, dnp->dn_desc->dtpd_mod, + dnp->dn_desc->dtpd_func, dnp->dn_desc->dtpd_name); + break; + + case DT_NODE_CLAUSE: + for (arg = dnp->dn_pdescs; arg != NULL; arg = arg->dn_list) { + dt_printd(arg, fp, 0); + if (arg->dn_list != NULL) + (void) fprintf(fp, ","); + (void) fprintf(fp, "\n"); + } + + if (dnp->dn_pred != NULL) { + (void) fprintf(fp, "/"); + dt_printd(dnp->dn_pred, fp, 0); + (void) fprintf(fp, "/\n"); + } + (void) fprintf(fp, "{\n"); + + for (arg = dnp->dn_acts; arg != NULL; arg = arg->dn_list) + dt_printd(arg, fp, depth + 1); + (void) fprintf(fp, "}\n"); + (void) fprintf(fp, "\n"); + break; + + case DT_NODE_IF: + (void) fprintf(fp, "%*sif (", depth * 8, ""); + dt_printd(dnp->dn_conditional, fp, 0); + (void) fprintf(fp, ") {\n"); + + for (arg = dnp->dn_body; arg != NULL; arg = arg->dn_list) + dt_printd(arg, fp, depth + 1); + if (dnp->dn_alternate_body == NULL) { + (void) fprintf(fp, "%*s}\n", depth * 8, ""); + } else { + (void) fprintf(fp, "%*s} else {\n", depth * 8, ""); + for (arg = dnp->dn_alternate_body; arg != NULL; + arg = arg->dn_list) + dt_printd(arg, fp, depth + 1); + (void) fprintf(fp, "%*s}\n", depth * 8, ""); + } + + break; + + default: + (void) fprintf(fp, "/* bad node %p, kind %d */\n", + (void *)dnp, dnp->dn_kind); + } +} + void dt_node_printr(dt_node_t *dnp, FILE *fp, int depth) { @@ -4729,6 +4909,13 @@ dt_node_printr(dt_node_t *dnp, FILE *fp, (void) fprintf(fp, "OP2 %s (%s)\n", opstr(dnp->dn_op), buf); dt_node_printr(dnp->dn_left, fp, depth + 1); dt_node_printr(dnp->dn_right, fp, depth + 1); + if (dnp->dn_op == DT_TOK_LBRAC) { + dt_node_t *ln = dnp->dn_right; + while (ln->dn_list != NULL) { + dt_node_printr(ln->dn_list, fp, depth + 1); + ln = ln->dn_list; + } + } break; case DT_NODE_OP3: @@ -4790,6 +4977,7 @@ dt_node_printr(dt_node_t *dnp, FILE *fp, for (arg = dnp->dn_acts; arg != NULL; arg = arg->dn_list) dt_node_printr(arg, fp, depth + 1); + (void) fprintf(fp, "\n"); break; case DT_NODE_INLINE: @@ -4840,6 +5028,24 @@ dt_node_printr(dt_node_t *dnp, FILE *fp, dt_node_printr(arg, fp, depth + 1); break; + case DT_NODE_IF: + (void) fprintf(fp, "IF attr=%s CONDITION:\n", a); + + dt_node_printr(dnp->dn_conditional, fp, depth + 1); + + (void) fprintf(fp, "%*sIF BODY: \n", depth * 2, ""); + for (arg = dnp->dn_body; arg != NULL; arg = arg->dn_list) + dt_node_printr(arg, fp, depth + 1); + + if (dnp->dn_alternate_body != NULL) { + (void) fprintf(fp, "%*sIF ELSE: \n", depth * 2, ""); + for (arg = dnp->dn_alternate_body; arg != NULL; + arg = arg->dn_list) + dt_node_printr(arg, fp, depth + 1); + } + + break; + default: (void) fprintf(fp, "<bad node %p, kind %d>\n", (void *)dnp, dnp->dn_kind); Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h Fri Aug 19 13:39:36 2016 (r304466) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h Fri Aug 19 16:38:57 2016 (r304467) @@ -23,7 +23,7 @@ * Use is subject to license terms. */ /* - * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2013, 2016 by Delphix. All rights reserved. * Copyright (c) 2013 Joyent, Inc. All rights reserved. */ @@ -105,6 +105,12 @@ typedef struct dt_node { struct dt_node *_probes; /* list of probe nodes */ int _redecl; /* provider redeclared */ } _provider; + + struct { + struct dt_node *_conditional; + struct dt_node *_body; + struct dt_node *_alternate_body; + } _conditional; } dn_u; struct dt_node *dn_list; /* parse tree list link */ @@ -140,6 +146,11 @@ typedef struct dt_node { #define dn_provred dn_u._provider._redecl /* DT_NODE_PROVIDER */ #define dn_probes dn_u._provider._probes /* DT_NODE_PROVIDER */ +/* DT_NODE_IF: */ +#define dn_conditional dn_u._conditional._conditional +#define dn_body dn_u._conditional._body +#define dn_alternate_body dn_u._conditional._alternate_body + #define DT_NODE_FREE 0 /* unused node (waiting to be freed) */ #define DT_NODE_INT 1 /* integer value */ #define DT_NODE_STRING 2 /* string value */ @@ -162,6 +173,7 @@ typedef struct dt_node { #define DT_NODE_PROBE 19 /* probe definition */ #define DT_NODE_PROVIDER 20 /* provider definition */ #define DT_NODE_PROG 21 /* program translation unit */ +#define DT_NODE_IF 22 /* if statement */ #define DT_NF_SIGNED 0x01 /* data is a signed quantity (else unsigned) */ #define DT_NF_COOKED 0x02 /* data is a known type (else still cooking) */ @@ -213,6 +225,7 @@ extern dt_node_t *dt_node_xlator(dt_decl extern dt_node_t *dt_node_probe(char *, int, dt_node_t *, dt_node_t *); extern dt_node_t *dt_node_provider(char *, dt_node_t *); extern dt_node_t *dt_node_program(dt_node_t *); +extern dt_node_t *dt_node_if(dt_node_t *, dt_node_t *, dt_node_t *); extern dt_node_t *dt_node_link(dt_node_t *, dt_node_t *); extern dt_node_t *dt_node_cook(dt_node_t *, uint_t); @@ -237,6 +250,7 @@ extern void dt_node_promote(dt_node_t *, extern void dt_node_diftype(dtrace_hdl_t *, const dt_node_t *, dtrace_diftype_t *); extern void dt_node_printr(dt_node_t *, FILE *, int); +extern void dt_printd(dt_node_t *, FILE *, int); extern const char *dt_node_name(const dt_node_t *, char *, size_t); extern int dt_node_root(dt_node_t *); Copied: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c (from r304466, head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c Fri Aug 19 16:38:57 2016 (r304467, copy of r304466, head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_sugar.c) @@ -0,0 +1,516 @@ +/* + * CDDL HEADER START + * + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012, 2016 by Delphix. All rights reserved. + */ + +/* + * Syntactic sugar features are implemented by transforming the D parse tree + * such that it only uses the subset of D that is supported by the rest of the + * compiler / the kernel. A clause containing these language features is + * referred to as a "super-clause", and its transformation typically entails + * creating several "sub-clauses" to implement it. For diagnosability, the + * sub-clauses will be printed if the "-xtree=8" flag is specified. + * + * Currently, the only syntactic sugar feature is "if/else" statements. Each + * basic block (e.g. the body of the "if" and "else" statements, and the + * statements before and after) is turned into its own sub-clause, with a + * predicate that causes it to be executed only if the code flows to this point. + * Nested if/else statements are supported. + * + * This infrastructure is designed to accommodate other syntactic sugar features + * in the future. + */ + +#include <sys/types.h> +#include <sys/wait.h> +#include <sys/sysmacros.h> + +#include <assert.h> +#include <strings.h> +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> +#include <dt_module.h> +#include <dt_program.h> +#include <dt_provider.h> +#include <dt_printf.h> +#include <dt_pid.h> +#include <dt_grammar.h> +#include <dt_ident.h> +#include <dt_string.h> +#include <dt_impl.h> + +typedef struct dt_sugar_parse { + dtrace_hdl_t *dtsp_dtp; /* dtrace handle */ + dt_node_t *dtsp_pdescs; /* probe descriptions */ + int dtsp_num_conditions; /* number of condition variables */ + int dtsp_num_ifs; /* number of "if" statements */ + dt_node_t *dtsp_clause_list; /* list of clauses */ +} dt_sugar_parse_t; + +static void dt_sugar_visit_stmts(dt_sugar_parse_t *, dt_node_t *, int); + +/* + * Return a node for "self->%error". + * + * Note that the "%" is part of the variable name, and is included so that + * this variable name can not collide with any user-specified variable. + * + * This error variable is used to keep track of if there has been an error + * in any of the sub-clauses, and is used to prevent execution of subsequent + * sub-clauses following an error. + */ +static dt_node_t * +dt_sugar_new_error_var(void) +{ + return (dt_node_op2(DT_TOK_PTR, dt_node_ident(strdup("self")), + dt_node_ident(strdup("%error")))); +} + +/* + * Append this clause to the clause list. + */ +static void +dt_sugar_append_clause(dt_sugar_parse_t *dp, dt_node_t *clause) +{ + dp->dtsp_clause_list = dt_node_link(dp->dtsp_clause_list, clause); +} + +/* + * Prepend this clause to the clause list. + */ +static void +dt_sugar_prepend_clause(dt_sugar_parse_t *dp, dt_node_t *clause) +{ + dp->dtsp_clause_list = dt_node_link(clause, dp->dtsp_clause_list); +} + +/* + * Return a node for "this->%condition_<condid>", or NULL if condid==0. + * + * Note that the "%" is part of the variable name, and is included so that + * this variable name can not collide with any user-specified variable. + */ +static dt_node_t * +dt_sugar_new_condition_var(int condid) +{ + char *str; + + if (condid == 0) + return (NULL); + assert(condid > 0); + + (void) asprintf(&str, "%%condition_%d", ABS(condid)); + return (dt_node_op2(DT_TOK_PTR, dt_node_ident(strdup("this")), + dt_node_ident(str))); +} + +/* + * Return new clause to evaluate predicate and set newcond. condid is + * the condition that we are already under, or 0 if none. + * The new clause will be of the form: + * + * dp_pdescs + * /!self->%error/ + * { + * this->%condition_<newcond> = + * (this->%condition_<condid> && pred); + * } *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608191638.u7JGcwGU099117>